OSDN Git Service

* Makefile.in (LIBGCOV): Add _gcov_merge_add.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-05-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2
3         * Makefile.in (LIBGCOV): Add _gcov_merge_add.
4         * gcov-io.h: Make GCOV_LINKAGE extern in libgcov and prevent resulting
5         namespace clash.
6         (GCOV_MERGE_FUNCTIONS): New.
7         (gcov_merge_fn): Declare.
8         (struct gcov_ctr_info): New field "merge".
9         (__gcov_merge_add): Declare.
10         * coverage.c (ctr_merge_functions): New.
11         (build_ctr_info_type, build_ctr_info_value): Initialize merge field
12         of gcov_ctr_info type.
13         * libgcov.c (__gcov_merge_add): New.
14         (gcov_exit): Call a hook to merge values of counters.
15
16 2003-05-04  Gabriel Dos Reis <gdr@integrable-solutions.net>
17
18         * toplev.h (pedwarn_with_file_and_line): Don't declare.
19         * diagnostic.c (pedwarn_with_file_and_line): Remove.
20
21 2003-05-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
22
23         * varasm.c (assemble_variable): Don't use error_with_file_and_line.
24
25 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26
27         * builtins.c (expand_builtin_constant_p, expand_builtin_strlen,
28         expand_builtin_frame_address): Update prototypes.
29         (expand_builtin_constant_p, expand_builtin_strlen,
30         expand_builtin_strcpy, expand_builtin_memset,
31         expand_builtin_bzero, expand_builtin_args_info,
32         expand_builtin_frame_address): Pass in just the argument(s)
33         needed, not the entire expression `exp'.
34         (expand_builtin): Update all calls to these functions.
35
36 2003-05-03  Richard Henderson  <rth@redhat.com>
37
38         * builtins.c (expand_builtin) <BUILT_IN_DWARF_FP_REGNUM>: Remove.
39         <BUILT_IN_DWARF_SP_COLUMN>: New.
40         * builtins.def (BUILT_IN_DWARF_FP_REGNUM): Remove.
41         (BUILT_IN_DWARF_SP_COLUMN): New.
42         * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Remove.
43         (expand_builtin_dwarf_sp_column): New.
44         * except.h: Update to match.
45         * unwind-dw2.c (execute_stack_op): Correct stack push typo.
46         (execute_cfa_program): Record location expression address
47         before extracting length.
48         (uw_update_context_1): Install old CFA into stack pointer column.
49         (uw_init_context_1): Set cfa_reg to stack pointer column.
50
51 2003-05-03  Richard Henderson  <rth@redhat.com>
52
53         * config/rs6000/rs6000.c (constant_pool_expr_p): Make static and
54         return bool.
55         (toc_relative_expr_p): Likewise.
56         (SPE_CONST_OFFSET_OK): Move from rs6000.h.
57         (legitimate_constant_pool_address_p): Move from rs6000.h, change
58         into a function, downcase all users.
59         (legitimate_small_data_p): Likewise.
60         (legitimate_offset_address_p): Likewise.
61         (legitimate_indexed_address_p): Likewise.
62         (legitimate_indirect_address_p): Likewise.
63         (legitimate_lo_sum_address_p): Likewise.
64         (rs6000_mode_dependent_address): Likewise.
65         * rs6000.h (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): Remove.
66         (SPE_CONST_OFFSET_OK, LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
67         LEGITIMATE_SMALL_DATA_P, LEGITIMATE_OFFSET_ADDRESS_P,
68         LEGITIMATE_INDEXED_ADDRESS_P, LEGITIMATE_INDIRECT_ADDRESS_P,
69         LEGITIMATE_LO_SUM_ADDRESS_P): Move into rs6000.c.
70         (LEGITIMATE_ADDRESS_INTEGER_P): Remove.
71         (GO_IF_MODE_DEPENDENT_ADDRESS): Use rs6000_mode_dependent_address.
72         * config/rs6000/rs6000-protos.h: Update.
73
74 2003-05-03  Geoffrey Keating  <geoffk@apple.com>
75
76         * config/rs6000/rs6000.h (REVERSIBLE_CC_MODE): Define.
77         (REVERSE_CONDITION): Define.
78
79         * config/rs6000/rs6000.c (scc_comparison_operator): Make equivalent
80         to branch_positive_comparison_operator.
81         (ccr_bit): Check that sCOND conditions are actually a positive bit.
82         (print_operand): Remove %D substitution.
83         (rs6000_emit_sCOND): Generate complement operation to ensure that
84         sCOND input is a positive bit.
85         * config/rs6000/rs6000.md: Rearrange sCOND templates to be in the
86         same order as bCOND, and add the missing ones.  Remove the %D
87         substitutions from the scc patterns.
88
89         * simplify-rtx.c (simplify_relational_operation): Add case for
90         ! (fabs(x) < 0.0).
91
92 2003-05-03  Bruce Korb  <bkorb@gnu.org>
93
94         * gcc/fixinc/fixincl.tpl(dne): restore this to force merge conflicts
95         in fixincl.x
96         * gcc/fixinc/inclhack.def(bsd_stdio_attrs_conflict): fix placement
97
98 2003-05-03  Aldy Hernandez  <aldyh@redhat.com>
99
100         * config/rs6000/spe.h: Remove unecessary casts.  Misc cleanups.
101
102 2003-05-03  Zack Weinberg  <zack@codesourcery.com>
103
104         PR c/10604
105         * c-common.c (warn_sign_compare): Initialize to -1.
106         * c-opts.c (c_common_init_options): Don't set warn_sign_compare here.
107         (c_common_decode_option <OPT_Wall>): Set warn_sign_compare
108         for C++ only.
109         (c_common_post_options): Set warn_sign_compare from extra_warnings
110         if it's still -1 at this point.
111
112         * toplev.c (maybe_warn_unused_parameter): New static variable.
113         (set_Wextra): New static function.
114         (W_options): Remove "extra".
115         (decode_W_option): Call set_Wextra.
116         (independent_decode_option): Likewise.
117         (set_Wunused): Cooperate with set_Wextra in setting
118         warn_unused_parameter.
119         (rest_of_compilation): No need to check extra_warnings as
120         well as warn_uninitialized.
121
122         * c-typeck.c (build_binary_op, build_conditional_expr):
123         No need to check extra_warnings as well as warn_sign_compare.
124         (internal_build_compound_expr): No need to check extra_warnings
125         as well as warn_unused_value.
126         * function.c (expand_function_end): No need to check extra_warnings
127         as well as warn_unused_parameter.
128         * stmt.c (expand_expr_stmt_value): No need to check extra_warnings
129         as well as warn_unused_value.
130
131         * doc/invoke.texi: Clarify documentation of -Wsign-compare.
132
133         * Makefile.in: Disable -Werror for gengtype-lex.o.
134
135 2003-05-03  Olivier Hainque  <hainque@act-europe.fr>
136
137         * emit-rtl.c (last_call_insn, add_function_usage_to): New functions.
138         * rtl.h (last_call_insn, add_function_usage_to): New prototypes.
139         * builtins.c (expand_builtin_apply): Use the new emit-rtl functions.
140         * calls.c (emit_call_1): Likewise.
141         (expand_call): For calls initializing constant memory, replace
142         emission of standalone mem /u clobber with function usage entry.
143         * expr.c (emit_block_move_via_libcall): Likewise.
144         * cse.c (count_reg_usage, case EXPR_LIST): New case.
145         * flow.c (propagate_one_insn): Pass entire operand of
146         CALL_INSN_FUNCTION_USAGE to mark_used_regs.
147         * integrate.c (try_constants): For CALL_INSNs, substitute constants
148         within the FUNCTION_USAGE also.
149         * loop.c (prescan_loop): Note clobbers of const mem mentioned in
150         FUNCTION_USAGE lists.
151         * reload1.c (replace_pseudos_in): Renamed.
152         (reload): Use it for clobbers surviving until the end of the reload.
153
154 2003-05-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
155
156         * expr.c (expand_expr, case VIEW_CONVERT_EXPR): Don't use
157         gen_lowpart on non-integer modes.
158
159         * stor-layout.c (place_field): When adjusting offset_align, use
160         desired_align, not DECL_ALIGN.
161
162 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
163
164         * c-decl.c (pending_invalid_xref_file): Remove.
165         (pending_invalid_xref_line): Remove.
166         (pending_invalid_xref_location): New.
167         (lookup_label): Use location_t and input_location directly.
168         (lookup_tag): Likewise.
169         (pending_xref_error): Likewise.
170         (c_expand_body_1): Likewise.
171         * c-common.c (x_expand_start_cond): Likewise.
172         * c-semantics.c (genrtl_for_stmt): Likewise.
173         (find_reachable_label): Likewise.
174         * expr.c (expand_expr): Likewise.
175         * integrate.c (output_inline_function): Likewise.
176         * tree-inline.c (find_alloca_call): Likewise.
177         (find_builtin_longjmp_call): Likewise.
178         * gcc.c (input_filename): Make static.
179
180 2003-05-03  Richard Sandiford  <rsandifo@redhat.com>
181
182         * config/mips/mips.md: Fix comment typo.
183
184         * config/mips/mips.c (mips_integer_op): New structure.
185         (MIPS_MAX_INTEGER_OPS): Define.
186         (mips_const_insns): Use mips_build_integer to determine the number
187         of instructions needed to load a CONST_INT.
188         (move_operand): Reject compound CONST_INTs.
189         (mips_build_shift, mips_build_lower, mips_build_integer): New fns.
190         (mips_move_integer): New fn.
191         (mips_legitimize_const_move): Pass CONST_INTs to mips_move_integer.
192         (mips_legitimize_move): Only legitimize constants when moving
193         word or subword values.
194
195 2003-05-02  Matt Kraai  <kraai@alumni.cmu.edu>
196
197         * Makefile.in (gcov-iov.h): Use move-if-change and a stamp.
198
199 2003-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
200
201         * builtins.c (expand_builtin_stpcpy): Copy `arglist' before
202         modifying it.
203
204 2003-05-03  Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
205             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
206
207         * doc/contrib.texi (Contributors): Add Zdenek Dvorak, Aldy
208         Hernandez, and Kazu Hirata.  Update Richard Henderson.
209
210 2003-05-02  Geoffrey Keating  <geoffk@apple.com>
211
212         * config/rs6000/rs6000.c (rs6000_attribute_table): Add 'extern'
213         to tentative declaration.
214
215         * config/rs6000/sysv4.h (SYMBOL_FLAG_SMALL_V4): Delete.
216         (SYMBOL_FLAG_SMALL_V4): Delete.
217         * config/rs6000/rs6000.c (small_data_operand): Use SYMBOL_REF_SMALL_P.
218         (rs6000_elf_encode_section_info): Don't set SYMBOL_FLAG_SMALL_V4.
219         (rs6000_elf_in_small_data_p): Add extra section names.  Add
220         comment about TREE_PUBLIC test.
221
222         * c-semantics.c (genrtl_switch_stmt, genrtl_if_stmt): Call
223         expand_stmt on result of expand_unreachable_stmt.
224
225 2003-05-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
226
227         * doc/contrib.texi (Contributors): Add Daniel Berlin.
228
229 2003-05-02  David Edelsohn  <edelsohn@gnu.org>
230
231         * config/rs6000/{603.md,6xx.md,7450.md,7xx.md,rs64.md}: Decrease
232         number of automata.
233
234         * config/rs6000/rs6000.c (symbol_ref_operand): Check
235         SYMBOL_REF_FUNCTION_P on AIX.
236         (current_file_function_operand): Same.
237         * config/rs6000/rs6000.md (call,call_value): Force non-function
238         symbol_ref into register on AIX.
239
240 2003-05-02  Alan Modra  <amodra@bigpond.net.au>
241
242         * calls.c (struct arg_data): Move offset, slot_offset, size and
243         alignment_pad to struct locate_and_pad_arg_data.  Update all refs.
244         (initialize_argument_information): Adjust call to locate_and_pad_parm.
245         Delete alignment_pad var.  Don't calculate slot_offset here.
246         (emit_library_call_value_1): Delete alignment_pad, offset and size
247         vars.  Use struct locate_and_pad_arg_data instead.  Adjust refs.
248         Adjust call to locate_and_pad_parm.  Don't tweak arg size for
249         partial in-regs here.  Formatting fixes.
250         * expr.h (struct locate_and_pad_arg_data): New struct.
251         (locate_and_pad_parm): Adjust declaration.
252         * function.c (assign_parms): Localize vars.  Use "locate" instead of
253         other arg location vars.  Don't invoke FUNCTION_ARG or
254         FUNCTION_INCOMING_ARG unless pretend_named is different from
255         named_arg.  Heed MUST_PASS_IN_STACK and set up "partial" before
256         calling locate_and_pad_parm.  Adjust locate_and_pad_parm call.
257         Use slot_offset for stack home of reg parms.  Correct test for
258         parm passed in memory.  Formatting fixes.
259         (locate_and_pad_parm): Add "partial" to params.  Replace offset_ptr
260         arg_size_ptr and alignment pad with "locate".  Set slot_offset here.
261         Correct initial_offset_ptr handling.  Localize vars.  Always pad
262         locate->offset even when in_regs.
263
264 2003-05-02  Nathan Sidwell  <nathan@codesourcery.com>
265
266         * Makefile.in (TREE_H): Replace location.h with input.h.
267         (GTFILES) Remove location.h
268         (gt-lists.h): Replace gt-location.h with gt-input.h
269         * input.h (input_filename, input_line): Remove variables.
270         (location_s, location_t): Move from location.h.
271         (input_location): New.
272         (input_filename, input_line): New #defines.
273         * location.h: Remove.
274         * tree.h: Replace location.h with input.h.
275         (input_filename, input_line): Remove.
276         * diagnostic.h: Replace location.h with input.h.
277         * gcc.h (input_filename, input_filename_length): Remove declarations.
278         * toplev.c (input_filename, input_line): Remove.
279         (input_location): Define.
280         (push_srcloc, pop_srcloc): Adjust.
281         * diagnostic.c (diagnostic_report_current_module): Adjust.
282
283 2003-05-02  Nick Clifton  <nickc@redhat.com>
284
285         * configure.in: Add xstormy16 to list of targets that has a nop
286         instruction and hence which can be tested to see if the
287         assembler supports the --gdwarf2 switch.
288         * configure: Regenerate.
289
290 2003-05-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
291
292         PR target/8257
293         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
294         alpha_start_function, alpha_expand_epilogue, unicosmk_gen_dsib):
295         Avoid undefined shifts by making the shift operand unsigned.
296
297 2003-05-01  DJ Delorie  <dj@redhat.com>
298
299         * reload.c (find_reloads): Also check that all of a multi-reg
300         value is in the class.
301
302 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
303
304         * scan.h (lineno): Revert the rename here.
305
306 2003-05-01  Stan Shebs  <shebs@apple.com>
307
308         * config/darwin.c (darwin_encode_section_info): Call
309         default_encode_section_info.
310
311 2003-05-01  David Edelsohn  <edelsohn@gnu.org>
312
313         * config/rs6000/rs6000.md (define_attr "type"): Add mfjmpr.
314         (movsi_internal1): Use new mfjmpr attribute.
315         (movhi_internal): Same.
316         (movqi_internal): Same.
317         (movcc_internal1): Same.
318         (movdi_internal64): Same.
319         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
320         power4.md,rios1.md,rios2.md,rs64.md}: Add mfjmpr.
321         * config/rs6000/40x.md: Add fpu_405.
322         * config/rs6000/power4.md: Merge power4lsu and power4disp automata
323         into power4misc automata.  Remove extraneous parentheses.
324         * config/rs6000/440.md: New file.
325         * config/rs6000/rs6000.c (processor_target_table): Add 440,
326         440fp.  Rename 405f to 405fp.
327         (function_arg_padding): Correct formatting.
328         (rs6000_rtx_costs): Add PROCESSOR_PPC440 cases.
329
330 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
331
332         * input.h (lineno): Rename to ...
333         (input_line): ... here.
334         * tree.h (lineno): Rename to ...
335         (input_line): ... here.
336         * scan.h (lineno): Rename to ...
337         (input_line): ... here.
338         * toplev.c (lineno): Rename to ...
339         (input_line): ... here.
340         (push_srcloc, pop_srcloc):  Rename lineno to input_line.
341         * c-common.c (c_expand_start_cond, fname_decl): Likewise.
342         * c-decl.c (poplevel, pop_label_level, lookup_label, lookup_tag,
343         store_parm_decls, c_expand_body_1): Likewise.
344         * c-errors.c (pedwarn_c99): Likewise.
345         * c-format.c (status_warning): Likewise.
346         * c-lex.c (fe_file_change, cb_def_pragma, c_lex): Likewise.
347         * c-opts.c (c_common_post_options, c_common_parse_file): Likewise.
348         * c-parse.in (save_filename, maybe_type_qual, ifc): Likwise.
349         * c-semantics.c (finish_stmt_tree, build_stmt, emit_local_var,
350         gentrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt,
351         genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt,
352         genrtl_return_stmt, genrtl_for_stmt, build_break_stmt,
353         build_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt,
354         prep_stmt, find_reachable_label, expand_unreachable_stmt): Likewise.
355         * coverage.c (create_coverage): Likewise.
356         * diagnostic.c (pedwarn, sorry, error, fatal_error,
357         internal_error, warning, diagnostic_report_current_module,
358         inform): Likewise.
359         * expr.c (expand_expr): Likewise.
360         * integrate.c (expand_inline_function,
361         output_inline_function): Likewise.
362         * rtl-error.c (file_and_line_for_asm): Likewise.
363         * tree-inline.c (find_alloca_call, find_builtin_longjmp_call,
364         walk_tree): Likewise.
365         * tree.c (make_node): Likewise.
366         * ada, cp, f, java, objc, treelang: Likewise.
367         * objc/objc-act.c (objc_init): Rename lineno to input_line.
368         (build_module_descriptor, build_selector_translation_table,
369         build_protocol_template, build_method_prototype_list_template,
370         build_category_template, build_selector_table,
371         build_class_template, build_super_template, build_ivar_template,
372         build_ivar_list_template, build_method_list_template,
373         build_method_template, add_instance_variable): Likewise.
374
375         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Change parameter
376         name from input_filename.
377
378 2003-04-30  Eric Christopher  <echristo@redhat.com>
379             Richard Sandiford <rsandifo@redhat.com>
380
381         * configure: Regenerate from patches below.
382         * combine.c (gen_lowpart_for_combine): Fix comment and add tests
383         for all symbolic operands.
384         * config/mips/mips.c: Migrate RTX_COSTS and CONST_COSTS
385         to function.
386         * config/mips/linux.h: Fix typo.
387         * Merge from mips-3_4-rewrite branch:
388
389         2003-04-07  Richard Sandiford  <rsandifo@redhat.com>
390
391                 * config/mips/mips.c (mips_classify_symbol): Add catch-all case for
392                 handling local labels when TARGET_ABICALLS.
393
394         2003-04-04  Richard Sandiford  <rsandifo@redhat.com>
395
396                 * config/mips/mips-protos.h (mips_expand_epilogue): Add an
397                 integer argument.
398                 (mips_expand_call): Likewise.
399                 * config/mips/mips.h (TARGET_SIBCALLS): New macro.
400                 (FIXED_REGISTERS): Clear $31 entry.
401                 (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTER): Likewise.
402                 (EPILOGUE_USES): Define.
403                 * config/mips/mips.c (mips_function_ok_for_sibcall): New function.
404                 (TARGET_FUNCTION_OK_FOR_SIBCALL): Use it.
405                 (override_options): Add a 'j' register class.
406                 (mips_expand_call): Handle sibcalls
407                 (mips_expand_epilogue): Handle epilogues for sibcalls.
408                 * config/mips/mips.md (epilogue): Adjust call to mips_expand_epilogue.
409                 (sibcall_epilogue): New pattern.
410                 (call, call_value): Adjust calls to mips_expand_call.
411                 (sibcall, sibcall_value): New expanders.
412                 (sibcall_internal, sibcall_value_internal): New patterns.
413                 (sibcall_value_multiple_internal): New pattern.
414
415         2003-03-25  Richard Sandiford  <rsandifo@redhat.com>
416
417                 * config/mips/mips.md (extended_mips16): New attribute.
418                 (define_attr length): Default to 8 if extended_mips16 == yes.
419                 (truncdisi2): Set extended_mips16 to yes for the sll alternative.
420                 (truncdihi2, truncdiqi2, *extendsidi2): Likewise.
421                 (call_internal): Set extended_mips16 to yes for direct jumps.
422                 Remove redundant mode attribute.
423                 (call_value_internal, call_value_multiple_internal): Likewise.
424                 (call_split): Remove redundant mode attribute.
425                 (call_value_split, call_value_multiple_split): Likewise.
426
427                 * config/mips/mips.c (mips_symbol_insns): Rework.  Fix handling
428                 of unaligned offsets.
429
430                 * config/mips/mips.c (mips_splittable_symbol_p): Fix handling
431                 of SYMBOL_GENERAL.
432
433         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
434
435                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS): Add commentary.
436                 * config/mips/mips.c (override_options): Disable -mexplicit-relocs
437                 for mips16 code.
438
439         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
440
441                 * config/mips/mips.h (ADDRESS_COST): Define.
442
443         2003-03-20  Richard Sandiford  <rsandifo@redhat.com>
444
445                 * config/mips/mips.h (EXTRA_CONSTRAINT): Give existing meaning of
446                 'R' to 'U'.  Make 'R' mean a single-instruction memory reference.
447                 * config/mips/mips.md: Replace 'R' constraints with 'U'.
448
449         2003-03-18  Richard Sandiford  <rsandifo@redhat.com>
450
451                 * config/mips/mips.md (truncdisi2): Add commentary.  Use sll instead
452                 of a two-instruction sequence.  Add register->memory alternative.
453                 (truncdihi2, truncdiqi2): Likewise.
454                 Rework shift/truncate instructions so that they only handle right
455                 shifts of 32 (or more, in the case of arithmetic shifts).
456                 Add patterns for truncate/sign-extend.
457
458         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
459
460                 * configure.in (mips*-*-*): Check for explicit relocation support.
461                 * configure: Regenerate.
462
463         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
464
465                 * config/mips/mips.h (TARGET_SWITCHES): Add -mexplicit-relocs
466                 and -mno-explicit-relocs.
467                 (MASK_EXPLICIT_RELOCS): Define.
468                 (TARGET_EXPLICIT_RELOCS): Use it.
469                 (mips_split_addresses): Remove declaration.
470                 * config/mips/mips.c (override_options): Update comment for
471                 mips_split_addresses.  Clear MASK_EXPLICIT_RELOCS for non-PIC n64.
472
473         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
474
475                 * combine.c (gen_lowpart_for_combine): Treat the lowpart Pmode of
476                 a CONST as identity.  Check the return value of gen_lowpart_common.
477
478         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
479
480                 * config/mips/mips.c (mips_legitimize_symbol): Handle small data
481                 references for TARGET_EXPLICIT_RELOCS.
482                 (mips_reloc_string): Return "%gp_rel(" for RELOC_GPREL16 if
483                 !TARGET_MIPS16.
484
485         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
486
487                 * config/mips/mips.md: Replace 'IQ' mips16 constraints with just 'Q'.
488                 (addsi3): Remove redundant constraints.
489                 (addsi3_internal): Use separate register & constant alternatives.
490                 Use a 'Q' constraint and "addiu" insn for the latter.
491                 (adddi3_internal_3, addsi3_internal_2): Likewise.
492
493         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
494
495                 * config/mips/mips-protos.h (mips_expand_unaligned_load): Declare.
496                 (mips_expand_unaligned_store): Declare.
497                 * config/mips/mips.c (mips_get_unaligned_mem): New fn.
498                 (mips_expand_unaligned_load, mips_expand_unaligned_store): New fns.
499                 * config/mips/mips.md (UNSPEC_ULW, UNSPEC_USW): Remove.
500                 (UNSPEC_ULD, UNSPEC_USD): Remove.
501                 (UNSPEC_LWL, UNSPEC_LWR, UNSPEC_SWL, UNSPEC_SWR): New.
502                 (UNSPEC_LDL, UNSPEC_LDR, UNSPEC_SDL, UNSPEC_SDR): New.
503                 (extv, extzv): Use mips_expand_unaligned_load.
504                 (insv): Use mips_expand_unaligned_store.  Use a reg_or_0_operand
505                 predicate for operand 3.
506                 (movsi_ulw, movsi_usw): Replace with...
507                 (mov_lwl, mov_lwr, mov_swl, move_swr): ...these new insns.
508                 (movdi_uld, movdi_usd): Likewise replace with...
509                 (mov_ldl, mov_ldr, mov_sdl, move_sdr): ...these insns.
510
511         2003-02-26  Richard Sandiford  <rsandifo@redhat.com>
512
513                 * config/mips/mips-protos.h (mips_global_pic_constant_p): Declare.
514                 * config/mips/mips.h (LEA_REGS): New register class.
515                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for it.
516                 (GR_REG_CLASS_P): Include LEA_REGS.
517                 (DANGEROUS_FOR_LA25_P): New macro.
518                 (EXTRA_CONSTRAINT): Add !DANGEROUS_FOR_LA25_P to R's condition.
519                 Add a T constraint for the DANGEROUS_FOR_LA25_P case.
520                 * config/mips/mips.c (mips_regno_to_class): Change GR_REGS
521                 entries to LEA_REGS.
522                 (mips_global_pic_constant_p): New function.
523                 (override_options): Add 'e' register constraint.
524                 (mips_secondary_reload_class): Return LEA_REGS when reloading
525                 a dangerous constant into a class containing $25.
526                 * config/mips/mips.md (movdi_internal2): Add an e <- T alternative.
527                 (movsi_internal): Likewise.
528
529         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
530
531                 * config/mips/mips.h (TARGET_SPLIT_CALLS): New macro.
532                 * config/mips/mips.md (call_split): New insn.
533                 (call_value_split, call_value_multiple_split): New insns.
534                 (call_internal): Turn into a define_insn_and_split.  Split the
535                 instruction into a call and $gp load if TARGET_SPLIT_CALLS.
536                 (call_value_internal, call_value_multiple_internal): Likewise.
537
538         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
539
540                 * config/mips/mips.c (mips_reloc_string): Return "%got(" for
541                 RELOC_GOT_PAGE and RELOC_GOT_DISP if !TARGET_NEWABI.
542                 (mips_encode_section_info): Don't take symbol visibility into
543                 account if TARGET_ABICALLS.  Add more commentary.
544                 * config/mips/mips.md: Add commentary above reloc constants.
545
546         2003-02-12  Richard Sandiford  <rsandifo@redhat.com>
547
548                 * config/mips/mips.c (mips_legitimize_const_move): New, extracted
549                 from mips_legitimize_move.  Legitimize constant pool references.
550                 (mips_legitimize_move): Call mips_legitimize_const_move.  Attach
551                 a REG_EQUAL note to the last instruction.
552
553         2003-02-11  Richard Sandiford  <rsandifo@redhat.com>
554
555                 * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Declare.
556                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS, TARGET_NEWABI): New.
557                 (ASM_SIMPLIFY_DWARF_ADDR): Define to mips_simplify_dwarf_addr.
558                 (EXTRA_CONSTRAINT): Allow symbolic call addresses for TARGET_ABICALLS.
559                 * config/mips/mips.md (UNSPEC_HIGH): New constant.
560                 (UNSPEC_RELOC_GPREL16): Rename to...
561                 (RELOC_GPREL16): ...this.
562                 (RELOC_GOT_HI, RELOC_GOT_LO, RELOC_GOT_PAGE, RELOC_GOT_DISP): New.
563                 (RELOC_CALL16, RELOC_CALL_HI, RELOC_CALL_LO): New.
564                 (macro_calls): New attribute.
565                 (length): Use it to set the default length of calls.  Don't allow
566                 calls to have delay slots if macro_calls is "yes".
567                 (luisi, luidi): New patterns.
568                 (lowsi, lowdi): Use '%R' to print the relocation.
569                 (lowdi_extend): Remove.
570                 (loadgp): Remove mode from operand 0.  Use '%0' instead of '%a0'.
571                 (call_internal): Merge alternatives.  Always use "jal".
572                 (call_value_internal, call_value_multiple_internal): Likewise.
573                 (reloc_gprel16): Remove.
574                 * config/mips/mips.c (mips_got_alias_set): New variable.
575                 (mips_classify_constant): Handle the new relocation constants.
576                 (mips_classify_symbol): Reverse the sense of SYMBOL_REF_FLAG for PIC.
577                 (mips_symbolic_address_p): Return false if generating explicit relocs.
578                 Otherwise allow local PIC symbols to have an offset.
579                 (mips_splittable_symbol_p): New function.
580                 (mips_classify_address): Use it to check whether a LO_SUM is valid.
581                 (mips_const_insns): Always accept HIGH.
582                 (call_insn_operand): Don't accept global symbols if using explicit
583                 relocs.
584                 (move_operand): Don't accept HIGH when generating PIC.
585                 (mips_reloc, mips_lui_reloc): New functions.
586                 (mips_force_temporary): Remove MODE argument.  Expect VALUE to
587                 be a valid right-hand-side for a SET pattern.
588                 (mips_load_got, mips_load_got16, mips_load_got32): New functions.
589                 (mips_emit_high): New function.
590                 (mips_legitimize_symbol): Use mips_reloc for the mips16 gp-relative
591                 case.  Use mips_splittable_symbol_p to check whether a LO_SUM
592                 address should be used.  Use mips_emit_high to generate the
593                 high part of such an address.  Adjust the global symbol + offset
594                 case to match the change to mips_force_temprorary.
595                 (mips_legitimize_move): Shuffle call to mips_legitimize_symbol.
596                 If generating explicit-reloc PIC, load the address of global
597                 symbols from the GOT.  Use mips_emit_high to emit the high part
598                 of an address.
599                 (mips_simplify_dwarf_addr): New function.
600                 (mips_move_1word): Use lwc1 instead of l.s and swc1 instead of s.s.
601                 (mips_move_2words): Likewise ldc1/l.d and sdc1/s.d if TARGET_64BIT.
602                 (mips_expand_call): Load the addresses of global functions using
603                 %call* relocs if generating explicit-reloc PIC.  Don't generate
604                 an exception_receiver pattern.
605                 (override_options): Initialize mips_got_alias_set.
606                 (print_relocation): Remove in favour of...
607                 (mips_reloc_string): ...this new function.
608                 (print_operand): Handle '%R'.  Use mips_reloc_string.
609                 (print_operand_address): Use print_operand to print the symbolic
610                 part of a LO_SUM address.
611                 (mips_output_function_prologue): Use .cprestore, reverting last patch.
612                 (mips_encode_section_info): Factor out DECL_RTL accesses.  Reverse
613                 sense of SYMBOL_REF_FLAG for PIC, using binds_local_p to check
614                 for local symbols.
615
616         2003-02-02  Eric Christopher  <echristo@redhat.com>
617
618                 * config/mips/mips.c (mips_sign_extend): Remove.
619                 * config/mips/mips-protos.h: Ditto.
620                 * config/mips/mips.md (movdi_internal2_extend): Remove.
621                 (extendsidi2): Fix mode of convert_memory_address.
622
623         2003-01-24  Eric Christopher  <echristo@redhat.com>
624
625                 * config/mips/mips.md: Rewrite zero_extend* and extend*
626                 patterns. Use explicit instructions and split after reload
627                 for register extensions.
628                 (ashlsi3_internal1_extend): New combiner pattern for
629                 shift and extend combinations.
630                 * config/mips/mips.h: Change Pmode back to ptr_mode
631                 for performance enhancement.
632                 * combine.c (expand_compound_operation): Make sure
633                 that zero_extend operation is profitable.
634
635         2003-01-14  Richard Sandiford  <rsandifo@redhat.com>
636
637                 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Make size of stored
638                 addresses depend on ptr_mode rather than Pmode.
639                 (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Update acoordingly.
640                 (INITIALIZE_TRAMPOLINE): Rework to handle Pmode != ptr_mode.
641                 (CASE_VECTOR_MODE): Use ptr_mode for !TARGET_MIPS16.
642                 (ASM_OUTPUT_ADDR_VEC_ELT): Update accordingly.
643                 * config/mips/mips.md (tablejump): Likewise.  Remove Pmode
644                 condition for selecting cpaddsi or cpadddi: use cpadd instead.
645                 (tablejump_internal1): Remove condition.
646                 (tablejump_internal2): Change condition to TARGET_64BIT.
647                 (cpaddsi): Rename to...
648                 (cpadd): ...this.
649                 (cpadddi): Remove.
650
651         2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
652
653                 * config/mips/mips-protos.h (mips16_constant_after_function_p,
654                 mips_address_cost, mips_check_split, double_memory_operand,
655                 mips16_gp_offset, mips16_gp_offset_p, mips16_constant,
656                 pic_address_needs_scratch, symbolic_operand): Remove declarations.
657                 (mips_legitimate_address_p): Return bool.
658                 (mips_address_insns, mips_fetch_insns, mips_const_insns,
659                 mips_legitimize_address, mips_legitimize_move,
660                 mips_expand_call): Declare.
661                 (mips_return_addr): Move outside #ifdef RTX_CODE.
662
663                 * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): New macro.
664                 (PIC_FN_ADDR_REG): New reg_class.
665                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add corresponding entries.
666                 (GR_REG_CLASS_P): True for PIC_FN_ADDR_REG.
667                 (SMALL_OPERAND, SMALL_OPERAND_UNSIGNED, LUI_OPERAND,
668                 CONST_HIGH_PART, CONST_LOW_PART, LUI_INT): New macros.
669                 (SMALL_INT, SMALL_INT_UNSIGNED, CONST_OK_FOR_LETTER_P): Use new macros.
670                 (EXTRA_CONSTRAINTS): Give new meanings to Q, R and S.
671                 (CONSTANT_ADDRESS_P): Use mips_legitimate_address_p.
672                 (LEGITIMATE_PIC_OPERAND): Undefine.
673                 (LEGITIMATE_CONSTANT_P): Use mips_const_insns.
674                 (LEGITIMIZE_ADDRESS): Use mips_legitimize_address.
675                 (CONSTANT_AFTER_FUNCTION_P): Remove definition in #if 0 block.
676                 (FUNCTION_MODE): Change to SImode.
677                 (CONST_COSTS): Use mips_const_insns to calculate the cost of
678                 most constants.  Treat const_artih_operands specially if they
679                 occur in a PLUS or MINUS.
680                 (CONSTANT_POOL_COST): New macro.
681                 (RTX_COSTS): Use mips_address_insns for MEMs, with a base cost of 2.
682                 Add LO_SUM handling.
683                 (ADDRESS_COST): Undefine.
684                 (PREDICATE_CODES): Add symbolic_operand and const_arith_operand.
685                 Add CONST to the list of codes for arith_operand.  Add LABEL_REF
686                 to call_insn_operand and remove CONST_INT.
687
688                 * config/mips/mips.c: Include integrate.h.
689                 (SINGLE_WORD_MODE_P): New macro.
690                 (mips_constant_type, mips_symbol_type, mips_address_type): New enums.
691                 (mips_constant_info, mips_address_info): New structs.
692                 (mips_regno_to_class): Map $25 to PIC_FN_ADDR_REG.
693                 (mips_classify_constant, mips_classify_symbol,
694                 mips_valid_base_register_p, mips_symbolic_address_p,
695                 mips_classify_address, mips_symbol_insns,
696                 mips16_unextended_reference_p, mips_address_insns, mips_const_insns,
697                 mips_fetch_insns, mips_force_temporary, mips_add_offset,
698                 mips_legitimize_symbol, mips_legitimize_address, mips_legitimize_move,
699                 mips_print_relocation): New functions.
700                 (const_arith_operand): New operand predicate.
701                 (arith_operand): Use it.
702                 (mips_const_double_ok, mips16_simple_memory_operand,
703                 simple_memory_operand, double_memory_operand, mips_check_split,
704                 mips_address_cost, pic_address_needs_scratch, mips16_gp_offset,
705                 mips16_gp_offset_p, mips16_output_gp_offset,
706                 mips16_constant_after_function_p, mips16_constant): Remove.
707                 (call_insn_operand): Be more fussy about symbolic constants.
708                 Use register_operand.
709                 (move_operand): Use mips_symbolic_address_p to check symbolic
710                 operands and general_operand to check the rest.
711                 (symbolic_operand): Use mips_classify_constant.
712                 (mips_legitimate_address_p): Use mips_classify_address.
713                 (mips_move_1word): Combine handling of symbolic addresses.
714                 Remove special treatment of gp-relative loads for TARGET_MIPS16.
715                 (move_move_2words): Likewise.  Assume addresses are offsettable
716                 if they need to refer to more than one word.  Add HIGH handling.
717                 (mips_restore_gp): Use ptr_mode for the GP save slot.
718                 (mips_expand_call): New function, combining the old mips.md
719                 call and call_internal define_expands.  If the address isn't
720                 a call_insn_operand, force it into a register.  For SVR4 PIC,
721                 emit an exception_receiver instruction after the call.
722                 (override_options): Only override flag_pic for TARGET_ABICALLS
723                 if it is currently zero.  Allow mips_split_addresses when
724                 Pmode == DImode too, except when ABI_HAS_64BIT_SYMBOLS.
725                 Add new register class letter, 'c'.
726                 (print_operand): Use mips_classify_constant for constant operands.
727                 (print_operand_address): Use mips_classify_address.
728                 (mips_output_function_prologue): Don't use .cprestore.
729                 (mips_expand_epilogue): For TARGET_MIPS16, only adjust the stack
730                 via the frame pointer if current_function_calls_eh_return.
731                 (mips_encode_section_info): For TARGET_ABICALLS, use SYMBOL_REF_FLAG
732                 to mark whether a symbol is local or global.
733                 (build_mips16_call_stub): Expect the address of the function rather
734                 than a MEM reference to it.  Update call generation sequences.
735                 (mips16_optimize_gp): Remove Pmode checks.  Temporarily disable
736                 small-data adjustments.
737
738                 * config/mips/mips.md: Remove 'R'/'m' memory distinction.  Use default
739                 length for loads and stores.
740                 (UNSPEC_CPADD, UNSPEC_RELOC_GPREL16): New constants.
741                 (define_attr type): Add const and prefetch.
742                 (define_attr length): Use mips_const_insns for const instructions.
743                 Use mips_fetch_insns for load and store instructions.
744                 (define_attr single_insn): New.
745                 (define_attr can_delay): Use it.
746                 (define_attr abicalls): Remove.
747                 (define_delay): Use can_delay.  Always allow calls to have delay slots.
748                 (addsi3_internal_2): Add 'Q' constraint.
749                 (movsi_ulw, movsi_usw, movdi_uld, movdi_usd): Set length to 8.
750                 (high): Remove.
751                 (lowsi): Renamed from low.
752                 (lowdi): New pattern.
753                 (movdi, movsi): Use mips_legitimize_move.  Remove define_split.
754                 (lwxc1, ldxc1, swxc1, sdxc1): Set length to 4.
755                 (loadgp): Change operand 0 to an immediate_operand.
756                 (tablejump): Use the same patterns for SVR4 PIC but emit a cpadd
757                 beforehand.
758                 (cpaddsi, cpadddi): New patterns.
759                 (tablejump_internal3, tablejump_internal4): Remove define_expands
760                 and associated define_splits.
761                 (call, call_value): Use mips_expand_call.
762                 (call_internal): New, replacing all existing call_internal* insns.
763                 (call_value_internal): Likewise call_value_internal*.
764                 (call_value_multiple_internal): Likewise call_value_multiple_internal*.
765                 (untyped_call): Remove if (operands[0]) magic.
766                 (prefetch_si_address, prefetch_si): Change type to "prefetch".
767                 (prefetch_di_address, prefetch_di): Likewise.
768                 (leasi, leadi): Remove.
769                 (reloc_gprel16): New.
770
771                 * config/mips/5400.md (ir_vr54_hilo): Include const type.
772                 * config/mips/5500.md (ir_vr55_hilo): Likewise.
773                 * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
774
775         2003-01-08  Eric Christopher  <echristo@redhat.com>
776
777                 * config.gcc (mipsisa32*): Change ABI_MEABI to ABI_EABI.
778                 * config/mips/elf.h (STARTFILE_SPEC): Remove ABI_MEABI references and
779                 configure check for libgloss.
780                 * config/mips/elf64.h: Ditto.
781                 * config/mips/mips.c: Remove ABI_MEABI.
782                 * config/mips/mips.h: Ditto.
783
784         2002-11-05  Richard Sandiford  <rsandifo@redhat.com>
785
786                 Fix merge fallout.
787                 * config/mips/mips.md (mul_acc_si): Reapply 2002-10-16 change.
788                 (muldi3_internal): Remove outdated comment.
789                 (*muls_di, *umuls_di): Fix comment and 64-bitness.
790                 (*smsac_di, *umsac_di): Likewise.  Reformat.
791                 (umulsi3_highpart): Minor formatting tweaks.
792                 (umulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.  Remove
793                 redundant scratch operand.  Minor formatting tweak.
794                 (umulsi3_highpart_mulhi_internal): Use for !TARGET_64BIT as well.
795                 (umulsi3_highpart_neg_mulhi_internal): Likewise.  Fix asm template.
796                 (smulsi3_highpart): As for the unsigned version.
797                 (smulsi3_highpart_internal): Likewise.
798                 (smulsi3_highpart_mulhi_internal): Likewise.
799                 (smulsi3_highpart_neg_mulhi_internal): Likewise.
800                 (smuldi3_highpart, umuldi3_highpart): Minor formatting tweaks.
801                 (*smul_acc_di): Remove duplicated pattern.
802                 (*umul_acc_di, *smul_acc_di): Reapply 2002-10-16 change.
803                 (anddi3) [unnamed mips16 pattern]: Remove reintroduced length.
804                 (zero_extendsidi2_internal2): Remove new, but commented-out pattern.
805
806         2002-10-22  Eric Christopher  <echristo@redhat.com>
807
808                 * config/mips/mips-protos.h (mips_return_addr): New.
809                 * config/mips/mips.c (mips_return_addr): New.
810                 (movdi_operand): Remove.
811                 (se_register_operand): Ditto.
812                 (se_reg_or_0_operand): Ditto.
813                 (se_uns_arith_operand): Ditto.
814                 (se_arith_operand): Ditto.
815                 (se_nonmemory_operand): Ditto.
816                 (extend_operator): Ditto.
817                 (highpart_shift_operator): Ditto.
818                 (mips_initial_elimination_offset): Remove return address pointer
819                 elimination.
820                 (mips_reg_names): Remove $ra.
821                 (mips_regno_to_class): Ditto.
822                 * config/mips/mips.h (POINTER_SIZE): Define based on TARGET_LONG64
823                 and TARGET_64BIT.
824                 (POINTER_BOUNDARY): Remove.
825                 (POINTERS_EXTEND_UNSIGNED): Define to 0.
826                 (PROMOTE_MODE): Promote to Pmode.
827                 (SHORT_IMMEDIATES_SIGN_EXTEND): Define.
828                 (Pmode): Define to TARGET_64BIT.
829                 (FUNCTION_MODE): Define as Pmode.
830                 (mips_args): Remove deleted functions.
831                 (SIZE_TYPE): Depend on POINTER_SIZE.
832                 (PTRDIFF_TYPE): Ditto.
833                 (FIXED_REGISTERS): Fix extra registers.
834                 (CALL_USED_REGISTERS): Ditto.
835                 (CALL_REALLY_USED_REGISTERS): Ditto.
836                 (RAP_REG_NUM): Remove.
837                 (RETURN_ADDRESS_POINTER_REGNUM): Ditto.
838                 (RETURN_ADDR_RTX): Define to mips_return_addr.
839                 (ELIMINABLE_REGS): Remove RETURN_ADDRESS_POINTER_REGNUM.
840                 (CAN_ELIMINATE): Ditto.
841                 * config/mips/mips.md: For DImode patterns, take into account
842                 deletions above. Split mulsidi patterns into sign_extend and
843                 zero_extend.
844
845         2002-10-16  Richard Sandiford  <rsandifo@redhat.com>
846                     Michael Meissner  <meissner@redhat.com>
847
848                 * config/mips/mips.h (ISA_HAS_MACC): True for normal-mode vr4120 code.
849                 * config/mips/mips.md (mulsi3_mult3): Add a define_peephole2 to
850                 mop up unnecessarly moves through LO.
851                 (*mul_acc_si): Remove vr5400 and vr5500 handling from here.
852                 (*macc): New pattern for ISA_HAS_MACC.  Add define_peephole2s to
853                 change mtlo/macc sequences into mul/add sequences when a three-
854                 address mul is available.
855                 (*macc2): New pattern.  Add a define_peephole2 to generate it.
856                 (*mul_sub_si): Fix contraint for operand 5.
857                 (*muls): Use in 32-bit code as well.
858                 (*msac): Likewise.  Use msub instead of msac in vr5500 code
859                 if the destination is LO.  Remove duplicate define_split.
860                 (*muls_di): Use only in 32-bit code.  Adjust rtl accordingly.
861                 (*msac_di): Likewise.  Fix formatting.
862                 (smulsi3_highpart, umulsi3_highpart): Use mulhi in 32-bit code too.
863                 (*xmulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.
864                 (*xmulsi3_highpart_mulhi): Use even if !TARGET_64BIT.
865                 (*xmulsi3_neg_highpart_mulhi): Likewise.
866                 (*mul_acc_64bit_di): Remove.
867                 (*mul_acc_di): Use only in 32-bit code.  Handle ISA_HAS_MACC as well.
868
869         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
870
871                 * config/mips/vr.h (DRIVER_SELF_SPECS): Define.
872                 * config/mips/t-vr (MULTILIB_OPTIONS): Remove mlong32.
873                 (MULTILIB_DIRNAMES): Remove long32.
874                 (MULTILIB_EXCEPTIONS): Don't build -mabi=32 -mgp32 multilibs.
875                 (MULTILIB_REDUNDANT_DIRS): Remove.
876
877         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
878
879                 * doc/tm.texi (DRIVER_SELF_SPECS): Document.
880                 * gcc.c (driver_self_specs): New variable.
881                 (do_self_spec): New function.
882                 (main): Use it to process driver_self_specs.
883
884         2002-10-09  Richard Sandiford  <rsandifo@redhat.com>
885
886                 * config/mips/mips.md (one_cmpldi2): Use only if TARGET_64BIT.
887                 Remove DImode define_split for !TARGET_64BIT.
888                 (anddi3): Remove !TARGET_64BIT support from here as well.
889                 Change operand 2's predicate to se_uns_arith_operand.
890                 Add constant alternatives to define_insn.
891                 (iordi3, xordi3, *nordi3): Likewise.
892                 (anddi3_internal1, xordi3_immed): Remove.
893
894         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
895
896                 * config/mips/mips.h (PROCESSOR_R4121): Rename to PROCESSOR_R4120.
897                 (TARGET_MIPS4121): Rename to TARGET_MIPS4120.
898                 * config/mips/mips.c (mips_cpu_info): Rename vr4121 to vr4120.
899                 * config/mips/mips.md: Apply same renaming here.
900
901         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
902
903                 * config/mips/mips.c (PROCESSOR_R4320, TARGET_MIPS4320): Remove.
904                 (GENERATE_MULT3_SI): Remove use of TARGET_MIPS4320.
905                 * config/mips/mips.c (mips_cpu_info): Remove vr4320 entry.
906                 * config/mips/mips.md (define_attr cpu): Remove r4320.
907                 Remove vr4320 scheduler and uses of TARGET_MIPS4320.
908
909         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
910
911                 * config/mips/mips.c (mips16_strings): New variable.
912                 (mips_output_function_epilogue): Clear the SYMBOL_REF_FLAG of every
913                 symbol in mips16_strings.  Free the list.
914                 (mips_encode_section_info): Keep track of local strings.
915
916         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
917
918                 * config/mips/mips.md (bunge, bltgt, bungt): New define_expands.
919                 (sordered_df, sordered_sf): Remove.
920                 * config/mips/mips.c (get_float_compare_codes): New fn.
921                 (gen_int_relational, gen_conditional_move): Use it.
922
923         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
924
925                 * config/mips/mips-protos.h (mips_emit_fcc_reload): Declare.
926                 * config/mips/mips.h (PREDICATE_CODES): Add fcc_register_operand.
927                 * config/mips/mips.c (fcc_register_operand): New function.
928                 (mips_emit_fcc_reload): New function, extracted from reload_incc.
929                 (override_options): Allow TFmode values in float registers
930                 if ISA_HAS_8CC.
931                 * cnfig/mips/mips.md (reload_incc): Change destination prediate
932                 to fcc_register_operand.  Remove misleading source constraint.
933                 Use mips_emit_fcc_reload.
934                 (reload_outcc): Duplicate reload_incc.
935
936
937 2003-04-30  Diego Novillo  <dnovillo@redhat.com>
938
939         * builtins.def (BUILTIN_CONSTANT_P): Mark as constant.
940
941 2003-04-30  Geoffrey Keating  <geoffk@apple.com>
942
943         * tree-inline.c (inlinable_function_p): Back out last change, it's
944         unnecessary.
945
946 2003-04-30  Steven Bosscher  <steven@gcc.gnu.org>
947
948         * ggc-page.c (TREE_EXP_SIZE): Define.
949         (extra_order_size_table): New entry for expr trees with
950         two operands.
951
952 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
953
954         * c-common.c (if_elt): Use location_t in lieu of "file, line" pair.
955         (c_expand_start_cond): Adjust.
956         (c_expand_end_cond): Don't use warning_with_file_and_file.
957         (shadow_warning): Likewise.
958
959 2003-04-30  Nathan Sidwell  <nathan@codesourcery.com>
960
961         * tree.h (DECL_POINTER_DEPTH): Remove.
962         (struct tree_decl): Remove pointer_depth.
963
964 2003-04-30  Janis Johnson  <janis187@us.ibm.com>
965
966         * config/rs6000/linux64.h (ASM_OUTPUT_LABELREF): Remove.
967         * config/rs6000/rs6000.c (rs6000_elf_strip_name_encoding): Remove.
968         (rs6000_xcoff_encode_section_info): Remove.
969         (current_file_function_operand): Use SYMBOL_REF_FLAGS; fix latent bug.
970         (rs6000_output_mi_thunk): Remove dead code; use SYMBOL_REF_FLAGS.
971         (small_data_operand, rs6000_emit_move, rs6000_elf_in_small_data_p,):
972         Use SYMBOL_REF_FLAGS.
973         (rs6000_elf_encode_section_info): Call default_encode_section_info for
974         generic flags, use SYMBOL_REF_FLAGS; code cleanups.
975         * sysv4.h (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
976         (SYMBOL_FLAG_SMALL_V4, SYMBOL_REF_SMALL_V4_P): New.
977         * xcoff.h (TARGET_ENCODE_SECTION_INFO): Remove.
978         (ASM_DECLARE_FUNCTION_NAME): Remove setting of SYMBOL_REF_FLAG.
979
980 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
981
982         * diagnostic.c (output_pointer): Use HOST_PTR_PRINTF.
983
984 2003-04-30  Andreas Schwab  <schwab@suse.de>
985
986         * doc/extend.texi (Other Builtins): Enclose multiple word data
987         type in braces for @deftypefn.
988
989 2003-04-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
990
991         * stor-layout.c (mode_for_size_tree): Use BLKmode if SIZE overflows.
992
993         * doc/install.texi (--enable-threads): Document "gnat" option.
994
995 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
996
997         * diagnostic.h (output_formatted_scalar): Tweak.
998         * diagnostic.c (output_long_decimal): Likewise.
999         (output_unsigned_decimal): Likewise.
1000         (output_long_unsigned_decimal): Likewise.
1001         (output_octal): Likewise.
1002         (output_long_octal): Likewise.
1003         (output_hexadecimal): Likewise.
1004         (output_long_hexadecimal): Likewise.
1005         (output_pointer): New function.
1006         (output_format): Use it.  Recognize "%p" format specifier.
1007
1008 2003-04-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1009
1010         * function.c (purge_addressof_1): Postpone insn in fewer cases.
1011
1012 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
1013
1014         * config/rs6000/host-darwin.c (segv_handler): When -dH is used,
1015         call abort() after running out of stack space.
1016
1017         * c-typeck.c (function_types_compatible_p): Ignore incompatible
1018         'volatile' qualifiers on a function's return type in GNU mode.
1019
1020 2003-04-29  Aldy Hernandez  <aldyh@redhat.com>
1021
1022         * expr.c (emit_group_load): Dump parallels of simd types to
1023         memory.
1024
1025 2003-04-29  Vladimir Makarov  <vmakarov@redhat.com>
1026
1027         * genautomata.c (add_vect): Check undefined value for range type
1028         too.
1029
1030 2003-04-29  Phil Edwards  <pme@gcc.gnu.org>
1031
1032         * configure.in:  More general test for cmp --ignore-initial.
1033         * configure:  Regenerate.
1034
1035 2003-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1036
1037         * stor-layout.c (mode_for_size_tree): Use tree_low_cst.
1038         (layout_decl, place_field): Likewise.
1039         Also make minor type and whitespace changes.
1040
1041         * tree.c (save_expr): Don't fold a COMPONENT_REF.
1042
1043 2003-04-29  Olivier Hainque <hainque@act-europe.fr>
1044
1045         * calls.c (expand_call): When modes of target and valreg match, force
1046         sibcall failure when target is a MEM.
1047
1048 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
1049
1050         * tree-inline.c (inlinable_function_p): Don't support inlining
1051         functions using varargs.
1052
1053         * doc/invoke.texi (Overall Options): Mention -x objective-c-header.
1054
1055         * dwarf2out.c (output_call_frame_info): No need to output EH
1056         unwind information if all_throwers_are_sibcalls.
1057
1058         * c-semantics.c (expand_unreachable_stmt): Return a tree.
1059         (expand_stmt): Update for change to expand_unreachable_stmt.
1060         (expand_unreachable_if_stmt): Likewise.
1061
1062         * Makefile.in (quickstrap): Pass BOOT_CFLAGS to submake.
1063
1064 2003-04-29  Jason Merrill  <jason@redhat.com>
1065
1066         PR middle-end/10336
1067         * jump.c (never_reached_warning): Really stop looking if we reach
1068         the beginning of the function.
1069
1070 2003-04-29  Bob Wilson  <bob.wilson@acm.org>
1071
1072         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE, USER_LABEL_PREFIX):
1073         Remove redundant macros.
1074         (WCHAR_TYPE, WCHAR_TYPE_SIZE): Change to "short unsigned int".
1075         (LOCAL_LABEL_PREFIX): Define unconditionally.
1076         (NO_DOT_IN_LABEL): Clarify comment.
1077         * config/xtensa/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Add explicit
1078         definition to "long int".
1079
1080 2003-04-29  Alexander Kabaev  <kan@FreeBSD.ORG>
1081
1082         bootstrap/10452
1083         * gengtype-yacc.y: Improve portability.
1084
1085 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
1086
1087         * config.gcc: Install obsolete target list for GCC 3.3.
1088         * doc/install.texi: Mention in specific-target instructions
1089         that certain configurations are deprecated.
1090
1091 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
1092
1093         * tree.h: Delete no-checking definition of CST_OR_CONSTRUCTOR_CHECK.
1094
1095 2003-04-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1096
1097         * c-pragma.c (maybe_apply_renaming_pragma): Fix typo.
1098         * gcc.c (display_help): Likewise.
1099         * toplev.c (f_options): Likewise.
1100         * params.def (PARAM_MAX_INLINE_SCOPE): Likewise.
1101         * config/c4x/c4x.h (TARGET_SWITCHES): Likewise.
1102         * config/mcore/mcore.h (TARGET_SWITCHES): Likewise.
1103         * config/s390/s390.h (TARGET_SWITCHES): Likewise.
1104         * config/v850/v850.h (TARGET_SWITCHES): Likewise.
1105
1106 2003-04-29  J"orn Rennecke <joern.rennecke@superh.com>
1107
1108         * varasm.c (default_assemble_visibility): Use assemble_name.
1109
1110 2003-04-29  David O'Brien  <obrien@FreeBSD.org>
1111
1112         * config/i386/freebsd64.h (LINK_SPEC): Mirror FreeBSD linker.
1113         * config/rs6000/freebsd.h (LINK_SHLIB_SPEC): New macro.
1114         (SIZE_TYPE): New macro.
1115         * config/i386/freebsd-aout.h (NO_PROFILE_COUNTERS): New macro.
1116         (SET_ASM_OP): New macro.
1117         (HANDLE_SYSV_PRAGMA): New macro.
1118         (ASM_WEAKEN_LABEL): New macro.
1119
1120 2003-04-28  Mark Mitchell  <mark@codesourcery.com>
1121
1122         PR c++/10180
1123         * tree-inline.c (expand_call_inline): Call push_srcloc when
1124         encountering EXPR_WITH_FILE_LOCATION.  Honor warn_inline.
1125
1126 2003-04-28  Mike Stump  <mrs@apple.com>
1127
1128         * gdbinit.in: Update to reflect new identifier structure.
1129
1130 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
1131
1132         * tree.h (TREE_CST_RTL, CST_OR_CONSTRUCTOR_CHECK): Delete.
1133         (struct tree_int_cst, struct tree_real_cst, struct tree_string,
1134         struct tree_complex, struct tree_vector): Remove RTL field.
1135         (CONSTRUCTOR_ELTS): Use elt 0.
1136         * tree.def (CONSTRUCTOR): Delete first of its two operands.
1137         * varasm.c (output_constant_def): Remove early exit if
1138         TREE_CST_RTL is set.  Don't set TREE_CST_RTL.
1139         (decode_addr_const): Don't mention TREE_CST_RTL in comment.
1140         * target.h (select_section): Don't mention TREE_CST_RTL in comment.
1141         * doc/tm.texi (encode_section_info): Don't talk about TREE_CST_RTL.
1142
1143 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
1144
1145         * c-decl.c (finish_decl): When prototype with asmspec is found
1146         for built-in, adjust built_in_decls as well as expr.c decls.
1147         * expr.c (init_block_move_fn, init_block_clear_fn): New functions.
1148         (emit_block_move_libcall_fn, clear_storage_libcall_fn): Use it.
1149         * expr.c (init_block_move_fn, init_block_clear_fn): New prototypes.
1150
1151 2003-04-28  Richard Henderson  <rth@redhat.com>
1152
1153         * config/sparc/sparc.c (print_operand): Add 's' to sign-extend.
1154         * config/sparc/sparc.md (const_mulsidi3_v8plus): Fix mode of
1155         integral constant mult operand.
1156         (const_mulsidi3_sp32, const_mulsidi3_sp64): Likewise.
1157         (const_smulsi3_highpart_v8plus): Likewise.
1158         (const_smulsi3_highpart): Likewise.
1159         (const_umulsidi3_sp32): Likewise; sign-extend it in the output.
1160         (const_umulsidi3_sp64, const_umulsidi3_v8plus): Likewise.
1161         (const_umulsi3_highpart_v8plus): Likewise.
1162         (const_umulsi3_highpart): Likewise.
1163
1164 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
1165
1166         * config/i386/x86-64.h (NO_PROFILE_COUNTERS, HAVE_AS_DWARF2_DEBUG_LINE):
1167         Define as 1.
1168
1169 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
1170
1171         * config/i386/i386.h (builtin_define): Add __amd64 and __amd64__.
1172
1173 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
1174
1175         * builtins.def (BUILT_IN_BCOPY, BUILT_IN_MEMMOVE): New.
1176         * builtin-types.def (BT_FN_VOID_CONST_PTR_PTR_SIZE): New.
1177         * builtins.c (expand_builtin_memmove, expand_builtin_bcopy): New
1178         functions.
1179         (expand_builtin): Handle BUILT_IN_BCOPY and BUILT_IN_MEMMOVE.
1180
1181 2003-04-28  Nick Clifton  <nickc@redhat.com>
1182
1183         * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Remove definition.
1184
1185 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
1186
1187         * expr.c (expand_expr <COMPLEX_CST, STRING_CST>): Always call
1188         output_constant_def, use its result instead of TREE_CST_RTL (exp).
1189         Can assume it has the form (mem (symbol_ref ".LCxxx")).
1190         (expand_expr <COMPONENT_REF>): Can always just extract the
1191         relevant field of a CONSTRUCTOR.
1192         (expand_expr <ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF,
1193         ARRAY_RANGE_REF>): Make control flow explicit.
1194         * varasm.c (output_constant_def): Can look at TREE_CST_RTL of
1195         an INTEGER_CST.
1196
1197 2003-04-27  Kazu Hirata  <kazu@cs.umass.edu>
1198
1199         * reload1.c (reg_set_luid): Fix a comment typo.
1200
1201 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
1202
1203         * varasm.c (const_str_htab_hash, const_str_htab_eq, STRHASH,
1204         struct deferred_string, const_str_htab): Kill.
1205         (n_deferred_strings): New static variable.
1206         (build_constant_desc): Set SYMBOL_REF_DECL of the new
1207         symbol_ref to point to the constant.
1208         (output_constant_def): When a deferred string is forced out,
1209         just clear STRING_POOL_ADDRESS_P and decrement n_deferred_strings.
1210         (mark_constant): Likewise.
1211         (maybe_output_constant_def_contents): When deferring a string
1212         constant, just set STRING_POOL_ADDRESS_P and increment
1213         n_deferred_strings.
1214         (mark_constant_pool): Check n_deferred_strings, not the size
1215         of const_str_htab.
1216         (init_varasm_once): No need to create const_str_htab.
1217
1218         * rtl.def, rtl.h, doc/rtl.texi: Document possibility that
1219         SYMBOL_REF_DECL points to a constant.
1220
1221 2003-04-26  Zack Weinberg  <zack@codesourcery.com>
1222
1223         * varasm.c (output_constant_def): Split out two new static
1224         functions, build_constant_desc and maybe_output_constant_def_contents.
1225         Restructure for comprehensibility.  Don't call
1226         output_addressed_constants.  Treat defstr being non-NULL for
1227         STRING_POOL_ADDRESS_P constants as an invariant.
1228         (struct deferred_string): Remove labelno field.
1229         (output_constant_def_contents): Kill labelno argument. Call
1230         output_addressed_constants here.  Use ASM_OUTPUT_LABEL, not
1231         asm_out.internal_label.
1232         (mark_constant): Update call to output_constant_def_contents.
1233         Treat defstr being non-NULL for STRING_POOL_ADDRESS_P
1234         constants as an invariant.
1235
1236 2003-04-26  Richard Henderson  <rth@redhat.com>
1237
1238         * config/i386/i386.c (output_pic_addr_const): Use SYMBOL_REF_LOCAL_P.
1239         (ix86_expand_call, ix86_rtx_consts): Likewise.
1240
1241 2003-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1242
1243         * doc/md.texi (cmpstr): Document additional restrictions.
1244
1245 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
1246
1247         * flags.h (time_report): Remove.
1248         * timevar.c (timevar_enable): New.
1249         (TIMEVAR_ENABLE): Remove, use timevar_enable.
1250         (timevar_init): Rename from init_timevar.
1251         * timevar.h (timevar_init): Rename from init_timevar.
1252         * toplev.c (time_report): Make static.
1253         (do_compile): Conditionally call init_timevar first.
1254         (preprocess_options): Move some code to do_compile.
1255
1256 2003-04-26  Stephane Carrez  <stcarrez@nerim.fr>
1257
1258         * doc/install.texi (Binaries): Mention binaries for HC11/HC12.
1259
1260 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
1261
1262         * _cpp_lex_direct: Remove pointless code.
1263
1264 2003-04-26 Stephane Carrez <stcarrez@nerim.fr>
1265
1266         * doc/extend.texi (Function Attributes): Document "near" and "far"
1267         for 68HC11 and 68HC12.
1268
1269 2003-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1270
1271         * expr.c (store_field): When making temporary for store, don't
1272         make it TYPE_QUAL_CONST.
1273
1274 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
1275
1276         * toplev.c (read_integral_parameter):  Use "argument" in error
1277         message to distinguish it from actual invalid options.
1278
1279 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
1280
1281         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Back out previous
1282         addition of __PIC__ and __pic__ macros.
1283         * config/xtensa/xtensa.h: Clean up indentation.
1284
1285 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
1286
1287         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of
1288         _GNU_SOURCE.  Add definitions of __PIC__ and __pic__.
1289         (SUBTARGET_CPP_SPEC): Define.
1290         (LIB_SPEC): Delete.
1291         * config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete.
1292         * config/xtensa/xtensa.c (xtensa_declare_object): Delete.
1293         * config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS):
1294         Define.
1295         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
1296         (ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define.
1297
1298 2003-04-25  H.J. Lu <hjl@gnu.org>
1299
1300         * config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode
1301         for return mode.
1302         (ia64_expand_builtin): Set rmode to SImode for
1303         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI,
1304         IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI and
1305         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI. Set remode to DImode
1306         for IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI.
1307
1308 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
1309
1310         * configure.in (make_compare_target):  Test for GNU cmp and set this
1311         variable appropriately.
1312         * Makefile.in (compare, compare3, compare4, compare-lean, compare3-lean,
1313         compare4-lean): Rename actual targets to slowcompare*.  New compare*
1314         targets depend on names based on make_compare_target.
1315         * configure:  Regenerated.
1316
1317 2003-04-25  Richard Henderson  <rth@redhat.com>
1318
1319         * config/ia64/ia64.c (ia64_compute_frame_size): Allow inline asm
1320         to clobber ar.pfs and ar.unat.
1321         (ia64_expand_prologue): Force alloc instruction if ar.pfs saved;
1322         fix test for spilling ar.pfs to the stack.
1323
1324 2003-04-25  Richard Henderson  <rth@redhat.com>
1325
1326         PR opt/10315
1327         * config/rs6000/rs6000.c (rs6000_emit_move): Only elide proper
1328         checks during reload; use validize_mem instead of adjust_address.
1329
1330 2003-04-26  Ben Elliston  <bje@wasabisystems.com>
1331
1332         * config/arm/arm.c (arm_adjust_cost): Correct logic that tests the
1333         return values from recog_memoized().
1334
1335 2003-04-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1336
1337         PR opt/8705
1338         * gcse.c (try_replace_reg): On a successful substitution of a constant
1339         into a single set, try to simplify the source of the set.
1340         * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a
1341         constant source.
1342
1343 2003-04-24  Neil Booth  <neil@daikokuya.co.uk>
1344
1345         * cpplex.c (cpp_token_len): Tighten up.
1346         (cpp_token_as_text): Need extra byte now.
1347         * cpplib.c (glue_header_name): Need extra 2 bytes.
1348         * cppmacro.c (cpp_macro_definition): Need extra byte.
1349
1350 2003-04-24  Alexander Kabaev <kan@FreeBSD.ORG>
1351
1352         * config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using
1353         const_umulsidi3_sp32 and const_mulsidi3_sp32 on 64bit targets
1354         where they might be not present. Use their _sp64 equivalent
1355         instead.
1356
1357 Thu Apr 24 20:42:12 CEST 2003  Jan Hubicka  <jh@suse.cz>
1358
1359         * i386.md (cvtsi2sdq): Fix typo in previous patch.
1360
1361 2003-04-24  Krister Walfridsson  <cato@df.lth.se>
1362
1363         * configure.in: Check whether mbstowcs works.
1364         * configure, config.in: Regenerate.
1365         * intl.c: Use HAVE_WORKING_MBSTOWCS.
1366
1367 2003-04-24  H.J. Lu <hjl@gnu.org>
1368
1369         * config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di
1370         for __sync_bool_compare_and_swap_di for int return type.
1371
1372         * config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di):
1373         Change return type to int.
1374         (__sync_bool_compare_and_swap): Likewise.
1375
1376 Thu Apr 24 16:55:26 CEST 2003  Jan Hubicka  <jh@suse.cz>
1377
1378         * cfgbuild.c (make_edges):  Do not use next_nonnote_insn when
1379         looking for fallthru edge.
1380
1381         * athlon.md (athlon-agu, athlon-store, athlon-fany, athlon-faddmul):
1382         Fix.
1383         (athlon-load2, athlon-store2, athlon-fpsched, athlon-fpload,
1384         athlon-fvector): New.
1385         (athlon_*): Revisit to match new optimization guide.
1386         * i386.c (ix86_adjust_cost):  Fix memory operand costs on Athlon/k8
1387         * i386.md (cvt??2?? patterns): Fix modes.
1388         (fistp patterns): Set modes.
1389
1390         Accidentaly commited with my earlier reload patch:
1391         PR c/10308
1392         * reload.c (find_reloads_address_1): Reload plus at the place of
1393         index register.
1394
1395 2003-04-24  Nathan Sidwell  <nathan@codesourcery.com>
1396
1397         New GCOV_TAG_FUNCTION layout
1398         * coverage.c (struct function_list): Replace name with ident.
1399         (struct counts_entry): Likewise.
1400         (fn_ident): New.
1401         (htab_counts_entry_hash, htab_counts_entry_eq,
1402         htab_counts_entry_del): Adjust.
1403         (reads_count_file, get_coverage_counts,
1404         coverage_begin_output, coverage_end_function): Adjust.
1405         (build_fn_info_type, build_fn_info_value): Likewise.
1406         * gcov-dump.c (tag_function): Adjust.
1407         * gcov-io.c (gcov_write_string, gcov_read_string): Not in LIBGCOV.
1408         * gcov-io.h (gcov_write_string, gcov_read_string): Not in LIBGCOV.
1409         * gcov.c (struct function_info): Add ident.
1410         (read_graph_file, read_count_file): Adjust.
1411         * libgcov.c (gcov_exit): Adjust.
1412
1413 2003-04-23  Richard Henderson  <rth@redhat.com>
1414
1415         PR opt/8300
1416         * toplev.c (rest_of_compilation): Delay no_new_pseudos until
1417         after initialize_uninitialized_subregs; update reg info assuming
1418         new pseudos were created.
1419
1420 2003-04-23  Neil Booth  <neil@daikokuya.co.uk>
1421
1422         * Makefile.in (c-lex.o, LIBCPP_OBJS, cpplex.o): Update.
1423         * c-lex.c (MULTIBYTE_CHARS): Remove conditionals.
1424         (lex_string): Take cpp_string with full spelling.
1425         (cb_ident): Update.
1426         (c_lex): Update diagnostics.
1427         * cpplex.c (SPELL_NUMBER, SPELL_STRING): Combine into SPELL_LITERAL.
1428         (create_literal): New.
1429         (lex_string): Unterminated literals have type CPP_OTHER.
1430         (_cpp_lex_direct): Update calls to lex_string.  Use create_literal
1431         for CPP_OTHER.
1432         (cpp_token_len, cpp_spell_token, cpp_output_token): Simplify.
1433         (_cpp_equiv_tokens, cpp_interpret_charconst): Update.
1434         * cpplib.c (parse_include, do_line, do_linemarker,
1435         destringize_and_run): Update for token storing full spelling.
1436         * cpplib.h: Update token spelling types.
1437         * cppmacro.c (stringify_arg, check_trad_stringification):
1438         Update for token storing full spelling.
1439
1440 2003-04-23  Ulrich Weigand  <uweigand@de.ibm.com>
1441
1442         * config/s390/s390.c (s390_expand_cmpstr): Disable CLC loop.
1443
1444 2003-04-23  Richard Earnshaw  <rearnsha@arm.com>
1445
1446         * arm.h (TARGET_OPTIONS): Add value field.
1447
1448 2003-04-23  Mark Mitchell  <mark@codesourcery.com>
1449
1450         * doc/extend.texi: Remove duplicate 2003 copyright date.
1451
1452 2003-04-23  Nathan Sidwell  <nathan@codesourcery.com>
1453
1454         * Makefile.in (LIBGCC_DEPS): Add gcov headers.
1455         (libgcov.a): Depends on LIBGCC_DEPS.
1456         * basic-block.h (profile_info): Moved here from coverage.h. Made
1457         a pointer.
1458         * coverage.c (struct function_list): Fixed array of counter types.
1459         (struct counts_entry): Keyed by counter type, contains summary.
1460         (profile_info): Moved to profile.c.
1461         (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, fn_n_ctrs): New global
1462         vars.
1463         (profiler_label): Remove.
1464         (ctr_labels): New.
1465         (set_purpose, label_for_tag, build_counter_section_fields,
1466         build_counter_section_value, build_counter_section_data_fields,
1467         build_counter_section_data_values, build_function_info_fields,
1468         build_function_info_value, gcov_info_fields, gcov_info_value): Remove.
1469         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
1470         build_ctr_info_value, build_gcov_info): New.
1471         (htab_counts_entry_hash, htab_counts_entry_eq): Adjust.
1472         (reads_counts_file): Adjust.
1473         (get_coverage_counts): Takes counter number. Add summary
1474         parameter. Adjust.
1475         (coverage_counter_ref): Tkaes counter number. Adjust. Lazily
1476         create counter array labels.
1477         (coverage_end_function): Adjust.
1478         (create_coverage): Adjust.
1479         (find_counters_section): Remove.
1480         * coverage.h (MAX_COUNTER_SECTIONS): Remove.
1481         (struct section_info, struct profile_info): Remove.
1482         (profile_info): Moved to basic-block.h.
1483         (coverage_counter_ref): Takes a counter number.
1484         (get_coverage_counts): Takes a counter number. Added summary
1485         parameter.
1486         (find_counters_section): Remove.
1487         * gcov-dump.c (tag_arc_counts): Rename to ...
1488         (tag_counters): ... here. Adjust.
1489         (tag_table): Move tag_counters to 3rd entry. Remove
1490         PROGRAM_PLACEHOLDER and PROGRAM_INCORRECT entries.
1491         (dump_file): Check for counter tag values here.
1492         (tag_summary): Adjust.
1493         * gcov-io.c (gcov_write_summary, gcov_read_summary): Adjust.
1494         * gcov-io.h (GCOV_LOCKED): New.
1495         (GCOV_TAG_ARC_COUNTS): Rename to ...
1496         (GCOV_TAG_COUNTS_BASE): ... here.
1497         (GCOV_TAG_PLACEHOLDER_SUMMARY, GCOV_TAG_INCORRECT_SUMMARY):
1498         Remove.
1499         (GCOV_COUNTER_ARCS, GCOV_COUNTERS, GCOV_NAMES): New.
1500         (GCOV_TAG_FOR_COUNTER, GCOV_COUNTER_FOR_TAG,
1501         GCOV_TAG_IS_COUNTER): New.
1502         (struct gcov_ctr_summary): New.
1503         (struct gcov_summary): Adjust.
1504         (struct gcov_counter_section): Remove.
1505         struct gcov_counter_section_data): Remove.
1506         (struct gcov_function_info): Rename to ...
1507         (struct gcov_fn_info): ... here. Adjust.
1508         (struct gcov_ctr_info): New.
1509         (struct gcov_info): Adjust.
1510         * gcov.c (read_count_file): Adjust.
1511         (output_lines): Adjust.
1512         * libgcov.c (gcov_exit): Adjust.
1513         (__gcov_flush): Adjust.
1514         * mklibgcc.in (libgcc2_c_dep): Add gcov headers.
1515         * predict.c (maybe_hot_bb_p, probably_cold_bb_p,
1516         probably_never_executed_bb_p, compute_frequency_function): Adjust
1517         profile_info use.
1518         * profile.c (struct counts_entry): Remove.
1519         (profile_info): Define here.
1520         (get_exec_counts): Adjust get_coverage_counts call.
1521         (compute_branch_probablilities): Remove find_counters_section
1522         call.
1523         (gen_edge_profiler): Adjust coverage_counter_ref call.
1524         * tracer.c (tail_duplicate): Adjust profile_info use.
1525
1526 2003-04-23  Roger Sayle  <roger@eyesopen.com>
1527
1528         PR optimization/10339
1529         * builtins.c (expand_builtin_strcmp): Try to emit cmpstrsi insn
1530         directly instead of unsafely transforming call into a memcmp.
1531         (expand_builtin_strncmp): Likewise.
1532
1533 2003-04-22  Roger Sayle  <roger@eyesopen.com>
1534
1535         * alias.c (mark_constant_function):  Check for constancy and
1536         purity even of void functions.  Update both the function decl
1537         and the cgraph RTL info with the results.
1538
1539 2003-04-22  Roger Sayle  <roger@eyesopen.com>
1540
1541         * real.c (do_add): Change to return a bool indicating that the
1542         result of the operation may be inexact due to loss of precision.
1543         (do_multiply): Likewise.
1544         (do_divide): Likewise.
1545
1546 2003-04-22  Geoffrey Keating  <geoffk@apple.com>
1547             Loren James Rittle  <ljrittle@acm.org>
1548
1549         * dwarf2out.c (fde_table_allocated): Mark with GTY.
1550         (decl_die_table_allocated): Likewise.
1551         (abbrev_die_table_allocated): Likewise.
1552         (line_info_table_allocated): Likewise.
1553         (separate_line_info_table_allocated): Likewise.
1554         (pubname_table_allocated): Likewise.
1555         (arange_table_allocated): Likewise.
1556         (ranges_table_allocated): Likewise.
1557         (decl_die_table_in_use): Unconditionalize; mark with GTY.
1558         (abbrev_die_table_in_use): Likewise.
1559         (line_info_table_in_use): Likewise.
1560         (separate_line_info_table_in_use): Likewise.
1561         (pubname_table_in_use): Likewise.
1562         (arange_table_in_use): Likewise.
1563         (ranges_table_in_use): Likewise.
1564         (have_location_lists): Likewise.
1565         (emitcount): New GTY-marked static, moved...
1566         (maybe_emit_file): ...from here.
1567         (label_num): New GTY-marked static, moved...
1568         (gen_internal_sym): ...from here.
1569
1570 2003-04-22  Richard Henderson  <rth@redhat.com>
1571
1572         PR 8866
1573         * rtl.h (MEM_NOTRAP_P): New.
1574         (MEM_COPY_ATTRIBUTES): Copy it.
1575         * rtlanal.c (may_trap_p): Check it.
1576         * expr.c (do_tablejump): Set it.
1577         * doc/rtl.texi (Flags): Document it.
1578
1579         * cfgrtl.c (try_redirect_by_replacing_jump): Revert last three changes.
1580
1581 2003-04-22  Olivier Hainque  <hainque@act-europe.fr>
1582
1583         * config/alpha/alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't
1584         set FRP on stack adjustment for outgoing args if frame_pointer_needed.
1585
1586 2003-04-22  Vincent Celier <celier@gnat.com>
1587
1588         * gthr-gnat.h, gthr-gnat.c: new sources for implementation of
1589         --enable-threads=gnat.
1590         * Makefile.in: Add gthr-gnat.c to LIB2ADDEH.
1591         * configure.in: Add gnat to the list of thread packages
1592         * configure: Rebuild.
1593         * config/t-linux: Add gthr-gnat.c to LIB2ADDEH and LIB2ADDEHDEP
1594
1595 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
1596
1597         * cpplex.c (_cpp_get_fresh_line): Pop the buffer if return_at_eof.
1598
1599 2003-04-22  Devang Patel  <dpatel@apple.com>
1600
1601         * cpptrad.c (_cpp_replacement_text_len): Add check for macro
1602         parameter count.
1603         (_cpp_copy_replacement_text): Same.
1604
1605 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
1606
1607         * c-lex.c (c_lex): Handle CPP_OTHER differently.
1608         * cppexp.c (_cpp_parse_expr): Similarly.
1609         * cpplex.c (SPELL_CHAR): Remove.
1610         (_cpp_lex_direct): Stray chars are saved as byte strings.
1611         (cpp_spell_token, cpp_output_token, _cpp_equiv_token): Don't
1612         handle SPELL_CHAR.
1613         (cpp_avoid_paste): Update handling of CPP_OTHER.
1614         * cpplib.h: Spell CPP_OTHER like a number.
1615         (struct cpp_token): Remove member c.
1616         * cppmacro.c (stringify_arg): Update handling of CPP_OTHER.
1617
1618 2003-04-22  David Turner <novalis@gnu.org>
1619
1620         * gbl-ctors.h: Add special license exception.
1621         * libgcc2.h: Likewise.
1622         * tsystem.h: Likewise.
1623         * gcov-io.h: Likewise.
1624
1625 2003-04-22  David Edelsohn  <edelsohn@gnu.org>
1626
1627         * fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT
1628         macro defaulting to original BRANCH_COST heuristic.
1629         * doc/tm.texi (RANGE_TEST_NON_SHORT_CIRCUIT): Document.
1630
1631         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Define.
1632
1633 2003-04-22  Aldy Hernandez  <aldyh@redhat.com>
1634
1635         * config/rs6000/t-spe: Merge in t-fprules into file.
1636
1637         * config.gcc: Add t-spe to powerpc-eabispe.
1638
1639 2003-04-22  Kean Johnston  <jkj@sco.com>
1640
1641         * tlink.c (recompile_files): Add missing '=' to putenv calls
1642
1643 2003-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1644
1645         * ginclude/stddef.h: Provide C++ safe offsetof.
1646
1647 2003-04-22  J"orn Rennecke <joern.rennecke@superh.com>
1648
1649         * function.c (purge_addressof_1): In (mem (addressof (reg))) case
1650         for reg notes, if there are no substitutions, just use a SUBREG.
1651
1652 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
1653
1654         * Makefile.in (calls.o): Depend on except.h.
1655         * calls.c: Include except.h.
1656         (emit_call_1): Call note_eh_region_may_contain_throw if
1657         appropriate.
1658         * except.c (eh_region): Add may_contain_throw.
1659         (expand_eh_region_end_cleanup): Do not include handler code when
1660         it cannot be reached.
1661         (note_eh_region_may_contain_throw): New function.
1662         * except.h (note_eh_region_may_contain_throw): New function.
1663
1664 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
1665
1666         * config/i386/winnt.c (i386_pe_mark_dllimport): Revert previous
1667         changes.
1668
1669 2003-04-21  Aldy Hernandez  <aldyh@redhat.com>
1670
1671         * config/rs6000/rs6000.c (rs6000_override_options): No SPE means
1672         64-bit long doubles.
1673
1674 2003-04-21  Olivier Hainque  <hainque@act-europe.fr>
1675
1676         * fold-const.c (fold, case PLUS_EXPR and case MULT_EXPR): Restore
1677         a number of conversions required for type consistency and previously
1678         stripped off by STRIP_NOPS.
1679
1680         * calls.c (expand_call): Prevent sibcall optimization for calls to
1681         nested subprograms.
1682
1683         * expmed.c (extract_bit_field): Reverse operands of && condition to
1684         prevent a potential division by zero in the previously first branch.
1685         * config/pa/pa.md (extv, extzv): FAIL if the bitfield length is zero.
1686
1687 2003-04-21  Joel Brobecker  <brobecker@gnat.com>
1688
1689         * dwarf2out.c (is_ada, is_ada_subrange_type): New functions.
1690         (subrange_type_die): Likewise.
1691         (modified_type_die): Emit a subrange_type DIE for Ada subrange types.
1692         (is_c_family, is_cxx, is_java, is_fortran): Return bool and clean up.
1693
1694 2003-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1695
1696         Break out coverage routines to new file.
1697         * Makefile.in (COVERAGE_H): New variable
1698         (C_OBJS): Add coverage.o
1699         (coverage.o): New target.
1700         (profile.o, loop-init.o, sched-ebb.o, predict.o, tracer.o): Adjust
1701         dependencies.
1702         (GTFILES): Adjust.
1703         (gt-coverage.h): New target.
1704         (gt-profile.h): Remove.
1705         * profile.h: Remove. Move to ...
1706         * coverage.h: ... here. New. #include gcov-io.h.
1707         * gcov-io.h: Move function definitions to ...
1708         * gcov-io.c: ... here. New.
1709         * profile.c: Move coverage routines to coverage.c.
1710         (instrument_edges, get_exec_counts, branch_prob, init_branch_prob,
1711         end_branch_prob): Adjust.
1712         * coverage.c: New. Coverage routines from profile.c
1713         (coverage_counter_ref, coverage_init, coverage_finish,
1714         coverage_end_function, coverage_begin_output,
1715         coverage_counter_ref, get_coverage_counts): Define.
1716         * gcov-dump.c, gcov.c: #include gcov-io.c.
1717         * libgcov.c: Likewise. Adjust.
1718         * loop-init.c: Don't #include profile.h
1719         * tracer.c, predict.c, sched-ebb.c: Adjust #includes.
1720         * rtl.h: Add coverage prototypes.
1721         * toplev.c (compile_file): Init coverage, not branch_prob.
1722         Always call coverage_finish.
1723         (rest_of_compilation): Call coverage_end_function.
1724
1725 2003-04-21  Matt Kraai  <kraai@alumni.cmu.edu>
1726
1727         * config/rs6000/rs6000.md (*movsf_softfloat): Add "h" <- "0" case.
1728
1729 2003-04-21  Neil Booth  <neil@daikokuya.co.uk>
1730
1731         * c-ppoutput.c (cb_include): Don't take a cpp_token.
1732         * cppfiles.c: Don't undef strcmp.
1733         (find_include_file): Don't take a cpp_token.  Check for empty
1734         file names.
1735         (_cpp_execute_include, _cpp_compare_file_date): Don't take a cpp_token.
1736         (cpp_push_include): Simplify.
1737         * cpphash.h (_cpp_execute_include, _cpp_compare_file_date): Update.
1738         * cpplib.c (glue_header_name): Return the file name, not a cpp_token.
1739         (parse_include): Similary.  Don't check for zero-length filenames.
1740         (do_include_common, do_pragma_dependency): Update accordingly.
1741         * cpplib.h (struct cpp_callbacks): Change prototype of include.
1742
1743 2003-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1744
1745         * doc/rtl.texi (RTX_UNCHANGING_P): Point to true_dependence for
1746         details of conflict handling.
1747
1748         * fold-const.c (extract_muldiv, case CONVERT_EXPR): Detect case
1749         when conversion overflows.
1750
1751         * stor-layout.c (layout_decl): Don't set DECL_SIZE_UNIT if already set.
1752
1753         * expr.c (store_constructor): Set RTX_UNCHANGING_P if readonly_field_p
1754         before clearing.
1755
1756 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
1757
1758         * config/i386/winnt.c (i386_pe_mark_dllimport): Make the new RTL
1759         have the same form as the old RTL.
1760
1761 2003-04-21  Andreas Jaeger  <aj@suse.de>
1762
1763         * cppcharset.c (_cpp_valid_ucn): Cast field precision to int.
1764
1765 2003-04-20  Chris Lattner  <sabre@nondot.org>
1766             Zack Weinberg  <zack@codesourcery.com>
1767
1768         * c-common.h, c-semantics.c: Rename genrtl_decl_cleanup to
1769         genrtl_cleanup_stmt.  Correct comment at head of
1770         genrtl_cleanup_stmt (no such thing as a DECL_CLEANUP).
1771
1772         * stmt.c (struct nesting): Kill n_function_calls.
1773         (expand_start_bindings): Don't set
1774         thisblock->data.block.n_function_calls.
1775         (expand_end_bindings): Compare function_call_count against 0.
1776         (expand_cleanups): Kill DONT_DO argument; all callers passed
1777         NULL_TREE. All callers updated to match.
1778
1779 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
1780
1781         * varasm.c (struct deferred_constant, defer_addressed_constants_flag)
1782         (defer_addressed_constants, output_deferred_addressed_constants): Kill.
1783         (output_constant_def): Remove code predicated on
1784         defer_addressed_constants_flag.
1785
1786         * output.h: Remove prototypes of deleted functions.
1787         * c-typeck.c (constructor_subconstants_deferred): Kill.
1788         (struct initializer_stack): Remove 'deferred' field.
1789         (start_init): Remove all references to the above.
1790         (finish_init): Likewise. Also remove never-executed call to
1791         output_deferred_addressed_constants.  Pull assignment to
1792         defstr out of if expression.
1793
1794 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
1795
1796         * cpphash.h (NOTE_ESC_NL, NOTE_ESC_SPACE_NL, NOTE_TRIGRAPH,
1797         NOTE_NEWLINE): Remove.
1798         * cpplex.c (_cpp_clean_line, _cpp_process_line_notes): Update
1799         to handle new form of line note type.
1800
1801 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
1802
1803         * target.h (encode_section_info): Add new argument carrying
1804         the RTL to be modified by the hook.
1805
1806         * varasm.c (make_decl_rtl, output_constant_def): Update calls
1807         to encode_section_info.
1808         (default_encode_section_info): Take and use RTL argument,
1809         don't use TREE_CST_RTL or DECL_RTL.
1810         * output.h: Update prototype of default_encode_section_info.
1811         * config/darwin.h (ASM_DECLARE_OBJECT_NAME)
1812         (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL):
1813         Update calls to encode_section_info.
1814
1815         * config/darwin.c, config/arm/arm.c, config/arm/pe.c
1816         * config/h8300/h8300.c, config/i386/winnt.c, config/m32r/m32r.c
1817         * config/m68hc11/m68hc11.c, config/m88k/m88k.c, config/mcore/mcore.c
1818         * config/mips/mips.c, config/mmix/mmix.c, config/pa/pa.c
1819         * config/romp/romp.c, config/rs6000/rs6000.c, config/s390/s390.c
1820         * config/v850/v850.c (TARGET_ENCODE_SECTION_INFO definitions):
1821         Take and use RTL argument, don't use TREE_CST_RTL or DECL_RTL,
1822         except for PE dllimport/dllexport.  Update calls to
1823         default_encode_section_info.
1824
1825         * config/darwin-protos.h, config/arm/arm-protos.h, config/i386-protos.h:
1826         Update prototypes.
1827
1828         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update.
1829
1830 2003-04-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1831
1832         PR/8705
1833         * pa.md (movccfp): New expander.
1834         (setccfp0, setccfp1): Rename to movccfp0 and movccfp1, respectively.
1835         Reverse fcmp conditions.
1836
1837 2003-04-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1838
1839         * config/avr/avr.md (*cmpqi_sign_extend): Handle negative values
1840         of operand 1 correctly.
1841
1842 2003-04-20  Nathan Sidwell  <nathan@codesourcery.com>
1843
1844         * cpplex.c (_cpp_lex_direct): Set BOL for CPP_EOF tokens.
1845         * gcov.c (output_lines): Don't be so fussy about going past EOF.
1846
1847 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
1848
1849         * Makefile.in (LIBCPP_OBJS): Add cppcharset.o.
1850         (cppcharset.o): New target.
1851         * c-lex.c (is_extended_char): Move to cppcharset.c.
1852         (utf8_extend_token): Delete.
1853         * cppcharset.c: New file.
1854         * cpphash.h (_cpp_valid_ucn): New.
1855         * cpplex.c (lex_identifier): Update prototype.
1856         (continues_identifier_p): Rename forms_identifier_p.  Handle UCN
1857         escapes.
1858         (maybe_read_ucs): Rename maybe_read_ucn.  Update to use code
1859         in cppcharset.c.
1860         (lex_number, lex_identifier, cpp_parse_escape): Update.
1861         (_cpp_lex_direct): Update to handle UCNs.
1862         (cpp_avoid_paste): Don't paste to form a UCN.
1863
1864 2003-04-19  Roger Sayle  <roger@eyesopen.com>
1865
1866         * builtins.c (expand_builtin):  Don't expand a pure or const
1867         built-in function if the result will be ignored and none of
1868         its arguments are volatile.
1869
1870 2003-04-19  Kean Johnston  <jkj@sco.com>
1871
1872         * unwind-dw2.c (_Unwind_GetCFA): cast return to avoid warning
1873         * config.gcc: make SCO use dbxelf.h and elfos.h; only use one
1874         target fragment now: t-sco5; dont compile crti.o.
1875         * config/i386/sco5.h: major overhaul to remove all COFF remnants
1876         and to use elfos.h for most definitions.
1877         (BSS_SECTION_ASM_OP): set correct segment attributes.
1878         (PREFERED_DEBUGGING_TYPE): set to DWARF-2.
1879         (DWARF2_UNWIND_INFO): Always set to 1.
1880         (MD_STARTFILE_PREFIX): Make /usr/gnu/lib the default.
1881         (MD_STARTFILE_PREFIX_1): Define.
1882         (MD_EXEC_PREFIX): Adjust to /usr/gnu/bin if using GAS.
1883         (DEFAULT_LINKER): Define if not specified to configure.
1884         (CTORS_SECTION_ASM_OP): Remove COFF crud.
1885         (DTORS_SECTION_ASM_OP): Remove COFF crud.
1886         (WINT_TYPE): Define.
1887         (SDB_DEBUGGING_INFO): Remove.
1888         (EXTRA_SECTIONS): Likewise.
1889         (EXTRA_SECTION_FUNCTIONS): Likewise.
1890         (CTOR_LIST_BEGIN): Likewise.
1891         (CTOR_LIST_END): Likewise.
1892         (INIT_SECTION_FUNCTION): Likewise.
1893         (FINI_SECTION_FUNCTION): Likewise.
1894         (SUBTARGET_FRAME_POINTER_REQUIRED): Likewise.
1895         (LOCAL_LABEL_PREFIX): Likewise.
1896         (NON_SAVING_SETJMP): Likewise.
1897         (RETURN_POPS_ARGS): Likewise.
1898         (ASM_OUTPUT_SKIP): Likewise.
1899         (TARGET_ASM_NAMED_SECTION): Likewise.
1900         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
1901         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
1902         (ASM_OUTPUT_IDENT): Likewise.
1903         (ASM_OUTPUT_CASE_LABEL): Likewise.
1904         (ASM_OUTPUT_ASCII): Likewise.
1905         (ASM_OUTPUT_LIMITED_STRING): Likewise.
1906         (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
1907         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
1908         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1909         (ASM_FINISH_DECLARE_OBJECT): Likewise.
1910         (ASM_DECLARE_OBJECT_NAME): Likewise.
1911         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
1912         (ASM_DECLARE_FUNCTION_NAME): Likewise.
1913         (ASM_DECLARE_RESULT): Likewise.
1914         (ASM_WEAKEN_LABEL): Likewise.
1915         (SUPPORTS_WEAK): Likewise.
1916         (APPLY_RESULT_SIZE): Likewise.
1917         (LPREFIX): Likewise.
1918         (ALIGN_ASM_OP): Likewise.
1919         (ASCII_DATA_ASM_OP): Likewise.
1920         (IDENT_ASM_OP): Likewise.
1921         (ASM_SHORT): Likewise.
1922         (ASM_LONG): Likewise.
1923         (TYPE_ASM_OP): Likewise.
1924         (SIZE_ASM_OP): Likewise.
1925         (STRING_ASM_OP): Likewise.
1926         (SKIP_ASM_OP): Likewise.
1927         (EH_FRAME_SECTION_ASM_OP): Likewise.
1928         (READONLY_DATA_SECTION_ASM_OP): Likewise.
1929         (INIT_SECTION_ASM_OP): Likewise.
1930         (FINI_SECTION_ASM_OP): Likewise.
1931         (TEXT_SECTION_ASM_OP): Likewise.
1932         (DATA_SECTION_ASM_OP): Likewise.
1933         (TYPE_OPERANT_FORMAT): Likewise.
1934         (ASM_SPEC): Remove COFF code.
1935         (STARTFILE_SPEC): Likewise. Always use crti.o; add -p and -pp support;
1936         cause -pg to emit an error; use pcrt1elf.o with -pp
1937         (ENDFILE_SPEC): Likewise.
1938         (TARGET_OS_CPP_BUILTINS): Add _SCO_DS_LL.
1939         (CPP_SPEC): Remove COFF crud; always look in /usr/gnu/include first.
1940         (LINK_SPEC): Remove COFF crud; use -E for environment switch not -R;
1941         add -z alt_resolve to support weak symbols the way GCC wants them.
1942         (LIB_SPEC): Use the profiler libraries in -p or -pp mode.
1943         (LIBGCC_SPEC): Dont use -lgcc in -G mode.
1944         (ASM_PREFERED_EH_DATA_FORMAT): Remove.
1945         * config/i386/t-sco5 (TARGET_LIBGCC2_CFLAGS): Remove.
1946         (CRTSTUFF_T_CFLAGS_S): Define.
1947         (MULTILIB_OPTIONS): Likewise.
1948         (MULTILIB_DIRNAMES): Likewise.
1949         (MULTILIB_MATCHES): Likewise.
1950         (MULTILIB_EXTRA_OPTS): Likewise.
1951         (LIBGCC): Likewise.
1952         (INSTALL_LIBGCC): Likewise.
1953         (crti.o): Remove.
1954         * config/i386/t-sco5gas: Remove.
1955         * doc/install.texi: Updated for new OpenServer instructions.
1956         * testsuite/gcc.dg/nest.c: Allow failure on SCO (-pg not supported)
1957
1958 2003-04-19  Kean Johnston  <jkj@sco.com>
1959
1960         * fixinc/check.tpl: Allow user to over-ride diff program.
1961         * fixinc/inclhack.def: Removed extraneous #ifndef SVR5.
1962         (sco_math): Added test for SCO math header files.
1963         (sco_regset): Added check for conflicts with ieeefp.h.
1964         (svr4_disable_opt): Removed extraneous #ifdef SVR4.
1965         * fixinc/fixincl.x: Regenerated
1966         * fixinc/tests/base/math.h: Added sco_math tests.
1967         * fixinc/tests/base/string.h: New file.
1968         * fixinc/tests/base/sys/regset.h: New file.
1969
1970 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
1971
1972         * cpphash.h (struct cpp_buffer): Remove backup_to.
1973         * cpplex.c (BACKUP, get_effective_char): Die.
1974         (_cpp_skip_block_comment): Assume '*' is location on entry.
1975         (continues_identifier_p): Respect -fno-dollars-in-identifiers.
1976         (IF_NEXT_IS): Update.
1977         (_cpp_lex_direct): Don't use backup_to; look ahead directly.
1978
1979 2003-04-19  Matt Kraai  <kraai@alumni.cmu.edu>
1980
1981         * README.Portability: Move to a new section and obsolete K+R
1982         portability issues.
1983
1984 Sat Apr 19 14:56:17 CEST 2003  Jan Hubicka  <jh@suse.cz>
1985
1986         * rtlanal.c (subreg_offset_representable_p):  Fix call of
1987         subreg_lowpart.
1988
1989 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
1990
1991         * cpphash.h (struct cpp_reader): New member warned_dollar.
1992         * cpplex.c (continues_identifier_p): New function.
1993         (parse_identifier, parse_number, parse_string): Rename lex_identifer,
1994         lex_number and lex_string, and simplify.
1995         (parse_slow, unescaped_terminator_p): Die.
1996         (_cpp_lex_direct): Update.
1997
1998 2003-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1999
2000         * calls.c (expand_call): Provide init for old_stack_pointer_delta.
2001
2002 2003-04-19  Nathan Sidwell  <nathan@codesourcery.com>
2003
2004         * doc/invoke.texi (-fprofile-arcs): Mention -lgcov, locking and
2005         fork behaviour.
2006
2007 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
2008
2009         * cppexp.c (eval_token): Permit true and false even if pedantic.
2010
2011 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
2012
2013         * cpplex.c (skip_whitespace): Rearrange to avoid stage1 ICE.
2014
2015 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
2016
2017         * cppfiles.c (ENABLE_VALGRIND_CHECKING, VALGRIND_DISCARD,
2018         MMAP_THRESHOLD, TEST_THRESHOLD, SHOULD_MMAP): Remove.
2019         (struct include_file): Remove fefcnt, mapped members.
2020         (open_file, stack_include_file, _cpp_pop_file_buffer): Disable caching.
2021         (read_include_file): Don't use mmap, terminate buffers in '\r'.
2022         (purge_cache): Don't use munmap.
2023         * cpphash.h (CPP_BUF_COLUMN): Update.
2024         (lexer_state): Remove lexing_comment.
2025         (struct _cpp_line_note): New.
2026         (struct cpp_buffer): New members cur_note, notes_used, notes_cap,
2027         next_line and need_line.  Remove col_adjust and saved_flags.
2028         (_cpp_process_line_notes, _cpp_clean_line, _cpp_get_fresh_line,
2029         _cpp_skip_block_comment, scan_out_logical_line): New.
2030         (_cpp_init_mbchar): Remove.
2031         * cppinit.c (init_library): Remove call to _cpp_init_mbchar.
2032         (cpp_read_main_file): Set line to 1 earlier.
2033         (post_options): -traditional-cpp doesn't want trigraphs.
2034         * cpplex.c (MULTIBYTE_CHARS): Remove code predicated on this.
2035         (add_line_note, _cpp_clean_line, _cpp_process_line_notes,
2036         _cpp_get_fresh_line): New.
2037         (handle_newline, skip_escaped_newlines, trigraph_p,
2038         continue_after_nul, _cpp_init_mbchar): Remove.
2039         (get_effective_char): Update.
2040         (_cpp_skip_block_comment): Rename from skip_block_comment, simplify.
2041         (skip_line_comment): Simplify.
2042         (skip_whitespace, parse_identifier, parse_slow, parse_number,
2043         parse_string): Update.
2044         (cpp_lex_direct): Use clean lines and process line notes.  Update.
2045         (cpp_interpret_charconst): No MULTIBYTE_CHARS.
2046         * cpplib.c (prepare_directive_trad): Call scan_out_logical_line
2047         directly.
2048         (_cpp_handle_directive): Don't set saved_flags.
2049         (run_directive, destringize_and_run, cpp_define, cpp_define_builtin,
2050         cpp_undef, handle_assertion, cpp_push_buffer): Update.
2051         (_cpp_pop_buffer): Free notes.
2052         * cppmacro.c (builtin_macro, paste_tokens): \n terminate buffer.
2053         * cpppch.c (cpp_read_state): \n terminate buffer.
2054         * cpptrad.c (skip_escaped_newlines, handle_newline): Remove.
2055         (copy_comment): Use _cpp_skip_block_comment.
2056         (skip_whitespace, lex_identifier, _cpp_read_logical_line_trad):
2057         Simplify.
2058         (_cpp_overlay_buffer, _cpp_remove_overlay, push_replacement_text,
2059         save_replacement_text): Update.
2060         (scan_out_logical_line): Update to use clean lines and process
2061         line notes.
2062         * fix-header.c (read_scan_file): Update.
2063
2064 2003-04-18  Douglas B Rupp  <rupp@gnat.com>
2065
2066         * unwind-dw2-fde.c (__register_frame_info_bases): Check for
2067         null begin parameter (as well as pointer to null).
2068         (__deregister_frame_info_bases): Likewise.
2069
2070 2003-04-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2071
2072         * function.c (purge_addressof_1): For ADDRESSOF, see if SUB is a
2073         hard or virtual register and copy into pseudo if replacement fails.
2074
2075         * cfgcleanup.c (flow_find_cross_jump): Use INSN_P, not active_insn_p.
2076
2077         * expmed.c (mask_rtx): Avoid undefined shifts for BITSIZE of 0.
2078
2079 2003-04-18  Olivier Hainque <hainque@act-europe.fr>
2080
2081         * calls.c (expand_call): Move special case for constructor calls
2082         to right place. Ensures constructor calls used to initialize
2083         arguments get a clean outgoing argument block for themselves.
2084         Move check for stack deallocation completeness until after last
2085         deallocation.  Add stack_pointer_delta to set of state
2086         variables saved and restored along with current stack_level.
2087
2088         * integrate.c (expand_inline_function): Ensure non-const actuals
2089         don't end up const in the caller's flow after conversion to possibly
2090         const formal type.
2091
2092 2003-04-18  Vincent Celier  <celier@gnat.com>
2093
2094         * dwarf2out.c (loc_descriptor_from_tree): Treat all *_MOD_EXPR
2095         and *_DIV_EXPR as TRUNC_*_EXPR.
2096
2097 2003-04-18  Mark Mitchell  <mark@codesourcery.com>
2098
2099         * cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block
2100         for orphaned jump tables.
2101
2102 2003-04-18  Kazu Hirata  <kazu@cs.umass.edu>
2103
2104         * reload1.c: Revert my previous patch on 2002-04-17.
2105
2106 2003-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2107
2108         * doc/contrib.texi (Contributors): Prefer "bug fix" over "bugfix".
2109         Add Segher Boessenkool.
2110
2111 2003-04-18  Alexander Sotirov  <sluncho@mirizma.org>
2112
2113         PR c/9177
2114         * c-decl.c (c_expand_body): Don't garbage collect the function
2115         body if we are going to dump it later.
2116
2117 2003-04-18  Richard Henderson  <rth@redhat.com>
2118
2119         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): Remove.
2120         (alpha_end_function): Don't set them.
2121         (decl_in_text_section): Remove.
2122         (alpha_encode_section_info): Remove.
2123         (samegp_function_operand): Use SYMBOL_REF LOCAL_P and EXTERNAL_P.
2124         (direct_call_operand): Use SYMBOL_REF_DECL and compare actual
2125         sections, rather than decl_in_text_section results.
2126
2127 2003-04-18  Roger Sayle  <roger@eyesopen.com>
2128
2129         * rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT
2130         and SIGN_EXTRACT.
2131
2132 2003-04-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2133
2134         PR optimization/7675
2135         * c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag
2136         on VAR_DECL, PARM_DECL and FUNCTION_DECL from within
2137         nested functions if they refer to declarations from parent functions.
2138         * stmt.c (expand_decl): Don't put automatic variables in registers
2139         if the DECL_NONLOCAL flag is set.
2140
2141 2003-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
2142
2143         * gcse.c (compute_ld_motion_mems): For MEM destinations, only
2144         consider those to be movable where the source matches
2145         want_to_gcse_p.
2146         (update_ld_motion_stores): In comment, refer to
2147         compute_ld_motion_mems for validity of replacement.
2148
2149 Fri Apr 18 01:28:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
2150
2151         * gcov-dump.c (tag_summary): Remove max_sum
2152         * gcov-io.h (gcov_summary, gcov_write_summary,
2153         gcov_read_summary): Kill max_sum.
2154         * libgcov.c (gcov_exit): Do one pass over the data.  Make error
2155         message more verbose.
2156
2157         * emit-rtl.c (subreg_hard_regno):  Check that register is
2158         representable.
2159
2160         * reload.c (reload_inner_reg_of_subreg):  When register is not
2161         representable, reload the whole thing.
2162         (find_reloads): Likewsie.
2163         * rtlanal.c (subreg_representable_p):  New function.
2164
2165         * profile.c (compute_branch_probabilities):  Cleanup sanity checking;
2166         allow negative probabilities for edges from the call to exit.
2167         (branch_prob): Do not add fake edges for functions that may return
2168         twice.
2169
2170 2003-04-17  DJ Delorie  <dj@redhat.com>
2171
2172         * toplev.c (target_options): Add value field.
2173         (set_target_switch): Handle target options with values.
2174         * doc/tm.texi: Document how fixed vs variable target
2175         options work.
2176         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
2177         config/c4x/c4x.h, config/cris/aout.h, config/cris/cris.h,
2178         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
2179         config/frv/frv.h, config/i386/i386.h, config/ia64/ia64.h,
2180         config/m32r/m32r.h, config/m68hc11/m68hc11.h,
2181         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
2182         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa.h,
2183         config/rs6000/rs6000.h, config/rs6000/sysv4.h,
2184         config/s390/s390.h, config/sparc/sparc.h, config/v850/v850.h:
2185         Add value initializer to target options.
2186
2187 2003-04-07  Loren James Rittle  <ljrittle@acm.org>
2188
2189         * cpppch.c (cpp_valid_state): Unconditionally initialize nl.
2190
2191 2003-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2192
2193         * reload1.c (move2add_last_cc0): New.
2194         (reload_cse_move2add): Detect implicit sets.
2195         (move2add_note_store): Notice a store into cc0.
2196
2197 2003-04-17  Roger Sayle  <roger@eyesopen.com>
2198
2199         PR c/10375
2200         * c-decl.c (duplicate_decls): Preserve "const" and "noreturn"
2201         function attributes.
2202
2203 2003-04-17  Janis Johnson  <janis187@us.ibm.com>
2204
2205         * doc/sourcebuild.texi (Test Suites): Document support for testing
2206         binary compatibility (moved from testsuite/README.compat).
2207
2208 2003-04-17  Richard Henderson  <rth@redhat.com>
2209
2210         * config/ia64/ia64.c (ia64_in_small_data_p): Disallow strings.
2211
2212 2003-04-17  Simon Law  <sfllaw@engmail.uwaterloo.ca>
2213
2214         * doc/include/gpl.texi: Fix double-spacing after "MA" to match
2215         the one provided by the FSF.
2216
2217 2003-04-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2218
2219         * doc/install.texi (Binaries): Update URL and list of platforms
2220         provided by ftp.thewrittenword.com.
2221
2222 2003-04-17  Richard Henderson  <rth@redhat.com>
2223
2224         * config/xtensa/xtensa.c (xtensa_encode_section_info): Remove.
2225         (call_insn_operand): Use SYMBOL_REF_LOCAL_P.
2226         * config/xtensa/xtensa.md (call, call_value): Likewise.
2227
2228 2003-04-17  Richard Henderson  <rth@redhat.com>
2229
2230         * config/v850/v850.c (print_operand): Use SYMBOL_REF_[ZST]DA.
2231         (print_operand_address): Likewise.
2232         (ep_memory_operand): Likewise.
2233         (special_symbolref_operand): Likewise.
2234         (v850_encode_data_area): Use SYMBOL_REF_FLAGS.
2235         (v850_encode_section_info): Call default_encode_section_info.
2236         (v850_strip_name_encoding): Remove.
2237         * config/v850/v850.h (EXTRA_CONSTRAINT): Use SYMBOL_REF_[ZST]DA.
2238         (ASM_OUTPUT_LABELREF): Remove.
2239         (ZDA_NAME_FLAG_CHAR, ZDA_NAME_P): Remove.
2240         (SDA_NAME_FLAG_CHAR, SDA_NAME_P): Remove.
2241         (TDA_NAME_FLAG_CHAR, TDA_NAME_P): Remove.
2242         (ENCODED_NAME_P): Remove.
2243         (SYMBOL_FLAG_ZDA, SYMBOL_REF_ZDA_P): New.
2244         (SYMBOL_FLAG_SDA, SYMBOL_REF_SDA_P): New.
2245         (SYMBOL_FLAG_TDA, SYMBOL_REF_TDA_P): New.
2246
2247 2003-04-17  Richard Henderson  <rth@redhat.com>
2248
2249         * config/stormy16/stormy16.c (xstormy16_encode_section_info): Kill.
2250         * config/stormy16/stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use
2251         SYMBOL_REF_FUNCTION_P.
2252
2253 2003-04-17  Richard Henderson  <rth@redhat.com>
2254
2255         * config/sparc/sparc.c (sparc_encode_section_info): Remove.
2256         (data_segment_operand): Use SYMBOL_REF_FUNCTION_P.
2257         (text_segment_operand): Likewise.
2258
2259 2003-04-17  Richard Henderson  <rth@redhat.com>
2260
2261         * config/sh/sh.c (gen_datalabel_ref): Don't add SH_DATALABEL_ENCODING.
2262         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
2263         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
2264         (sh_encode_section_info): Remove.
2265         (sh_strip_name_encoding): Remove.
2266         * config/sh/sh.h (SH_DATALABEL_ENCODING): Remove.
2267         (DATALABEL_SYMNAME_P, STRIP_DATALABEL_ENCODING): Remove.
2268         (SH_TLS_ENCODING, TLS_SYMNAME_P, STRIP_TLS_ENCODING): Remove.
2269         (ASM_OUTPUT_LABELREF): Remove.
2270         (ASM_OUTPUT_SYMBOL_REF): Use SYMBOL_REF_FUNCTION_P.
2271         * config/sh/sh.md (*): Use SYMBOL_REF_LOCAL_P.
2272
2273 2003-04-17  Richard Henderson  <rth@redhat.com>
2274
2275         * config/s390/s390.c (SYMBOL_FLAG_ALIGN1): New.
2276         (tls_model_chars): Remove.
2277         (larl_operand): Use SYMBOL_REF_FLAGS.
2278         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
2279         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
2280         (s390_output_mi_thunk): Likewise.
2281         (s390_emit_prologue): Set SYMBOL_FLAG_LOCAL as needed.
2282         (s390_function_profiler): Likewise.
2283         (s390_encode_section_info): Use default_encode_section_info
2284         and SYMBOL_FLAG_ALIGN1.
2285         (s390_strip_name_encoding): Remove.
2286         * config/s390/s390.h (ASM_OUTPUT_LABELREF): Remove.
2287         * config/s390/s390.md (call, call_value): Use SYMBOL_REF_LOCAL_P.
2288         (builtin_setjmp_receiver): Set SYMBOL_FLAG_LOCAL as needed.
2289
2290 2003-04-17  Richard Henderson  <rth@redhat.com>
2291
2292         * config/ns32k/ns32k.c (ns32k_encode_section_info): Remove.
2293         (global_symbolic_reference_mentioned_p): Use SYMBOL_REF_LOCAL_P.
2294         (print_operand_address): Likewise.
2295
2296         * config/ns32k/ns32k.h (CANNOT_CHANGE_MODE_CLASS): Add CLASS argument.
2297         * config/ns32k/ns32k.c (expand_block_move): Don't check
2298         flag_unroll_loops.
2299
2300 2003-04-17  Richard Henderson  <rth@redhat.com>
2301
2302         * config/mcore/mcore.c (mcore_encode_section_info): Don't set
2303         SYMBOL_REF_FLAG.
2304
2305 2003-04-17  Richard Henderson  <rth@redhat.com>
2306
2307         * rtl.h (SYMBOL_FLAG_MACH_DEP_SHIFT): New.
2308
2309         * config/m32r/m32r.c (SYMBOL_FLAG_MODEL_SHIFT): New.
2310         (SYMBOL_REF_MODEL): New.
2311         (LIT_NAME_P): Move from m32r.h.
2312         (m32r_select_section): Remove.
2313         (m32r_encode_section_info): Use SYMBOL_REF_FLAGS.
2314         (m32r_strip_name_encoding): Remove.
2315         (m32r_in_small_data_p): New.
2316         (small_data_operand): Use SYMBOL_REF_SMALL_P.
2317         (addr24_operand): Use SYMBOL_REF_MODEL.
2318         (call26_operand): Likewise.
2319         (addr32_operand): Tidy.
2320         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
2321         * config/m32r/m32r.h (RODATA_SECTION_ASM_OP): Remove.
2322         (SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Remove.
2323         (READONLY_DATA_SECTION_ASM_OP): Remove.
2324         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
2325         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Remove.
2326         (TARGET_ASM_SELECT_SECTION): Remove.
2327         (SDATA_FLAG_CHAR, MEDIUM_FLAG_CHAR, LARGE_FLAG_CHAR): Remove.
2328         (SDATA_NAME_P, SMALL_NAME_P, MEDIUM_NAME_P): Remove.
2329         (LARGE_NAME_P, ENCODED_NAME_P): Remove.
2330         (ASM_OUTPUT_LABELREF): Remove.
2331
2332 2003-04-17  Richard Henderson  <rth@redhat.com>
2333
2334         * config/ip2k/ip2k.c (is_regfile_address): Use SYMBOL_REF_FUNCTION_P.
2335         (encode_section_info): Remove.
2336         * config/ip2k/ip2k-protos.h: Update.
2337
2338 2003-04-17  Richard Henderson  <rth@redhat.com>
2339
2340         * varasm.c (default_encode_section_info): Don't set
2341         SYMBOL_FLAG_EXTERNAL if not TREE_PUBLIC.
2342         * config/i370/i370.c (i370_encode_section_info): Remove.
2343         * config/i370/i370.h (CONSTANT_ADDRESS_P): Use SYMBOL_REF_EXTERNAL_P.
2344         (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Likewise.
2345         * config/i370/i370.md (movsi): Likewise.
2346
2347         * config/i370/t-i370: Add missing backslash.
2348
2349 2003-04-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
2350
2351         * doc/invoke.texi (inline-limit): Fix pasto.
2352
2353 2003-04-17  Richard Henderson  <rth@redhat.com>
2354
2355         * config/h8300/h8300.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): New.
2356         (small_call_insn_operand): Use it.
2357         (SYMBOL_FLAG_EIGHTBIT_DATA): New.
2358         (h8300_eightbit_constant_address_p): Use it.
2359         (SYMBOL_FLAG_TINY_DATA): New.
2360         (h8300_tiny_constant_address_p): Use it.
2361         (h8300_encode_label, h8300_strip_name_encoding): Remove.
2362         (h8300_encode_section_info): Set SYMBOL_REF_FLAGS.
2363         * config/h8300/h8300.h (TINY_DATA_NAME_P): Remove.
2364         (ASM_OUTPUT_LABELREF): Remove.
2365
2366 2003-04-16  Richard Henderson  <rth@redhat.com>
2367
2368         * config/frv/frv.c (symbol_ref_small_data_p): Remove.  Replace
2369         all users with SYMBOL_REF_SMALL_P.
2370         (const_small_data_p): Use SYMBOL_REF_SMALL_P.
2371         (frv_encode_section_info): Remove.
2372         (frv_strip_name_encoding): Remove.
2373         (frv_in_small_data_p): Merge tests from encode_section_info.
2374         (frv_print_operand): Use '@' not SDATA_FLAG_CHAR.
2375         * config/frv/frv.h (SDATA_FLAG_CHAR): Remove.
2376         (SDATA_NAME_P): Remove.
2377         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use SIZE not SDATA_NAME_P.
2378         (ASM_OUTPUT_LABELREF): Remove.
2379         (PRINT_OPERAND_PUNCT_VALID_P): Use '@' not SDATA_FLAG_CHAR.
2380
2381         * config/frv/frv.c (frv_asm_out_constructor): New.
2382         (frv_asm_out_destructor): New.
2383         * config/frv/frv.h (CTORS_SECTION_ASM_OP): New.
2384         (DTORS_SECTION_ASM_OP): New.
2385         (ASM_OUTPUT_CONSTRUCTOR): Remove.
2386         (ASM_OUTPUT_DESTRUCTOR): Remove.
2387
2388 2003-04-16  Richard Henderson  <rth@redhat.com>
2389
2390         * config/cris/cris.c (cris_gotless_symbol, cris_got_symbol): Use
2391         SYMBOL_REF_LOCAL_P; abort if not pic.
2392         (cris_encode_section_info): Remove.
2393
2394 2003-04-16  Richard Henderson  <rth@redhat.com>
2395
2396         * config/c4x/c4x.c (c4x_encode_section_info): Remove.
2397         (c4x_T_constraint): Use SYMBOL_REF_FUNCTION_P.
2398
2399         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Declare
2400         flag_inline_trees.
2401
2402 2003-04-16  Richard Henderson  <rth@redhat.com>
2403
2404         * config/avr/avr.c (avr_encode_section_info): Remove.
2405         (avr_insert_attributes): New.
2406         (print_operand_address): Use SYMBOL_REF_FUNCTION_P.
2407         (avr_assemble_integer): Likewise.
2408
2409 2003-04-16  Richard Henderson  <rth@redhat.com>
2410
2411         * arc.c (arc_encode_section_info): Remove.
2412         (arc_assemble_integer): Use SYMBOL_REF_FUNCTION_P.
2413         (arc_print_operand, arc_print_operand_address): Likewise.
2414         * arc.h (EXTRA_CONSTRAINT): Likewise.
2415
2416 2003-04-16  Roger Sayle  <roger@eyesopen.com>
2417
2418         * c-semantics.c (find_reachable_label): New function to find a
2419         potentially reachable label in an expression.
2420         (expand_unreachable_if_stmt): Similar to expand_if_stmt but
2421         assumes the start of the IF_STMT is unreachable (dead) code.
2422         (expand_unreachable_stmt): Similar to expand_stmt but assumes
2423         the start of the statement list is unreachable (dead) code.
2424         (genrtl_if_stmt):  If the controlling expression of the IF
2425         is constant, use expand_unreachable_stmt for the THEN or ELSE
2426         clause as appropriate.
2427         (genrtl_switch_stmt):  Use expand_unreachable_stmt to expand
2428         the body of a SWITCH statement.
2429         (expand_stmt): The code immediately following a "return",
2430         "break", "continue" or "goto" is unreachable.
2431         * Makefile.in (c-semantics.o): Depend upon tree-inline.h.
2432
2433 2003-04-16  Richard Henderson  <rth@redhat.com>
2434
2435         * rtl.h (MEM_ALIAS_SET): Update documentation.
2436         * doc/rtl.texi (Special Accessors): New node.
2437         (SYMBOL_REF_FLAG): Note relationship with SYMBOL_REF_FLAGS.
2438
2439 2003-04-16  Alexandre Oliva  <aoliva@redhat.com>
2440
2441         * reload1.c (reload_cse_noop_set_p): Return false if mode of
2442         SET_DEST is not the same as that returned by...
2443         * cselib.h (cselib_reg_set_mode): ... new function.
2444         * cselib.c (cselib_reg_set_mode): Define it.
2445         (REG_VALUES): Document semantics of first element as set mode.
2446         (cselib_subst_to_values): Skip first element if ELT is NULL.
2447         (cselib_lookup): Likewise.  Insert past the first element.
2448         (cselib_invalidate_regno): NULLify first element.
2449         (cselib_record_set): Set first element.
2450
2451 2003-04-16  Olivier Hainque <hainque@act-europe.fr>
2452
2453         * tree.c (skip_simple_arithmetics_at, saved_expr_p): New functions.
2454         (save_expr): Replace loop by call to skip_simple_arithmetics_at.
2455         * tree.h: Add prototypes for the two new functions.
2456         * fold-const.c (fold_binary_op_with_conditional_arg): Replace test
2457         updates introduced in the previous revision by call to saved_expr_p.
2458         * stor-layout.c (put_pending_size): Use skip_simple_arithmetics_at.
2459
2460         * expr.c (store_field): Force usage of bitfield instructions when
2461         the field position requires it, whatever SLOW_UNALIGNED_ACCESS.
2462         (expand_expr, case BIT_FIELD_REF): likewise.
2463
2464 2003-04-16  Mark Mitchell  <mark@codesourcery.com>
2465
2466         PR middle-end/8866
2467         * cfgtrl.c (try_redirect_by_replacing_jump): Do not delete
2468         jumptables.
2469
2470 2003-04-16  Richard Henderson  <rth@redhat.com>
2471
2472         * config/ia64/ia64.c (sdata_symbolic_operand): Use
2473         SYMBOL_REF_SMALL_P and SYMBOL_REF_LOCAL_P.
2474         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
2475         (function_operand): Use SYMBOL_REF_FUNCTION_P.
2476         (ia64_expand_load_address): Likewise.
2477         (ia64_assemble_integer): Likewise.
2478         (ia64_encode_section_info): Remove.
2479         (ia64_strip_name_encoding): Remove.
2480         * config/ia64/ia64.h (ENCODE_SECTION_INFO_CHAR): Remove.
2481         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't strip it.
2482
2483 2003-04-16  Richard Henderson  <rth@redhat.com>
2484
2485         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): New.
2486         (samegp_function_operand): Use SYMBOL_FLAG_SAMEGP.
2487         (direct_call_operand): Use SYMBOL_FLAG_NEAR.
2488         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
2489         (small_symbolic_operand): Use SYMBOL_REF_SMALL_P.
2490         (global_symbolic_operand): Similarly.
2491         (tls_symbolic_operand_1): Use SYMBOL_REF_TLS_MODEL.
2492         (tls_symbolic_operand_type): Likewise.
2493         (alpha_encode_section_info): Use default_encode_section_info.
2494         (alpha_strip_name_encoding): Remove.
2495         (get_tls_get_addr): Split out from ...
2496         (alpha_legitimize_address): ... here.
2497         (alpha_emit_xfloating_libcall): Use init_one_libfunc.
2498         (get_some_local_dynamic_name_1): Use SYMBOL_REF_TLS_MODEL.
2499         (alpha_initialize_trampoline): Use init_one_libfunc.
2500         (alpha_setup_incoming_varargs): Mark unused parameters.
2501         (alpha_initial_elimination_offset): Likewise.
2502         (alpha_end_function): Use SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP.
2503         (unicosmk_unique_section): Use default_strip_name_encoding.
2504         (unicosmk_ssib_name, unicosmk_output_externs): Likewise.
2505
2506 2003-04-16  Aldy Hernandez  <aldyh@redhat.com>
2507
2508         * config.gcc: Add t-spe for eabispe.
2509
2510         * config/rs6000/t-spe: New.
2511
2512 2003-04-16  J"orn Rennecke <joern.rennecke@superh.com>
2513
2514         Re-apply this patch:
2515
2516         2002-05-16  Dale Johannesen  <dalej@apple.com>
2517           * combine.c (cant_combine_insn_p):  Reenable combinations
2518           involving hard regs unless CLASS_LIKELY_SPILLED_P.
2519
2520 2003-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2521
2522         PR/10271
2523         * pa-protos.h (function_arg): Remove last argument.
2524         * pa.c (function_arg): Likewise.  Use CUMULATIVE_ARGS struct instead.
2525         * pa.h (struct hppa_args): Add member incoming.
2526         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Initialize
2527         member incoming.
2528         (FUNCTION_ARG): Revise call to function_arg.
2529         (FUNCTION_INCOMING_ARG): Delete.
2530
2531 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
2532
2533         * configure.in: Unify the code which creates symlinks to a
2534         just-built as, ld, objdump, and nm with the code that detects
2535         their presence for purposes of feature tests.
2536         * configure: Regenerate.
2537
2538 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
2539
2540         * varasm.c (output_constant_def): Do not consult
2541         CONSTANT_AFTER_FUNCTION_P.  Remove all code predicated on it.
2542         (after_function_constants, output_after_function_constants): Delete.
2543         * doc/tm.texi: Delete documentation of CONSTANT_AFTER_FUNCTION_P.
2544         * config/mips/mips-protos.h, config/mips/mips.c
2545         (mips16_constant_after_function_p): Delete.
2546         * config/mips/mips.h: Delete #if-0-ed definition of
2547         CONSTANT_AFTER_FUNCTION_P.
2548         * config/d30v/d30v.h, config/stormy16/stormy16.h: Remove
2549         mention of CONSTANT_AFTER_FUNCTION_P in comment.
2550
2551 2003-04-15  Geoffrey Keating  <geoffk@apple.com>
2552
2553         * tree.c (next_decl_uid): Mark with GTY.
2554         (next_type_uid): Likewise.
2555
2556 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
2557
2558         PR target/9594:
2559         * sh.c (barrier_align): Also recognize stuff_delay_slot as
2560         an indicator that a barrier was created by branch splitting.
2561
2562 2003-04-15  Mark Mitchell  <mark@codesourcery.com>
2563
2564         * c-decl.c (implicitly_declare): Copy declarations that are going
2565         to be placed in a local scope.
2566
2567 2003-04-15  James A. Morrison  <ja2morri@uwaterloo.ca>
2568
2569         * invoke.texi (Spec Files): Wrap if-exists-else example.
2570         (MCore): Remove duplicate @itemx entries and @opindex entries.
2571
2572 2003-04-15  Ulrich Weigand  <uweigand@de.ibm.com>
2573
2574         * unwind.inc (_Unwind_Backtrace): New function.
2575         * unwind.h (_Unwind_Backtrace): Declare it.
2576         * libgcc-std.ver (_Unwind_Backtrace): Export it.
2577
2578 2003-04-14  Jason Merrill  <jason@redhat.com>
2579
2580         PR middle-end/10336, c++/10401
2581         * jump.c (never_reached_warning): Also stop looking if we reach the
2582         beginning of the function.
2583
2584 2003-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2585
2586         PR target/10338
2587         PR bootstrap/10198
2588         PR bootstrap/10140
2589         * fixinc/gnu-regex.c (regerror): Use mempcpy not __mempcpy.
2590
2591 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
2592
2593         * i386.md (abssf2_if+1): Make condition agree with abssf2_1 .
2594
2595 2003-04-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2596
2597         * optabs.c (expand_binop): In multi-word add cases, ensure
2598         XTARGET is copied to TARGET if they are different.
2599
2600 2003-04-15  Olivier Hainque <hainque@act-europe.fr>
2601
2602         * except.c (resolve_fixup_regions): Avoid dereferencing null pointer
2603         to region, possible after integration of function with unreachable
2604         regions that were optimized away.
2605
2606 2003-04-15  Jakub Jelinek  <jakub@redhat.com>
2607
2608         * config/rs6000/rs6000.h (EPILOGUE_USES): Use register 2,
2609         instead of TOC_REGISTER in epilogue in
2610         current_function_calls_eh_return functions.
2611
2612 2003-04-14  Mark Mitchell  <mark@codesourcery.com>
2613
2614         * doc/extend.texi (Empty Structures): Correct description of G++'s
2615         handling of these structures.
2616
2617         * c-decl.c (grokdeclarator): Reject extern redeclarations of
2618         static variables.
2619
2620 2003-04-14  Janis Johnson  <janis287@us.ibm.com>
2621
2622         * config/rs6000/rs6000.md (define_constants): Define constants for
2623         all UNSPEC usage, including new values for TLS support.
2624         (aux_truncdfsf2, fctiwz, movsi_got, movsi_got_internal,
2625         load_toc_aix_si, load_toc_aix_di, load_toc_v4_pic_si,
2626         load_toc_v4_PIC_1, load_toc_v4_PIC_1b, load_macho_picbase,
2627         macho_correct_pic, blockage, move_from_CR_ov_bit, movesi_from_cr,
2628         stack_tie, movsi_to_cr_one, movsi_to_cr, mtcrfsi, eh_set_lr_si,
2629         eh_set_lr_di): Use them.
2630         * rs6000.c: (mtcrf_operation, uses_TOC, rs6000_emit_prologue,
2631         rs6000_emit_epilogue) Use them.
2632
2633         * rtl.h (SYMBOL_REF_TLS_MODEL): Fix mask value.
2634
2635 2003-04-14  Neil Booth  <neil@daikokuya.co.uk>
2636
2637         * Makefile.in (c-opts.o): Use custom action.
2638
2639 2003-04-14  Douglas B Rupp  <rupp@gnat.com>
2640
2641         * ifcvt.c (noce_process_if_block): Fail on BLKmode move.
2642
2643 2003-04-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2644
2645         * stor-layout.c (layout_type, case ARRAY_TYPE): Add missing code to
2646         handle "superflat arrays" in Ada.
2647
2648         * integrate.c (expand_inline_function): Don't inline if would
2649         lose /u on a BLKmode TARGET.
2650
2651 2003-04-14  Joel Brobecker  <brobecker@gnat.com>
2652
2653         * dbxout.c (print_int_cst_bounds_in_octal_p): New function,
2654         extracted from dbxout_type.
2655         (dbxout_range_type): print large bounds in octal format.
2656         (dbxout_type): Replace extracted code by call to
2657         print_int_cst_bounds_in_octal_p.
2658
2659         * dwarf2out.c (gen_compile_unit_die): Emit DW_LANG_Ada95 instead
2660         of DW_LANG_Ada83 for Ada units.
2661
2662 2003-04-14  Olivier Hainque <hainque@act-europe.fr>
2663
2664         * explow.c (round_push): Use HOST_WIDE_INT instead of int for the
2665         temporary used to round CONST_INT sizes.
2666
2667         * tree.c (int_fits_type_p): Extract generic checks from the case
2668         of constant type bounds. Refine the checks against constant type
2669         bounds to allow for possible decisions against each of these bounds
2670         without requiring both bounds to be constant.
2671         (tree_int_cst_msb): Put back.
2672         * tree.h (tree_int_cst_msb): Likewise.
2673
2674         * global.c (global_conflicts): Prevent allocation of call clobbered
2675         hard regs to pseudos live across abnormal edges, as later passes are
2676         not ready to handle them.
2677
2678         * fold-const.c (fold): Reorder tests for conditional expressions.
2679
2680         * expr.c (highest_pow2_factor): Return unsigned.
2681         * expr.h (offset_address): Likewise.
2682         * emit-rtl.c (offset_address): POW2 argument now unsigned.
2683
2684 2003-04-14  Roger Sayle  <roger@eyesopen.com>
2685
2686         * builtins.c (expand_builtin_strlen):  Evaluate the lengths of
2687         string literals at compile-time.
2688
2689 2003-04-14  Roger Sayle  <roger@eyesopen.com>
2690
2691         * fold-const.c (fold):  Transform (c1 - x) cmp c2, where cmp is a
2692         comparison operation and c1/c2 are floating point constants into
2693         x swap(cmp) (c1 - c2).
2694
2695 2003-04-14  Vladimir Makarov  <vmakarov@redhat.com>
2696
2697         * genautomata.c (output_translate_vect): Fix a typo in loop
2698         condition.
2699
2700 2003-04-14  Hans-Peter Nilsson  <hp@axis.com>
2701
2702         PR target/10377
2703         * config/cris/cris.md ("*mov_sideqi", "*mov_sidehi")
2704         ("*mov_sidesi", "*mov_sideqi_mem", "*mov_sidehi_mem")
2705         ("*mov_sidesi_mem", "*clear_sidesi", "*clear_sidehi")
2706         ("*clear_sideqi", "*ext_sideqihi", "*ext_sideqisi")
2707         ("*ext_sidehisi", "*op_sideqi", "*op_sidehi", "*op_sidesi")
2708         ("*op_swap_sideqi", "*op_swap_sidehi", "*op_swap_sidesi")
2709         ("*extopqihi_side", "*extopqisi_side", "*extophisi_side")
2710         ("*extopqihi_swap_side", "*extopqisi_swap_side")
2711         ("*extophisi_swap_side", 8th, 9th, 10th, 11th, 14th peepholes):
2712         When next to constraint R, replace constraint i with n.
2713
2714 Mon Apr 14 16:18:37 CEST 2003  Jan Hubicka  <jh@suse.cz>
2715
2716         PR opt/10024
2717         * cfgrtl.c (force_nonfallthru_and_redirect): Use unchecked_make_edge.
2718
2719 2003-04-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2720
2721         * doc/contrib.texi (Contributors): Correct my entry.
2722
2723 2003-04-13  Roger Sayle  <roger@eyesopen.com>
2724
2725         * tree.h (DECL_BUILT_IN_NONANSI): Remove.
2726         * c-common.c (builtin_function_2): Don't set DECL_BUILT_IN_NONANSI.
2727         * c-decl.c (duplicate_decls): Use invariant DECL_BUILT_IN_NONANSI
2728         implies DECL_BUILT_IN to simplify logic.
2729         * print-tree.c (print_node): Don't dump DECL_BUILT_IN_NONANSI.
2730
2731 2003-04-13  Roger Sayle  <roger@eyesopen.com>
2732
2733         * builtin-types.def (BT_FN_STRING_CONST_STRING): New builtin type.
2734         (BT_FN_PTR_SIZE_SIZE): Likewise.
2735         * builtins.def (BUILT_IN_MALLOC, BUILT_IN_CALLOC, BUILT_IN_STRDUP):
2736         New built-in functions for malloc, calloc and strdup respectively.
2737         * calls.c (special_function_p): No need to handle malloc-like
2738         functions any longer.  ECF_MALLOC is set via built-in attributes.
2739
2740         * c-decl.c (duplicate_decls): Preserve pure and malloc attributes.
2741
2742         * doc/extend.texi: Document these new built-in functions.
2743
2744 2003-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2745
2746         * builtins.c (expand_builtin_memcpy): Add `endp' argument, use it.
2747         (expand_builtin_stpcpy): New.
2748         (expand_builtin): Add BUILT_IN_MEMPCPY & BUILT_IN_STPCPY.
2749         * builtins.def: Add mempcpy & stpcpy support.
2750         * doc/extend.texi (mempcpy, stpcpy): Document new builtins.
2751
2752 2003-04-13  Nick Clifton  <nickc@redhat.com>
2753
2754         * config/rs6000/rs6000.c: Replace occurrences of "GNU CC" with
2755         "GCC".
2756         * config/rs6000/40x.md, config/rs6000/603.md,
2757         config/rs6000/6xx.md, config/rs6000/7450.md, config/rs6000/7xx.md,
2758         config/rs6000/8540.md, config/rs6000/aix.h, config/rs6000/aix31.h,
2759         config/rs6000/aix3newas.h, config/rs6000/aix41.h,
2760         config/rs6000/aix43.h, config/rs6000/aix51.h,
2761         config/rs6000/aix52.h, config/rs6000/altivec-defs.h,
2762         config/rs6000/altivec.h, config/rs6000/altivec.md,
2763         config/rs6000/beos.h, config/rs6000/darwin.h,
2764         config/rs6000/eabi.h, config/rs6000/eabialtivec.h,
2765         config/rs6000/eabisim.h, config/rs6000/eabispe.h,
2766         config/rs6000/freebsd.h, config/rs6000/gnu.h,
2767         config/rs6000/host-darwin.c, config/rs6000/linux.h,
2768         config/rs6000/linux64.h, config/rs6000/linuxaltivec.h,
2769         config/rs6000/lynx.h, config/rs6000/mach.h, config/rs6000/mpc.md,
2770         config/rs6000/netbsd.h, config/rs6000/power4.md,
2771         config/rs6000/rios1.md, config/rs6000/rios2.md,
2772         config/rs6000/rs6000-c.c, config/rs6000/rs6000-modes.def,
2773         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
2774         config/rs6000/rs6000.h, config/rs6000/rs6000.md,
2775         config/rs6000/rs64.md, config/rs6000/rtems.h, config/rs6000/spe.h,
2776         config/rs6000/spe.md, config/rs6000/sysv4.h,
2777         config/rs6000/sysv4le.h, config/rs6000/vxworks.h,
2778         config/rs6000/windiss.h, config/rs6000/xcoff.h: Likewise.
2779
2780 2003-04-13  Nick Clifton  <nickc@redhat.com>
2781
2782         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Delete
2783         support for -mcall-aix switch.
2784         * config/rs6000/eabiaix.h: Delete.
2785         * config/rs6000/rs6000.h (rs6000_abi): Remove ABI_AIX_NODESC.
2786         (RS6000_REG_SAVE, RS6000_SAVE_AREA, FP_ARGS_MAX_REG,
2787         RETURN_ADDRESS_OFFSET): Remove use of ABI_AIX_NODESC.
2788         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Likewise.
2789         * config/rs6000/rs6000.c (print_operand, rs6000_stack_info,
2790         debug_stack_info, output_function_profiler,
2791         rs6000_trampoline_size, rs6000_initialise_trampoline): Likewise.
2792         * config/rs6000/rs6000.md (call, call_value, call_nonlocal_sysv,
2793         call_indirect_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
2794         call_value_nonlocal_sysv, sibcall_value_nonlocal_sysv,
2795         sibcall_nonlocal_sysv, sibcall_value_local64): Likewise.
2796         * config/rs6000/t-ppcgas (MULTILIB_OPTIONS): Remove mcall-aix
2797         multilibs.
2798         (MULTILIB_DIRNAMES): Remove mcall-aix directories.
2799         (MULTILIB_EXCEPTIONS): Delete.
2800         (MULTILIB_MATCHES): Remove mcall-aix matches.
2801
2802         * doc/fragments.texi: Replace -mcall-aix example with an ARM
2803         one.
2804         * doc/install.texi: Delete powerpc-*-eabiaix target.
2805         * doc/invoke.texi: Remove documentation of mcall-aix switch.
2806         * doc/tm.texi: Remove mcall-aix from example CPP_SPEC.
2807         * config.gcc: Delete powerpc-*-eabiaix target.
2808
2809 2003-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2810
2811         * doc/invoke.texi: Fix typos.
2812         * doc/tm.texi: Likewise.
2813
2814 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
2815
2816         * c-typeck.c (digest_init, push_init_level): Use CONSTRUCTOR_ELTS.
2817
2818 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
2819
2820         * tree.c (build_constructor): New function.
2821         * tree.h: Prototype it.
2822
2823         * c-typeck.c (build_c_cast, pop_init_level)
2824         * profile.c (build_function_info_value, build_gcov_info_value)
2825         (create_profiler):
2826         Use build_constructor.
2827
2828         * builtins.c (expand_builtin_args_info): Remove #if 0 blocks.
2829
2830         * objc/objc-act.c (build_constructor):
2831         Rename objc_build_constructor. Use build_constructor.
2832         (build_objc_string_object, objc_add_static_instance)
2833         (init_def_list, init_objc_symtab, init_module_descriptor)
2834         (generate_static_references, build_selector_translation_table)
2835         (build_descriptor_table_initializer, generate_descriptor_table)
2836         (build_protocol_initializer, build_ivar_list_initializer)
2837         (generate_ivars_list, build_dispatch_table_initializer)
2838         (generate_dispatch_table, generate_protocol_list)
2839         (build_category_initializer, build_shared_structure_initializer):
2840         Update to match.
2841
2842 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
2843
2844         * intl.h: #define gcc_gettext_width to strlen when !ENABLE_NLS.
2845
2846 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
2847
2848         * config/m68hc11/m68hc11-protos.h
2849         (m68hc11_eq_compare_operator): Declare
2850         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register new predicate.
2851         * config/m68hc11/m68hc11.c (m68hc11_eq_compare_operator): New predicate
2852         (d_register_operand): Check the operand mode.
2853         (hard_addr_reg_operand): Likewise.
2854
2855 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
2856
2857         * config/m68hc11/m68hc11.md ("decrement_and_branch_until_zero"): New
2858         pattern for dbcc/ibcc generation for 68HC12.
2859         ("doloop_end"): New pattern.
2860         ("m68hc12_dbcc_dec_hi"): New pattern for dbeq/dbne.
2861         ("m68hc12_dbcc_inc_hi"): New pattern for ibeq/ibne.
2862         ("m68hc12_dbcc_dec_qi"): New pattern.
2863         ("m68hc12_dbcc_inc_qi"): New pattern.
2864         (split): Add split for the above when we can't use dbcc/ibcc due to
2865         reloading.
2866         (peephole2): Add peephole2 to generate the above when possible.
2867
2868 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
2869
2870         * config/m68hc11/m68hc11.md ("bitcmpqi" split): No need to test the
2871         mode of operand 0.
2872         (peephole2 optimize const load): Likewise for operand 2.
2873         ("*rotlhi3_with_carry"): Change pattern to a const 1 rotate which
2874         clobbers CC_REGNUM.
2875         ("*rotrhi3_with_carry"): Likewise.
2876         (ashift:DI 1 split): Update pattern to create the above rotate.
2877         (lshiftrt:DI 1 split): Likewise.
2878
2879 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
2880
2881         * config/m68hc11/m68hc11.md (SOFT_Z_REGNUM): New constant.
2882         ("tstqi_z_used" split): Use it.
2883         ("cmphi_z_used"): Likewise.
2884         ("bitcmpqi_z_used"): Likewise; also use SP_REGNUM constant.
2885         ("cmpqi_z_used"): Likewise.
2886
2887 2003-04-12  Mark Mitchell  <mark@codesourcery.com>
2888
2889         PR c++/7910
2890         * config/i386/winnt.c (i386_pe_mark_dllimport): Fix thinko.
2891
2892 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
2893
2894         * configure.in: Check for wchar.h, mbstowcs, and wcswidth.
2895         * configure, config.in: Regenerate.
2896         * intl.c (gcc_gettext_width): New function.
2897         * intl.h: Prototype it.
2898
2899 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
2900
2901         * config/m68hc11/m68hc11.h (TARGET_SWITCHES): Fix -mnominmax option;
2902         recognize -mnorelax.
2903         (reg_class): Add Z_OR_S_REGS to represent soft registers with Z
2904         (REG_CLASS_NAMES): Add its name.
2905         (REG_CLASS_CONTENTS): Define its content.
2906
2907 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
2908
2909         * config/m68hc11/larith.asm (memcpy): Use ARG macro to access stack
2910         parameters so that offsets are valid for far definition.
2911         (__mulsi3): Likewise and use ret to return.
2912         (___adddi3, ___subdi3, ___notdi2, ): Don't use it to save the result.
2913
2914 2003-04-12  David Edelsohn  <edelsohn@gnu.org>
2915
2916         * config/rs6000/rs6000.c (rs6000_hash_constant): Skip '0' fields.
2917
2918 2003-04-12  Alexandre Oliva  <aoliva@redhat.com>
2919
2920         * mklibgcc.in (libgcc-stage-start): For every multilib  directory
2921         containing a libgcc.a, move lib* to the corresponding stage dir.
2922
2923         * Makefile.in (stage1-start, stage2-start, stage3-start,
2924         stage4-start): Move $(SPECS) to specs in stage dir.
2925         (unstage1 unstage2 unstage3 unstage4): Move specs in stage dir
2926         back as $(SPECS).
2927
2928         * mklibgcc.in (libgcc-stage-start): Move into the stage directory
2929         object files from the non-libgcc/ multilib directories as well.
2930
2931 2003-04-11  Geoffrey Keating  <geoffk@apple.com>
2932
2933         * profile.c (read_counts_file): Initialise 'checksum'.
2934
2935         * emit-rtl.c (gen_rtx): Really correct typo.
2936
2937         PR c++/9393
2938         * doc/invoke.texi (Debugging Options): Document -frandom-seed.
2939         * configure.in: Check for gettimeofday.
2940         * tree.c (flag_random_seed): Define.
2941         (default_flag_random_seed): New.
2942         (append_random_chars): Use flag_random_seed rather than trying
2943         to acquire randomness here.
2944         * tree.h (default_flag_random_seed): Declare.
2945         * toplev.c (display_help): Add -frandom-seed and -fstack-limit-*
2946         descriptions.
2947         (decode_f_option): Handle -frandom-seed.
2948         (print_switch_values): Call default_flag_random_seed.
2949         * flags.h (flag_random_seed): Declare.
2950         * configure: Regenerate.
2951         * config.in: Regenerate.
2952         * config/alpha/t-crtfm: Use -frandom-seed.
2953
2954         * doc/extend.texi (Empty Structures): New.
2955
2956         * c-pch.c: Include flags.h.  Add comments to routines.
2957         (struct c_pch_validity): New.
2958         (get_ident): Update PCH file version number.
2959         (pch_init): Output current debugging type.
2960         (c_common_valid_pch): Check debugging type.
2961         * Makefile.in (c-pch.o): Update dependencies.
2962         * flags.h (debug_type_names): Declare.
2963         * toplev.c (debug_type_names): Move out of decode_g_option.
2964
2965 2003-04-11  Eric Christopher  <echristo@redhat.com>
2966
2967         * emit-rtl.c (gen_rtx): Fix typos.
2968
2969 2003-04-11  Richard Henderson  <rth@redhat.com>
2970
2971         * emit-rtl.c (gen_rtx): Zero '0' fields.
2972
2973 2003-04-11  Richard Henderson  <rth@redhat.com>
2974
2975         PR c++/10202
2976         * expr.c (expand_expr): Use COMPLETE_OR_UNBOUND_ARRAY_TYPE_P
2977         not COMPLETE_TYPE_P for re-invoking layout_decl.
2978
2979 2003-04-11  Simon Law  <sfllaw@engmail.uwaterloo.ca>
2980
2981         * doc/bugreport.texi: Fix paragraph breaking between sections
2982         in preparation for TeXinfo's paragraph indentation fixes.
2983         * doc/extend.texi: Ditto.
2984         * doc/invoke.texi: Ditto.
2985         * doc/objc.texi: Ditto.
2986         * doc/gcov.texi: Wrap 'gcov' in @command{}.
2987         * doc/invoke.texi (Darwin Options): Add a preamble.
2988
2989 2003-04-11  Richard Henderson  <rth@redhat.com>
2990
2991         * config/i386/i386.c (tls_model_chars): Remove.
2992         (ix86_encode_section_info, ix86_strip_name_encoding): Remove.
2993         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
2994         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
2995         (tls_symbolic_operand_1): Likewise.
2996         (legitimate_pic_address_disp_p): Use SYMBOL_REF_LOCAL_P.
2997         * config/i386/i386.h (TARGET_ENCODE_SECTION_INFO): Remove.
2998         (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
2999         * config/i386/winnt.c (i386_pe_encode_section_info): Replace
3000         bits "copied from i386.h" with default_encode_section_info.
3001
3002 2003-04-11  Richard Henderson  <rth@redhat.com>
3003
3004         * rtl.def (SYMBOL_REF): Add two 0 fields.
3005         * gengtype.c (adjust_field_rtx_def): Handle them.
3006         * print-rtl.c (print_rtx): Print them.
3007         * rtl.h (SYMBOL_REF_DECL, SYMBOL_REF_FLAGS): New.
3008         (SYMBOL_FLAG_FUNCTION, SYMBOL_REF_FUNCTION_P): New.
3009         (SYMBOL_FLAG_LOCAL, SYMBOL_REF_LOCAL_P): New.
3010         (SYMBOL_FLAG_SMALL, SYMBOL_REF_SMALL_P): New.
3011         (SYMBOL_FLAG_TLS_SHIFT, SYMBOL_REF_TLS_MODEL): New.
3012         (SYMBOL_FLAG_EXTERNAL, SYMBOL_REF_EXTERNAL_P): New.
3013         (SYMBOL_FLAG_MACH_DEP): New.
3014         * optabs.c (init_one_libfunc): Zap fake SYMBOL_REF_DECL.
3015         * varasm.c (make_decl_rtl): Set SYMBOL_REF_DECL.
3016         (assemble_static_space): Set SYMBOL_REF_FLAGS.
3017         (assemble_trampoline_template): Likewise.
3018         (output_constant_def, force_const_mem): Likewise.
3019         (default_encode_section_info): New.
3020         * output.h: Declare it.
3021         * target-def.h (TARGET_ENCODE_SECTION_INFO): Use it.
3022
3023 2003-04-11  Richard Henderson  <rth@redhat.com>
3024
3025         * libfuncs.h (LTI_setbits, LTI_gcov_flush, LTI_gcov_init): New.
3026         (setbits_libfunc, gcov_flush_libfunc, gcov_init_libfunc): New.
3027         * optabs.c (init_optabs): Initialize them.
3028         (init_libfuncs): Use init_one_libfunc.
3029         * calls.c (expand_call): Use gcov_flush_libfunc.
3030         * expr.c (store_constructor): Use setbits_libfunc.
3031         * function.c (expand_main_function): Use init_one_libfunc.
3032         * profile.c (create_profiler): Use gcov_init_libfunc and DECL_RTL.
3033
3034 2003-04-11  Mark Mitchell  <mark@codesourcery.com>
3035
3036         * doc/c-tree.texi (Functions): Remove DECL_REAL_CONTEXT
3037         documentation; add DECL_FRIEND_CONTEXT.
3038
3039 2003-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3040
3041         * doc/install.texi (hppa): Update links for HP-UX patches.  Revise
3042         notes on linker selection and configuration for 64-bit HP-UX port.
3043         * doc/invoke.texi (hppa): Remove hppa text from description for
3044         -ffunction-sections and -fdata-sections.  Document -static, -nolibdld
3045         and -threads options.
3046
3047         * pa-hpux10.h (LIB_SPEC): Add link options to resolve dependency of
3048         libc.a on libdld.sl when -static is specified and -nolibdld is not
3049         specified.
3050         * pa64-hpux.h (LIB_SPEC): Likewise.
3051         * pa-hpux11.h (LIB_SPEC): Likewise.
3052         (LINK_SPEC): Add __gcc_plt_call as an undefined symbol when -shared
3053         is not specified.
3054
3055 2003-04-11  Zack Weinberg  <zack@codesourcery.com>
3056
3057         * config/darwin-c.c (darwin_pragma_unused): Use lookup_name,
3058         not IDENTIFIER_LOCAL_VALUE.
3059
3060 2003-04-11  Richard Henderson  <rth@redhat.com>
3061
3062         PR c/10201
3063         * expr.c (expand_expr): Move DECL_RTL frobbing ...
3064         * stor-layout.c (layout_decl): ... here.
3065
3066 2003-04-11  James A. Morrison <ja2morri@uwaterloo.ca>
3067
3068         * doc/invoke.texi: Eliminate extra white-space caused by
3069         @gccoptlist{ on its own line.
3070         * doc/invoke.texi: Ensured there are two spaces between each option.
3071         * doc/invoke.texi: Re-wrapped option lines that were too wide.
3072         Added @gol to options that didn't have them.
3073
3074 2003-04-11  Nathan Sidwell  <nathan@codesourcery.com>
3075
3076         * Makefile.in (loop-init.o): Do not depend on gcov-io.h,
3077         gcov-iov.h.
3078
3079         Simplify interface to gcov reading and writing.
3080         * gcov-io.h (gcov_file, gcov_position, gcov_length, gcov_buffer,
3081         gcov_alloc, gcov_modified, gcov_errored): Move into ...
3082         (struct gcov_var gcov_var): ... this static structure.
3083         (gcov_write_unsigned, gcov_write_counter, gcov_write_string):
3084         Return void.
3085         (gcov_read_unsigned, gcov_read_couter, gcov_read_string): Return
3086         read object.
3087         (gcov_read_bytes, gcov_write_bytes): Set error flag on error.
3088         (gcov_reserve_length): Remove.
3089         (gcov_write_tag): New.
3090         (gcov_write_length): Adjust.
3091         (gcov_read_summary, gcov_write_summary): Adjust.
3092         (gcov_eof, gcov_ok): Rename to ...
3093         (gcov_is_eof, gcov_is_error): ... here. Return error code.
3094         (gcov_save_position, gcov_resync): Rename to ...
3095         (gcov_position, gcov_seek): ... here.
3096         (gcov_skip, gcov_skip_string): Remove.
3097         (gcov_error): Remove.
3098         (gcov_open, gcov_close): Adjust.
3099         * gcov.c (find_source): Take const char *, copy it on allocation.
3100         (read_graph_file): Adjust.
3101         (read_count_file): Adjust.
3102         * libgcov.c (gcov_exit): Adjust.
3103         * gcov-dump.c (tag_function, tag_blocks, tag_arcs, tag_lines,
3104         tag_arc_counts, tag_summary): Return void. Adjust.
3105         (struct tag_format): Adjust proc member.
3106         (dump_file): Adjust gcov calls.
3107
3108 2003-04-11  Alexandre Oliva  <aoliva@redhat.com>
3109
3110         * Makefile.in (fixinc.sh): Pass BUILD_LIBERTY as LIBERTY to
3111         mkfixinc.sh.
3112         * fixinc/mkfixinc.sh (defs): Add LIBERTY.
3113         * configure.in (STMP_FIXINC, STMP_FIXPROTO): Don't disable on
3114         build != host sysrooted builds.
3115         * configure.in (SYSTEM_HEADER_DIR): Make sure it contains
3116         TARGET_SYSTEM_ROOT even on sysrooted natives.
3117         * configure: Rebuilt.
3118
3119 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
3120
3121         * c-decl.c (struct binding_level): Add shadowed_tags and
3122         function_body; remove this_block, tag_transparent, and
3123         subblocks_tag_transparent; update comments.
3124         (clear_binding_level, lookup_tag_reverse): Kill.
3125         (make_binding_level): Use ggc_alloc_cleared or memset.
3126         (lookup_tag): Remove struct binding_level* parameter.  All
3127         callers changed. Just look at IDENTIFIER_TAG_VALUE, and
3128         current_binding_level->tags if asked for thislevel_only or if
3129         we might have to diagnose "struct foo; union foo;"
3130         (pushlevel): Ignore argument.  Do not push another binding
3131         level on the transition from the parameters to the top level
3132         of the function body; just tweak the flags and proceed.
3133         (poplevel): Overhaul.  Clear IDENTIFIER_TAG_VALUEs; on exiting
3134         a function body, separate the parameter list from the
3135         top-level local variables.
3136         (set_block): Do nothing.
3137         (pushtag): Set IDENTIFIER_TAG_VALUE and add an entry to
3138         shadowed_tags if necessary.
3139         (warn_if_shadowing): Nuke the special case for local shadowing
3140         parameter.
3141         (pushdecl): Do not create a shadow entry if we are replacing
3142         an older decl in the same binding level.
3143         (pushdecl_function_level): Tweak for new way of indicating
3144         function scope.
3145         (shadow_tag_warned): Use TYPE_NAME, not lookup_tag_reverse.
3146         (start_function): Don't set subblocks_tag_transparent.
3147         (finish_function): Fix up the binding_level stack for totally
3148         empty functions.  Otherwise, don't call poplevel.
3149
3150         * c-common.c (shadow_warning): MANDATORY argument is no longer
3151         necessary.  Always use plain warning.
3152         * c-common.h: Update to match.
3153
3154         * cfglayout.c (scope_to_insns_initialize): Clear block when we
3155         hit the FUNCTION_DECL.
3156         * function.c: Do not create cyclic tree structure.
3157
3158 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
3159
3160         * c-tree.h (struct lang_identifier): Replace global_value,
3161         local_value members with symbol_value, tag_value.  Kill
3162         implicit_decl and limbo_value.
3163         (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_LOCAL_VALUE,
3164         IDENTIFIER_LIMBO_VALUE, IDENTIFIER_IMPLICIT_DECL,
3165         C_MISSING_PROTOTYPE_WARNED): Kill.
3166         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE,
3167         C_DECL_IMPLICIT, C_DECL_ISNT_PROTOTYPE): New.
3168         (C_DECL_ANTICIPATED): Rename to C_DECL_INVISIBLE.
3169         (implicit_decl_warning, lookup_name_current_level,
3170         record_function_scope_shadow): Don't prototype.
3171         (pushdecl_function_level): Prototype.
3172
3173         * c-decl.c (truly_local_externals): New variable.
3174         (struct binding_level): Adjust commentary.
3175         (get_function_binding_level, clear_limbo_values,
3176         record_function_scope_shadow): Kill.
3177         (lookup_name_current_level, implicit_decl_warning): Are now static.
3178         (any_external_decl, record_external_decl): New static functions.
3179         (clone_underlying type): Split out of pushdecl.
3180         (c_print_identifier): Update to match changes to struct
3181         lang_identifier.
3182         (poplevel): Delete #if 0 block.  Make externals invisible
3183         instead of clearing their IDENTIFIER_SYMBOL_VALUEs.  Don't
3184         call clear_limbo_values.  Refer to IDENTIFIER_SYMBOL_VALUE not
3185         IDENTIFIER_GLOBAL_VALUE or IDENTIFIER_LOCAL_VALUE.
3186         (duplicate-decls): For real parm decl after a forward decl,
3187         set TREE_ASM_WRITTEN here.  Allow void foo(...) followed by
3188         foo(...) { } with only a warning.  Say whether a previous
3189         declaration was implicit.
3190         (warn_if_shadowing): Now handles all shadowing, not just
3191         local-over-local.  Clarify comments.
3192         (pushdecl): Rewritten.  There is no longer a distinction
3193         between global and local symbol values; they're all
3194         IDENTIFIER_SYMBOL_VALUE.  Call record_external_decl on all
3195         DECL_EXTERNAL decls, and use any_external_decl to check
3196         against previous externals.  Kill #if 0 blocks.  Don't
3197         tolerate error_mark_node being NULL.
3198         (pushdecl_top_level): Handle only those cases which
3199         Objective C (the only user) needs.
3200         (pushdecl_function_level): New function.
3201         (implicitly_declare): Create ordinary decls with
3202         C_DECL_IMPLICIT set.  Recycle old decls, however they got
3203         created.
3204         (lookup_name): It's always IDENTIFIER_SYMBOL_VALUE. Return 0
3205         for C_DECL_INVISIBLE symbols.
3206         (lookup_name_current_level): Likewise.  Use chain_member.
3207         (c_make_fname_decl): Don't muck with DECL_CONTEXT.
3208         Use pushdecl_function_level.
3209         (builtin_function): Use C_DECL_INVISIBLE.
3210         (start_function): Don't muck with IDENTIFIER_IMPLICIT_DECL.
3211         Use C_DECL_ISNT_PROTOTYPE and C_DECL_IMPLICIT.
3212         (store_parm_decls): It's IDENTIFIER_SYMBOL_VALUE now.
3213         (identifier_global_value): Same.  Must scan
3214         global_binding_level in extremis.
3215
3216         * c-typeck.c (undeclared_variable): New static function, split
3217         from build_external_ref.
3218         (build_external_ref): Use DECL_CONTEXT, not
3219         IDENTIFIER_LOCAL_VALUE, to decide whether a local hides
3220         an instance variable.  Restructure for clarity.
3221         * objc/objc-act.c: Use identifier_global_value, not
3222         IDENTIFIER_GLOBAL_VALUE.
3223
3224 2003-04-08  Jonathan Wakely  <redi@gcc.gnu.org>
3225
3226         * doc/extend.texi (Template Instantiation): Refer to ISO standard,
3227         not Working Paper.
3228         * doc/invoke.texi (C++ Dialect Options): Same.
3229
3230 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
3231
3232         * tree.c (tree_operand_check_failed): New function.
3233         * tree.h (TREE_OPERAND_CHECK, TREE_OPERAND_CHECK_CODE,
3234         TREE_RTL_OPERAND_CHECK): New checking macros.
3235         (TREE_OPERAND, SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL,
3236         RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, WITH_CLEANUP_EXPR_RTL,
3237         CONSTRUCTOR_ELTS, LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
3238         EXIT_BLOCK_RETURN, LOOP_EXPR_BODY, EXPR_WFL_NODE,
3239         EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, TARGET_EXPR_SLOT,
3240         TARGET_EXPR_INITIAL, TARGET_EXPR_CLEANUP): Use the new
3241         checking macros.
3242
3243 Thu Apr 10 23:52:30 CEST 2003  Jan Hubicka  <jh@suse.cz>
3244
3245         PR inline-asm/8803
3246         * function.c (instantate_virtual_regs):  Verify that all ASM statements
3247         match after the virutal regs instantiation.
3248
3249 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
3250
3251         * ia64-protos.h (addp4_optimize_ok): New.
3252         * ia64.c (addp4_optimize_ok): New.
3253         * ia64.md (*ptr_extend_plus_1): Use addp4_optimize_ok.
3254         (*ptr_extend_plus_2): Ditto.
3255
3256 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
3257
3258         * expr.c (expand_assignment): Extend offset_rtx with convert_to_mode
3259         not with convert_memory_address.
3260         (store_constructor): Ditto, and same for copy_size_rtx.
3261         (expand_expr): Ditto.
3262
3263 2003-04-10  Douglas B Rupp  <rupp@gnat.com>
3264
3265         * config/i386/i386.c (ix86_ms_bitfield_layout_p): Fix formatting.
3266
3267 2003-04-10  Bob Wilson  <bob.wilson@acm.org>
3268
3269         * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Flush data cache
3270         even if it is configured to be write-through.
3271
3272 2003-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
3273
3274         * config/s390/s390.c (larl_operand): Do not allow symbols
3275         marked with '@'.
3276         (s390_encode_section_info): Mark symbols with forced 1-byte
3277         alignment with '@'.
3278         (s390_strip_name_encoding): Strip '@'.
3279         (legitimize_pic_address): Handle symbols that are not valid
3280         LARL operands in 64-bit mode.
3281
3282 2003-04-10  Andrew Haley  <aph@redhat.com>
3283
3284         * tree-inline.c (inlinable_function_p): Disable inlining for
3285         synchronized methods.
3286
3287 2003-04-09  Steven Bosscher  <steven@gcc.gnu.org>
3288
3289         * c-common.h (lang_statement_code_p): Remove declaration.
3290         (statement_code_p): Ditto.
3291         (c_common_stmt_codes): Define; list of c-common statement codes.
3292         (statement_code_p): New extern declaration.
3293         (STATEMENT_CODE_P): Define.
3294         (INIT_STATEMENT_CODES): Define.
3295         * c-common.c (statement_code_p): Kill the function, declare
3296         as an array of bools instead.
3297         (lang_statement_code_p): Remove.
3298         (walk_stmt_tree): Use STATEMENT_CODE_P not statement_code_p.
3299         (c_safe_from_p): Ditto.
3300         * c-objc-common.c (c_objc_common_init): Use INIT_STATEMENT_CODES
3301         to initialize the statement_code_p array.
3302         * tree-inline.c (walk_tree): Use STATEMENT_CODE_P instead of
3303         statement_code_p.
3304         (copy_tree_r): Ditto.
3305         * cp/cp-tree.h (cp_stmt_codes): Define; list of C++ specific
3306         statement tree codes.
3307         * cp/lex.c (cxx_init): Add missing print line break.  Use
3308         INIT_STATEMENT_CODES to initialize the statement_code_p array.
3309         * cp/parser.c (cp_parser_statement): Use STATEMENT_CODE_P
3310         instead of statement_code_p.
3311         * cp/pt.c (tsubst_expr): Ditto.
3312         * cp/tree.c (verify_stmt_tree_r): Ditto.
3313         (cp_statement_code_p): Remove.
3314         (init_tree): Don't set lang_statement_code_p, it's gone.
3315
3316 2003-04-09  Dan Nicolaescu  <dann@ics.uci.edu>
3317             Zack Weinberg  <zack@codesourcery.com>
3318
3319         * regrename.c (struct du_chain): Use a bitfield for reg_class.
3320         * cse.c (struct qty_table_elem, struct table_elt, struct set):
3321         Use bitfields for fields holding enum rtx_code or
3322         enum machine_mode values.  Add comments explaining size choices.
3323
3324 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
3325
3326         * config/fp-bit.c (unpack_d): Handle pair of doubles with
3327         different signs correctly.
3328
3329 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
3330
3331         * sched-deps.c (reg_pending_barrier_mode): New enumeration.
3332         (reg_pending_barrier): Make it of the enumeration type.
3333         (sched_analyze_2): Define the barrier as MOVE_BARRIER or
3334         TRUE_BARRIER.
3335         (sched_analyze): Ditto.
3336         (sched_analyze_insn): Ditto.  Use anti-dependencies for
3337         MOVE_BARRIER and true-dependencies as TRUE_BARRIER.
3338         (init_deps_global): Initialize the barrier as NO_BARRIER.
3339
3340 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
3341
3342         * config/ia64/ia64.c (issue_nops_and_insn): Add new parameter.
3343         Check that asm insn starts on a new cycle.  Add nops after asm
3344         insn to end bundle.
3345         (bundling): Move insn type evaluation from the loop.  Call
3346         issue_nops_and_insn with the new parameter.  Ignore changing
3347         position for nops after asm insn.
3348
3349 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
3350
3351         * optabs.c: Comment that gen_add2_insn and others may actually
3352         return emitted insns, if the gen functions turn out to return
3353         emitted insns.
3354         * reload1.c (reload_cse_move2add): Cope with emitted insns from
3355         gen_add2_insn.
3356
3357 2003-04-09  Richard Henderson  <rth@redhat.com>
3358
3359         * config/ia64/ia64.c (move_operand): Allow symbolic_operand,
3360         but not tls_symbolic_operand.
3361         (ia64_expand_load_address): Remove scratch operand.
3362         (ia64_expand_tls_address): Split out from ia64_expand_move.
3363         (ia64_expand_move): Split symbolics only after reload.
3364         (ia64_emit_cond_move): New.
3365         * config/ia64/ia64-protos.h: Update.
3366         * config/ia64/ia64.md (movsi_symbolic, movdi_symbolic): Remove.
3367         (symbolic splitter): Accept SImode operands too.
3368         (cmove splitter): Use ia64_emit_cond_move.
3369
3370 2003-04-09  Nick Clifton  <nickc@redhat.com>
3371
3372         * doc/install.texi: Note that ARM toolchains need binutils 2.13 or
3373         newer.
3374         * config/arm/elf.h (SUBTARGET_ASM_FLOAT_SPEC): Pass -mfpu=softfpa
3375         instead of -mno-fpu.
3376         * config/arm/semi.h (ASM_SPEC): Likewise.
3377         * config/arm/xscale-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise,
3378         but only if -msoft-float is specified pass.  Otherwise pass
3379         -mfpu=softvfp.
3380
3381 2003-04-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3382
3383         * function.c (purge_addressof): Use free_INSN_LIST_node instead of
3384         free_EXPR_LIST_node.
3385
3386 2003-04-08  Roger Sayle  <roger@eyesopen.com>
3387
3388         * fold-const.c (fold):  Use "fold" following build in more places.
3389         Optimize sqrt(x)*sqrt(x) as x, pow(x,y)*pow(z,y) as pow(x*z,y),
3390         pow(x,y)*pow(x,z) as pow(x,y+z) and x/pow(y,z) as x*pow(y,-z).
3391
3392 2003-04-08  Roger Sayle  <roger@eyesopen.com>
3393
3394         * builtins.c (fold_builtin):  Constant fold expressions as x*0.5
3395         instead of x/2.0.  Optimize sqrt(pow(x,y)) as pow(x,y*0.5),
3396         log(pow(x,y)) as y*log(x), pow(exp(x),y) as exp(x*y),
3397         pow(sqrt(x),y) as pow(x,y*0.5) and pow(pow(x,y),z) as pow(x,y*z).
3398         Delete function scope "fcode" variable to avoid shadowing.
3399
3400 2003-04-08  Kevin Buettner  <kevinb@redhat.com>
3401
3402         * dwarf2out.c (DWARF_ARANGES_HEADER_SIZE, DWARF_ARANGES_PAD_SIZE):
3403         Take into account DWARF_INITIAL_LENGTH_SIZE.
3404
3405 2003-04-08  Hans-Peter Nilsson  <hp@axis.com>
3406
3407         * reorg.c (fill_slots_from_thread): When considering changing the
3408         insn following a reg-to-reg copy insn to use the source reg of the
3409         copy, bail out if there's overlap between the registers.
3410
3411 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3412
3413         * function.c (postponed_insns): New.
3414         (purge_addressof_1): Postpone processing of insns if addressofs
3415         are not put into stack.
3416         (purge_addressof): Process postponed insns.
3417
3418 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
3419
3420         * sh.h (NORMAL_MODE): If interrupt handler and TARGET_FMOVD,
3421         this is FP_MODE_DOUBLE .
3422         * sh.c (ra.h): #include.
3423         (push_regs): Add second parameter.  Changed all callers.
3424         If necessary, set fpscr before saving floating point registers.
3425         (calc_live_regs): If interrupt handler and TARGET_FMOVD, always
3426         do saves / restores with SZ == 1.
3427         (sh_expand_prologue): If interrupt handler, don't use gen_toggle_sz.
3428         (sh_expand_epilogue): Likewise.  For TARGET_FMOVD, if floating point
3429         registers are being restored, restore FPSCR only after restoring them.
3430
3431 2003-04-08  Aldy Hernandez  <aldyh@redhat.com>
3432
3433         * config/rs6000/rs6000.c (rs6000_init_builtins): Set opaque types
3434         regardless of architecture.
3435         (spe_init_builtins): Change V2SI and V2SF types to opaque types.
3436
3437 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
3438
3439         * sh.c (push_regs, calc_live_regs): Return int.  Take single
3440         HARD_REG_SET * parameter.  Changed all callers.
3441
3442 Tue Apr  8 11:12:07 CEST 2003  Jan Hubicka  <jh@suse.cz>
3443
3444         * i386.c (legitimate_pic_address_disp_p): Do not accept PLUS in the
3445         GOTOFF operand.
3446         (legitimize_pic_address): Move plus outside the unspec.
3447         * i386.c (legitimate_constant_p):  Check (CONST (PLUS (UNSPEC ...
3448         for validity.
3449
3450 2003-04-08  Nathan Sidwell  <nathan@codesourcery.com>
3451
3452         * gcov-io.h (gcov_save_position): Remove __inline__ from
3453         declaration.
3454
3455 2003-04-07  Matt Kraai  <kraai@alumni.cmu.edu>
3456
3457         * doc/install.texi: Use @command and @samp for single- and
3458         multi-word commands respectively.
3459         * doc/makefile.texi: Likewise.
3460         * doc/sourcebuild.texi: Likewise.
3461
3462 2003-04-07  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
3463             Richard Henderson  <rth@redhat.com>
3464
3465         PR c/9516
3466         * expr.c (safe_from_p): Rearrange to avoid deep recursion in
3467         favour of looping and tail recursion for TREE_LIST and binops.
3468
3469 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3470
3471         * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Provide defaults
3472         for insns without luid.
3473
3474 2003-04-07  Glen Nakamura  <glen@imodulo.com>
3475
3476         PR opt/8634
3477         * explow.c (maybe_set_unchanging): Don't flag non-static const
3478         aggregate type initializers with RTX_UNCHANGING_P.
3479
3480 2003-04-07  Richard Henderson  <rth@redhat.com>
3481
3482         PR opt/8634
3483         * function.c (purge_addressof_1): Don't try arithmetics for
3484         unchanging memories.
3485
3486 2003-04-07  Janis Johnson  <janis187@us.ibm.com>
3487
3488         * doc/sourcebuild.texi (Test Suites): Document testing support for
3489         gcov and profile-directed optimizations; describe gcc.misc-tests.
3490
3491 Mon Apr  7 22:19:59 CEST 2003  Jan Hubicka  <jh@suse.cz>
3492
3493         PR target/10077
3494         * i386.md (movsi_1, movsi_nointerunit_1):  Fix SSEMOV alternative.
3495
3496 2003-04-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3497
3498         * doc/rtl.texi (Comparison operations): Update to
3499         record the allowed comparison modes.
3500
3501 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
3502
3503         * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all
3504         V2SI_type_node to opaque_V2SI_type_node.  Rename all
3505         V2SF_type_node to opaque_V2SF_type_node.
3506         (rs6000_init_builtins): Define opaque_V2SI_type_node and
3507         opaque_V2SF_type_node.
3508         (is_ev64_opaque_type): The types opaque_V2SI_type_node and
3509         opaque_V2SF_type_node are opaque types.
3510
3511 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
3512
3513         * gcse.c (replace_store_insn): Use single_set.
3514
3515 2003-04-07  Nathan Sidwell  <nathan@codesourcery.com>
3516
3517         Change gcov file interface to single file at a time.
3518         * gcov-io.h: Replace IN_LIBGCC1 with IN_LIBGCOV. Use IN_GCOV.
3519         Convert to C89 prototypes.
3520         (gcov_file, gcov_length, gcov_position, gcov_buffer, gcov_alloc,
3521         gcov_error, gcov_modified): New static variables.
3522         (gcov_open, gcov_close, gcov_read_bytes, gcov_write_bytes): New
3523         functions.
3524         (gcov_write_unsigned, gcov_write_counter, gcov_write_string,
3525         gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust.
3526         (gcov_read_summary, gcov_write_summary): Adjust.
3527         (gcov_save_position, gcov_reserve_length, gcov_write_length):
3528         Adjust.
3529         (gcov_resync, gcov_skip, gcov_skip_string): Adjust.
3530         (da_file_open, da_file_close, da_file_eof, da_file_error): Remove.
3531         (da_file_position, da_file_seek, da_file_write, da_file_read):
3532         Remove.
3533         (gcov_error, gcov_eof, gcov_ok, gcov_time): New functions.
3534         * gcov.c (gcov_type): Don't typedef here.
3535         (IN_GCOV): #define
3536         (read_graph_file, read_count_file): Adjust.
3537         * gcov-dump.c (gcov_type): Don't typedef here.
3538         (IN_GCOV): #define.
3539         (tag_function, tag_blocks, tag_arcs, tag_lines, tag_arc_counts):
3540         Remove FILE parameter, adjust.
3541         (struct tag_format): Adjust proc member.
3542         (dump_file): Adjust.
3543         * libgcov.c (IN_LIBGCOV): #define.
3544         (gcov_exit): Adjust.
3545         * loop-init.c: Don't #include gcov-io.h
3546         * profile.c (struct counts_entry): New structure to hold counter
3547         values.
3548         (struct section_reference, struct da_index_entry): Remove.
3549         (bbg_file, da_file): Remove.
3550         (htab_counts_index_hash, htab_counts_index_eq,
3551         htab_counts_index_del): Replace with ...
3552         (htab_counts_entry_hash, htab_counts_entry_eq,
3553         htab_counts_entry_del): ... these.
3554         (cleanup_counts_index, index_counts_file): Remove.
3555         (read_counts_file): New function.
3556         (get_exec_counts): Adjust.
3557         (compute_branch_probabilities): Don't free the exec counts here.
3558         (branch_prob): Adjust.
3559         (init_branch_prob): Adjust.
3560         (end_branch_prob): Adjust.
3561
3562 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
3563
3564         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3565         -mfloat-gprs.
3566
3567         * config/rs6000/rs6000.c: Delete rs6000_fprs.
3568         Declare rs6000_float_gprs.
3569         Declare rs6000_float_gprs_string.
3570         (rs6000_parse_float_gprs_option): New.
3571         (rs6000_override_options): Genericize rs6000_parse_* calls to use
3572         rs6000_parse_yes_no_option.
3573         Change check for cpu=8540, to use TARGET_E500.
3574         (rs6000_parse_isel_option): Delete.
3575         (rs6000_parse_spe_option): Delete.
3576         (rs6000_parse_vrsave_option): Delete.
3577
3578         * config/rs6000/rs6000.h: Rename rs6000_fprs to rs6000_float_gprs.
3579         Define rs6000_float_gprs_string.
3580         (TARGET_OPTIONS): Add rs6000_float_gprs option.
3581
3582         * config/rs6000/eabi.h (TARGET_FPRS): Change to use rs6000_float_gprs.
3583
3584         * config/rs6000/eabispe.h: Set rs6000_float_gprs.
3585
3586 Mon Apr  7 14:36:24 CEST 2003  Jan Hubicka  <jh@suse.cz>
3587
3588         PR opt/10024
3589         * cfglayout.c (cfg_layout_redirect_edge):
3590         Redirect any branch edges unified with the fallthru one.
3591         * cfgrtl.c (force_nonfallthru_and_redirect):  Do not special
3592         case fallthru edges when called via cfglayout.c
3593
3594 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
3595
3596         * c-typeck.c (output_init_element): Check for type == error_mark_node.
3597
3598 2003-04-07  Kazu Hirata  <kazu@cs.umass.edu>
3599
3600         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Always
3601         split.
3602         (a splitter): Do zero-extension via HImode.
3603
3604 2003-04-07  James A. Morrison <ja2morri@uwaterloo.ca>
3605
3606         * doc/invoke.texi: Eliminate extra white-space caused by
3607         @gccoptlist{ on its own line.
3608         * doc/invoke.texi: Ensured there are two spaces between each option.
3609         * doc/invoke.texi: Re-wrapped option lines that were too wide.
3610         Added @gol to options that didn't have them.
3611
3612 2003-04-07  James A Morrison <ja2morri@student.math.uwaterloo.ca>
3613
3614         * doc/extend.texi (Darwin Pragmas): Fix spelling of Mac OS.
3615
3616 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
3617
3618         * tree.c (tree_size): For all 'c' and 'x' nodes, look directly
3619         at the sizes of the relevant structures, rather than relying
3620         on TREE_CODE_LENGTH.  Call lang_hooks.tree_size to get the
3621         sizes of any such we don't know about.  Use
3622         lang_hooks.identifier_size for IDENTIFIER_NODE.
3623
3624         (initializer_zerop): Use CONSTRUCTOR_ELTS.
3625         * tree.def: Update commentary.  Make fourth element of
3626         the definition for all 'c' and 'x' nodes zero.
3627
3628         * langhooks.h: New hook, tree_size / LANG_HOOKS_TREE_SIZE.
3629         * langhooks-def.h: Update to match.
3630         * langhooks.c: New default, lhd_tree_size.
3631
3632         * c-common.def (SRCLOC): Kill.
3633         * c-pretty-print.c (pp_c_postfix_expression [case SRCLOC]):
3634         Remove entirely - was already #if-ed out.
3635
3636
3637 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
3638
3639         * mklibgcc.in: Use a here document to avoid running afoul of
3640         shells that generate control-A from "echo \1".
3641
3642 2003-04-06  Aldy Hernandez  <aldyh@redhat.com>
3643
3644         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mspe
3645         option.
3646
3647         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
3648         rs6000_spe.
3649
3650         * config/rs6000/eabi.h (TARGET_E500): Define.
3651
3652         * config/rs6000/rs6000.h (TARGET_E500): Define.
3653         (TARGET_OPTIONS): Add spe= option.
3654         Declare rs6000_spe and rs6000_spe_string extern.
3655
3656         * config/rs6000/rs6000.c (branch_positive_comparison_operator):
3657         Change TARGET_SPE to TARGET_E500.
3658         (ccr_bit): Change TARGET_SPE to TARGET_E500.  Check for
3659         !TARGET_FPRS.
3660         (print_operand): Same.
3661         (rs6000_generate_compare): Same.
3662         (output_cbranch): Same.
3663         (rs6000_spe): Declare.
3664         (rs6000_spe_string): Declare.
3665         (rs6000_override_options): Call rs6000_parse_spe_option.
3666         (rs6000_parse_spe_option): New.
3667
3668 2003-04-06  Steven Bosscher  <steven@gcc.gnu.org>
3669
3670         * hashtable.c (gcc_obstack_init): Delete this function
3671         and everything related to it.
3672         * hashtable.h: Remove prototype.
3673         * bitmap.c (bitmap_element_allocate): Cleanup redundant
3674         defines.  Cleanup some unnecessary whitespace.
3675         * defaults.h (obstack_chunk_alloc): Redefine with
3676         appropriate casts for libiberty obstacks.
3677         (obstack_chunk_free): Ditto.
3678         (OBSTACK_CHUNK_SIZE): Define, default to 0.
3679         (gcc_obstack_init): Define as a call to _obstack_begin.
3680         * tree.c (print_obstack_statistics): Delete this unused
3681         function.
3682         * tree.h (obstack): Don't forward-declare.
3683         (print_obstack_statistics): Delete prototype.
3684         (print_obstack_name): Ditto.
3685         (gcc_obstack_init): Ditto.
3686         * rtl.h (gcc_obstack_init): Ditto.
3687         * java/jv-scan.c (gcc_obstack_init): Delete this
3688         function, its prototype and related defines.
3689         * java/jvgenmain.c (gcc_obstack_init): Delete this
3690         function, and related defines.
3691         * java/parse-scan.y (obstack_chunk_alloc): Don't define.
3692         (obstack_chunk_free): Ditto
3693
3694 2003-04-06  Geoffrey Keating  <geoffk@apple.com>
3695
3696         * dbxout.c (dbxout_handle_pch): Move prototype out from
3697         #if defined DBX_DEBUGGING_INFO.
3698
3699 2003-04-05  Nathan Sidwell  <nathan@codesourcery.com>
3700
3701         * gcov.c (struct arc_info): Replace local_span with cycle.
3702         (struct block_info): Replace u.span with u.cycle. Add is_call_return.
3703         (solve_flow_graph): Set is_call_return.
3704         (add_line_counts): Adjust. In block mode, blocks attach to last line.
3705         (accumulate_line_counts): Find graph cycles, not spanning tree.
3706         (output_branch_count): Adjust.
3707         (output_lines): Adjust.
3708         * doc/gcov.texi: Update.
3709
3710 2003-04-06  Kazu Hirata  <kazu@cs.umass.edu>
3711
3712         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Change
3713         the second alternative to "#".
3714
3715 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
3716
3717         * config/h8300/h8300.c (single_one_operand): Use GET_MODE_MASK.
3718         (single_zero_operand): Likewise.
3719
3720 2003-04-05  Daniel Berlin  <dberlin@dberlin.org>
3721
3722         * Makefile.in (df.o):  Depend on alloc-pool.h, not obstack.h.
3723         * df.c: Include alloc-pool.h, not obstack.h.
3724         (df_ref_obstack): Remove.
3725         (df_ref_pool, df_link_pool): Add pools.
3726         (df_alloc): Init the new pools.
3727         (df_free): And free them.
3728         (df_link_create): Use the pools.
3729         (df_ref_create): Ditto.
3730
3731 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
3732
3733         * simplify-rtx.c: Fix formatting.
3734
3735 2003-04-05  Andrew Pinski  <apinski@apple.com>
3736
3737         * config/rs6000/rs6000.c (addrs_ok_for_quad_peep): Allow addr2
3738         reg with reg1 == reg2 and offset1 = -8.
3739
3740 2003-04-05  David Edelsohn  <edelsohn@gnu.org>
3741
3742         * config/rs6000/rs6000.c (rs6000_rtx_costs): Halve Power4
3743         multiply costs.  Correct Power4 divide costs.
3744         * config/rs6000/power4.md: Restore multiply and FP latency.
3745
3746 2003-04-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3747
3748         * alias.c (find_base_term): Export.
3749         * rtl.h (find_base_term): Declare.
3750         * gcse.c (find_moveable_store): Test for flag_non_call_exceptions
3751         instead of flag_exceptions.  Move test for parameter passing ...
3752         (store_killed_in_insn): ... here.
3753
3754 2003-04-05  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3755
3756         PR bootstrap/10267
3757         * doc/install.texi (*-*-solaris2): /bin/ksh is not just recommended
3758         for configuring.
3759
3760 2003-04-04  Geoffrey Keating  <geoffk@apple.com>
3761
3762         * dbxout.c (scope_labelno): Add GTY.
3763         (have_used_extensions): Add GTY.
3764         (source_label_number): Add GTY.
3765         (lastfile): Add GTY.
3766         (lastfile_is_base): New.
3767         (base_input_file): New.
3768         (dbxout_handle_pch): New.
3769         (dbx_debug_hooks): Add handle_pch.
3770         (xcoff_debug_hooks): Likewise.
3771         (dbxout_function_end): Remove scope_labelno.
3772         (dbxout_init): Set base_input_file.
3773         (dbxout_handle_pch): New.
3774         (dbxout_source_file): Honour lastfile_is_base.
3775         * dwarfout.c (dwarf_debug_hooks): Add dummy handle_pch.
3776         * sdbout.c (sdb_debug_hooks): Add dummy handle_pch.
3777         * vmsdbgout.c (vmsdbg_debug_hooks): Add dummy handle_pch.
3778         * dwarf2out.c (dwarf2_debug_hooks): Add dummy handle_pch.
3779         * debug.c (do_nothing_debug_hooks): Add dummy handle_pch.
3780         * debug.h (struct gcc_debug_hooks): Add handle_pch.
3781         * c-pch.c (pch_init): Don't call start_source_file, but do call
3782         handle_pch.
3783         (c_common_write_pch): Call handle_pch.
3784         (c_common_read_pch): Don't call start_source_file,
3785         or end_source_file.
3786
3787 Fri Apr  4 17:43:52 2003  Olivier Hainque <hainque@act-europe.fr>
3788
3789         * emit-rtl.c (get_mem_attrs): Adjust alignment tests determining
3790         use of default attributes to agree MEM_ALIGN macro.
3791
3792 Fri Apr  4 17:33:24 2003  Joel Brobecker  <brobecker@gnat.com>
3793
3794         * dbxout.c (dbxout_type): When printing type index of range type
3795         whose bounds are printed in octal format, print type of parent type if
3796         it exists so enumerated type descriptions are not transformed
3797         into unsigned types.
3798
3799 2003-04-04  Kazu Hirata  <kazu@cs.umass.edu>
3800
3801         * config/h8300/h8300-protos.h: Add a prototype for
3802         compute_a_shift_cc.
3803         * config/h8300/h8300.c (shift_one): Update the CC status.
3804         (shift_two): Likewise.
3805         (output_a_shift_cc): Set cc_inline and cc_special.
3806         (compute_a_shift_cc): New.
3807         * config/h8300/h8300.md (shift insns): Use compute_a_shift_cc.
3808
3809 2003-04-04  Richard Henderson  <rth@redhat.com>
3810
3811         * cse.c (fold_rtx): Fix 03-30 change; do check insn non-null.
3812
3813 2003-04-04  Loren James Rittle  <ljrittle@acm.org>
3814
3815         * fixinc/inclhack.def (bsd_stdio_attrs_conflict): New.
3816         * fixinc/fixincl.x: Rebuilt.
3817         * fixinc/tests/base/stdio.h: Regenerated.
3818
3819 2003-04-04  Nathan Sidwell  <nathan@codesourcery.com>
3820
3821         * gcov.c (accumulate_line_counts): Fix span tree merge bug.
3822
3823 Fri Apr  4 15:58:52 2003  J"orn Rennecke <joern.rennecke@superh.com>
3824
3825         * sh.h (ACTUAL_NORMAL_MODE): New macro, broken out of
3826         (NORMAL_MODE).
3827         * sh.c (fpscr_set_from_mem): Use ACTUAL_NORMAL_MODE.
3828
3829 2003-04-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3830
3831         * doc/contrib.texi (Contributors): Add entries for Wolfgang
3832         Bangerth, DJ Delorie, Christian Ehrhardt, Christopher Faylor,
3833         Nathanael Nerode, Diego Novillo, Hartmut Penner, Volker Reichelt,
3834         Danny Smith, and Ulrich Weigand.
3835         Update Kriang Lerdsuwanakij and fix a typo in Janis Johnson's
3836         entry.
3837
3838 2003-04-04  Nick Clifton  <nickc@redhat.com>
3839
3840         * config/sparc/sol2-bi.h: Revert previous delta.
3841         * config/sparc/sol2-gas-bi.h (AS_SPARC64_FLAG): Prepend -TSO
3842
3843 2003-04-04  Nick Clifton  <nickc@redhat.com>
3844
3845         * config/v850/v850.c (expand_prologue): Only use register save
3846         helper functions if long calls are not being used.
3847         Add a clobber of r11 id using long calls.
3848         (pattern_is_ok_for_prologue): Account for the extra clobber.
3849         (construct_save_jarl): Likewise.
3850         * config/v850/v850.md (prolog pattern): Do not use this pattern
3851         for v850e's.
3852
3853 2003-04-04  Andreas Schwab  <schwab@suse.de>
3854
3855         * stor-layout.c (layout_decl): Avoid syntax error in last change
3856         when PCC_BITFIELD_TYPE_MATTERS is defined but not
3857         EMPTY_FIELD_BOUNDARY.
3858
3859 2003-04-03  Jason Merrill  <jason@redhat.com>
3860
3861         PR c/10175
3862         * jump.c (never_reached_warning): Revert patch of 2002-11-02.
3863         Look backwards for a line note.
3864
3865 2003-04-03  Neil Booth  <neil@daikokuya.co.uk>
3866
3867         * fix-header.c (read_scan_file): Defer switch processing.
3868
3869 2003-04-03  Matt Austern  <austern@apple.com>
3870
3871         * cpppch.c (reset_ht): Remove.
3872         (cpp_read_state): Remove loop to reset hashtable identifiers.
3873         * ggc-common.c (gt_pch_save): Add call to gt_pch_fixup_stringpool
3874         after pch file is written.
3875         * ggc.h (gt_pch_fixup_stringpool): Declare.
3876         * stringpool.c (ht_copy_and_clear): Define.  Callback.  Copy
3877         hashnode's value to another hashtable, then clear the original.
3878         (saved_ident_hash): Define.
3879         (gt_pch_save_stringpool): Create saved_ident_hash, use it to
3880         store definitions in ident_hash, and clear ident_hash.
3881         (gt_pch_fixup_stringpool): Define.  Restore definitions from
3882         saved_ident_hash to ident_hash, then destroy saved_ident_hash.
3883
3884 Thu Apr  3 22:27:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
3885
3886         * cfgrtl.c (update_bb_for_insn): Do not set block for barriers.
3887
3888 2003-04-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3889
3890         PR optimization/10157
3891         * gcse.c (can_copy_p): Rename it to can_copy.
3892         (can_copy_init_p): Remove.
3893         (compute_can_copy): Use can_copy instead of can_copy_p.
3894         (can_copy_p): New exported function. Call compute_can_copy.
3895         (hash_scan_set): Use it.
3896         (gcse_main): Don't call compute_can_copy.
3897         (bypass_jumps): Don't call compute_can_copy.
3898         * rtl.h (can_copy_p): Declare.
3899         * loop.c (scan_loop): Don't move the source and add a reg-to-reg
3900         copy if the mode doesn't support copy operations.
3901
3902 2003-04-03  Jason Merrill  <jason@redhat.com>
3903
3904         * Makefile.in (unstrap): Also remove stage_last.
3905
3906         * dwarf2out.c (lookup_filename): Don't check for "<internal>".
3907         (dwarf2out_source_line): Don't do anything if line==0.
3908
3909         * stor-layout.c (do_type_align): New fn, split out from...
3910         (layout_decl): ...here.  Do all alignment calculations for
3911         FIELD_DECLs here.
3912         (update_alignment_for_field): Not here.
3913         (start_record_layout, debug_rli): Remove unpadded_align.
3914         * tree.h (struct record_layout_info_s): Remove unpadded_align.
3915         * c-decl.c (finish_enum): Don't set DECL_SIZE, DECL_ALIGN
3916         or DECL_MODE on the CONST_DECLs.
3917         (finish_struct): Don't mess with DECL_ALIGN.
3918
3919 Thu Apr  3 18:57:19 CEST 2003  Jan Hubicka  <jh@suse.cz>
3920
3921         * i386.c (print_operand): Do not bypass output_addr_const at flag_pic.
3922
3923 Thu Apr  3 17:08:09 2003  J"orn Rennecke <joern.rennecke@superh.com>
3924
3925         * sh.c (sh_function_ok_for_sibcall): Return 0 if the current
3926         function is an interrupt handler.
3927
3928         * sh.c (sh_expand_epilogue): Avoid clash of temp register for
3929         restoring target registers with EH_RETURN_STACKADJ_RTX; use
3930         multiple registers in round-robin fashion.
3931
3932 2003-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3933
3934         * gengtype-lex.l (IWORD): Add CHAR_BITFIELD.
3935         * system.h (CHAR_BITFIELD): New.
3936
3937 2003-04-03  Kazu Hirata  <kazu@cs.umass.edu>
3938
3939         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
3940         and LE.
3941         (another peephole2): Likewise.
3942
3943 2003-04-03  Nick Clifton  <nickc@redhat.com>
3944
3945         * config/sparc/sol2-bi.h (ASM_CPU64_DEFAULT_SPEC): Add -TSO.
3946         (DEF_ARCH64_SPEC): Likewise.
3947
3948 Thu Apr  3 09:53:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
3949
3950         * i386.c (constant_address_p): Use legitimate_constant_p.
3951         (legitimate_address_p): Do not use CONSTANT_ADDRESS_P.
3952
3953 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
3954
3955         * config/h8300/h8300-protos.h: Add a prototype for
3956         gtle_operator.
3957         * config/h8300/h8300.c (gtle_operator): New.
3958         * config/h8300/h8300.h (PREDICATE_CODES): Add an entry for
3959         gtle_operator.
3960         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
3961         and LE.
3962
3963 2003-04-02  Richard Henderson  <rth@redhat.com>
3964
3965         * libgcc-std.ver (_Unwind_GetCFA): New.
3966         * unwind-dw2.c (_Unwind_GetCFA): New.
3967         * unwind-libunwind.c (_Unwind_GetCFA): New.
3968         * unwind-sjlj.c (_Unwind_GetCFA): New.
3969         * unwind.h: Declare it.
3970
3971 Thu Apr  3 00:31:21 CEST 2003  Jan Hubicka  <jh@suse.cz>
3972
3973         PR inline-asm/8088
3974         * i386.c (ix86_hard_regno_mode_ok):  Return 0 for MMX/SSE registers
3975         when MMX/SSE is not available.
3976
3977 2003-04-02  Mike Stump  <mrs@apple.com>
3978
3979         * doc/install.texi (Specific): Update pointers to apple.com.
3980
3981 Thu Apr  3 00:18:49 CEST 2003  Jan Hubicka  <jh@suse.cz>
3982
3983         * i386.c (override_options):  Disable red zone by default on i386.
3984         (compute_frame_layout, ix86_force_to_memory, ix86_free_from_memory):
3985         Do not test TARGET_64BIT together with TARGET_RED_ZONE
3986
3987 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
3988
3989         * config/h8300/h8300.md (a peephole2): Tighten the condition.
3990
3991 2003-04-02  Richard Henderson  <rth@redhat.com>
3992
3993         * longlong.h (umul_ppmm) [alpha]: Use __builtin_alpha_umulh.
3994
3995 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
3996
3997         * config/h8300/h8300.md (a peephole2): New.
3998
3999 2003-04-02  Richard Henderson  <rth@redhat.com>
4000
4001         * except.c (sjlj_find_directly_reachable_regions): Recognize when
4002         must-not-throw region has been deleted.
4003
4004 2003-04-02  Richard Henderson  <rth@redhat.com>
4005
4006         * dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an
4007         optimization when flag_exceptions not enabled.
4008
4009 2003-04-02  Vladimir Makarov  <vmakarov@redhat.com>
4010
4011         * config/rs6000/rs6000.c
4012         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Redefine the
4013         macros.
4014         (rs6000_issue_rate): Add case for 8540.
4015         (rs6000_use_sched_lookahead): New function.
4016
4017         * config/rs6000/8540.md: Rename SIU units into SU ones and MIU
4018         units into MU ones.
4019         (ppc8540_branch, ppc8540_cr_logical): Add one cycle in the
4020         reservation before retirement.
4021         (ppc8540_multiply, ppc8540_load, ppc8540_store,
4022         ppc8540_simple_float, ppc8540_vector_load, ppc8540_vector_store):
4023         Remove additional cycle in the reservation before retirement.
4024         (ppc8540_mfcr, ppc8540_mtcrf, ppc8540_mtjmpr): Add missed
4025         reservation of ppc8540_issue.
4026
4027 2003-04-02  Andreas Schwab  <schwab@suse.de>
4028
4029         * real.c (decode_ieee_single): Fix decoding of SNaN bit.
4030
4031 2003-04-01  Richard Henderson  <rth@redhat.com>
4032
4033         * except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION
4034         notes for nothrow calls if flag_forced_unwind_exceptions.
4035         (build_post_landing_pads): Mind flag_forced_unwind_exceptions.
4036         (sjlj_find_directly_reachable_regions): Likewise.
4037         (reachable_handlers): Likewise.
4038         (can_throw_external): Likewise.
4039         (collect_one_action_chain): Record cleanups after catch-all and
4040         must-not-throw if flag_forced_unwind_exceptions.
4041         * flags.h (flag_forced_unwind_exceptions): Declare.
4042         * toplev.c (flag_forced_unwind_exceptions): New.
4043         (lang_independent_options): Add it.
4044         * doc/invoke.text: Add it.
4045
4046 2003-04-01  David Mosberger <davidm@hpl.hp.com>
4047
4048         * config/ia64/crti.asm: Clean up trailing whitespace.
4049         Remove trailing hashes (#) from identifiers.
4050
4051         * config/ia64/crtn.asm: Ditto.
4052
4053         * config/ia64/crtend.asm: Remove trailing hashes (#) from
4054         identifiers.
4055         (__do_global_ctors_aux): Align to 32-byte boundary.  Add unwind
4056         directives.  Drop explicit bundling---it just makes the code
4057         harder to read.  Don't save/restore gp needlessly.
4058
4059         * config/ia64/crtbegin.asm: Remove trailing hashes (#) from
4060         identifiers (they're only needed if the identifier would clash
4061         with a register name otherwise).
4062         (__do_global_dtors_aux): Align to 32-byte boundary. Add unwind
4063         directives.  Drop explicit bundling---it just makes the code
4064         harder to read.
4065         (__do_jv_register_classes): Ditto.
4066         (.fini_array): Remove "progbits" (newer
4067         assemblers don't like wrong section-types).
4068         (.init_array): Ditto.
4069
4070 2003-04-01  Roger Sayle  <roger@eyesopen.com>
4071
4072         PR fortran/9974
4073         * gcse.c (reg_killed_on_edge): New function to test whether the
4074         given reg is overwritten by any instruction queued on an edge.
4075         (bypass_block): Ignore substitutions killed on incoming edges.
4076         Don't bypass outgoing edges that have queued instructions.
4077
4078 2003-04-01  Alexandre Oliva  <aoliva@redhat.com>
4079
4080         * real.h (EXP_BITS): Make room for...
4081         (struct real_value): ... added canonical bit.
4082         (struct real_format): Added pnan.
4083         (mips_single_format, mips_double_format, mips_extended_format,
4084         mips_quad_format): New.
4085         * real.c: Copy p to pnan in all formats.
4086         (get_canonical_qnan, get_canonical_snan): Set canonical bit.
4087         (real_nan): Use pnan to compute significand's shift.
4088         (real_identical): Disregard significand in canonical
4089         NaNs.
4090         (real_hash): Likewise.  Take signalling into account.
4091         (encode_ieee_single, encode_ieee_double, encode_ieee_quad):
4092         Disregard significand bits in canonical NaNs.  Set all bits of
4093         canonical NaN if !qnan_msb_set.
4094         (encode_ibm_extended, decode_ibm_extended): Likewise.  Use
4095         qnan_msb_set to tell the base double format.
4096         (ibm_extended_format): Use 53 as pnan.
4097         (mips_single_format, mips_double_format, mips_extended_format,
4098         mips_quad_format): Copied from the corresponding ieee/ibm
4099         formats, with qnan_msb_set false.
4100         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Use mips_extended_format.
4101         * config/mips/linux64.h (MIPS_TFMODE_FORMAT): Use mips_quad_format.
4102         * config/mips/mips.c (override_options): Use mips_single_format
4103         and mips_double_format.  Default TFmode to mips_quad_format.
4104         * config/mips/t-linux64 (tp-bit.c): Define QUIET_NAN_NEGATED.
4105         * config/mips/t-irix6: Likewise.
4106         * config/mips/t-mips (fp-bit.c, dp-bit.c): Likewise.
4107         * config/fp-bit.c (pack_d, unpack_d): Obey it.
4108
4109 2003-04-01  Geoffrey Keating  <geoffk@apple.com>
4110
4111         * unwind-dw2-fde-darwin.c (DESTRUCTOR_MAY_BE_CALLED_LIVE): New.
4112         (live_image_destructor): Reset image to initial state.
4113         (examine_objects): Set DESTRUCTOR_MAY_BE_CALLED_LIVE.
4114
4115 2003-04-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
4116
4117         * config/sparc/sparc.c (input_operand): Accept bare
4118         CONSTANT_P_RTX operands.
4119
4120 2003-04-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4121
4122         * gcse.c (struct ls_expr): Added pattern_regs field.
4123         (ldst_entry): Initialize it.
4124         (extract_mentioned_regs, extract_mentioned_regs_helper): New.
4125         (store_ops_ok): Use regs precomputed by them.
4126         (find_loads, store_killed_in_insn, load_kills_store): Change return
4127         type to bool.
4128         (store_killed_before, store_killed_after): Take position of register
4129         set in account.
4130         (reg_set_info): Store position of the setter.
4131         (gcse_main): Enable store motion.
4132         (mems_conflict_for_gcse_p): Enable load motion of non-symbol mems.
4133         (pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent rtl
4134         sharing.
4135         (simple_mem): Enable store motion of non-symbol mems.
4136         (regvec): Type changed.
4137         (LAST_AVAIL_CHECK_FAILURE): New.
4138         (compute_store_table_current_insn): New.
4139         (build_store_vectors): Computation of availability and anticipatability
4140         moved ...
4141         (compute_store_table, find_moveable_store): ... here.
4142         (delete_store): Remove senseless comment.
4143         (store_motion): Reorganize.
4144
4145 2003-04-01  Kevin Buettner  <kevinb@redhat.com>
4146
4147         * config/mips/mips.c (override_options): Provide mappings for
4148         HI_REGNUM and LO_REGNUM.
4149         * config/mips/mips.h (MD_DBX_FIRST): Define.
4150
4151 2003-04-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4152
4153         * combine.c (merge_outer_ops): Fix typo.
4154
4155         * varasm.c (make_decl_one_only): Revert 2003-03-09 patch.
4156
4157 2003-04-01  David Edelsohn  <edelsohn@gnu.org>
4158
4159         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
4160         power4.md,rios1.md,rios2.md,rs64.md}: Change mult_compare to
4161         imul_compare.  Add lmul_compare.
4162         * config/rs6000/power4.md: Bump some latencies.  Model extra cycle
4163         in second pair of dispatch slots.  Model stores more accurately.
4164         Tweak multiply model.  Add bypasses for CR instructions dependent
4165         on complicated compares.
4166         * config/rs6000/rs6000.md (mulsi3): Name imul_compare patterns.
4167         (muldi3): Add lmul_compare patterns.
4168         * config/rs6000/rs6000.c (rs6000_variable_issue): Move FPLOAD_UX
4169         and FPSTORE_UX to split instructions and add COMPARE,
4170         DELAYED_COMPARE, IMUL_COMPARE, LMUL_COMPARE, IDIV, LDIV.
4171         (rs6000_adjust_cost): Add IMUL_COMPARE and LMUL_COMPARE.
4172         (rs6000_rtx_costs): Separate POWER4 multiply case.
4173
4174 2003-04-01  Ulrich Weigand  <uweigand@de.ibm.com>
4175
4176         * config/s390/s390.c (s390_fixup_clobbered_return_reg):
4177         Do nothing if __builtin_return_address was not used.
4178
4179 Tue Apr  1 18:18:23 CEST 2003  Jan Hubicka  <jh@suse.cz>
4180
4181         * i386.md (test patterns):  Allow memory operand in operand1.
4182
4183 2003-02-31  Aldy Hernandez  <aldyh@redhat.com>
4184
4185         * testsuite/gcc.c-torture/execute/simd-3.c: New.
4186
4187         * expr.c (expand_expr): Handle VECTOR_CST.
4188         (const_vector_from_tree): New.
4189
4190         * varasm.c (output_constant): Handle VECTOR_CST.
4191
4192         * c-typeck.c (digest_init): Build a vector constant from a
4193         VECTOR_TYPE.
4194
4195         * config/rs6000/rs6000.c: Remove prototype for
4196         easy_vector_constant.
4197         (easy_vector_constant): Add mode parameter.  Rewrite to handle
4198         more easy constants.
4199         (rs6000_emit_move): Pass mode to easy_vector_constant.
4200         Call emit_easy_vector_insn for SPE V2SI vector constant moves.
4201         (emit_easy_vector_insn): New.
4202         (easy_vector_same): New.
4203         (EASY_VECTOR_15): New macro.
4204         (EASY_VECTOR_15_ADD_SELF): New macro.
4205         (bdesc_2arg): Rename to xorv2si3.
4206         (easy_vector_constant_add_self): New.
4207         (input_operand): Allow vector constants.
4208
4209         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
4210         easy_vector_constant, easy_vector_constant_add_self.
4211         (EXTRA_CONSTRAINT): Add 'W'.
4212
4213         * config/rs6000/rs6000-protos.h: Add prototype for
4214         easy_vector_constant, emit_easy_vector_insn.
4215
4216         * config/rs6000/altivec.md (xorv8hi3): New.
4217         (xorv16qi3): New.
4218         Remove all _const0 patterns.
4219         (movv4si_internal): Rewrite to use code.  Add vector constant to
4220         vector alternative.  Add splitter.
4221         (movv8hi_internal): Same.
4222         (movv16qi_internal): Same.
4223         (movv4sf_internal): Same.
4224         Change the unspecs for vspltis* to use constants.
4225
4226         * config/rs6000/spe.md ("xorv4hi3"): New.
4227         ("spe_evxor"): Rename to xorv2si3.
4228         ("xorv1di3"): New.
4229         Remove all _const0 patterns.
4230         (movv2si_internal): Rewrite to use code.  Add vector constant to
4231         alternatives.  Add splitter.
4232         (movv4hi_internal): Add vector constant to alternatives.
4233         (movv1di_internal): Same.
4234         (movv2sf_internal): Same.
4235
4236 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
4237
4238         PR c/9936
4239         * c-decl.c (grokdeclarator): Clear SAVE_EXPR_CONTEXT for
4240         variably-sized arrays in parameters.
4241         (set_save_expr_context): New function.
4242         (c_expand_body): Use it, via walk_tree.
4243
4244 2003-03-31  Eric Christopher  <echristo@redhat.com>
4245
4246         * combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART.
4247         (combinable_i3pat): Remove call to expand_field_assignment and
4248         #if 0'd code.
4249
4250 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
4251
4252         PR c++/10278
4253         * c-common.c (finish_label_address_expr): Handle the
4254         error_mark_node.
4255
4256 2003-03-31  Richard Henderson  <rth@redhat.com>
4257
4258         * real.c (real_identical): Reorg so as to not compare
4259         signalling for normals.
4260
4261 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
4262
4263         * config/m68hc11/m68hc11.c (hard_reg_operand): Check the mode.
4264
4265 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
4266
4267         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0
4268         notes as they are boggus.
4269         (m68hc11_gen_movqi): Likewise.
4270
4271 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
4272
4273         * config/m68hc11/m68hc11.c (expand_prologue): For an interrupt handler
4274         save the soft registers after the frame pointer so that gdb can unwind
4275         the frame more easily.
4276         (expand_epilogue): Likewise in opposite order; allow to use X register
4277         as scratch if the return value is by reference.
4278
4279 2003-03-31  Jason Merrill  <jason@redhat.com>
4280
4281         PR java/10145
4282         * stor-layout.c (update_alignment_for_field): Respect
4283         DECL_USER_ALIGN for zero-length bitfields, too.
4284         * c-decl.c (finish_struct): Don't set DECL_ALIGN for normal
4285         fields.
4286
4287 2003-03-31  Matt Austern  <austern@apple.com>
4288
4289         * cpppch.c (struct cpp_savedstate): Add defs and n_defs members.
4290         (count_defs): Keep track of number of defs as well as total size.
4291         (write_defs): Put every definition in cpp_savedstate's defs array.
4292         (comp_hashnode): Define.  Comparison function for qsort.
4293         (cpp_write_pch_deps): Sort definitions before writing them.
4294         (struct ht_node_list): Define. Like cpp_savedstate but simpler.
4295         (collect_ht_nodes): Define.
4296         (cpp_valid_state): When verifying that undefined identifiers in
4297         the pch file are still undefined, read a sorted list of undefined
4298         identifiers, collect all defined identifiers into a sorted list,
4299         and walk through both lists to make sure there's no match.
4300
4301 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
4302
4303         * config/h8300/h8300.md (a peephole2): New.
4304
4305 2003-03-31  Michael Matz  <matz@suse.de>
4306
4307         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Change 1 into 0.
4308
4309 2003-03-31  Segher Boessenkool  <segher@koffie.nl>
4310
4311         PR target/10177
4312         * config/rs6000/rs6000.h (HARD_REGNO_RENAME_OK): New.
4313         * config/rs6000/rs6000.c (compute_vrsave_mask): Don't mark
4314         all call-clobbered registers as used.
4315
4316 2003-03-31  Michael Matz  <matz@suse.de>
4317
4318         * cppexp.c (cpp_classify_number): Accept '.' after "0x".
4319         * testsuite/gcc.dg/cpp/c99-hexfloat-3.c: New file.
4320
4321 2003-03-31  Nathan Sidwell  <nathan@codesourcery.com>
4322
4323         * gcov.c: Add -a & -u options.
4324         (struct arc_info): Add local_span, is_call_non_return,
4325         is_nonlocal_return, is_unconditional flags, remove is_call flag.
4326         (struct block_info): Add flags, is_call_site, is_nonlocal_return
4327         members. Make encodings a union with span member.
4328         (struct function_info): Add blocks_executed, line, src, line_next
4329         members.
4330         (struct coverage_info): Make branches a union with blocks member.
4331         (struct source_info): Add functions member.
4332         (object_summary, program_count): New global variables.
4333         (flag_all_blocks, flag_unconditional): New flags.
4334         (find_source, output_branch_count): New functions.
4335         (print_usage): Adjust.
4336         (options): Adjust.
4337         (process_args): Adjust.
4338         (read_graph_file) <GCOV_TAG_FUNCTION>: Adjust.
4339         <GCOV_TAG_BLOCKS>: Read flags.
4340         <GCOV_TAG_LINES>: Adjust.
4341         (read_count_file): Process SUMMARY tags.
4342         (solve_flow_graph): Set is_unconditional and clear is_call_site
4343         appropriately.
4344         (add_branch_counts): Adjust. Don't count unconditional branches.
4345         (add_line_counts): Deal with all-blocks mode, accumulate block
4346         coverage.
4347         (accumulate_line_counts): Adjust, generate local spanning tree for
4348         all-blocks mode.
4349         (output_lines): Adjust.
4350         * profile.c (branch_prob): Alter GCOV_FUNCTION_TAG record.
4351         * doc/gcov.texi: Document.
4352
4353 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
4354
4355         * config/h8300/h8300.md: Organize peephole2's that transform
4356         (compare (reg:HI) (const_int)).
4357
4358 2003-03-31  Roger Sayle  <roger@eyesopen.com>
4359
4360         * emit-rtl.c (dconstm2, dconsthalf): New real constants.
4361         (init_emit_once): Initialize dconstm2 and dconsthalf here.
4362         * real.h (dconstm2, dconsthalf): Add prototypes here.
4363         * real.c (real_sqrt): Use dconsthalf rather than local copy.
4364         * builtins.c (fold_builtin): When optimizing sqrt(exp(x)) as
4365         exp(x/2.0) remember to fold the division if possible.
4366         Fold sin(0.0) as 0.0, cos(0.0) as 1.0, pow(x,1.0) as x,
4367         pow(x,-1.0) as 1.0/x, pow(x,2.0) as x*x, pow(x,-2.0) as
4368         1.0/(x*x) and pow(x,0.5) as sqrt(x).
4369
4370 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
4371
4372         * config/h8300/h8300.md (a new peephole2): New.
4373
4374 2003-03-31  Richard Sandiford  <rsandifo@redhat.com>
4375
4376         * gcse.c (simple_mem): Return false for floating-point accesses
4377         if flag_float_store is true.
4378
4379 2003-03-30  Roger Sayle  <roger@eyesopen.com>
4380
4381         * gcse.c (gcse_constant_p): New function to identify constants
4382         suitable for constant propagation, including COMPARE with two
4383         integer constant arguments.
4384         (hash_scan_set): Use gcse_constant_p.
4385         (find_avail_set): Likewise.
4386         (cprop_insn): Likewise.
4387         (do_local_cprop): Likewise.
4388         (find_implicit_sets): Likewise.
4389         (find_bypass_set): Likewise.
4390
4391 2003-03-30  Matt Kraai  <kraai@alumni.cmu.edu>
4392
4393         * except.h: Remove definition of varray_type.
4394
4395 2003-03-30  Richard Henderson  <rth@redhat.com>
4396
4397         PR opt/10011, opt/10252:
4398         * toplev.c (rest_of_compilation): Run purge_builtin_constant_p
4399         before post-gcse cse pass.
4400
4401 2003-03-30  Roger Sayle  <roger@eyesopen.com>
4402
4403         * dojump.c (do_jump): Copy SUBREGs into a pseudo for comparison.
4404
4405 2003-03-30  DJ Delorie  <dj@redhat.com>
4406
4407         * profile.c (instrument_edges): Make sure any newly created
4408         jump insns have correct jump label info.
4409
4410 2003-03-30  Richard Henderson  <rth@redhat.com>
4411
4412         * cfgbuild.c (make_edges): Use tablejump_p.
4413         * cfgcleanup.c (label_is_jump_target_p): Likewise.
4414         * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
4415         * cfgrtl.c (flow_delete_block_noexpunge): Likewise.
4416         (try_redirect_by_replacing_jump): Likewise.
4417         (redirect_edge_and_branch): Likewise.
4418         * cse.c (fold_rtx): Likewise.
4419         * jump.c (delete_related_insns): Likewise.
4420         * rtlanal.c (get_jump_table_offset): Likewise.
4421         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): Likewise.
4422
4423 2003-03-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4424
4425         * Makefile.in (STRICT_WARN): Don't warn for ISO C constructs.
4426         (STRICT2_WARN): Likewise.
4427
4428 2003-03-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4429
4430         PR other/6955
4431         * collect2.c (collect_wait): Use WCOREDUMP and fix output message.
4432         * system.h (WCOREDUMP, WCOREFLG): Define if necessary.
4433
4434 2003-03-30  Richard Henderson  <rth@redhat.com>
4435
4436         PR c/10083
4437         * config/alpha/alpha.md (umuldi3_highpart): Change to expander;
4438         don't zero_extend const inputs.
4439
4440 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
4441
4442         * reload1.c (reload_cse_move2add): Fix a comment typo.
4443
4444 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
4445
4446         * config/h8300/h8300.md (a peephole2): Remove useless code.
4447
4448 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
4449
4450         * config/h8300/h8300.md (*iorsi3_and_ashift): New.
4451         (*iorsi3_and_lshiftrt): Likewise.
4452         (*iorsi3_zero_extract): Likewise.
4453
4454 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
4455
4456         * config/h8300/h8300.md (*insv_si_8_8): New.
4457         (*insv_si_8_8_lshiftrt_8): Likewise.
4458         (a peephole2): Likewise.
4459
4460 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4461
4462         * doc/contrib.texi: Add Eric Botcazou and Roger Sayle.
4463         Uniformly use bugfix instead of bug fix.
4464
4465 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4466
4467         PR doc/895
4468         * ONEWS: Remove those items that already appear in the EGCS
4469         release notes on our web pages.
4470
4471 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
4472
4473         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Respect
4474         TARGET_HARD_FLOAT.  Reformat.
4475         (FUNCTION_ARG_REGNO_P): Likewise, and remove unneeded casts.
4476
4477 2003-03-28  Albert Chin-A-Young  <china@thewrittenword.com>
4478
4479         * gcc/fixinc/inclhack.def: Update solaris_mutex_init_1 to
4480         work on Solaris 2.5.1.
4481
4482 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>
4483
4484         * config/h8300/h8300.md (*addsi3_and_r_1): Put under plus:SI
4485         section of h8300.md
4486         (*addsi3_and_nor_r_1): Likewise.
4487
4488 2003-03-29  Ulrich Weigand  <uweigand@de.ibm.com>
4489
4490         * config/s390/s390.c (s390_emit_prologoue): Make sure backchain is
4491         set up before any trapping memory access if flag_non_call_exceptions.
4492
4493 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
4494
4495         * reload1.c (reload_as_needed): Allow a USE in asm reloads.
4496
4497         * loop.c: (find_mem_in_note_1, find_mem_in_note): Comment.
4498
4499 2003-03-28  Nathanael Nerode  <neroden@gcc.gnu.org>
4500
4501         * configure.in: Clarify comments.
4502         * configure: Regenerate.
4503
4504 2003-03-28  Ulrich Weigand  <uweigand@de.ibm.com>
4505
4506         * config/s390/s390.md ("literal_pool_31"): Output pool anchor
4507         label even if pool empty when generating PIC.
4508         ("literal_pool_31", "literal_pool_64"): Coding style cleanup.
4509
4510 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>,
4511             Dhananjay Deshpande  <dhananjayd@kpit.com>
4512
4513         PR target/10205
4514         * config/h8300/h8300.c (h8300_initial_elimination_offset):
4515         Correct the offset computation when TARGET_NORMAL.
4516
4517 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
4518
4519         PR target/10067
4520         * config/sparc/sparc.md (jump pattern): Correct order
4521         when issuing the annuling marker.
4522
4523 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
4524
4525         PR c/8281
4526         * config/sparc/sparc.md (movdi_insn_sp32_v9): Remove 'f-f' alternative.
4527         (movdi reg/reg split): Match only on sparc32, and v9 when int regs.
4528
4529 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
4530
4531         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
4532         globalize_label.
4533         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4534         * config/i960/i960.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4535         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4536         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4537         * config/mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4538         * config/sparc/sparc.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4539         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
4540
4541 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
4542
4543         * loop.c: (find_mem_in_note_1, find_mem_in_note): New functions.
4544         (replace_loop_mems): Add "written" param.  Remove invalid REG_EQUAL
4545         notes after hoisting.
4546         (load_mems): Adjust replace_loop_mems call.
4547
4548 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
4549             Richard Henderson  <rth@redhat.com>
4550
4551         PR target/10114 and PR target/10084
4552         * dwarf2out.c (mem_loc_descriptor): Handle LO_SUM.
4553
4554 2003-03-27  Richard Henderson  <rth@redhat.com>
4555
4556         * config/alpha/alpha.md (adddi_er_high_l): Valid only after reload.
4557
4558 2003-03-27  Roger Sayle  <roger@eyesopen.com>
4559
4560         * fold-const.c (fold_inf_compare):  New function to simplify FP
4561         comparisons against +Infinity or -Infinity.
4562         (fold):  Optimize floating point comparisons against Infs and NaNs.
4563
4564 2003-03-27  Janis Johnson  <janis187@us.ibm.com>
4565
4566         * libgcov.c: Provide only dummy functions if libc is not available.
4567
4568 2003-03-27  Richard Henderson  <rth@redhat.com>
4569
4570         * real.h (struct real_value): Add signalling.
4571         (EXP_BITS): Decrement.
4572         * real.c (get_canonical_qnan): Don't set MSB-1.
4573         (get_canonical_snan): Likewise.  Set signalling.
4574         (real_identical): Compare signalling.
4575         (round_for_format): Remove force-one-bit on code.
4576         (real_nan): Likewise.  Set signalling.
4577         (encode_ieee_single): Add force-one-bit code; honor signalling.
4578         (encode_ieee_double, encode_ieee_extended, encode_ieee_quad): Likewise.
4579         (decode_ieee_single): Set signalling.
4580         (decode_ieee_double, decode_ieee_extended, decode_ieee_quad): Likewise.
4581
4582 2003-03-27  Olivier Hainque  <hainque@act-europe.fr>
4583
4584         PR ada/9953
4585         * ada/Makefile.in (gnatlib configuration for HPUX): Split
4586         the general section for HPUX into specific sections for
4587         HPUX 10 and HPUX 11. Fix the setting of TGT_LIB in the HPUX
4588         11 case.
4589
4590 2003-03-27  Glen Nakamura  <glen@imodulo.com>
4591
4592         PR opt/10087
4593         * loop.c (loop_givs_reduce): Skip bivs with duplicate locations
4594         while incrementing giv.
4595         (record_biv): Check for duplicate biv locations and
4596         set (struct induction *) v->same if found.
4597
4598 2003-03-27  David Mosberger  <davidm@hpl.hp.com>
4599
4600         * unwind-libunwind.c (uw_frame_state_for): Adjust for libunwind
4601         v0.9 API change: replace read of UNW_REG_HANDLER with
4602         unw_get_proc_info().
4603         (_Unwind_GetLanguageSpecificData): Replace read of UNW_REG_LSDA
4604         with unw_get_proc_info().
4605         (_Unwind_GetRegionStart): Replace UNW_REG_PROC_START with
4606         unw_get_proc_info().
4607
4608 2003-03-27  Vladimir Makarov  <vmakarov@redhat.com>
4609
4610         * config/rs6000/8540.md: Use presence_set instead of absence_set.
4611
4612 2003-03-26  Richard Henderson  <rth@redhat.com>
4613
4614         * c-decl.c (finish_function): Always defer if DECL_DECLARED_INLINE_P.
4615
4616 2003-03-26  Roger Sayle  <roger@eyesopen.com>
4617
4618         PR bootstrap/10051, PR bootstrap/10169.
4619         * mips-tfile.c (init_file): Don't provide a static initializer.
4620         (initialize_init_file): Initialize the contents of init_file.
4621         (add_file): Call initialize_init_file if not already initialized.
4622
4623 2003-03-26  Ulrich Weigand  <uweigand@de.ibm.com>
4624
4625         * config/s390/s390.c (s390_optimize_prolog): Do not save/restore
4626         registers used for global asm variables.
4627         (s390_frame_info, s390_arg_frame_offset): Likewise.
4628         (s390_emit_prologue, s390_emit_epilogue): Likewise.
4629
4630 2003-03-26  Vladimir Makarov  <vmakarov@redhat.com>
4631
4632         * config/rs6000/8540.md: New file.
4633
4634         * config/rs6000/{40x.md, 603.md, 6xx.md, 7450.md, 7xx.md, mpc.md,
4635         power4.md, rios1.md, rios2.md, rs64.md}: Add mult_compare to
4636         reservations for imul.
4637
4638         * config/rs6000/rs6000.md: Include 8540.md.  Change
4639         delayed_compare onto mult_compare for insns generating
4640         multiplication.
4641         (mult_compare, fpsimple, brinc, vecdiv, veccmpsimple, vecfdiv):
4642         New type attribute values.
4643
4644         * config/rs6000/spe.md (*negsf2_gp, *abssf2_gpr): Use type
4645         fpsimple instead of fp.
4646         (*divsf3_gpr): Use type vecfdiv instead of fp.
4647         (spe_evfsabs, spe_evfsnabs, spe_evfsneg): Use type vecsimple
4648         instead of vecfloat.
4649         (spe_evfsdive): Use type vecfdiv instead of vecfloat.
4650         (spe_brinc): Use type brinc instead of veccomplex.
4651         (spe_evaddw, spe_evaddiw): Use type vecsimple instead of
4652         veccomplex.
4653         (spe_evdivws, spe_evdivwu): Use type vecdiv instead of veccomplex.
4654         (*movv2si_internal, *movv1di_internal, *movv4hi_internal,
4655         *movv2sf_internal): Define type attribute values for all
4656         alternatives.
4657         (cmpsfeq_gpr, cmpsfgt_gpr, cmpsflt_gpr): Use type veccmp instead
4658         of fpcompare.
4659         (tstsfeq_gpr, tstsfgt_gpr, tstsflt_gpr): Use type veccmpsimple
4660         instead of fpcompare.
4661
4662 2003-03-26  David Edelsohn  <edelsohn@gnu.org>
4663
4664         * config/rs6000/power4.md: Allow delay between dispatch and
4665         function units for simple instructions.  Correct store units.
4666         Allow branch to occupy as many dispatch slots as necessary.
4667
4668 2003-03-26  Jakub Jelinek  <jakub@redhat.com>
4669
4670         * config/ia64/ia64.c (ia64_expand_op_and_fetch): Fix comment.
4671         (ia64_expand_compare_and_swap): Use always DImode ar.ccv,
4672         zero extend old to it.
4673         * config/ia64/ia64.md (cmpxchg_acq_si): Remove mode from ccv
4674         operand.
4675
4676 2003-03-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
4677
4678         PR target/7784
4679         * reload.c (find_reloads_address): Handle
4680         (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for
4681         all base registers.
4682
4683 2003-03-25  Marcelo Abreu  <mmabreu@inf.ufrgs.br>
4684
4685         PR other/10203
4686         * version.c: Reference the GCC web site in the URL.
4687
4688 2003-03-26  Alan Modra  <amodra@bigpond.net.au>
4689
4690         * c-incpath.c (add_standard_paths): Add both "translated" and
4691         non-translated header paths.
4692
4693 2003-03-25  Loren James Rittle  <ljrittle@acm.org>
4694
4695         * doc/install.texi (*-*-freebsd*): Update with known status.
4696
4697 2003-03-21  Jason Merrill  <jason@redhat.com>
4698
4699         PR optimization/10171
4700         * unroll.c (unroll_loop): Don't delete the jump at the end unless
4701         we also delete a jump at the beginning.
4702
4703 2003-03-25  Stephane Carrez  <stcarrez@nerim.fr>
4704
4705         * doc/contrib.texi (Contributors): Mention self as 68HC11/68HC12
4706         contributor.
4707
4708 Tue Mar 25 20:35:51 CET 2003  Jan Hubicka  <jh@suse.cz>
4709
4710         * i386.c (ix86_rtx_costs): For -fpic and x86-64 local symbolic
4711         constants are not expensive.
4712
4713 Mon Mar 24 20:03:03 CET 2003  Jan Hubicka  <jh@suse.cz>
4714
4715         PR opt/10056
4716         * cfglayout.c (fixup_reorder_chain):  Fix dealing with the conditional
4717         jump jumping to the next instruction.
4718         * cfgrtl.c (force_nonfallthru_and_redirect):  Likewise.
4719
4720 2003-03-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4721
4722         * doc/passes.texi (Passes): Properly document that we do not
4723         perform jump2 any longer; remove command-line option -dJ.
4724
4725 2003-03-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4726
4727         PR optimization/8746
4728         * config/i386/i386.md (and promoting splitters): Disable HImode to
4729         SImode promoting when the sign bit matters and is not preserved, or
4730         when TARGET_FAST_PREFIX is true. Disable promoting when optimizing
4731         for size.
4732
4733 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
4734
4735         * config/h8300/h8300.md (a peephole2): Extend to support loads
4736         in QImode and HImode.
4737
4738 2003-03-24  Stephane Carrez  <stcarrez@nerim.fr>
4739
4740         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Add _call_far and
4741         _return_far
4742         (MULTILIB_OPTIONS): Don't multilib on -mlong-calls.
4743         (MULTILIB_EXCEPTIONS): Likewise.
4744         * config/m68hc11/m68hc11.md ("call"): Support far calls for 68HC11
4745         by calling some board support routine.
4746         ("call_value"): Likewise.
4747         ("*return_void"): Likewise for return.
4748         ("*return_16bit"): Likewise.
4749         ("*return_32bit"): Likewise.
4750         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Generate .far
4751         for 68HC11 too.
4752         (DWARF2_ADDR_SIZE): Use 4 so that addresses can
4753         * config/m68hc11/m68hc11.c (m68hc11_override_options): Accept
4754         -mlong-calls for 68HC11.
4755         * config/m68hc11/larith.asm (declare_near): New macro.
4756         (__premain, ___negsi2, ___one_cmplsi2, ___ashlsi3): Use it.
4757         (___ashrsi3, ___lshrsi3, ___lshrhi3, ___lshlhi3): Likewise.
4758         (___rotrhi3, ___rotlhi3, ___ashrhi3, ___ashrqi3): Likewise.
4759         (___lshlqi3, __divmodhi4, ___mulqi3, ___mulhi3): Likewise.
4760         (__mulhi32): Likewise.
4761         (ret): Update macro for 68HC11.
4762         (__far_trampoline): Implement for 68HC11.
4763         (__call_a16, __call_a32, __return_void, __return_16): New support
4764         routines for 68HC11 memory bank switching calling support.
4765         (__return_32): Likewise.
4766
4767 2003-03-24  Neil Booth  <neil@daikokuya.co.uk>
4768
4769         * toplev.c (independent_decode_option): Don't skip a 'Y' prefix.
4770
4771 2003-03-24  Janis Johnson  <janis187@us.ibm.com>
4772
4773         * doc/install.texi (Testing): Mention test result links from build
4774         status pages.
4775
4776 2003-03-24  Mark Mitchell  <mark@codesourcery.com>
4777
4778         * function.c (put_var_into_stack): Change bool parameter to int.
4779         (gen_mem_addressof): Likewise.
4780         * rtl.h (gen_mem_addressof): Likewise.
4781         * tree.h (put_var_into_stack): Likewise.
4782         * config/alpha/alpha.c (alpha_gp_save_rtx): Adjust call to
4783         gen_mem_addressof or put_var_into_stack.
4784         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
4785         * config/ia64/ia64.c (spill_tfmode_operand): Likewise.
4786
4787 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
4788
4789         * config/h8300/h8300.md (a peephole2): New.
4790
4791 2003-03-24  Jakub Jelinek  <jakub@redhat.com>
4792
4793         * dojump.c (do_jump): Handle UNSAVE_EXPR specially.
4794
4795 2003-03-24  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4796
4797         * doc/contrib.texi (Contributors): Update Janis Johnson.
4798
4799 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
4800
4801         PR target/10072
4802         * combine.c (simplify_if_then_else): Check that the mode
4803         has MODE_INT class before applying the (OP Z (mult COND C2))
4804         transformation.
4805
4806 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
4807
4808         PR optimization/9414
4809         * config/sparc/sparc.md (widening peepholes): Use
4810         widen_memory_access instead of change_address.
4811
4812 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
4813
4814         PR c++/7086
4815         * c-typeck.c (c_mark_addressable): Adjust calls to
4816         put_var_into_stack.
4817         * expr.c (expand_expr): Likewise.
4818         * function.c (put_var_into_stack): Add rescan parameter.  Do not
4819         call fixup_var_refs when rescan is false.
4820         (gen_mem_addressof): Likewise.
4821         (assign_parms): Adjust calls to put_var_into_stack.
4822         (setjmp_protect): Likewise.
4823         (setjmp_protect_args): Likewise.
4824         * rtl.h (gen_mem_addressof): Change prototype.
4825         * stmt.c (expand_decl): Adjust calls to put_var_into_stack.
4826         * tree.h (put_var_into_stack): Change prototype.
4827
4828 2003-03-23  Arpad Beszedes <beszedes@cc.u-szeged.hu>
4829
4830         PR middle-end/9967
4831         * builtins.c (expand_builtin_fputs): When optimizing for size,
4832         don't transform fputs into fwrite.
4833
4834 2003-03-23  Glen Nakamura <glen@imodulo.com>
4835
4836         PR c/8224
4837         * fold-const.c (extract_muldiv_1): Don't pass through type conversions
4838         when signedness changes for division or modulus.
4839
4840 2003-03-24  Alan Modra  <amodra@bigpond.net.au>
4841
4842         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
4843         globalize_label.
4844
4845 2003-03-23  Roger Sayle  <roger@eyesopen.com>
4846
4847         PR c/10178
4848         * stmt.c (expand_end_case_type): Check for overflow in range when
4849         determining whether to use a bit-test implementation.
4850
4851 2003-03-23  Richard Henderson  <rth@redhat.com>
4852
4853         * cfgcleanup.c (try_optimize_cfg): Allow merging of tablejumps
4854         before flow2.
4855         * cfgrtl.c (try_redirect_by_replacing_jump): Similarly.
4856
4857 2003-03-23  Richard Henderson  <rth@redhat.com>
4858
4859         PR opt/10116
4860         * ifcvt.c (find_if_block): Disallow tablejump insns outgoing
4861         from then_bb or else_bb after flow2.
4862
4863 2003-03-23  Zack Weinberg  <zack@codesourcery.com>
4864
4865         * configure.in: Check whether it is necessary to link against
4866         libm to use ldexp.
4867         * configure: Regenerate.
4868         * Makefile.in: Add LDEXP_LIB substitution variable.
4869
4870 2003-03-23  Kazu Hirata  <kazu@cs.umass.edu>
4871
4872         * config/h8300/h8300.md: Fix comment typos.
4873
4874 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4875
4876         * pa.c (output_cbranch): Fix typo in comment.
4877
4878 2003-03-22  Richard Henderson <rth@redhat.com>
4879
4880         * cfgcleanup.c (insns_match_p): Do not do EQUIV substitution
4881         after reload.
4882
4883 2003-03-22  DJ Delorie  <dj at redhat dot com>,
4884         Bruce Korb  <bkorb at gnu dot org>
4885
4886         * fixinc/inclhack.def (solaris_mutex_init_1): New; Fix
4887         buggy Solaris 2.6 mutex/cond initializers.
4888         (solaris_mutex_init): Rename to solaris_mutex_init_2.
4889         * fixinc/fixincl.x: Regenerate.
4890         * fixinc/tests/base/pthread.h: Update.
4891         * fixinc/fixincl.c(initialize): be explicit about the default case
4892         and indicate verbose level when being very, very verbose.
4893         * fixinc/check.tpl(VERBOSE): provide a means for passing the value in
4894
4895 2003-03-22  Andreas Jaeger  <aj@suse.de>
4896
4897         * config/i386/i386.c (ix86_init_machine_status): Return value.
4898
4899 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4900
4901         * pa.c (output_cbranch, output_bb, output_bvb): Output nop for
4902         conditional branch to the following instruction.  Use next_real_insn
4903         instead of next_active_insn.
4904         (output_dbra, output_movb, jump_in_call_delay): Use next_real_insn
4905         instead of next_active_insn.
4906
4907 2003-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
4908
4909         * config/s390/s390.md ("movti", "*movdi_31", "*movdf_31"): Use 'o'
4910         instead of 'm' constraint in forced-split alternatives.
4911         ("*adddi3_31", "*subdi3_31"): Likewise.  Also, pass 0 instead of 1 as
4912         VALIDATE_ADDRESS parameter to operand_subword.
4913
4914 2003-03-22  Kazu Hirata  <kazu@cs.umass.edu>
4915
4916         * config/h8300/h8300.c (notice_update_cc): Correctly handle
4917         the case where the set destination is STRICT_LOW_PART.
4918
4919 2003-03-22  Svein E. Seldal  <Svein.Seldal@solidas.com>
4920
4921         * config/c4x/t-c4x (INSTALL_LIBGCC): Make gcc recognize a c33 as a
4922         c30 instead of a c40 processor.
4923
4924 2003-03-22  Alan Modra  <amodra@bigpond.net.au>
4925
4926         * combine.c (simplify_comparison <AND>): Use gen_int_mode.  Tidy.
4927
4928 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
4929
4930         * c-common.c: Include intl.h.
4931         (shadow_warning): Rewrite to allow better diagnostic translations.
4932         * c-common.h: Update prototype of shadow_warning.  Declare sw_kind enum.
4933         * c-decl.c (warn_if_shadowing): Update calls to shadow_warning;
4934         use it throughout.
4935         * Makefile.in (c-common.o): Add intl.h.
4936
4937 2003-03-21  Nathanael Nerode  <neroden@gcc.gnu.org>
4938
4939         * config.gcc: Remove 'float_format'.
4940
4941         * fixproto: Define NULL and size_t in generated stdlib.h and
4942         unistd.h.  Kill unused required_stdlib_h, required_unistd_h.
4943         Rearrange file generation loop for readability.  Generate time.h,
4944         string.h if missing.
4945         * tsystem.h: Include <string.h>, <time.h> unconditionally.
4946         * config.gcc: Blow away POSIX defines.
4947
4948 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
4949
4950         * config/m68hc11/m68hc11.md ("call_value"): Fix trap check.
4951
4952 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
4953
4954         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Fix typo in
4955         writing .interrupt command.
4956         * config/m68hc11/m68hc11.md ("call"): Look at the symbol to see
4957         if it's a far or near function.
4958         ("call_value"): Likewise.
4959         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Add far and
4960         near attributes.
4961         (m68hc11_handle_fntype_attribute): Accept attributes on methods.
4962         (m68hc11_override_options): Ignore -mlong-calls for 68HC11.
4963         (m68hc11_initial_elimination_offset): Set current_function_far
4964         according to attributes.
4965         (expand_prologue): Likewise.
4966         (trap_handler_symbol): New global to keep track of trap handlers.
4967         (m68hc11_encode_section_info): Mark symbol as far if needed; set
4968         trap symbol.
4969         (m68hc11_is_far_symbol): New function.
4970         (m68hc11_is_trap_symbol): New function.
4971         * config/m68hc11/m68hc11-protos.h (m68hc11_is_far_symbol): Declare.
4972         (m68hc11_is_trap_symbol): Declare.
4973
4974 2003-03-21  Jan Hubicka  <jh@suse.cz>
4975
4976         * i386.c (ix86_compute_frame_layout): Recompute fast prologues
4977         only when amount of saved regs changed.
4978         (ix86_init_machine_status): Initialize use_fast_prologue_epilgoue_nregs.
4979         * i386.h (machine_function): New fields use_fast_prologue_epilgoue_nregs.
4980
4981 2003-03-21  Jan Hubicka  <jh@suse.cz>
4982
4983         PR inline-asm/7916
4984         * function.c (instantiate_virtual_regs_lossage): New function.
4985         (instantiate_virtual_regs_1): Use it.
4986         (instantiate_virtual_regs): Do not continue in substition when insn has
4987         been deleted.
4988
4989 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
4990
4991         * combine.c (make_field_assignment): Fix a warning.
4992
4993 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
4994
4995         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt_16): New.
4996
4997 2003-03-21  Dale Johannesen  <dalej@apple.com>
4998
4999         * config/rs6000/rs6000.h (REG_ALLOC_ORDER):  Increase
5000         priority for R2 on Darwin.
5001         (HARD_REGNO_MODE_OK):  Don't accept R31 for DFmode.
5002
5003 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
5004
5005         * combine.c (make_field_assignment): Remove unnecessary AND
5006         when storing into zero_extract.
5007
5008 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
5009
5010         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT, gcc_AC_C_FLOAT_FORMAT): Delete.
5011         * configure.in: Don't call gcc_AC_C_FLOAT_FORMAT.
5012         * defaults.h: Remove reference to HOST_FLOAT_WORDS_BIG_ENDIAN
5013         in comment.
5014
5015 2003-03-21  DJ Delorie  <dj@redhat.com>
5016
5017         * optabs.c (init_integral_libfuncs): Make sure we init at least up
5018         to "long long" size words.
5019
5020 2003-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
5021
5022         * config/s390/s390.h: Do not include fixdfdi.h on s390x.
5023         (TARGET_64BIT): Define as compile-time constant when IN_LIBGCC2.
5024         (MIN_UNITS_PER_WORD): Do not define when IN_LIBGCC2.
5025
5026 2003-03-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5027
5028         PR doc-bug/9813
5029         * doc/extend.texi: Move misplaced paragraph about underscores in
5030         variables in macros.
5031
5032 2003-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
5033             Richard Henderson  <rth@redhat.com>
5034
5035         PR optimization/8366
5036         * config/sparc/sparc.h: (SYMBOLIC_CONST): New macro.
5037         (GO_IF_LEGITIMATE_ADDRESS): Use it. Reject the form
5038         PIC+SYMBOLIC_CONST in other modes than Pmode.
5039         (GO_IF_MODE_DEPENDENT_ADDRESS): Use it. Mark
5040         the form PIC+SYMBOLIC_CONST as mode dependent.
5041
5042 2003-03-21  DJ Delorie  <dj@redhat.com>
5043
5044         * config/stormy16/stormy16.c (xstormy16_expand_arith): Make
5045         sure we always emit at least one insn.
5046
5047 2003-03-21  Christopher Faylor  <cgf@redhat.com>
5048
5049         * config.gcc (i[34567]86-*-cygwin*): Use new common makefile
5050         stub t-cygming. Use common target header cygming.h. Add extra
5051         c_target_obj and cxx_target_obj file. Default cygwin to posix
5052         threading. Enforce i386 as float format.
5053         (i[34567]86-*-mingw*): Use new common makefile stub t-cygming.
5054         Remove cygwin.h as target header. Use common target header
5055         cygming.h  Enforce i386 as float format. Correct typo.
5056         * config/i386/cygming.h: New file, containing definitions
5057         common to mingw32 and cygwin.
5058         * config/i386/cygwin.h: Remove definitions common to cygwin and
5059         mingw.  Simplify special spec logic.  Define "wrappers" around
5060         certain include path defines to accommodate -mno-cygwin.
5061         Remove some #if 0'ed code.
5062         (STANDARD_INCLUDE_DIR) Always define when not cross-compiling.
5063         (LINK_SPEC): Don't use cyg search prefix when -mno-cygwin.
5064         (GCC_DRIVER_HOST_INITIALIZATION): Define as call to mingw_scan.
5065         * config/i386/mingw32.h: Remove definitions common to cygwin and
5066         mingw.
5067         (EXTRA_OS_CPP_BUILTINS): Adjust.
5068         (TARGET_VERSION): Define.
5069         * config/i386/crtdll.h (EXTRA_OS_CPP_BUILTINS): Override
5070         mingw32.h definitions.
5071         (LIBGCC_SPEC): Add libmingwex.a as in mingw32.h.
5072         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Define as cygwin1.o.
5073         Add compilation rules for cygwin1.o cygwin2.o.
5074         * config/i386/cygwin1.c: New file.
5075         * config/i386/cygwin2.c: New file.
5076         * config/i386/t-cygming: New makefile stub.
5077
5078 2003-03-20  Richard Henderson  <rth@redhat.com>
5079
5080         * fold-const.c (extract_muldiv_1): Revert changing order of
5081         operands in case MULT_EXPR of 2003-02-16 patch.
5082
5083 2003-03-20  Daniel Berlin  <dberlin@dberlin.org>
5084         Merge changes from new-regalloc-branch
5085
5086         From Michael Matz  <matz@suse.de>
5087         * df.c (df_ref_record_1): Move init of loc to safe point.
5088         Only recurse on interesting things in parallels.
5089         Handle CLASS_CANNOT_CHANGE_MODE smarter.
5090         (df_uses_record): Ditto.
5091
5092         * df.h (DF_REF_MEM_OK): New enum member, used to mark ref's which
5093         it's already okay to use memory operands in (IE doesn't require
5094         adding another insn or anything).
5095
5096 2003-03-20  Richard Henderson  <rth@redhat.com>
5097
5098         PR middle-end/6348
5099         * explow.c (allocate_dynamic_stack_space): Handle STACK_SIZE_MODE
5100         different from word_mode.
5101
5102 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5103
5104         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt): Restrict the
5105         source operand to those that can be extracted with bld.
5106
5107 2003-03-20  Richard Earnshaw  <rearnsha@arm.com>
5108
5109         PR 10066
5110         * arm.md (UNSPEC_PIC_BASE): New constant.
5111         (pic_add_dot_plus_four): Wrap with unspec.
5112         (pic_add_dot_plus_eight): Likewise.
5113
5114 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5115
5116         * config/h8300/h8300.md (*insv_si_1_n): New.
5117         (*insv_si_1_n_lshiftrt): Likewise.
5118
5119 2003-03-20  Roger Sayle  <roger@eyesopen.com>
5120
5121         * fold-const.c (fold_mathfn_compare): New function to simplify
5122         comparisons against built-in math functions.  Fold comparisons
5123         of sqrt against constants.
5124         (fold): Call fold_mathfn_compare when appropriate.
5125
5126 2003-03-20 Richard Earnshaw  <rearnsha@arm.com>
5127
5128         * ifcvt.c (find_if_case_1): If we add a new bb, update the dominance
5129         information.
5130
5131 2003-03-20  Per Bothner  <pbothner@apple.com>
5132
5133         Various cleanups to help compile server.
5134
5135         * cppinit.c (cpp_create_reader):  Take extra hash_table* argument,
5136         and pass that to _cpp_init_hashtable.
5137         (cpp_read_main_file):  Drop hash_table* argument; don't call
5138         _cpp_init_hashtable.
5139         * cpplib.h:  Update declarations to match.
5140         * c-opts.c (c_common_init_options):  Pass ident_hash to
5141         cpp_create_reader.
5142         (c_common_post_options):  Don't pass ident_hash to cpp_read_main_file.
5143         * fix-header.c (read_scan_file):  Likewise pass NULL table to
5144         cpp_create_reader rather than cpp_read_main_file.
5145
5146         * cppfiles.c (cpp_rename_file):  Generalized and renamed
5147         to cpp_change_file.
5148         * cpplib.h:  Update declaration to match.
5149         * c-opts.c (push_command_line_line, finish_options):  Change
5150         cpp_rename_file calls to cpp_change_file.
5151
5152         * line-map.c (add_line_map):  Allow leaving the outermost file.
5153         Allowing entering an outermost-file after the initial time.
5154
5155         * toplev.c (pop_srcloc):  Allow popping from initial file.
5156
5157 2003-03-20  Kazu Hirata  <kazu at cs dot umass dot edu>
5158
5159         * fold-const.c (fold): Fold A - (A & B) into ~B & A.
5160
5161 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5162
5163         * config/h8300/h8300.md (a peephole2): New.
5164
5165 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5166
5167         * config/h8300/h8300.md (*addsi3_and_r_1): New.
5168         (*addsi3_and_not_r_1): Likewise.
5169
5170 2003-03-19  Loren James Rittle  <ljrittle@acm.org>
5171
5172         * Makefile.in (STRICT2_WARN): Add @WERROR@.
5173         (GCC_WARN_CFLAGS): Remove $(WERROR).
5174         (fixinc.sh-warn): New.
5175         * ada/Make-lang.in (ada-warn): Add $(WERROR).
5176         * cp/Make-lang.in (cp-warn): Add $(WERROR).
5177         * f/Make-lang.in (f-warn): Add $(WERROR).
5178         * java/Make-lang.in (java-warn): Add $(WERROR).
5179         * treelang/Make-lang.in (treelang-warn): Add $(WERROR).
5180
5181 2003-03-19  Nathanael Nerode  <neroden@gcc.gnu.org>
5182
5183         * c-common.h (c_dump_tree), c-dump.c (c_dump_tree),
5184         langhooks-def.h (lhd_tree_dump_dump_tree),
5185         langhooks.c (lhd_tree_dump_dump_tree), langhooks.h (*dump_tree):
5186         Change return type from 'int' to 'bool'.  Replace 0 and 1 with
5187         true and false in return statements.
5188
5189 2003-03-19  Kevin Buettner  <kevinb@redhat.com>
5190
5191         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE): Define.
5192         (DWARF_COMPILE_UNIT_HEADER_SIZE): Take into account
5193         DWARF_INITIAL_LENGTH_SIZE.
5194         (output_compilation_unit_header, output_pubnames, output_aranges)
5195         (output_line_info): Output 0xffffffff escape value for 64-bit
5196         DWARF extension.
5197         * config/mips/iris6.h (DWARF_INITIAL_LENGTH_SIZE): Define.
5198
5199 2003-03-19  Ulrich Weigand  <uweigand@de.ibm.com>
5200
5201         * config/s390/s390.c (s390_preferred_reload_class): Do not
5202         force constants to the pool unless necessary.
5203         (s390_decompose_address): Prefer to use pointer as base,
5204         not index register.
5205         * config/s390/s390.md ("*tsthiCCT_only"): Remove '?' from
5206         Q alternative.
5207         ("*movdi_64", "*movsi", "movhi", "movqi_64", "movqi",
5208         "*movdf_64", "*movsf"): Add '?' to Q->Q alternatives.
5209         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
5210         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
5211         "*adddi3_31", "*subdi3_31"): Do not set "type" attribute.
5212
5213 2003-03-19  Jan Hubicka  <jh@suse.cz>
5214
5215         * i386.h (machine_function): New fields use_fast_prologue_epilogue.
5216         * i386.c (use_fast_prologue_epilogue): Remove.
5217         (ix86_frame): New field save_regs-using_mov;
5218         (ix86_compute_frame_layout):  Decide on fast prologues;
5219         allocate saved registers in red zone.
5220         (ix86_expand_epilogue, ix86_expand_prolgoues): Obey new parameters.
5221
5222 2003-03-19  Nick Clifton  <nickc@redhat.com>
5223
5224         * config/mcore/mcore.h (CPP_SPEC): Remove trailing semi-colon.
5225
5226 2003-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5227
5228         PR 10062
5229         * config/pa/pa-hpux.h (TARGET_HPUX_UNWIND_LIBRARY): Redefine.
5230         * pa-protos.h (output_lbranch): New prototype.
5231         * pa.c (compute_frame_size): Change size of the frame marker on the
5232         64-bit ports to 48 bytes.
5233         (pa_output_function_prologue): Document why SAVE_SP is set.
5234         (hppa_expand_prologue): Save previous stack pointer into frame marker
5235         on targets which use the hpux unwind library.
5236         (output_cbranch): Use output_lbranch.
5237         (output_lbranch): New function to output long unconditional branches.
5238         * pa.h (TARGET_HPUX_UNWIND_LIBRARY): Define.
5239         (STACK_POINTER_OFFSET): Update offset for 48-byte frame marker on
5240         64-bit ports.
5241         * pa.md (jump): Use output_lbranch.
5242         (allocate_stack): New expander for dynamic stack allocation.
5243
5244 2003-03-19  Alan Modra  <amodra@bigpond.net.au>
5245
5246         * config/rs6000/rs6000.c (rs6000_stack_info): Only require a frame
5247         when debugging on XCOFF targets.  Delete "abi" temp.
5248
5249         PR target/10073
5250         * combine.c (force_to_mode <NOT>): Use gen_int_mode.
5251
5252 2003-03-18  Jakub Jelinek  <jakub@redhat.com>
5253
5254         * config/s390/s390.c (s390_output_dwarf_dtprel): New.
5255         * config/s390/s390-protos.h (s390_output_dwarf_dtprel): New proto.
5256         * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Define.
5257
5258         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): New.
5259         * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): New proto.
5260         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Define.
5261
5262 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
5263
5264         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't clone
5265         the result of machopic_function_base_name.
5266         * config/darwin.c (machopic_function_base_name): Use a gc-allocated
5267         string rather than a static array.
5268
5269         * Makefile.in (emit-rtl.o): Add gt-emit-rtl.h to dependencies.
5270
5271         * gengtype.c: Include rtl.h.
5272         (enum rtx_code): Don't define.
5273         (rtx_format): Make declaration match rtl.h.
5274         (rtx_next_new): Rename from rtx_next to avoid conflict.  Change all
5275         users.
5276         (adjust_field_rtx_def): Describe strings in NOTE_LINE_NUMBER notes.
5277         * Makefile.in (gengtype.o): Update dependencies.
5278
5279 2003-03-18  Andreas Schwab  <schwab@suse.de>
5280
5281         * config/m68k/m68k.md (iordi3): Fix setting low half to -1.  From
5282         martin@blom.org.
5283
5284 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
5285
5286         * function.c (next_block_index): Mark with GTY.
5287
5288         * config/rs6000/rs6000.md (macho_correct_pic): Correct pattern.
5289
5290 2003-03-18  Richard Henderson  <rth@redhat.com>
5291
5292         * config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New.
5293         (builtin_setjmp_receiver): Delay call to ia64_reload_gp
5294         until after reload.
5295
5296 2003-03-18  Richard Henderson  <rth@redhat.com>
5297
5298         * builtins.c (expand_builtin_unop): New target_mode operand;
5299         use it to convert the result to the correct mode.
5300         (expand_builtin): Update all callers.
5301
5302 2003-03-18  Ulrich Weigand  <uweigand@de.ibm.com>
5303
5304         * config/s390/s390.md ("movti", "movhi", "movqi"): Add "type" attribute.
5305
5306 2003-03-18  Jan Hubicka  <jh@suse.cz>
5307
5308         * i386.md:  Fix previous commit that mistakely applied the patch
5309         twice.
5310
5311         * alias.c (rtx_equal_for_memref_p): Assume that X and Y has been
5312         canonicalized.
5313         (memrefs_conflict_p): Likewise.
5314         (addr_side_effect_eval): Canonicalize the constructed address.
5315
5316 2003-03-18  Jan Hubicka  <jh@suse.cz>
5317
5318         * i386.md (cvtts?2si peep2): New.
5319
5320 2003-03-18  Kazu Hirata  <kazu@cs.umass.edu>
5321
5322         * config/h8300/h8300.md (*iorsi3_two_qi_zext): New.
5323
5324 2003-03-18  Andreas Schwab  <schwab@suse.de>
5325
5326         * dwarf2out.c (output_file_names): Cast size_t to unsigned long
5327         for format.
5328
5329 2003-03-17  Jason Merrill  <jason@redhat.com>
5330
5331         PR c++/10091
5332         * expr.c (expand_expr) [ADDR_EXPR]: Disallow taking the address of
5333         an unaligned member of TREE_ADDRESSABLE type.
5334
5335 2003-03-18  Alan Modra  <amodra@bigpond.net.au>
5336
5337         * config/rs6000/linux64.h (MASK_PROFILE_KERNEL): Define.
5338         (TARGET_PROFILE_KERNEL): Define.
5339         (SUBTARGET_SWITCHES): Handle -mprofile-kernel.
5340         (PROFILE_BEFORE_PROLOGUE): Don't define.
5341         (PROFILE_KERNEL): Remove hacks.
5342         * config/rs6000/rs6000.c (TARGET_PROFILE_KERNEL): Define default.
5343         (rs6000_stack_info): No need to save lr if just for profiling when
5344         TARGET_PROFILE_KERNEL.
5345         (output_profile_hook): Output nothing when TARGET_PROFILE_KERNEL.
5346         (output_function_profiler): Localize label generation.  Emit code
5347         for kernel profiling.
5348
5349 2003-03-17  Kazu Hirata  <kazu@cs.umass.edu>
5350
5351         * config/h8300/h8300-protos.h: Add a prototype for
5352         byte_accesses_mergeable_p.
5353         * config/h8300/h8300.c (byte_accesses_mergeable_p): New.
5354         * config/h8300/h8300.md (*iorhi3_two_qi_mem): Likewise.
5355         (a splitter): Likewise.
5356         (*iorsi3_ashift_16_ashift_24): Likewise.
5357         (*iorsi3_ashift_16_ashift_24_mem): Likewise.
5358
5359 2003-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5360
5361         * dwarf2asm.h: Delete obsolete comment.
5362         (dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset,
5363         dw2_asm_output_pcrel, dw2_asm_output_addr,
5364         dw2_asm_output_addr_rtx, dw2_asm_output_encoded_addr_rtx,
5365         dw2_asm_output_nstring, dw2_asm_output_data_uleb128,
5366         dw2_asm_output_data_sleb128, dw2_asm_output_delta_uleb128,
5367         dw2_asm_output_delta_sleb128): Add ATTRIBUTE_NULL_PRINTF.
5368
5369 2003-03-17  Zack Weinberg <zack@codesourcery.com>
5370
5371         * c-tree.h (struct lang_identifier): Remove error_locus field.
5372         (IDENTIFIER_ERROR_LOCUS): Kill.
5373         (record_function_scope_shadow): New prototype.
5374         * c-typeck.c (build_external_ref): Don't complain if
5375         decl is error_mark_node.  When not at file scope, bind the
5376         decl's local value to error_mark_node to suppress further
5377         warnings, instead of setting IDENTIFIER_ERROR_LOCUS.
5378
5379         * c-decl.c (get_function_binding_level): New static function.
5380         (record_function_scope_shadow): New exported function.
5381         (c_make_fname_decl): Use get_function_binding_level.
5382
5383 2003-03-17  Steve Ellcey  <sje@cup.hp.com>
5384
5385         * stmt.c (tail_recursion_args): Call promote_mode to set
5386         unsignedp flag correctly before calling convert_move.
5387
5388 2003-03-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5389
5390         * loop-unroll.c (decide_peel_completely,
5391         decide_unroll_constant_iterations, decide_unroll_stupid,
5392         decide_unroll_runtime_iterations, decide_peel_simple): Set
5393         loop->has_desc.
5394
5395 2003-03-17  Jan Hubicka  <jh@suse.cz>
5396
5397         * ggc-common.c (ggc_mark_roots): Use htab_traverse_noresize.
5398
5399 2003-03-17  Olivier Hainque  <hainque@act-europe.fr>
5400
5401         * function.c (assign_parms): For a struct value address passed as
5402         first argument, delay the function's result RTL setup code until
5403         after the emission of parameter conversions.
5404
5405 2003-03-17  Dave Love  <fx@gnu.org>
5406             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5407
5408         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define __digital__,
5409         __arch64__ to match Compaq cc.
5410
5411 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
5412
5413         * c-opts.c: Default TARGET_EBCDIC to 0 if not defined.
5414         (c_common_init): Set EBCDIC in cpp options.
5415         * cpplex.c (maybe_read_ucs, cpp_parse_escape): Use EBCDIC option,
5416         not conditional compilation.
5417         * cpplib.h (struct cpp_options): New entry EBCDIC.
5418
5419 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
5420
5421         * fix-header.c (read_scan_file): Need to malloc arguments to add_path.
5422
5423 2003-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5424
5425         * function.c (thread_prologue_and_epilogue_insns): Set delete_unused
5426         argument to 0 for redirect_jump.
5427
5428 2003-03-16  Mark Mitchell  <mark@codesourcery.com>
5429
5430         PR c++/8805
5431         * except.c (eh_region_u_cleanup): Add prev_try.
5432         (expand_eh_region_end_cleanup): Set it.
5433         (reachable_handlers): Use it to skip over cleanup blocks.
5434
5435 2003-03-17  Andreas Jaeger  <aj@suse.de>
5436
5437         * Makefile.in (TAGS): Remove obsolete handling of =*.[chy].
5438
5439 2003-03-17  Alan Modra  <amodra@bigpond.net.au>
5440
5441         * config/rs6000/linux64.h (TARGET_64BIT): Redefine.
5442         (TARGET_RELOCATABLE, TARGET_EABI, TARGET_PROTOTYPE): Likewise.
5443         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Likewise.
5444         (SUBTARGET_OVERRIDE_OPTIONS, CPP_SYSV_SPEC): Likewise.
5445
5446 2003-03-16  Richard Henderson  <rth@redhat.com>
5447
5448         * simplify-rtx (simplify_binary_operation): Don't abort for
5449         SS_PLUS, US_PLUS, SS_MINUS, US_MINUS.
5450
5451 2003-03-16  Richard Henderson  <rth@redhat.com>
5452
5453         * config/i386/i386.md (movstrictqi, movstrictqi_1): Check
5454         optimize_size as well.
5455
5456 2003-03-16  Stephane Carrez  <stcarrez@nerim.fr>
5457
5458         * config/m68hc11/m68hc11.c (print_operand): Handle 'b' modifier
5459         for D register to specify the low part of it, aka B.
5460         (m68hc11_gen_movhi): Use REG_WAS_0 note and increment or decrement
5461         the register if we are loading 1 or -1 to it; avoid using temp
5462         register when moving X/Y to Y/X.
5463         (m68hc11_gen_movqi): Likewise.
5464         (m68hc11_check_z_replacement): Fix last insn setting for compare case.
5465
5466 2003-03-14  Mark Mitchell  <mark@codesourcery.com>
5467
5468         PR optimization/9016
5469         * config/i386/i386.c (ix86_expand_move): Force more CONST_DOUBLEs
5470         into the constant pool.
5471
5472 2003-03-16  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
5473
5474         PR target/9164
5475         * tree.c (get_narrower): For extensions with unchanged bit number,
5476         return the unsignedness of the outer mode.
5477
5478 2003-03-16  Roger Sayle  <roger@eyesopen.com>
5479
5480         * c-typeck.c (build_component_ref):  Turn "for" into "do .. while"
5481         to avoid "may be used uninitialized" warning on ia64-hpux.
5482         * config/ia64/ia64-c.c: Include "tm_p.h" for function prototypes.
5483
5484 2003-03-16  Andreas Jaeger  <aj@suse.de>
5485
5486         * configure.in: Improve check for memcheck.h.
5487         * configure: Regenerated.
5488
5489 2003-03-16  Neil Booth  <neil@daikokuya.co.uk>
5490
5491         * doc/cppopts.texi: Remove documentation of -A-.
5492
5493 2003-03-15  Zack Weinberg  <zack@codesourcery.com>
5494
5495         * doc/libgcc.texi: Remove @tie.
5496
5497 2003-03-15  Josef Zlomek  <zlomekj@suse.cz>
5498
5499         * rtl.h (subrtx_p): Renamed to rtx_referenced_p.
5500         (rtx_pair): Added new element update_label_nuses, renamed to
5501         replace_label_data.
5502         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge): Use
5503         replace_label_data instead of rtx_pair.
5504         * loop.c (load_mems): Likewise.
5505         * rtlanal.c (replace_label): Replace label in pool constants and in
5506         INSN_LIST (in REG_LABEL note).
5507         (subrtx_p): Renamed to rtx_referenced_p.
5508         (subrtx_p_1): Renamed to rtx_referenced_p_1, compare the interior of
5509         LABEL_REF with CODE_LABEL, traverse constants from pool.
5510
5511 2003-03-15  Aldy Hernandez <aldyh@redhat.com>
5512             Zack Weinberg  <zack@codesourcery.com>
5513
5514         * Makefile.in (TEXI_GCCINT_FILES): Add libgcc.texi.
5515         * doc/libgcc.texi: New file.
5516         * doc/interface.texi: Delete paragraph about libgcc interface.
5517         * doc/gccint.texi: Add libgcc menu entry and @include libgcc.texi.
5518
5519 2003-03-15  Jason Merrill  <jason@redhat.com>
5520
5521         PR debug/9039
5522         * dwarf2out.c (gen_decl_die): Ignore frontend tree codes.
5523
5524         PR debug/6387
5525         * dwarf2out.c (dwarf2out_decl): If we're at -g1, just stick nested
5526         function DIEs at toplevel.
5527         (decls_for_scope): At -g1, don't descend into subblocks.
5528
5529 2003-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
5530
5531         * varasm.c (struct rtx_const): Change type of un.addr member
5532         to struct holding an additional 'symbol' member.
5533         (decode_rtx_const): Re-enable optimization to count SYMBOL_REFs
5534         with equal string addresses as equal.
5535         (simplify_subtraction): Adapt to struct rtx_const change.
5536
5537 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
5538
5539         * fix-header.c (read_scan_file): Read main file before handling -D.
5540
5541 2003-03-15  Roger Sayle  <roger@eyesopen.com>
5542
5543         * c-cppbuiltin.c (builtin_define_with_value_n): Fix whitespace.
5544         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
5545         * cfgbuild.c (find_many_sub_basic_blocks): Likewise.
5546         (find_sub_basic_blocks): Likewise.
5547         * cgraphunit.c (cgraph_expand_functions): Likewise.
5548         * dwarf2out.c (prune_unused_types): Likewise.
5549         * expr.c (store_field): Likewise.
5550         * genextract.c (print_path): Likewise.
5551         * haifa-sched.c (schedule_insn): Likewise.
5552         * lcm.c (compute_antinout_edge): Likewise.
5553         * loop-unroll.c (decide_peel_once_rolling): Likewise.
5554         * ra-colorize.c (ra_colorize_free_all): Likewise.
5555         * ra-debug.c (dump_igraph): Likewise.
5556         (debug_hard_reg_set): Likewise.
5557         * reg-stack.c (reg_to_stack): Likewise.
5558         * rtlanal.c (refers_to_regno_p): Likewise.
5559         * tracer.c (layout_superblocks): Likewise.
5560
5561 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
5562
5563         * fix-header.c (read_scan_file): Fix thinko.
5564
5565 2003-03-15  Glen Nakamura  <glen@imodulo.com>
5566
5567         * reload1.c (choose_reload_regs): Use && instead of ||
5568         with REG_CANNOT_CHANGE_MODE_P condition.
5569
5570 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
5571
5572         * Makefile.in: Update.
5573         * c-common.h (cb_register_builtins): Rename c_cpp_builtins.
5574         * c-lex.c (init_c_lex): Register builtins hook is dead.
5575         * c-opts.c (COMMAND_LINE_OPTIONS, missing_arg): Handle -A, -D and -U.
5576         (c_common_decode_option): Don't call cpp_handle_option.
5577         Handle -A, -D and -U.
5578         (handle_deferred_opts): Simplify.
5579         (finish_options): Define builtins and command line macros.
5580         * c-ppoutput.c (init_pp_output): Register builtins hook is dead.
5581         * cppinit.c: Don't include intl.h.
5582         (init_builtins): Rename cpp_init_builtins.  No hook to call.
5583         (init_library): Don't need to sort options.
5584         (cpp_create_reader): Don't set pending.
5585         (cpp_destroy): Don't free pending.
5586         (struct pending_option, cl_directive_handler, struct cpp_pending,
5587         APPEND, free_chain, new_pending_directive, parse_option, opt_comp,
5588         cpp_finish_options, COMMAND_LINE_OPTIONS, DEF_OPT, struct cl_option,
5589         cl_options, cpp_handle_option): Remove.
5590         * cpplib.h (struct cpp_pending, register_builtins, cpp_handle_option,
5591         cpp_finish_options): Remove.
5592         (cpp_init_builtins): New.
5593         * fix-header.c (read_scan_file): Update to handle -D.  Fix
5594         handling of -I.  Replace call to cpp_finish_options.
5595
5596 2003-03-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5597
5598         PR optimization/9387
5599         * function.c (thread_prologue_and_epilogue_insns): Use redirect_jump
5600         for conditional returns.
5601
5602 2003-03-14  Jason Merrill  <jason@redhat.com>
5603
5604         PR optimization/6871
5605         * varasm.c (assemble_variable): Leave constant zeroes in .rodata.
5606
5607 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
5608
5609         * c-opts.c (finish_options): New.
5610         (COMMAND_LINE_OPTIONS, c_common_decode_option): Add -imacros.
5611         (missing_arg): Handle OPT_include and OPT_imacros.
5612         (c_common_init, c_common_parse_file): Use finish_options.
5613         (handle_deferred_opts): Update.
5614         * cppinit.c (struct cpp_pending): Remove imacros_head and imacros_tail.
5615         (cpp_finish_options): Don't handle -imacros here.
5616         (no_fil): Remove.
5617         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -imacros.
5618
5619 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
5620
5621         * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Don't call
5622         rs6000_maybe_dead if !fromprolog.
5623
5624 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
5625
5626         * Makefile.in: Update.
5627         * c-common.h (fe_file_change, pp_file_change): New.
5628         * c-lex.c (init_c_lex): Don't set cb_file_change.
5629         (c_common_parse_file): Move to c-opts.c.
5630         (cb_file_change): Rename fe_file_change.
5631         * c-opts.c: Include debug.h.
5632         (warn_unused_macros, include_cursor): New.
5633         (push_command_line_include, cb_file_change): New.
5634         (COMMAND_LINE_OPTIONS): Handle -include.
5635         (c_common_decode_option): Use local warn_unused_macros.
5636         Handle OPT_include.
5637         (c_common_post_options): Set file change callback.
5638         (handle_deferred_opts): Skip -include.  Don't free the array.
5639         (c_common_init): Call cpp_finish_options here, and push an
5640         initial -include file.
5641         * c-ppoutput.c (cb_file_change): Rename pp_file_change.
5642         (preprocess_file): Don't call cpp_finish_options.
5643         (init_pp_output): Don't set the file change callback.
5644         (pp_file_change): Return if no line commands or no output.
5645         * cpphash.h (next_include_file, first_unused_line): Remove.
5646         * cppinit.c (include_head, include_tail): Remove.
5647         (cpp_destroy): Don't free -include chain.
5648         (cpp_finish_options): Don't handle -include, or worry about
5649         -Wunused-macros.
5650         (_cpp_maybe_push_include_file): Remove.
5651         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -include.
5652         * cpplib.c (_cpp_pop_buffer): Don't handle -include.
5653         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_create_definition):
5654         Used flag is set based upon the state of the warn_unused_macros
5655         flag, and so use of first_unused_line is unnecessary.
5656
5657 2003-03-13  Jan Hubicka  <jh@suse.cz>
5658
5659         * cselib.c (clear_table): Do not take argument; always clear just
5660         used slots.
5661         (cselib_process_insn):  Update call of clear_table
5662         (cselib_init): Do not call clear_table.
5663         (cselib_finish): Clear table.
5664
5665         * cse.c (count_reg_usage): Do not check side_effects_p.
5666         * rtlanal.c (set_noop_p): Check side_effects_p only when set looks
5667         like noop.
5668         (find_reg_equal_equiv_note): Do not use find_reg_note.
5669
5670 2003-03-14  Richard Henderson  <rth@redhat.com>
5671
5672         PR target/9700
5673         * config/alpha/alpha.c (alpha_va_start): Account for
5674         current_function_pretend_args_size in the AP offset.
5675
5676         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Move out of line.
5677         (INITIAL_ELIMINATION_OFFSET): Move out of line.
5678         * config/alpha/alpha.c (alpha_setup_incoming_varargs): New.
5679         (alpha_initial_elimination_offset) New.
5680         * config/alpha/alpha-protos.h: Update.
5681
5682 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
5683
5684         * stmt.c (expand_start_case): Call emit_queue ().
5685
5686 2003-03-14  Chris Demetriou  <cgd@broadcom.com>
5687             Alexandre Oliva  <aoliva@redhat.com>
5688
5689         * config/mips/mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2
5690         words in new abis.
5691
5692 2003-03-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
5693
5694         PR optimization/8396
5695         * tree-inline.c (initialize_inlined_parameters): Make sure the value
5696         of read-only constant arguments is passed with the right type.
5697
5698 2003-03-14  Steven Bosscher  <steven@gcc.gnu.org>
5699
5700         * doc/extend.texi (Function Names): Make the example compilable.
5701
5702 2003-03-13  David Edelsohn  <edelsohn@gnu.org>
5703
5704         * config/rs6000/rs6000.c (processor_target_table): Really allow
5705         GP optional instructions on Power4.
5706
5707 2003-03-13  Roger Sayle  <roger@eyesopen.com>
5708
5709         * calls.c (flags_from_decl_or_type): Factor and remove redundant
5710         conditional tests.
5711
5712 2003-03-13  Mike Stump  <mrs@apple.com>
5713
5714         * ggc-page.c (struct page_entry): Remove varray.h header.
5715         Add index_by_depth field.
5716         Remove save_in_use_p field.
5717         (struct globals): Add depth_in_use, depth_max, by_depth_in_use,
5718         by_depth_max, by_depth, and save_in_use fields.
5719         (INITIAL_PTE_COUNT): Add.
5720         (save_in_use_p_i): Add.
5721         (save_in_use_p): Add.
5722         (adjust_depth): Add.
5723         (move_ptes_to_front): Add.
5724         (push_depth): Add.
5725         (push_by_depth): Add.
5726         (prefetch): Add.
5727         (free_page): Add support for and use faster data structures.
5728         (ggc_alloc): Likewise.
5729         (init_ggc): Likewise.
5730         (ggc_recalculate_in_use_p): Likewise.
5731         (ggc_pop_context): Likewise.
5732         (clear_marks): Likewise.
5733         (ggc_pch_read): Likewise.
5734         * Makefile.in (ggc-page.o): Remove varray.h.
5735
5736 2003-03-13  Nathanael Nerode  <neroden@gcc.gnu.org>
5737
5738         * ChangeLog: Rotated last year's entries to...
5739         * ChangeLog.8: New.
5740
5741         * config/ia64/fde-glibc.c, config/ia64/freebsd.h,
5742         config/ia64/hpux.h, config/ia64/hpux_longdouble.h,
5743         config/ia64/ia64-c.c, config/ia64/ia64-modes.def,
5744         config/ia64/ia64-protos.h, config/ia64/ia64.c,
5745         config/ia64/ia64.h, config/ia64/ia64.md,
5746         config/ia64/itanium1.md, config/ia64/itanium2.md,
5747         config/ia64/quadlib.c, config/ia64/unwind-ia64.c,
5748         config/ia64/unwind-ia64.h: It's GCC, not GNU CC.
5749
5750 2003-03-13  Aldy Hernandez  <aldyh@redhat.com>
5751
5752         * config/rs6000/rs6000.c (rs6000_dwarf_register_span):
5753         Differentiate endianness.
5754         (s6000_override_options): Use cpu type instead of TARGET_SPE.
5755
5756 2003-03-13  Nick Clifton  <nickc@redhat.com>
5757
5758         * config/arm/arm.c (print_multi_reg): Do not generate a type 2
5759         LDM instructions with writeback enabled.
5760         (output_return_instruction): Likewise.
5761
5762         * config/arm/pe.h (FIXED_REGISTERS): Remove definition.
5763         (CALL_USED_REGISTERS): Remove definition.
5764         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define.
5765
5766 2003-03-13  Alan Modra  <amodra@bigpond.net.au>
5767
5768         * config/rs6000/rs6000.c (rs6000_flag_pic): Delete.
5769         (rs6000_xcoff_encode_section_info): #ifdef TARGET_XCOFF.
5770         (rs6000_binds_local_p, TARGET_BINDS_LOCAL_P): #if TARGET_MACHO.
5771         (rs6000_override_options): Don't clear flag_pic for ABI_AIX.
5772         (rs6000_legitimize_address): Formatting.
5773         (rs6000_emit_move): Likewise.
5774         (rs6000_return_addr): Test ABI_AIX as well as flag_pic.
5775         (rs6000_emit_prologue <save_LR_around_toc_setup>): Likewise.
5776         (rs6000_elf_select_section): Comment reason for shlib being
5777         set for ABI_AIX.
5778         (rs6000_elf_unique_section): Likewise.
5779         (rs6000_elf_encode_section_info): Test !TARGET_AIX as well as ABI_AIX.
5780         * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Test ABI_AIX
5781         as well as flag_pic.
5782         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
5783         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
5784         * config/rs6000/linux64.h (TARGET_ENCODE_SECTION_INFO): Don't define.
5785
5786 2003-03-13  Richard Henderson  <rth@redhat.com>
5787
5788         * emit-rtl.c (try_split): Handle 1-1 splits of call insns properly.
5789
5790         * config/ia64/ia64.c (TARGET_FUNCTION_OK_FOR_SIBCALL): New.
5791         (ia64_gp_save_reg): Remove.
5792         (struct ia64_frame_info): Move to the beginning of the file;
5793         add reg_save_gp.
5794         (ia64_expand_call): Rearrange for new call patterns.
5795         (ia64_reload_gp): New.
5796         (ia64_split_call): New.
5797         (ia64_compute_frame_size): Allocate reg_save_gp.
5798         (ia64_expand_prologue): Save reg_save_gp.
5799         (ia64_expand_epilogue): Don't restore gp.
5800         (ia64_hard_regno_rename_ok): Remove R4 hack.
5801         (ia64_function_ok_for_sibcall): New.
5802         (ia64_output_mi_thunk): Set reload_completed, no_new_pseudos;
5803         call try_split on sibcall pattern.
5804         * config/ia64/ia64-protos.h: Update.
5805         * config/ia64/ia64.md (call_nogp, call_value_nogp, sibcall_nogp):
5806         Rename from nopic versions.  Confiscate 2nd argument to call as
5807         a marker.
5808         (call_pic, call_value_pic, sibcall_pic): Remove.
5809         (call_gp, call_value_gp, sibcall_gp): New.
5810         (builtin_setjmp_setup): Remove.
5811         (builtin_setjmp_receiver): Call ia64_reload_gp.
5812
5813 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
5814
5815         * config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
5816         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md: Replace
5817         "GNU CC" with "GCC".
5818
5819         * config/c4x/c4x-c.c, config/c4x/c4x-modes.def,
5820         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
5821         config/c4x/c4x.md, config/c4x/libgcc.S, config/c4x/rtems.h:
5822         GCC, not GNU CC.
5823
5824         * genattrtab.h, hosthooks-def.h, hosthooks.h, langhooks-def.h,
5825         langhooks.h, tree-inline.h: Replace "GNU CC" with "GCC".
5826
5827         * c-pch.c, dummy-conditions.c, genautomata.c, genconditions.c,
5828         langhooks.c, tree-inline.c, unwind-dw2-fde-darwin.c,
5829         unwind-dw2-fde-glibc.c, unwind-libunwind.c, vmsdbgout.c: Replace
5830         "GNU CC" with "GCC".
5831
5832         * config/v850/lib1funcs.asm, config/v850/rtems.h,
5833         config/v850/v850-c.c, config/v850/v850-protos.h,
5834         config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
5835         GCC, not GNU CC.
5836
5837         * config/vax/bsd.h, config/vax/elf.h, config/vax/netbsd-elf.h,
5838         config/vax/netbsd.h, config/vax/openbsd.h, config/vax/openbsd1.h,
5839         config/vax/ultrix.h, config/vax/vax-protos.h, config/vax/vax.c,
5840         config/vax/vax.h, config/vax/vax.md, config/vax/vaxv.h: GCC, not
5841         GNU CC.
5842
5843 2003-03-12  Benjamin Kosnik  <bkoz@redhat.com>
5844
5845         * cpppch.c (cpp_valid_state): Use DL_WARNING_SYSHDR, not DL_WARNING.
5846
5847 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
5848
5849         * fixinc/fixinc.interix: Remove dead code (most of it).
5850         * fixinc/fixinc.dgux: Remove.
5851
5852         * ginclude/float.h, ginclude/iso646.h, ginclude/stdarg.h,
5853         ginclude/stdbool.h, ginclude/stddef.h: GCC, not GNU CC.
5854
5855 2003-03-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5856
5857         * pa.c (pa_init_builtins): Fix warning.
5858
5859 2003-03-12  Steve Ellcey  <sje@cup.hp.com>
5860
5861         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR): Remove.
5862         (ASM_OUTPUT_XDATA_SHORT): Remove.
5863         (ASM_OUTPUT_XDATA_INT): Remove.
5864         (ASM_OUTPUT_XDATA_DOUBLE_INT): Remove.
5865         (ASM_OUTPUT_ADDR_DIFF_ELT): Handled 32 bit address diffs.
5866         (ASM_PREFERRED_EH_DATA_FORMAT): Handle 32 bit EH pointers.
5867         (CASE_VECTOR_MODE): Handle 32 bit pointers in case statement.
5868
5869 2003-03-12  Andrew Lewycky  <andrew@mxc.ca>
5870
5871         PR c++/7050
5872         * expr.c (store_expr): Don't attempt to store void-typed trees,
5873         just evaluate them for side effects.
5874
5875 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
5876
5877         * cppfiles.c (cpp_rename_file, cpp_push_include): New.
5878         * cppinit.c (push_include): Move with changes to cppfiles.c.
5879         (cpp_read_main_file): Mark named operators here...
5880         (cpp_finish_options): ...not here.  Update.
5881         (_cpp_maybe_push_include_file): Update.
5882         * cpplib.h (cpp_push_include, cpp_rename_file): New.
5883
5884 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
5885
5886         * aclocal.m4: Introduce gcc_GAS_VERSION_GTE_IFELSE,
5887         _gcc_COMPUTE_GAS_VERSION.
5888         * configure.in: Use them.
5889         * configure: Regenerate.
5890
5891 2003-03-12  Bob Wilson  <bob.wilson@acm.org>
5892
5893         * config/xtensa/xtensa.md (adddi3): Don't clobber source operand used
5894         to detect carry.
5895         (subdi3): Reorder emitted instructions.
5896
5897 2003-03-12  Andreas Jaeger  <aj@suse.de>
5898
5899         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Remove call to
5900         NETBSD_OS_CPP_BUILTINS_LP64.
5901
5902 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
5903
5904         * Makefile.in: Eliminate all.indirect.  Update and clean up comments.
5905         Rearrange.  Reorganize.
5906         * configure.in: Rearrange.
5907         * configure: Regenerate.
5908
5909 2003-03-12  Andreas Jaeger  <aj@suse.de>
5910
5911         * c-cppbuiltin.c (cb_register_builtins): Define LP64 builtins for
5912         LP64 targets.
5913
5914         * doc/cpp.texi (Common Predefined Macros): Document __LP64__ and
5915         _LP64.
5916
5917         * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Do not define
5918         _LP64 macros here.
5919         * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Likewise.
5920
5921         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove call to
5922         NETBSD_OS_CPP_BUILTINS_LP64.
5923         * config/sh/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
5924         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
5925
5926         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_LP64): Remove.
5927
5928 2003-03-12  Jan Hubicka  <jh@suse.cz>
5929
5930         * i386.c (ix86_setup_incoming_varargs): Set stack_alignment_needed to 128.
5931
5932 2003-03-12  Daniel Jacobowitz  <drow@mvista.com>
5933
5934         Fix PR target/9797 and PR c/9853.
5935         * stmt.c (expand_decl_init): Call push_temp_slots () and
5936         pop_temp_slots ().
5937
5938 2003-03-12  J"orn Rennecke <joern.rennecke@superh.com>
5939
5940         * sh.c: Include basic-block.h.
5941         (sh_output_mi_thunk, emit_load_ptr): New functions.
5942         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine.
5943
5944 2003-03-12  Nick Clifton  <nickc@redhat.com>
5945
5946         * config/arm/pe.h (FIXED_REGISTERS): Add Maverick registers.
5947         (CALL_USED_REGISTERS): Likewise.
5948         * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Update comment
5949         describing how this value is calculated.
5950
5951 2003-03-12  Hans-Peter Nilsson  <hp@bitrange.com>
5952
5953         * configure.in (rlim_t): Define to long if no valid definition
5954         found in sys/resource.h.
5955         * config.in, configure: Regenerate.
5956
5957 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
5958
5959         * config/mcore/mcore-elf.h (CPP_PREDEFINES): Replace with
5960         TARGET_OS_CPP_BUILTINS.
5961         * config/mcore/mcore-pe.h: Similarly.
5962         * config/mcore/mcore.h: Replace CPP_PREDEFINES and part of
5963         CPP_SPEC with TARGET_CPU_CPP_BUILTINS.
5964
5965 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5966
5967         PR c/9928
5968         * c-decl.c (duplicate_decls): Discard the initializer of the new decl
5969         only if it is a VAR_DECL.
5970
5971 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5972
5973         PR optimization/9888
5974         * config/i386/i386.md (jcc_1): Fix range.
5975         (jcc_2): Likewise.
5976         (jump): LIkewise.
5977         (doloop_end_internal): Likewise.
5978
5979 2003-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
5980
5981         * config/i386/winnt.c (DLL_IMPORT_PREFIX): New define.
5982         Use throughout instead of DLL_IMPORT_EXPORT_PREFIX and "e."
5983         (DLL_EXPORT_PREFIX): New define. Use throughout instead of
5984         DLL_IMPORT_EXPORT_PREFIX and "i."
5985         (i386_pe_dllexport_name_p): Here.
5986         (i386_pe_dllimport_name_p): Here.
5987         (i386_pe_mark_dllexport): Here. Remove DLL_IMPORT_PREFIX,
5988         not 9 chars when getting identifier name.
5989         (i386_pe_mark_dllimport): Here.
5990         (i386_pe_encode_section_info): Here. Remove DLL_IMPORT_PREFIX,
5991         not 9 chars when getting identifier name. Correct comment.
5992         (i386_pe_strip_name_encoding): Here. Add comments for different
5993         cases.
5994         (gen_fastcall_suffix): Break down xmalloc() argument to
5995         components.
5996         (gen_stdcall_suffix): Likewise.
5997         Update copyright year.
5998
5999 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
6000
6001         PR optimization/9888
6002         * config/i386/i386.md (movsi_1): Remove special alternatives
6003         for %eax register.
6004         (movsi_1_nointernunit): Likewise.
6005         (movhi_1): Likewise.
6006         * config/i386/i386.c (memory_address_length): Do not use
6007         short displacement when there is no base.
6008         (ix86_attr_length_address_default): Handle LEA instructions.
6009
6010 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
6011
6012         * c-cppbuiltin.c (builtin_define_std): Make non-static.
6013
6014 2003-03-11  Loren James Rittle  <ljrittle@acm.org>
6015
6016         * config/freebsd-spec.h (FBSD_CPP_PREDEFINES): Remove.
6017         (FBSD_TARGET_OS_CPP_BUILTINS): New port-specific macro.
6018         (FBSD_TARGET_CPU_CPP_BUILTINS): New port-specific macro.
6019         * config/freebsd.h (CPP_PREDEFINES): Remove.
6020         (TARGET_OS_CPP_BUILTINS): New.
6021         * config/alpha/freebsd.h: Use overridden FBSD_TARGET_CPU_CPP_BUILTINS
6022         instead of TARGET_OS_CPP_BUILTINS.
6023         * config/sparc/freebsd.h (CPP_PREDEFINES): Remove.
6024
6025 2003-03-11  Geoffrey Keating  <geoffk@apple.com>
6026
6027         * c-cppbuiltin.c (builtin_define_std): Add ATTRIBUTE_UNUSED.
6028
6029 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
6030
6031         * config/rs6000/rs6000.c (rs6000_stack_info): Remove
6032         insn_chain_scanned.  Use insn_chain_scanned_p in machine_function.
6033
6034         * config/rs6000/rs6000.h (machine_function): Add insn_chain_scanned_p.
6035
6036 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
6037
6038         * toplev.c (independent_decode_option): Return success for --help,
6039         --target-help and --version.
6040
6041 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
6042
6043         * config/mips/linux64.h (DRIVER_SELF_SPECS): Add endian_spec.
6044         Default to -mips3 on -mabi=64.  Don't add -mips* flag if -march is
6045         specified.
6046         (SUBTARGET_ASM_SPEC): Remove -mips*-adding code obviated by
6047         DRIVER_SELF_SPECS.
6048         (LINK_SPEC): Let endian options affect the linker emulation name.
6049
6050 2003-03-11  J"orn Rennecke <joern.rennecke@superh.com>
6051
6052         * sh.md (reload_inqi): Fix mode for source in second set.
6053
6054 2003-03-11  Jan Hubicka  <jh@suse.cz>
6055
6056         * cselib.c (cselib_invalidate_mem_1): Move too ...
6057         (cselib_invalidate_mem): ... here; use new list
6058         (dummy_val, first_containing_mem): New static variables.
6059         (clear_table): Initialize first_containing_mem.
6060         (discard_useless_values):  Compact the containing_mem list.
6061         (add_mem_for_addr): Add to the list.
6062         * cselib.h (cselib_val): Add next_containing_mem.
6063
6064 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
6065
6066         * config/rs6000/rs6000.c (rs6000_override_options): Disable string
6067         instructions for e500.
6068
6069 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
6070
6071         * Makefile.in: Update.
6072         * c-cppbuiltin.c: Include tm_p.h.
6073
6074 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
6075
6076         * doc/tm.texi (Frame Registers): Document DWARF_REG_TO_UNWIND_COLUMN.
6077
6078         * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Define.
6079         (_Unwind_GetGR): Use DWARF_REG_TO_UNWIND_COLUMN.
6080         (_Unwind_SetGR): Same.
6081         (_Unwind_GetGRPtr): New.
6082         (_Unwind_SetGRPtr): New.
6083         (uw_update_context_1): Use accesor functions instead of accessing
6084         context->reg[] directly.
6085         (uw_install_context_1): Same.
6086         (execute_cfa_program): Same.
6087         (__frame_state_for): Same.
6088
6089         * config/rs6000/rs6000.c (spe_synthesize_frame_save): Use 1200 as
6090         the synthetic register offset.
6091
6092         * config/rs6000/rs6000.h (DWARF_REG_TO_UNWIND_COLUMN): New.
6093
6094 2003-03-11  Hans-Peter Nilsson  <hp@axis.com>
6095
6096         * config/cris/cris.md: Remove lingering EGCS reference.
6097         ("*extopqihi_side_biap"): For HI operation, match
6098         cris_additive_operand_extend_operator, not
6099         cris_operand_extend_operator.  Adjust condition.
6100         ("*extopqihi_side", "*extopqihi"): Ditto.
6101         ("*extopqisi_side_biap"): Correct operand numbers in condition.
6102         ("*extophisi_side_biap", "*extopqisi_swap_side_biap"): Ditto.
6103         ("*extophisi_swap_side_biap", "*extopqisi_swap"): Ditto.
6104         ("*extophisi_swap"): Ditto.
6105         ("*extopqihi_swap_side_biap"): For HI operation, match a simple
6106         PLUS, not cris_operand_extend_operator.  Adjust condition and
6107         output template.
6108         ("*extopqihi_swap_side", "*extopqihi_swap"): Ditto.
6109         * config/cris/cris.h (PREDICATE_CODES): Add
6110         cris_additive_operand_extend_operator.
6111         * config/cris/cris.c (cris_additive_operand_extend_operator):
6112         New predicate.
6113
6114 2003-03-11  Hartmut Penner  <hpenner@de.ibm.com>
6115
6116         * df.c (read_modify_subreg_p): Change from static to global.
6117         * df.h (read_modify_subreg_p): Add prototype.
6118         * sched-deps.c (sched_analyze_1): Generate true dependency for
6119         strict_low_part, certain subregs and zero/sign_extract.
6120
6121 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
6122
6123         * Makefile.in: Update.
6124         * c-common.c: Don't include real.h or except.h.
6125         (REGISTER_PREFIX): Remove.
6126         (builtin_define_std, builtin_define_with_value,
6127         builtin_define_with_int_value, builtin_define_with_hex_fp_value,
6128         builtin_define_type_max, builtin_define_type_precision,
6129         builtin_define_float_constants): Move to c-cppbuiltin.c.
6130         (c_stddef_cpp_builtins): New.
6131         * c-common.h (builtin_define_with_value, c_stddef_cpp_builtins): New.
6132         * c-cppbuiltin.c: New, extracted from c-common.c.
6133         (define__GNUC__): New.
6134         * cppspec.c (lang_specific_driver): Remove support of -no-gcc.
6135         * gcc.c: Remove support of %v1, %v2 and %v3 specs.
6136         (cpp_unique_options): Don't support no-gcc.
6137         (do_spec_1): Remove support of version specs.
6138         * doc/invoke.texi: Remove documentation of %v1, %v2 and %v3.
6139         * doc/passes.texi: Update.
6140         * doc/tm.texi: Update.
6141
6142 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
6143
6144         * dwarf2out.c (multiple_reg_loc_descriptor): Fix thinko.
6145
6146 2003-03-10  Andrew Pinski  <apinski@apple.com>
6147
6148         * config/darwin.c (machopic_function_base_name): If dynamic-no-pic
6149         is on should not get here.
6150         (machopic_indirect_data_reference): If dynamic-no-pic is on just
6151         generate high/low parts of the address.
6152         (machopic_legitimize_pic_address): Change MACHOPIC_PURE to
6153         MACHOPIC_INDIRECT. Dynamic-no-pic uses 0 as the pic base. Generate
6154         symbol and labels with a new reg.  Dynamic-no-pic does not have a
6155         pic_offset_table_rtx.
6156         (machopic_select_section): Change references of flag_pic to
6157         MACHOPIC_INDIRECT.
6158         (machopic_asm_out_destructor): Likewise.
6159         * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Change
6160         reference of flag_pic to MACHOPIC_INDIRECT.
6161         (MACHO_DYNAMIC_NO_PIC_P): Define as TARGET_DYNAMIC_NO_PIC.
6162         (MACHOPIC_INDIRECT): Is also true when dynamic-no-pic is on.
6163         (MACHOPIC_JUST_INDIRECT): Is also true when dynamic-no-pic is on.
6164         (MACHOPIC_PURE): Is not pure when dynamic-no-pic is on.
6165         * config/i386/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define as
6166         0 for right now as dynamic-no-pic is not implemented on Darwin/ia32.
6167         * config/rs6000/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define.
6168         (TARGET_DYNAMIC_NO_PIC): Define.
6169         (SUBTARGET_SWITCHES): Define, have sub-target switches for
6170         dynamic-no-pic.
6171         (SUBTARGET_OVERRIDE_OPTIONS): Move check for -fpic from
6172         rs6000_override_options to here. Dynamic-no-pic overrides
6173         pic.
6174         (CC1_SPEC): Change from not static then pic to not static and not
6175         dynamic-no-pic then pic.
6176         * config/rs6000/rs6000.c (rs6000_override_options): Move the
6177         check for -fpic and DARWIN_ABI to config/rs6000/darwin.h
6178         (rs6000_legitimize_reload_address): Add case for loading floating in
6179         dynamic-no-pic.
6180         (rs6000_emit_move): Add case for dynamic-no-pic.  Change reference
6181         of flag_pic to MACHOPIC_INDIRECT.
6182         (secondary_reload_class): Conditional change the reference of
6183         flag_pic to MACHOPIC_INDIRECT.
6184         (rs6000_output_mi_thunk): Change reference of flag_pic to
6185         MACHOPIC_INDIRECT.
6186         (output_profile_hook): Likewise.
6187         (machopic_output_stub): Non-pure (dynamic-no-pic) is now supported.
6188         * config/rs6000/rs6000.md (movdf_low): Add the case for
6189         MACHO_DYNAMIC_NO_PIC_P.
6190         (call): Change references for flag_pic in TARGET_MACHO to
6191         MACHOPIC_INDIRECT.
6192         (SUBTARGET_OVERRIDE_OPTIONS): Add case where -fpic is on and
6193         -mdynamic-no-pic is on.  Also move case for -fpic from rs6000.c.
6194         * doc/invoke.texi (-mdynamic-no-pic): Document.
6195
6196 2003-03-10  Devang Patel  <dpatel@apple.com>
6197
6198         PR c++/9394
6199         * gcc.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
6200         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
6201         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Add.
6202         (DEFAULT_WORD_SWITCH_TAKES_ARG): Add.
6203         * cppspec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
6204         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
6205
6206 2003-03-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6207
6208         PR optimization/7189
6209         * toplev.c (rest_of_compilation):  Move
6210         check_function_return_warnings up to just after
6211         delete_unreachable_blocks.
6212
6213 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
6214
6215         * config/m68hc11/m68hc11.h (HARD_REGNO_RENAME_OK): Define.
6216         * config/m68hc11/m68hc11-protos.h (m68hc11_hard_regno_rename_ok):
6217         Declare.
6218         * config/m68hc11/m68hc11.c (m68hc11_hard_regno_rename_ok): New function
6219         for reg rename optimization to avoid using Z and Y registers.
6220
6221 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
6222
6223         * config/m68hc11/m68hc11.md ("*addhi3_68hc12"): Accept any constant
6224         when adding to X and Y since leax/leay are fast.
6225         ("*addhi3"): Accept 'I' constraint when adding to address register.
6226         ("rotlhi3"): Operand 1 must be a register_operand.
6227         (peephole2): New peephole to optimize some adds.
6228         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_P): Use 'I' constraint
6229         to represent -2 .. 2 small integer range.
6230
6231 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
6232
6233         * config/m68hc11/m68hc11.c (m68hc11_gen_rotate): Set carry before
6234         each 16-bit rotation.
6235
6236 2003-03-10  Zack Weinberg  <zack@codesourcery.com>
6237
6238         * c-opts.c (add_prefixed_path): Don't use concat.  When
6239         prefixing with cpp_GCC_INCLUDE_DIR, copy only the first
6240         cpp_GCC_INCLUDE_DIR_len characters.
6241
6242 2003-03-10  Segher Boessenkool  <segher@koffie.nl>
6243
6244         * testsuite/gcc.dg/altivec-9.c: New file.
6245
6246         * config/rs6000/rs6000.c (altivec_frame_fixup): Remove.
6247         (rs6000_emit_prologue): Use rs6000_frame_related instead.
6248
6249 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
6250
6251         * config/rs6000/spe.h: Define __ev64_*64__ to use single element
6252         vectors.
6253         (__ev_convert_u64): Remove macro.  Define as inline.
6254         (__ev_convert_s64): Same.
6255
6256 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
6257
6258         * config/rs6000/rs6000.h (DWARF_FRAME_REGISTERS): Define.
6259         (rs6000_stack_t): Add spe_64bit_regs_used.
6260
6261         * config/rs6000/rs6000.c (rs6000_stack_info): Calculate
6262         spe_64bit_regs_used, and use it to determine the size of the
6263         frame.
6264         (spe_func_has_64bit_regs_p): New.
6265         (spe_synthesize_frame_save): New.
6266         (rs6000_frame_related): Handle SPE synthetic registers.
6267         (rs6000_emit_prologue): Only save in 64-bits if the function used
6268         any registers in 64-bit mode.
6269         (rs6000_emit_epilogue): Same, but for restore.
6270
6271 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
6272
6273         * arm.h (enum floating_point_type): Delete.  Replace with...
6274         (enum fputype): ... new.
6275         (FPUTYPE_DEFAULT): Renamed from FP_DEFAULT.  Values reworked.
6276         * linux-elf.h (FPUTYPE_DEFAULT): Likewise.
6277         * arm.md (attr fpu): Reworked for new underlying enum values.
6278         * arm.c (arm_fpu_arch): Now enum fputype.
6279         (arm_fpu_tune): Renamed from arm_fpu.  Now enum fputype.
6280         (arm_override_options, arm_output_epilogue, arm_expand_prologue):
6281         Update uses of arm_fpu_arch and arm_fpu_tune.
6282
6283 2003-03-10  Josef Zlomek  <zlomekj@suse.cz>
6284
6285         * cfgcleanup.c (outgoing_edges_match): Compare the jump tables.
6286         (try_crossjump_to_edge): Replace refereces to one jump table by
6287         references to identical jump table.
6288         * loop.c (load_mems): Moved setting the JUMP_LABEL to replace_label.
6289         (replace_label): Moved to rtlanal.c.
6290         (struct rtx_pair): Moved to rtl.h.
6291         * rtl.h (struct rtx_pair): Moved from loop.c.
6292         (replace_label): New extern function.
6293         (subrtx_p): New extern function.
6294         (tablejump_p): New extern function.
6295         * rtlanal.c (replace_label): Moved from loop.c.
6296         (subrtx_p_1): New static function.
6297         (subrtx_p): New function.
6298         (tablejump_p): New function.
6299
6300 2003-03-10  Jan Hubicka  <jh@suse.cz>
6301
6302         * cfgcleanup.c (try_optimize_cfg): Fix thinko in previous patch.
6303
6304         * cfgcleanup.c (merge_blocks): Return where to iterate next.
6305         (try_optimize_cfg): Use return value of merge_blocks
6306
6307 2003-03-10  Michael Matz  <matz@suse.de>
6308
6309         * cfg.c (unchecked_make_edge): New.
6310         (cached_make_edge): Use it.
6311         * basic-block.h (unchecked_make_edge): Declare.
6312         * cfglayout.c (cfg_layout_duplicate_bb): Use it.
6313
6314 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
6315
6316         * fpa.md: New file.  Move all patterns relating to FPA co-processor
6317         to here...
6318         * arm.md: ... from here.
6319         (cirrus.md, fpa.md): Include at end of description.
6320         (divsf3, divdf3, modsf3, movdf3, sqrtsf2, sqrtdf2): New expands.
6321         (pic_load_addr_based): Remove register constraint from expander.
6322         (seq, sne, sgt, sle, slt, sge, sgeu, sleu, sgtu, sltu, sunordered)
6323         (sordered, sungt, sunle, sunge, sunlt): Likewise.
6324         (eh_epilogue, tablejump): Likewise.
6325
6326 2003-03-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6327
6328         * tree.c (substitute_in_expr, case 'e'): Only make recursive call
6329         on operands if it has a PLACEHOLDER_EXPR.
6330
6331 2003-03-09  David Edelsohn  <edelsohn@gnu.org>
6332             Mostafa Hagog
6333
6334         * config/rs6000/rs6000.md (movsi_update1): Add TARGET_UPDATE final
6335         condition.
6336
6337 2003-03-09  Neil Booth  <neil@daikokuya.co.uk>
6338
6339         * config/frv/frv.h: Use TARGET_CPU_CPP_BUILTINS, not CPP_PREDEFINES.
6340         * config/ip2k/ip2k.h: Similarly.
6341         * config/m32r/m32r.h: Similarly.
6342         * config/m68hc11/m68hc11.h: Similarly.
6343         * config/mn10200/mn10200.h: Similarly.
6344         * config/mn10300/mn10300.h: Similarly.
6345         * config/pdp11/pdp11.h: Similarly.
6346         * config/v850/v850.h: Similarly.
6347         * config/rs6000/vxworks.h: Similarly for TARGET_OS_CPP_BUILTINS.
6348         * config/v850/retms.h: Similarly for TARGET_OS_CPP_BUILTINS.
6349         * config/mips/iris3.h: Remove #if 0 block.
6350
6351 2003-03-09  Roger Sayle  <roger@eyesopen.com>
6352             Joern Rennecke <joern.rennecke@superh.com>
6353
6354         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
6355         pending argument upon return from handle_braces here.
6356         (do_spec_2): Instead handle it upon return from do_spec_1 here.
6357
6358 2003-03-09  Roger Sayle  <roger@eyesopen.com>
6359             Joern Rennecke <joern.rennecke@superh.com>
6360
6361         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
6362         pending argument upon return from handle_braces here.
6363         (do_spec_2): Instead handle it upon return from do_spec_1 here.
6364
6365 2003-03-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6366
6367         * varasm.c (make_decl_one_only): Use declare_weak().
6368
6369 2003-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6370
6371         PR middle-end/9986
6372         * c-common.c (c_common_nodes_and_builtins): Initialize target builtins
6373         after the common builtins.
6374         * pa-hpux.h (DONT_HAVE_FPUTC_UNLOCKED): Define.
6375         * pa.c (TARGET_INIT_BUILTINS): Define.
6376         (pa_init_builtins): New function.
6377
6378         * pa.md (call, call_value, sibcall, sibcall_value): When sufficient
6379         space has been allocated for the outgoing arguments, set the arg
6380         pointer for a call emitted after virtuals have been instantiated
6381         using the stack pointer offset, otherwise abort.
6382
6383 2003-03-09  DJ Delorie  <dj@redhat.com>
6384
6385         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH): Revert.
6386
6387 2003-03-09  Richard Earnshaw  <rearnsha@arm.com>
6388
6389         * arm.md (fix_truncsfsi2, fix_truncdfsi2, arm_fix_truncsfsi2)
6390         (arm_fix_truncdfsi2): Add missing fix in floating point mode before
6391         conversion to integer.
6392         * cirrus.md (cirrus_truncsfsi2, cirrus_truncdfsi2): Likewise.
6393
6394 2003-03-09  Roger Sayle  <roger@eyesopen.com>
6395
6396         * builtins.def: Fix typo and improve grammar.
6397         * loop-unroll.c (decide_peel_completely): Tidy log message.
6398
6399 2003-03-09  Kazu Hirata  <kazu@cs.umass.edu>
6400
6401         * config/h8300/h8300.md (*tstsi_upper_bit): New.
6402         (*iorsi3_e2f): Likewise.
6403
6404 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
6405
6406         * config/h8300/h8300.c (h8300_and_costs): Return the number of
6407         assembly instructions needed.
6408         (h8300_shift_costs): Likewise.
6409
6410 2003-03-09  Hans-Peter Nilsson  <hp@bitrange.com>
6411
6412         * config/cris/aout.h (ENDFILE_SPEC): Undef.
6413
6414         * optabs.c (gen_move_insn): Move logic for synthesizing MODE_CC
6415         moves from here ...
6416         * expr.c (emit_move_insn_1): ... to here.
6417
6418         * config/cris/aout.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__AOUT__ to...
6419         (TARGET_OS_CPP_BUILTINS): New macro.
6420         * config/cris/cris.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__ELF__ to...
6421         (TARGET_OS_CPP_BUILTINS): New macro.
6422         (CPP_PREDEFINES): Don't define.  Move old definitions and...
6423         (CPP_SPEC): ...move -D__CRIS_ABI_version=2 to...
6424         (TARGET_CPU_CPP_BUILTINS): New macro.
6425         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Move constant
6426         definitions and the optional __PIC__, __pic__ and
6427         __NO_UNDERSCORES__ definitions to...
6428         (TARGET_OS_CPP_BUILTINS): New macro.
6429
6430         * flags.h (flag_leading_underscore): Declare.
6431
6432         * c-opts.c (c_common_post_options): On fopen failure, return
6433         false, not NULL.
6434
6435 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
6436
6437         * config/cris/cris_abi_symbol.c: #include tconfig.h and tm.h, not
6438         config.h.
6439         * config/cris/cris.h (HAVE_GAS_HIDDEN): Don't define here.
6440         * config/cris/aout.h (HAVE_GAS_HIDDEN): Undef.
6441
6442 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
6443
6444         * config/sh/rtemself.h (TARGET_OS_CPP_BUILTINS): Use instead of
6445         CPP_PREDEFINES.
6446         * config/sh/rtems.h (TARGET_OS_CPP_BUILTINS): Use instead of
6447         CPP_PREDEFINES.
6448
6449 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
6450
6451         * c-common.h (c_common_init, c_common_post_options): Update.
6452         * c-objc-common.c (c_objc_common_init): Update for new prototype.
6453         * c-opts.c (saved_lineno): New.
6454         (c_common_post_options, c_common_init): Update prototypes,
6455         move call to cpp_read_main_file from latter to former.
6456         * c-tree.h (c_ojbc_common_init): Update.
6457         * langhooks-def.h (lhd_post_options): New.
6458         (LANG_HOOKS_INIT, LANG_HOOKS_POST_OPTIONS): Update.
6459         * langhooks.c (lhd_post_options): New.
6460         * langhooks.h (struct lang_hooks): Update post_options and init hooks.
6461         * toplev.c (no_backend): New.
6462         (process_options): Call post_options hook and set main_input_filename
6463         and input_filename here.
6464         (lang_dependent_init, do_compile): post_options hook moved to
6465         process_options.
6466         * objc/objc-act.c (objc_init): Update prototype.
6467         * objc/objc-act.h (objc_init): Update prototype.
6468
6469 2003-03-08  Roger Sayle  <roger@eyesopen.com>
6470
6471         * emit-rtl.c (gen_lowpart): Don't attempt to load a part of
6472         a complex or vector type, using a load in the original mode.
6473
6474 2003-03-08  Jan Hubicka  <jh@suse.cz>
6475
6476         * Makefile.in (cgraph.o): Depend on gt-cgraph.h and varray.h.
6477         * gt-cgraph.h: New GC file.
6478         * cgraph.c (known_fns): New static variable.
6479         (cgraph_node): Add the decl into varray.
6480
6481 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
6482
6483         * config/mmix/mmix.md ("*movcc_expanded"): Add missing alternatives.
6484
6485 2003-03-08  Richard Earnshaw  <rearnsha@arm.com>
6486
6487         * arm.c (fpa_rhs_operand, fpa_add_operand, const_double_rtx_ok_for_fpa)
6488         (neg_const_double_ok_for_fpa, output_mov_long_double_fpa_from_arm)
6489         (output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm)
6490         (output_mov_double_arm_from_fpa): Renamed to use fpa instead of fpu.
6491         All callers changed.
6492         * arm.md, arm.h, arm-protos.h: Updated.
6493
6494         * arm.h (enum reg_class FPA_REGS): Renamed from FPU_REGS.
6495         (CLASS_MAX_NREGS, REGISTER_MOVE_COST, REG_CLASS_FROM_LETTER): Updated.
6496         * arm.c (arm_regno_class, f_register_operand): Updated.
6497
6498 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
6499
6500         * config/cris/cris.h: Remove EGCS references.
6501         (CPP_SPEC): Remove "-$".
6502         (INIT_CUMULATIVE_ARGS): Adjust parameter name to FNDECL.
6503
6504 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
6505
6506         * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Use in
6507         preference to CPP_PREDEFINES.
6508
6509 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
6510
6511         * cppinit.c (cpp_finish_options): Set first_unused_line to -1.
6512
6513 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
6514
6515         * config/h8300/h8300.md (*extzv_16_8): New.
6516
6517 2003-03-08  Jan Hubicka  <jh@suse.cz>
6518
6519         * c-decl.c: (finish_function): Update call of tree_inlinable_function_p.
6520         * cgraph.h: (cgraph_local_info): Add can_inline_once
6521         (cgraph_global_info): Add inline_once.
6522         (cgraph_node): Add previous.
6523         (cgraph_remove_node): New.
6524         * cgraphunit.c (cgraph_mark_functions_to_inline_once): New static
6525         function.
6526         (cgraph_optimize): Call it.
6527         (cgraph_finalize_function):  Set inlinable flags.
6528         (cgraph_finalize_compilation_unit):  Actually remove the reclaimed nodes.
6529         (cgraph_mark_functions_to_output):  Use new inlining heuristics flags.
6530         (cgraph_expand_function): Likewise.
6531         * cgraph.c
6532         (cgraph_node): Put nodes into doubly linked chain.
6533         (cgraph_remove_node): New function.
6534         * flags.h (flag_inline_functions_called_once): Declare.
6535         * tree-inline.c: Include cgraph.h
6536         (inlinable_functions_p): Add extra argument to bypass limits.
6537         (expand_call_inline):  Obey cgraph flag.
6538         * tree-inline.h (tree_inlinable_function_p): Update prototype.
6539
6540 2003-03-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6541
6542         * gcse.c (bypass_block, bypass_conditional_jumps): Do not create
6543         irreducible loops.
6544
6545         * loop-unroll.c (unroll_loop_runtime_iterations): Update irreducible
6546         loops info correctly.
6547
6548 2003-03-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
6549
6550         PR middle-end/7796
6551         * unroll.c (calculate_giv_inc): Handle constants being
6552         loaded with LSHIFTRT.
6553
6554 2003-03-07  David Edelsohn  <edelsohn@gnu.org>
6555
6556         * config/rs6000/rs6000.c (processor_target_table): Do not disable
6557         GP optional instructions on Power3, Power4, 620, and 630.
6558
6559 2003-03-07  Kazu Hirata  <kazu@cs.umass.edu>
6560
6561         * calls.c: Fix comment formatting.
6562         * cfgloopanal.c: Likewise.
6563         * cfgloopmanip.c: Likewise.
6564         * combine.c: Likewise.
6565         * dwarf2out.c: Likewise.
6566         * ggc-common.c: Likewise.
6567         * langhooks.c: Likewise.
6568         * loop-unroll.c: Likewise.
6569         * loop.c: Likewise.
6570         * ra-build.c: Likewise.
6571         * sbitmap.c: Likewise.
6572         * toplev.c: Likewise.
6573
6574 2003-03-07  James E Wilson  <wilson@tuliptree.org>
6575
6576         * config/sh/sh.h (HARD_REGNO_NREGS): Round up the XD register count.
6577
6578 2003-03-07  Geoffrey Keating  <geoffk@apple.com>
6579
6580         * objc/lang-specs.h (objective-c-header): Use .gch not .pch;
6581         support -no-integrated-cpp.
6582
6583         * c-pch.c (get_ident): Use c_language_kind and flag_objc rather
6584         than langhooks.name.
6585
6586 2003-03-07  Michael Matz  <matz@suse.de>
6587
6588         * df.h (enum df_ref_flags.DF_REF_STRIPPED): New.
6589         (DF_FOR_REGALLOC): New.
6590         * df.c (df_ref_record): Set DF_REF_STRIPPED.
6591         (read_modify_subreg_p): Simplify.
6592         (df_def_record_1, df_uses_record): Set DF_REF_MODE_CHANGE more often.
6593         Use DF_FOR_REGALLOC.
6594         * ra.h (struct web): New member subreg_stripped.
6595         (invalid_mode_change_regs): Declare.
6596         * ra.c (invalid_mode_change_regs): New.
6597         (init_ra): Initialize it.
6598         * ra-build.c (init_one_web_common, remember_web_was_spilled): Use it.
6599         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
6600         (reinit_one_web, parts_to_web_1): Deal with subreg_stripped.
6601         * ra-colorize.c (colorize_one_web): Use invalid_mode_change_regs.
6602         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
6603
6604 2003-03-07  Richard Earnshaw  <rearnsha@arm.com>
6605
6606         * arm.md (addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, negsf2)
6607         (negdf2, abssi2, abssf2, absdf2, floatsisf2, floatsidf2)
6608         (fix_truncsfsi2, fix_truncdfsi2, truncdfsf2): Moved back into main
6609         machine description file from ...
6610         * cirrus.md: ... here.
6611
6612 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
6613
6614         * config/h8300/h8300.md (a peephole2): Don't use
6615         reg_overlap_mentioned_p.
6616
6617 2003-03-06  Geoffrey Keating  <geoffk@apple.com>
6618
6619         * c-pch.c: Include langhooks.h.
6620         (IDENT_LENGTH): New.
6621         (get_ident): New.
6622         (pch_ident): Delete.
6623         (pch_init): Use get_ident, IDENT_LENGTH.
6624         (c_common_valid_pch): Likewise.  Also, use actual language
6625         in warning message.
6626         * Makefile.in (c-pch.o): Add langhooks.h to dependencies.
6627
6628         * objc/config-lang.in (gtfiles): Add objc-act.c.  Remove duplicate
6629         c-parse.in.
6630         * objc/Make-lang.in (objc/objc-act.o): Add dependency on
6631         gt-objc-objc-act.h.
6632         (gt-objc-objc-act.h): New rule.
6633         * objc/lang-specs.h: Support PCH.
6634         * objc/objc-act.c: Include gt-objc-objc-act.h.
6635         (objc_add_static_instance): Move num_static_inst out, mark for PCH.
6636         (build_selector_reference_decl): Move idx out, mark for PCH.
6637         (build_class_reference_decl): Likewise.
6638         (build_objc_string_decl): Move *_idx out, mark for PCH.
6639         (build_tmp_function_decl): Move xxx out, mark for PCH.
6640
6641 2003-03-06  Dale Johannesen  <dalej@apple.com>
6642
6643         * config/rs6000/rs6000.c (rs6000_binds_local_p):  Consider
6644         global functions for inlining on Darwin.
6645
6646 2003-03-06  Vladimir Makarov  <vmakarov@redhat.com>
6647
6648         * haifa-sched.c (schedule_block): Don't call reorder when sorting
6649         is prohibited.
6650
6651 2003-03-06  Neil Booth  <neil@daikokuya.co.uk>
6652
6653         * Makefile.in (c-ppoutput.o): Update.
6654         * c-common.h (init_pp_output): New.
6655         (preprocess_file): Update.
6656         * c-lex.c (init_c_lex): Move mbchar initialization to cpplib.
6657         Register builtins.
6658         * c-opts.c (c_common_init): Call init_pp_output if preprocessing.
6659         Make call to cpp_read_main_file common to whether preprocessing
6660         or not.  Don't register builtins.
6661         * c-ppoutput.c: Include c-pragma.h.
6662         (setup_callbacks): Rename init_pp_output.
6663         (preprocess_file): No longer setup callbacks or call
6664         cpp_read_main_file.
6665         * cpphash.h (_cpp_init_mbchar): New.
6666         * cppinit.c (init_library): Call _cpp_init_mbchar.
6667         * cpplex.c (_cpp_init_mbchar): New.
6668
6669 2003-03-06  Roger Sayle  <roger@eyesopen.com>
6670
6671         * emit-rtl.c (gen_lowpart): When requesting the low-part of a
6672         MEM, try loading the MEM into a register and taking the low-part
6673         of that, to help CSE see the use of the MEM in its true mode.
6674
6675 2003-03-05  Tom Tromey  <tromey@redhat.com>
6676
6677         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH):
6678         Define.
6679
6680 2003-03-05  Nick Clifton  <nickc@cambridge.redhat.com>
6681
6682         * config/stormy16/stormy16.md ("*eqbranchsi"): Remove '+' on
6683         operand 2.
6684         ("*ineqbranchsi"): Likewise.
6685
6686 2003-03-05  Andrew Haley  <aph@cambridge.redhat.com>
6687
6688         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Delete
6689         mem_fake_push_rtx.  Instead construct a SEQUENCE to show the
6690         register store followed by a stack increment.
6691
6692 2003-03-05  Chris Moller  <cmoller@redhat.com>
6693
6694         * config/stormy16/stormy16.c (REG_NEEDS_SAVE): added a term
6695         to inhibit saving CARRY_REGS.
6696
6697         * config/stormy16/stormy16.c (xs_hi_general_operand):
6698         added predicate to detect and error-out on out-of-range
6699         const_ints for movhi.
6700         * config/stormy16/stormy16.md (movhi): use
6701         xs_hi_general_operand.
6702
6703         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
6704         added a check for local vbl size overflow.
6705         * config/stormy16/stormy16.c (xs_hi_nonmemory_operand):
6706         added predicate to detect and error-out on out-of-range
6707         const_ints for addhi and subhi.
6708         * config/stormy16/stormy16.md (addhi3, addchi4, addchi5,
6709         subhi3, subchi4, subchi5): used xs_hi_nonmemory_operand.
6710
6711         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
6712         add a term to accept PRE_MODIFY addresses.
6713         * config/stormy16/stormy16.c (xstormy16_expand_move):
6714         add code to expand PRE_MODIFY addresses to an add followed
6715         by a move.
6716
6717 2003-03-06  Jason Merrill  <jason@redhat.com>
6718
6719         * tree-inline.c (inlinable_function_p): Revert earlier change
6720         pending investigation.
6721
6722 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
6723
6724         * config/h8300/h8300.md (a new peephole2): New.
6725
6726 2003-03-06  Jan Hubicka  <jh@suse.cz>
6727
6728         * cgraph.c (cgraph_node): Do not confuse nested functions and methods.
6729
6730 2003-03-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6731
6732         * dwarf2out.c (size_of_die): Compute size of external reference to
6733         die correctly.
6734
6735 2003-03-06  Hans-Peter Nilsson  <hp@bitrange.com>
6736
6737         * config/mmix/mmix.md ("*movcc_expanded"): New pattern.
6738         ("movcc", "movcc_uns", "movcc_fp", "movcc_fpeq", "movcc_fun"): New
6739         expanders.
6740
6741 2003-03-05  Roger Sayle  <roger@eyesopen.com>
6742
6743         * expr.h (lang_expand_expr): Delete obsolete prototype.
6744
6745 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
6746
6747         * emit-rtl.c (gen_highpart_mode): Fix a comment typo.
6748
6749 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
6750
6751         * config/h8300/h8300.md (a peephole2): Generalize to
6752         accept a memory operand.
6753
6754 2003-03-05  Olivier Hainque <hainque@act-europe.fr>
6755
6756         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '+'.
6757         * config/alpha/alpha.c (print_operand, case '+'): New.
6758         * config/alpha/alpha.md (call_osf_1_noreturn): Document and use.
6759         (call_value_osf_1_noreturn): Likewise.
6760
6761 2003-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6762
6763         * stmt.c (fixup_gotos): Change meaning of DONT_JUMP_IN.
6764         (expand_end_bindings): Likewise.
6765
6766 2003-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6767
6768         * pa.md (return_external_pic): Add !TARGET_PA_20 to constraint.
6769         (epilogue): Don't generate return_external_pic when emitting PA 2.0
6770         code.
6771
6772 2003-03-05  Aldy Hernandez  <aldyh@redhat.com>
6773
6774         * doc/tm.texi: Document TARGET_DWARF_REGISTER_SPAN.
6775
6776         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): New.
6777
6778         * hooks.c (hook_rtx_rtx_null): New.
6779
6780         * hooks.h (hook_rtx_rtx_null): Protoize.
6781
6782         * target-def.h (TARGET_DWARF_REGISTER_SPAN): New macro.
6783         (TARGET_INITIALIZER): Add TARGET_DWARF_REGISTER_SPAN.
6784
6785         * target.h (struct gcc_target): Add dwarf_register_span.
6786
6787         * dwarf2out.c (multiple_reg_loc_descriptor): New.
6788         (one_reg_loc_descriptor): New.
6789         (reg_loc_descriptor): Add support for values that span more than
6790         one register.
6791
6792 2003-03-05  Jan Hubicka  <jh@suse.cz>
6793
6794         * Makefile.in (calls.o, toplev.o alias.o): Depend on cgraph.h
6795         * alias.c:  Include cgraph.h
6796         (mark_constant_function): Use cgraph_rtl_info.
6797         * calls.c:  Include cgraph.h
6798         (flags_from_decl_or_type): Use cgraph_rtl_info to find pure and const
6799         calls.
6800         (expand_call): Use cgraph_rtl_info to set preferred stack boundary.
6801         * cgraph.c (cgraph_rtl_info): New function.
6802         * cgraph.h (cgraph_rtl_info): Declare
6803         (cgraph_rtl_info): Likewise.
6804         * function.h (struct function): Add recursive_call_emit.
6805         * toplev.c: Include cgraph.h.
6806         (rest_of_compilation): Set preferred_incoming_stack_boundary.
6807
6808 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
6809
6810         * config/h8300/h8300.c (output_simode_bld): Clear the
6811         destination first if possible.
6812         * config/h8300/h8300.md (extzv_1_r_h8300hs): Add an
6813         alternative.
6814         (extzv_1_r_inv_h8300hs): Likewise.
6815
6816 2003-03-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6817
6818         * basic-block.h (EDGE_IRREDUCIBLE_LOOP, EDGE_ALL_FLAGS): New.
6819         * cfg.c (dump_edge_info): Add EDGE_IRREDUCIBLE_LOOP flag dump.
6820         * cfgloop.c (flow_loop_free): Made global.
6821         (establish_preds): New static function.
6822         (flow_loop_tree_node_add): Handle subloops of added loop correctly.
6823         (get_loop_exit_edges): New.
6824         (verify_loop_structure): Verify EDGE_IRREDUCIBLE_LOOP flags.
6825         * cfgloop.h (flow_loop_free, get_loop_exit_edges, unloop): Declare.
6826         * cfgloopanal.c (mark_irreducible_loops): Mark edges in irreducible
6827         loops.
6828         * cfgloopmanip.c (loop_delete_branch_edge): Allow to test for
6829         removability of an edge.
6830         (fix_irreducible_loops): New static function.
6831         (find_path, remove_path): Add ability to remove enclosing loops.
6832         (unloop): New.
6833         (copy_bbs, duplicate_loop_to_header_edge): Use EDGE_IRREDUCIBLE_LOOP
6834         flags.
6835         * cfgrtl.c (verify_flow_info): Handle EDGE_IRREDUCIBLE_LOOP flag.
6836         * loop-unroll.c (peel_loops_completely): Do not duplicate loop if
6837         not neccessary.
6838         (decide_peel_completely, peel_loops_completely): Allow complete peeling
6839         of non-duplicable once rolling loops.
6840         * loop-unswitch.c (unswitch_loop): Update EDGE_IRREDUCIBLE_LOOP flags.
6841
6842 2003-03-05  J"orn Rennecke <joern.rennecke@superh.com>
6843
6844         * sh.h (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, the minimum value
6845         for align_jumps is 4.
6846
6847         (SECONDARY_INPUT_RELOAD_CLASS): If reloading a PLUS into FPUL,
6848         use GENERAL_REGS.
6849
6850 2003-03-05  Stephane Carrez  <stcarrez@nerim.fr>
6851
6852         * config/m68hc11/m68hc11.h (PAD_VARARGS_DOWN): Define and return
6853         according to va_arg type.
6854         (EXPAND_BUILTIN_VA_ARG): Remove.
6855         * config/m68hc11/m68hc11.c (m68hc11_va_arg): Remove.
6856         * config/m68hc11/m68hc11-protos.h (m68hc11_va_arg): Remove.
6857
6858 2003-03-05  David Edelsohn  <edelsohn@gnu.org>
6859
6860         * config/rs6000/rs6000.c (rs6000_variable_issue): Remove unnecessary
6861         else clauses.
6862
6863 2003-03-05  Michael Matz  <matz@suse.de>
6864
6865         * i386/i386.c (ix86_save_reg): Also test
6866         current_function_uses_const_pool.
6867
6868 2003-03-05  Michael Matz  <matz@suse.de>
6869
6870         * unwind.h: Add the GPL exception.
6871         * Makefile.in (USER_H): Add unwind.h.
6872
6873 2003-03-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
6874
6875         PR c/9799
6876         * c-typeck.c (push_init_level): Add sanity check.
6877
6878 2003-03-05  Jan Hubicka  <jh@suse.cz>
6879
6880         * toplev.c (rest_of_compilation):  Deffer RTL compilation only when
6881         RTL inlining is done.
6882
6883         * cgraphunit.c (cgraph_mark_local_functions): New local function.
6884         (cgraph_optimize): Mark local functions.
6885         * i386-protos.h (init_cumulative_args): Update prototype.
6886         * i386.c (init_cumulative_args): Use register passing convention for
6887         local functions.
6888
6889         * cgraph.c (cgraph_global_info_ready): New global variable
6890         (cgraph_local_info, cgraph_global_info): New functions.
6891         * cgraph.h (struct cgraph_local_info, cgraph_global_info): New
6892         structures.
6893         (cgraph_local_info, cgraph_global_info, cgraph_global_info_ready):
6894         Declare.
6895         * cgraphunit.c (cgraph_finalize_function): Set inline_many.
6896         (cgraph_mark_functions_to_output): Use inline_many.
6897         (cgraph_expand_function): Free DECL_SAVED_TREE uncondtionally.
6898         (cgraph_expand_functions): Expand inline functions last.
6899         (cgraph_optimize): Do not emit uneeded functions.
6900
6901 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
6902
6903         * expr.c (convert_modes): Check for legal hard register.
6904
6905 2003-03-04  Tom Tromey  <tromey@redhat.com>
6906
6907         * doc/sourcebuild.texi (Front End Directory): Document tags.
6908         * configure: Rebuilt.
6909         * configure.in (target_list): Added tags.
6910         * Makefile.in (TAGS): Depend on lang.clean.  Include subdirectory
6911         TAGS files by reference.
6912         * objc/Make-lang.in (objc.tags): New target.
6913
6914 2003-03-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6915
6916         * gcov-io.h (gcov_save_position, gcov_reserve_length, gcov_resync,
6917         gcov_skip, gcov_skip_string, gcov_write_unsigned, gcov_write_counter,
6918         gcov_write_string, gcov_read_unsigned, gcov_read_counter,
6919         gcov_read_string, gcov_write_length): Modified to enable reading/
6920         writing of whole .da file just once.
6921         (da_file_open, da_file_close, da_file_eof, da_file_error,
6922         da_file_position, da_file_seek, da_file_write, da_file_read): New
6923         functions.
6924         (actual_da_file, actual_da_file_position, actual_da_file_length,
6925         actual_da_file_buffer, actual_da_file_buffer_size): New static
6926         functions.
6927         * libgcov.c (gcov_exit): Modified to read/write the whole .da file at
6928         just once.
6929
6930
6931 2003-03-04  Andreas Schwab  <schwab@suse.de>
6932
6933         * config/m68k/m68k.c (m68k_output_function_prologue): Fix CFA
6934         offset without frame pointer.
6935
6936 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
6937
6938         * expr.c (expand_expr): Call promote_mode to set unsignedp.
6939
6940 2003-03-04  Daniel Jacobowitz  <drow@mvista.com>
6941
6942         * configure.in: Don't always define TARGET_SYSTEM_ROOT.
6943         * configure: Regenerated.
6944         * gcc.c: Check whether TARGET_SYSTEM_ROOT is defined.
6945
6946 2003-03-04  Andreas Jaeger  <aj@suse.de>
6947
6948         * configure.in: Check for <memcheck.h>.
6949         * configure: Regenerated.
6950
6951         * config.in: Define HAVE_MEMCHECK_H.
6952
6953         * ggc-common.c: Use <memcheck.h> if available instead of
6954         <valgrind.h>.
6955         * ggc-page.c: Likewise.
6956         * cppfiles.c: Likewise.
6957
6958 2003-03-04  Kazu Hirata  <kazu@cs.umass.edu>
6959
6960         * config/h8300/h8300.md (*extzv_8_8): Fix cc and lengths.
6961
6962 2003-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6963
6964         PR c/9262
6965         * c-typeck.c (do_case): Attach the first case label to the SWITCH_BODY.
6966         (c_finish_case): Rechain the next statements to the SWITCH_STMT.
6967
6968 2003-03-04  Jan Hubicka  <jh@suse.cz>
6969
6970         * doc/invoke.texi:  Document that unit-at-a-time is enabled for -O3
6971         * toplev.c (parse_options_and_default_flags): Enable flag_unit_at_a_time
6972         for -O3.
6973
6974 2003-03-04  Nathanael Nerode  <neroden@gcc.gnu.org>
6975
6976         * configure.in: Delete three unused variables.  Move a variable
6977         definition closer to its use.  Simplify use_collect2 logic.  Start to
6978         organize.  Simplify tests for in-tree gas and ld.
6979         * configure: Regenerate.
6980
6981 2003-03-04  Neil Booth  <neil@daikokuya.co.uk>
6982
6983         * Makefile.in: Update.
6984         * c-common.c (flag_no_line_commands, flag_no_output,
6985         flag_dump_macros, flag_dump_includes): New.
6986         * c-common.h (flag_no_line_commands, flag_no_output,
6987         flag_dump_macros, flag_dump_includes, preprocess_file): New.
6988         (init_c_lex): Update prototype.
6989         * c-lex.c (init_c_lex): Update prototype; move some code to
6990         c_common_init.
6991         * c-opts.c (preprocess_file): Subsume into c_common_init.
6992         (c_common_decode_option): Update flags.
6993         (c_common_init): Move code from preprocess_file and init_c_lex.
6994         (sanitize_cpp_opts): Update.
6995         * c-ppoutput.c: New, cppmain.c almost verbatim.
6996         * cpphash.h (struct printer): Remove.
6997         (struct cpp_reader): Remove print.
6998         * cpplib.h (dump_none, dump_only, dump_names, dump_definitions,
6999         cpp_preprocess_file): Remove.
7000         (struct cpp_options): Remove no_output, no_line_commands, dump_macros
7001         and dump_includes.
7002         * cppmain.c: Remove.
7003         * doc/passes.texi: Update.
7004
7005 2003-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7006
7007         * function.c (STACK_ALIGNMENT_NEEDED): New macro.  Default to 1.
7008         (assign_stack_local_1): Perform overall stack alignment only when
7009         STACK_ALIGNMENT_NEEDED is non-zero.
7010         * doc/tm.texi (STACK_ALIGNMENT_NEEDED): Document.
7011
7012         * pa.c (compute_frame_size): Rename fsize to size.  Account for
7013         alignment to a word boundary before general register save block.  Only
7014         account for double-word alignment before floating point register save
7015         block if one or more are saved.  Don't allocate space for %r3 when
7016         frame pointer is needed.
7017         (hppa_expand_prologue): Include alignment to word boundary in local
7018         frame size.
7019         * pa.h (STARTING_FRAME_OFFSET): Define to 8 on both 32 and 64-bit ports.
7020         (STACK_ALIGNMENT_NEEDED): Define.
7021
7022 2003-03-04  Kevin Buettner  <kevinb@redhat.com>
7023
7024         * dwarf2out.c (rtl_for_decl_location): Don't return NULL_RTX for
7025         global register variables.
7026
7027 2003-03-04  Alexandre Oliva  <aoliva@redhat.com>
7028
7029         * reload.c (reload_adjust_reg_for_mode): New function.
7030         (subst_reloads): Call it.
7031         (operands_match_p): Adjust registers using HARD_REGNO_NREGS.
7032         * reload.h (reload_adjust_reg_for_mode): Declare.
7033         * reload1.c (emit_input_reload_insns, emit_output_reload_insns):
7034         Call it.
7035
7036 2003-03-03  James E Wilson  <wilson@tuliptree.org>
7037
7038         * optabs.c (add_equal_note): Delete SUBREG_REG use.
7039         Fixes PR c/7872.
7040
7041 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7042
7043         * config/h8300/h8300.md (*ixorsi3_ashift_16): New.
7044         (*ixorsi3_lshiftrt_16): New.
7045         (*iorsi3_ashift_16): Remove.
7046
7047 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7048
7049         * config/h8300/h8300.md (*extzv_8_8): Use '?' to simplify the
7050         pattern.
7051
7052 2003-03-03  Geoffrey Keating  <geoffk@apple.com>
7053
7054         * doc/install.texi (Specific): Update entry for powerpc-darwin.
7055
7056 2003-03-03  Richard Henderson  <rth@redhat.com>
7057
7058         * config/ia64/ia64.h (HAVE_AS_LTOFFX_LDXMOV_RELOCS): Default to 0.
7059
7060 2003-03-03  David Edelsohn  <edelsohn@gnu.org>
7061
7062         * config/rs6000/rs6000.c (rs6000_multipass_dfa_lookahead): Delete.
7063         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Delete.
7064         (rs6000_variable_issue): Do not return negative value.
7065         (rs6000_issue_rate): Uniformly set issue rate to 1 for first
7066         scheduling pass.
7067
7068 2003-03-03  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7069
7070         * dwarf2out.c (dwarf2out_finish): Swap order of break_out_includes and
7071         prune_unused_types calls.
7072
7073 2003-03-03  Jason Merrill  <jason@redhat.com>
7074
7075         * tree-inline.c (find_builtin_longjmp_call): Save and restore
7076         lineno and input_filename.
7077         (find_alloca_call): Likewise.
7078         (inlinable_function_p): Run the langhook earlier.
7079
7080         * calls.c (compute_argument_addresses): Give the new MEMs a
7081         minimum alignment of PARM_BOUNDARY.
7082
7083 2003-03-03  J"orn Rennecke <joern.rennecke@superh.com>
7084
7085         * config/sh/sh.h (EXTRA_SPECS): Add subtarget_asm_relax_spec and
7086         subtarget_asm_isa_spec.
7087         (SUBTARGET_ASM_RELAX_SPEC, SUBTARGET_ASM_ISA_SPEC): Define.
7088         (ASM_SPEC): Define as SH_ASM_SPEC.
7089         (SH_ASM_SPEC): New; take the role of ASM_SPEC, but safe from svr4.h.
7090         Use subtarget_asm_relax_spec and subtarget_asm_isa_spec.
7091         * config/sh/elf.h (ASM_SPEC): Use SH_ASM_SPEC.
7092         (SUBTARGET_ASM_ISA_SPEC): Undef / define.
7093
7094         * sh.h (OVERRIDE_OPTIONS): Set default values for align_loops
7095         and align_jumps if not set.
7096         Force align_jumps to be at least 2.
7097         When relaxing, force align_functions to be at least the maximum of
7098         align_loops, align_jumps and 4.
7099         * sh.c (find_barrier, barrier_align): Honour align_jumps_log.
7100         (sh_loop_align): Honour align_loops_log.
7101
7102         * sh.md (length attribute): Use prev_nonnote_insn instead of PREV_INSN
7103         to check for indirect_jump_scratch.
7104         (indirect_jump_scratch): Add second set.
7105         * sh.c (output_far_jump): Use prev_nonnote_insn instead of PREV_INSN
7106         when looking for indirect_jump_scratch.
7107         Extract scratch register taking new structure of indirect_jump_scratch
7108         into account.
7109         (gen_block_redirect): Set INSN_SCOPE for indirect_jump_scratch.
7110
7111 2003-03-03  Jan Hubicka  <jh@suse.cz>
7112
7113         * calls.c (rtx_for_function_call): Take the address as an argument
7114         (expand_call): Do not modify the expression.
7115
7116         * toplev.c (rest_of_compilation):  Avoid cfg_cleanup calls when not
7117         optimizing.
7118
7119 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7120
7121         * config/h8300/h8300.md (*ixorsi3_zext_hi): Restrict to
7122         TARGET_H8300H and TARGET_H8300S.
7123
7124 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7125
7126         * config/h8300/h8300.md (a peephole2): New.
7127
7128 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7129
7130         * config/h8300/h8300.md (*extzv_8_8): Use shorter code when
7131         operands[0] and operands[1] are different.
7132
7133 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7134
7135         * reload1.c (reload_cse_move2add): Remove variable success.
7136
7137 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7138
7139         * ggc-common.c (ggc_rlimit_bound): Cast RLIM_INFINITY to avoid
7140         warnings.
7141
7142 2003-03-02  Richard Henderson  <rth@redhat.com>
7143
7144         * configure.in (HAVE_AS_LTOFFX_LDXMOV_RELOCS): New ia64 test.
7145         * config.in, configure: Rebuild.
7146         * config/ia64/ia64.c (ia64_ld_address_bypass_p): Accept lo_sum.
7147         * config/ia64/ia64.md (load_symptr): Use high/lo_sum for the
7148         paired ldtoffx and ldxmov annotations.
7149         (load_symptr_internal1): Remove.
7150         (load_symptr_high, load_symptr_low): New.
7151
7152 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
7153
7154         * c-incpath.c (add_path): Fix sysp assignment.
7155
7156 2003-03-02  Kurt Garloff  <garloff@suse.de>
7157
7158         * params.def: Introduce parameter max-inline-insns-rtl for
7159         a separate limit for the RTL inliner.
7160         * params.h: Likewise.
7161         * integrate.c (function_cannot_inline_p): Use it.
7162         * toplev.c (decode_f_option): Set multiple parameters
7163         controlling inlining with -finline-limit.
7164         * params.def: Fix orthographic and typographic errors.
7165         * doc/invoke.texi: Document parameters controlling inlining
7166         and the way -finline-limit sets multiple of them.
7167
7168         * tree.h (struct tree_decl): Introduce inlined_function_flag,
7169         recording whether the function became eligible for inlining
7170         by a compiler flag rather than the declaration.
7171         Provide DID_INLINE_FUNC macro to access it.
7172         * c-decl.c (grokdeclarator): Set DID_INLINE_FUNC.
7173         * cp/decl.c (grokfndecl): Likewise.
7174         * toplev.c (rest_of_compilation): Likewise.
7175         * cp/optimize (maybe_clone_body): Copy DID_INLINE_FUNC.
7176         * print-tree.c (print_node): Report it.
7177         * params.def: Introduce new max-inline-insns-auto limit.
7178         * params.h: Likewise.
7179         * tree-inline.c (inlinable_function_p): Apply it to functions
7180         with DID_INLINE_FUNC set.
7181         * toplev.c (decode_f_option): Initialize it from -finline-limit
7182         value.
7183         * doc/invoke.texi: Document new parameter.
7184
7185 2003-03-02  Geoffrey Keating  <geoffk@apple.com>
7186
7187         * fix-header.c (read_scan_file): Don't reference simplify_path.
7188
7189 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7190
7191         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't enable
7192         min/max instructions by default as may result in reload errors.
7193
7194 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7195
7196         * config/m68hc11/m68hc11.md ("mulqi3"): Allow address register to
7197         avoid reload problems; define split for it.
7198
7199 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7200
7201         * config/m68hc11/m68hc11.c (m68hc11_shift_operator): New function.
7202         * config/m68hc11/m68hc11-protos.h (m68hc11_shift_operator): Declare.
7203         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register.
7204         * config/m68hc11/m68hc11.md ("rotrhi3", "rotlhi3"): New patterns for
7205         rotatert and rotate.
7206         ("rotrhi3_const", "rotlhi3_const"): Rename of old 'rotrhi3' insns.
7207         ("*rotrhi3", "*rotlhi3"): New insn pattern for non-const rotatert.
7208         ("*rotrhi3_addr"): New split for shift insns on address register.
7209         ("*lshrhi3", "*ashrhi3", "*ashlhi3_2"): Use new split.
7210         * config/m68hc11/larith.asm (___rotlhi3): New asm function.
7211         (___rotrhi3): Likewise.
7212         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build them.
7213
7214 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
7215
7216         * toplev.c (aux_base_name): Moved from toplev.h.
7217         (filename): Constify.
7218         (lang_dependent_init): Don't duplicate name.
7219         (process_options): Set aux_base_name here, not...
7220         (do_compile): ...here.  Change protoype.
7221         (toplev_main): Move some code from do_compile.
7222         * toplev.h: Remove aux_base_name.
7223
7224 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7225
7226         * config/h8300/h8300-protos.h: Add a prototype for
7227         iorxor_operator.
7228         * config/h8300/h8300.c (print_operand): Handle 'c'.
7229         (iorxor_operator): New.
7230         * config/h8300/h8300.h (PREDICATE_CODES): Add iorxor_operator.
7231         * config/h8300/h8300.md (*iorhi3_zext): Remove.
7232         (*iorsi3_zexthi): Likewise.
7233         (*iorsi3_zextsi): Likewise.
7234         (*xorhi3_zextqi): Likewise.
7235         (*xorsi3_zexthi): Likewise.
7236         (*xorsi3_zextsi): Likewise.
7237         (*ixorhi3_zext): New.
7238         (*ixorsi3_zext_qi): Likewise.
7239         (*ixorsi3_zext_hi): Likewise.
7240
7241 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
7242
7243         * c-incpath.c (remove_component_p, simplify_path): Move back to
7244         cppfiles.c.
7245         (remove_duplicates): Use cpp_simplify_path.
7246         * c-incpath.h (simplify_path): Remove.
7247         * c-lex.c: Don't include c-incpath.h.
7248         (init_c_lex): Remove simplify_path.
7249         * cppfiles.c (remove_component_p, cpp_simplify_path): Restore.
7250         (find_or_create_entry, validate_pch): Revert.
7251
7252 2003-03-02  Ashif Harji  <asharji@uwaterloo.ca>
7253
7254         * gcc.c (default_compilers): Add -no-integrated-cpp flag to invoke
7255           an external cpp during compilation.
7256         (option_map): Likewise.
7257         * objc/lang-specs.h (default_compilers): Similarly.
7258         * doc/invoke.texi: Document -no-integrated-cpp flag.
7259
7260 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7261
7262         * config/h8300/h8300.md (zero_extendqisi2): Change to an
7263         expander.
7264         (*zero_extendqisi2_h8300): New.
7265         (*zero_extendqisi2_h8300hs): New.
7266         (two splitters): New.
7267
7268 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7269
7270         * fp-bit.h (float_to_usi): Fix condition wrapping prototype.
7271
7272 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7273
7274         * config/h8300/h8300.md (a peephole2): Remove dead code.
7275
7276 2003-03-01  Roger Sayle  <roger@eyesopen.com>
7277
7278         PR c++/9367
7279         * builtin-types.def (DEF_FUNCTION_TYPE_VAR_3): New macro.
7280         (BT_FN_INT_CONST_STRING_VALIST_ARG,
7281         BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
7282         BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
7283         BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
7284         BT_FN_INT_STRING_CONST_STRING_VAR,
7285         BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
7286         BT_FN_INT_STRING_SIZE_CONST_STRING_VAR): New built-in types.
7287         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2,
7288         ATTR_NONNULL_3): Also include the nothrow attribute.
7289         (sprintf, scanf, sscanf, vprintf, vsprintf, snprintf,
7290         vsnprintf, vscanf, vsscanf): Don't define attributes here.
7291         * builtins.def (putchar, puts): Make full C89 built-ins.
7292         (snprintf, sprintf, scanf, sscanf, vprintf, vscanf,
7293         vsscanf, vsnprintf, vsprintf): New built-ins.
7294         * c-common.c (c_common_nodes_and_builtins): Handle new macro
7295         DEF_FUNCTION_TYPE_VAR_3.
7296
7297         * doc/extend.texi: Document these new built-in functions.
7298
7299 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7300
7301         * config/h8300/h8300.md (a peephole2): New.
7302
7303 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
7304
7305         * predict.c (estimate_bb_frequencies): Correctly set
7306         real_values_initialized after initialization.
7307
7308 2003-03-01  Neil Booth  <neil@daikokuya.co.uk>
7309
7310         * Makefile.in (C_AND_OBJC_OBJS, c-incpath.o, c-lex.o, LIBCPP_OBJS,
7311         cppinit.o, cppdefault.o, fix-header): Update.
7312         * c-incpath.c: New file.
7313         * c-incpath.h: New file.
7314         * c-lex.c: Include c-incpath.h.
7315         (init_c_lex): Register path simplifier.
7316         * c-opts.c: Include cppdefault.h and c-incpath.h.
7317         (TARGET_SYSTEM_ROOT, verbose, iprefix, sysroot, std_inc,
7318         std_cxx_inc, quote_chain_split, add_prefixed_path): New.
7319         (COMMAND_LINE_OPTIONS): Add more options from cpplib.
7320         (missing_arg, c_common_decode_option): Handle them.
7321         (c_common_post_options): Register include chains.
7322         (print_help): Update.
7323         * cppdefault.h (struct default include): Update.
7324         Move some macros to ...
7325         * cppdefault.c: ... here.
7326         (cpp_include_defaults): Add extra field add_sysroot.
7327         * cppfiles.c (include_file, search_from, find_or_create_entry,
7328         cpp_included, find_include_file, remap_filename): Update for
7329         renaming of search_path to cpp_path, and of the chain headers.
7330         (remove_component_p, _cpp_simplify_pathname): Move to c-incpath.c.
7331         * cpphash.h (struct search_path): Move to cpplib.h.
7332         (struct cpp_buffer, struct cpp_reader): Update.
7333         (_cpp_simplify_pathname): Remove.
7334         * cppinit.c: Don't include prefix.h and cppdefault.h.
7335         (INO_T_EQ, INO_T_COPY, path_include, append_include_chain,
7336         remove_dup_dir, remove_dup_nonsys_dirs, remove_dup_dirs,
7337         init_standard_includes, BRACKET, SYSTEM, AFTER, no_dir,
7338         no_pth, cpp_handle_options): Remove.
7339         (struct pending_option): Remove chain members.
7340         (cpp_destroy, cpp_read_main_file, COMMAND_LINE_OPTIONS,
7341         cpp_handle_option): Update.
7342         * cpplib.h (struct cpp_path, cpp_set_include_chains): New.
7343         (struct cpp_options): Remove quote_include, bracket_include,
7344         include_prefix, include_prefix_len, verbose, ignore_srcdir,
7345         no_standard_includes, no_standard_cplusplus_includes.
7346         (struct cpp_callbacks): Add simplify_path.
7347         (cpp_handle_options): Remove.
7348         * fix-header.c: Include c-incpath.h.
7349         (read_scan_file): Update to use c-incpath functionality.
7350         * doc/passes.texi: Update.
7351
7352 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7353
7354         * config/h8300/h8300.c (bit_operand): Accept MEM only if it
7355         satisfies EXTRA_CONSTRAINT 'U'.
7356
7357 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7358
7359         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Take a scratch
7360         register.
7361         (*tst_extzv_memqi_1_n): Change to a splitter.
7362         (a peephole2): Update.
7363
7364 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
7365
7366         * predict.c (estimate_bb_frequencies): Initialize the sreal
7367         constants once per compilation.
7368
7369 2003-02-28  Richard Henderson  <rth@redhat.com>
7370
7371         * toplev.c (flag_eliminate_unused_debug_types): Enable by default.
7372
7373 2003-02-28  scott snyder  <snyder@fnal.gov>
7374
7375         * flags.h: Add flag_eliminate_unused_debug_types.
7376         * toplev.c: Add flag_eliminate_unused_debug_types.
7377         (f_options): Add -feliminate-unused-debug-types.
7378         * dwarf2out.c (struct file_table): Add emitted member.
7379         (splice_child_die): Fix the parent pointer for the child being
7380         spliced.
7381         (lookup_filename): Maintain file_table.emitted array.  Don't
7382         output .file directive here.
7383         (maybe_emit_file): (new)
7384         (init_file_table): Set up file_table.emitted.
7385         (dwarf2out_source_line): Use maybe_emit_file.
7386         (dwarf2out_start_source_file): Use maybe_emit_file.
7387         (dwarf2out_init): Use maybe_emit_file.
7388         (prune_unused_types_walk_attribs): (new)
7389         (prune_unused_types_mark): (new)
7390         (prune_unused_types_walk): (new)
7391         (prune_unused_types_prune): (new)
7392         (prune_unused_types): (new)
7393         (dwarf2out_finish): Call prune_unused_types if
7394         flag_eliminate_unused_debug_types is set.
7395         * doc/invoke.texi (Option Summary): Add
7396         -feliminate-unused-debug-types.
7397         (Debugging Options): Likewise.
7398
7399 2003-02-28  Geoffrey Keating  <geoffk@apple.com>
7400
7401         * doc/invoke.texi: Change .pch to .gch.
7402         * cppfiles.c (open_file_pch): Likewise.
7403         * gcc.c (default_compilers): Likewise.
7404
7405 2003-02-28  Aldy Hernandez  <aldyh@redhat.com>
7406
7407         * floatlib.c: Remove.
7408
7409 2003-02-28  Jason Merrill  <jason@redhat.com>
7410
7411         * stor-layout.c (variable_size): Leave a "minus 1" outside the
7412         SAVE_EXPR.
7413
7414 2003-02-28  David Edelsohn  <edelsohn@gnu.org>
7415
7416         * config/rs6000/power4.md: Add compare bypass.
7417
7418 2003-02-28  Jason Thorpe  <thorpej@wasabisystems.com>
7419
7420         * config/netbsd.h: Update copyright years.
7421         (NETBSD_CPP_SPEC): Define _REENTRANT and _PTHREADS if
7422         -pthread is specified on the command line.
7423
7424 2003-02-28  Dale Johannesen <dalej@apple.com>
7425
7426         * loop.c (struct movable): Add insert_temp, shrink savemode.
7427         (scan_loop): Accept invariants that require copying; mark as
7428         insert_temp.
7429         (combine_movables): Don't combine insert_temp movables.
7430         (move_movables): Insert copies for insert_temp movables.
7431         Don't record the info based on regno for insert_temp's.
7432
7433 2003-02-28  Joel Sherrill <joel@OARcorp.com>
7434
7435         PR 9638/other
7436         * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Ensure the
7437         this constant defaults to 1.
7438
7439 2003-02-28  Bob Wilson  <bob.wilson@acm.org>
7440
7441         * config.gcc (xtensa-*-linux*): Add t-slibgcc-elf-ver to tmake_file.
7442
7443 2003-02-28  Richard Earnshaw  <rearnsha@arm.com>
7444
7445         * arm.md (mulhisi3, mulhisi3addsi, mulhidi3adddi): Enable for any
7446         ARMv5e processor, not just for XScale.  Instructions are predicable.
7447         (mulhisi3tb, mulhisi3bt, mulhisi3tt): New patterns for ARMv5e.
7448
7449 2003-02-28  Nick Clifton  <nickc@redhat.com>
7450
7451         * config/arm/arm.c (note_invalid_constants): Change parameter type
7452         from bool to int.
7453
7454 2003-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7455
7456         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Accept the
7457         test of bit 7.
7458         (*tst_extzv_memqi_1_n): Likewise.
7459         (a peephole2): New.
7460
7461 2003-02-28  Richard Sandiford  <rsandifo@redhat.com>
7462
7463         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Wrap in
7464         #ifndef __mips16.
7465
7466 2003-02-28  Jan Hubicka  <jh@suse.cz>
7467
7468         * combine.c (gen_lowpart_for_combine): Update handling of
7469         subregs_of_mode
7470         * flow.c (life_analysis, mark_used_regs): Likewise.
7471         * regclass.c (subregs_of_mode): Turn into single bitmap.
7472         (cannot_change-mode_set_regs, invalid_mode_change_p): Update
7473         dealing with subregs_of_mode
7474         * regs.h (subregs_of_mode): Update prototype.
7475
7476 2003-02-28  Josef Zlomek  <zlomekj@suse.cz>
7477
7478         * emit-rtl.c (set_reg_attrs_for_parm): New function.
7479         * rtl.h (set_reg_attrs_for_parm): New exported function.
7480         * function.c (assign_parms): Use set_reg_attrs_for_parm instead of
7481         set_reg_attrs_from_mem.
7482
7483 2003-02-27  Roger Sayle  <roger@eyesopen.com>
7484             Zack Weinberg <zack@codesourcery.com>
7485
7486         * gcc.c (do_spec_1):  Treat %U like %u for unique associations.
7487
7488 2003-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7489
7490         * reload1.c (sext_for_mode): Remove.
7491         (reload_cse_move2add): Use trunc_int_for_mode instead of
7492         sext_for_mode.
7493         (move2add_note_store): Likewise.
7494         Reset register information if we see a set in non-integer
7495         mode.
7496
7497 2003-02-27  David Edelsohn  <edelsohn@gnu.org>
7498
7499         * config/rs6000/aix43.h (ASM_SPEC): Only emit -mppc64 if no -mcpu
7500         option.
7501         (ASM_CPU_SPEC): Use -m620 for Power3, Power4, 620, 630.
7502         * config/rs6000/aix51.h: Same.
7503         * config/rs6000/aix52.h: Same.
7504         * config/rs6000/power4.md: Additional VMX bypasses.
7505
7506 2003-02-27   Geert Bosch <bosch@gnat.com>
7507
7508         * toplev.c (print_version): Add indentation for GGC heuristics and
7509         output after printing version information.
7510
7511 2003-02-27  James E Wilson  <wilson@tuliptree.org>
7512
7513         * combine.c (simplify_comparison): Require integral mode when
7514         permuting SUBREG with AND.
7515
7516 2003-02-27  Steve Ellcey  <sje@cup.hp.com>
7517
7518         * config/ia64/hpux.h (STARTFILE_PREFIX_SPEC): Remove.
7519
7520 2003-02-27  Nick Clifton  <nickc@redhat.com>
7521
7522         * config/arm/arm.md (extendsfdf2): Add pattern accidentally
7523         deleted when cirrus instructions were added.
7524
7525 2003-02-27  Jason Thorpe  <thorpej@wasabisystems.com>
7526
7527         * config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Enable
7528         POSIX thread support by default.
7529
7530 2003-02-27  Roger Sayle  <roger@eyesopen.com>
7531
7532         * config/i386/cygwin.h: Don't include any other files directly.
7533         * config/i386/mingw32.h: Don't include cygwin.h directly.
7534         * config.gcc (cygwin, mingw32, uwin): Instead make these files
7535         explicit in the tm_files variable.
7536
7537 2003-02-27  Alan Modra  <amodra@bigpond.net.au>
7538
7539         * config/rs6000/rs6000.md: Add TI constant splitter.
7540
7541 2003-02-26  Alexandre Oliva  <aoliva@redhat.com>
7542
7543         * builtins.c (purge_builtin_constant_p): Handle subreg of
7544         constant_p_rtx too.
7545
7546         * function.c (assign_stack_local_1): Truncate constant added to
7547         frame_pointer_rtx or virtual_stack_vars_rtx for Pmode.
7548
7549 2003-02-26  David Edelsohn  <edelsohn@gnu.org>
7550
7551         * config.gcc: Add power4 to PowerPC with_cpu list.
7552
7553 2003-02-26  Jan Hubicka  <jh@suse.cz>
7554
7555         * objc-act.c: (mark_referenced_methods): Fix compilation problem.
7556
7557 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7558
7559         * gcov-dump.c (print_prefix): Fix signedness warning.
7560         * gcov-io.h (struct counter_section, struct counter_section_data): New.
7561         (struct function_info): n_arc_counts field removed, n_counter_sections,
7562         counter_sections fields added.
7563         (struct gcov_info): arc_counts, n_arc_counts fields removed,
7564         n_counter_sections, counter_sections fields added.
7565         * libgcov.c (gcov_exit, __gcov_flush): Add support for multiple
7566         profile sections.
7567         * profile.h (MAX_COUNTER_SECTIONS): New.
7568         (struct section_info): New.
7569         (struct profile_info): count_instrumented_edges,
7570         count_edges_instrumented_now fields removed, n_sections, section_info
7571         fields added.
7572         (find_counters_section): Declare.
7573         * profile.c (struct function_list): count_edges field removed,
7574         n_counter_sections, counter_sections fields added.
7575         (set_purpose, label_for_tag, build_counter_section_fields,
7576         build_counter_section_value, build_counter_section_data_fields,
7577         build_counter_section_data_value, build_function_info_fields,
7578         build_function_info_value, build_gcov_info_fields,
7579         build_gcov_info_value): New static functions.
7580         (find_counters_section): New function.
7581         (instrument_edges, get_exec_counts, compute_branch_probabilities,
7582         branch_prob, create_profiler): Modified to support multiple profile
7583         sections.
7584
7585 2003-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7586
7587         * pa.c (compute_frame_size): Don't assume PREFERRED_STACK_BOUNDARY
7588         is 8 * STACK_BOUNDARY.
7589         * pa.h (PREFERRED_STACK_BOUNDARY): Change to 128 on 64-bit port.
7590
7591 2003-02-26  Michael Matz  <matz@suse.de>
7592
7593         * ra-colorize.c (merge_moves): Fix list handling.
7594
7595 2003-02-26  Nick Clifton  <nickc@redhat.com>
7596
7597         * config/arm/arm.c (is_load_address): Rename to...
7598         (arm_memory_load_p) ... this and make it check for SUBREGs and
7599         constant loads that will be converted into loads from the
7600         minipool.
7601         (is_cirrus_insn): Rename to ...
7602         (arm_cirrus_insn_p): ... this, for consistency.  Replace test
7603         of CIRRUS_NO with CIRRUS_NOT.
7604         (cirrus_reorg): Use renamed functions.
7605         (note_invalid_constants): Change from a void function to bool.
7606         Add an extra parameter, saying whether the fixups should be
7607         pushed.  Return true if fixups are needed.
7608         (arm_reorg): Use renamed functions.  Use INSN_P.  Replace test
7609         of CIRRUS_NO with CIRRUS_NOT.
7610         * config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that
7611         other floating point co-processors can also affect this.
7612         * config/arm/arm.md ("type" attribute): Add mav_farith and
7613         mav_dmult.  Replace references to "cirrus_type" attribute with
7614         "type".
7615         * config/arm/cirrus.md ("cirrus_fpu" attribute): Delete.
7616         ("cirrus_type" attribute): Delete - use "type" instead.
7617         ("cirrus" attribute): Replace 'no' with 'not' and 'yes' with
7618         'normal'.
7619
7620 2003-02-25  Jan Hubicka  <jh@suse.cz>
7621
7622         * objc-act.c: Include cgraph.h
7623         (mark_referenced_methods): New function.
7624         (objc_init): Call it.
7625         * objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set.
7626
7627         * c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time
7628         mode.
7629
7630         * optabs.c (expand_fix): Do not widen the input operand.
7631
7632         * expr.c (emit_group_store):  Fix crash when converting single
7633         register into complex register.
7634
7635         * Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h
7636         * alias.c: Include timevar.h
7637         (init_alias_analysis):  Set timevar
7638         * jump.c: Include timevar.h
7639         (rebuild_jump_labels):  Set timevar
7640         * regcalss.c: Include timevar.h
7641         (reg_scan):  Set timevar
7642         * timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New
7643
7644 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7645
7646         * cse.c (count_reg_usage): Fix handling of REG_EQUAL notes.
7647
7648         * Makefile.in (loop-unroll.o): New.
7649         * cfgloop.h (UAP_PEEL, UAP_UNROLL, UAP_UNROLL_ALL): New.
7650         (unroll_and_peel_loops): Declare.
7651         * alias.c (init_alias_analysis): Flag_unroll_loops renamed to
7652         flag_old_unroll_loops.
7653         * loop.c (loop_invariant_p): Ditto.
7654         * unroll.c (unroll_loop): Flag_unroll_all_loops renamed to
7655         flag_old_unroll_all_loops.
7656         * flags.h (flag_unroll_loops): Renamed to flag_old_unroll_loops.
7657         (flag_unroll_all_loops): Renamed to flag_old_unroll_all_loops.
7658         * params.def (PARAM_MAX_UNROLLED_INSNS): Default value changed.
7659         (PARAM_MAX_AVERAGE_UNROLLED_INSNS, PARAM_MAX_UNROLL_TIMES,
7660         PARAM_MAX_PEELED_INSNS, PARAM_MAX_PEEL_TIMES,
7661         PARAM_MAX_COMPLETELY_PEELED_INSNS, PARAM_MAX_COMPLETELY_PEEL_TIMES,
7662         PARAM_MAX_ONCE_PEELED_INSNS): New.
7663         * toplev.h (flag_old_unroll_loops, flag_old_unroll_all_loops): New.
7664         (flag_unroll_loops, flag_unroll_all_loops): Used for new unroller
7665         instead of old one.
7666         (flag_peel_loops): New.
7667         (lang_independent_options): The new flags added.
7668         (rest_of_compilation): Call new unroller.
7669         (process_options): Setup flags for coexistence of old and new unroller.
7670         * doc/invoke.texi: Document new options.
7671         * doc/passes.texi: Document new unroller pass.
7672
7673 2003-02-26  David Billinghurst <David.Billinghurst@riotinto.com>
7674
7675         * fixinc/fixincl.x: Regenerate
7676
7677 2003-02-26  Josef Zlomek  <zlomekj@suse.cz>
7678
7679         * function.c (assign_parms): Set reg_attrs for parameters passed in
7680         registers.
7681
7682 2003-02-26  Alan Modra  <amodra@bigpond.net.au>
7683
7684         PR target/9681
7685         * tlink.c (scan_linker_output): Drop leading '.' from symbol names.
7686
7687 2003-02-25  David Edelsohn  <edelsohn@gnu.org>
7688
7689         * config/rs6000/xcoff.h (ASM_FILE_START): Do not emit machine
7690         pseudo-op.
7691
7692 2003-02-25  Roger Sayle  <roger@eyesopen.com>
7693
7694         * combine.c (combine_simplify_rtx, simplfy_comparison):  Use CC0_P.
7695         * cse.c (invalidate_skipped_set):  Likewise.
7696         * integrate.c (subst_constants):  Likewise.
7697         * jump.c (reversed_comparison_code_parts):  Likewise.
7698         * loop.c (canonicalize_condition):  Likewise.
7699         * simplify-rtx.c (simplify_relational_operation):  Likewise.
7700
7701 2003-02-25  Roger Sayle  <roger@eyesopen.com>
7702
7703         * builtins.def (DEF_LIB_ALWAYS_BUILTIN, DEF_UNUSED_BUILTIN): Delete.
7704         (abs, labs, fabs, fabsf, fabsl, abort, exit, _exit, _Exit):  Use
7705         the appropriate macro to define built-in function.
7706         (fmod,fmodf,fmodl): New built-in functions.
7707
7708         * doc/extend.texi (fmod,fmodf,fmodl): Document new built-ins.
7709
7710 2003-02-25  Richard Henderson  <rth@redhat.com>
7711
7712         * config/i386/i386.c (function_arg): Pass variable sized
7713         structures correctly on the stack.
7714
7715 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
7716
7717         * reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS
7718         does not reduce the cost of SET.
7719
7720 2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7721
7722         PR target/9732
7723         * config/rs6000/rs6000.c (first_reg_to_save): Handle
7724         PIC_OFFSET_TABLE_REGNUM for -fPIC too.
7725         (rs6000_emit_prologue): Likewise.
7726         (rs6000_emit_epilogue): Likewise.
7727         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
7728         PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.
7729
7730 2003-02-25  Richard Henderson  <rth@redhat.com>
7731
7732         * real.c (real_to_integer2): Force overflow result only for
7733         unsigned overflow.
7734
7735 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
7736
7737         * gcse.c (cprop_jump): Revert the 2003-02-23 change.
7738
7739 2003-02-25  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
7740             Richard Henderson  <rth@redhat.com>
7741
7742         * sched-ebb.c (add_deps_for_risky_insns): Add the dependence when
7743         there is no similar load.
7744
7745 2003-02-25  Vladimir Makarov  <vmakarov@redhat.com>
7746             Richard Henderson  <rth@redhat.com>
7747
7748         * sched-int.h (INSN_TRAP_CLASS, WORST_CLASS): Move them from
7749         sched-rgn.c.
7750         (add_forward_dependence): New function prototype.
7751
7752         * sched-rgn.c (INSN_TRAP_CLASS, WORST_CLASS): Move them to
7753         sched-init.h.
7754         (CONST_BASED_ADDRESS_P, may_trap_exp, haifa_classify_insn): Move
7755         them to haifa-sched.c.
7756
7757         * haifa-sched.c (CONST_BASED_ADDRESS_P, may_trap_exp,
7758         haifa_classify_insn): Move them from sched-rgn.c.
7759
7760         * sched-deps.c (add_dependence): Return flag of creating a new
7761         entry.
7762         (add_forward_dependence): New function.
7763         (compute_forward_dependences): Use the function.
7764
7765         * sched-ebb.c (earliest_block_with_similiar_load): New function.
7766         (add_deps_for_risky_insns): New function.
7767         (schedule_ebb): Call the function.
7768
7769 2003-02-20  Aldy Hernandez  <aldyh@redhat.com>
7770
7771         * doc/tm.texi: Document Rename TARGET_VECTOR_TYPES_COMPATIBLE to
7772         TARGET_VECTOR_OPAQUE_P.  Document accordingly.
7773
7774         * testsuite/gcc.dg/20030218-1.c: Check that initialization of
7775         opaque types fail.
7776
7777         * c-typeck.c (comptypes): Change call to vector_types_compatible
7778         to vector_opaque_p.
7779         (convert_for_assignment): Call vector_opaque_p instead of
7780         vector_types_compatible.
7781         (really_start_incremental_init): Disallow initialization of opaque
7782         types.
7783
7784         * target-def.h: Remove TARGET_VECTOR_TYPES_COMPATIBLE.
7785         Define TARGET_VECTOR_OPAQUE_P.
7786         (TARGET_INITIALIZER): Same.
7787
7788         * target.h (struct gcc_target): Remove vector_types_compatible.
7789         Add vector_opaque_p.
7790
7791         * config/rs6000/rs6000.c (rs6000_spe_vector_types_compatible):
7792         Remove.
7793         (is_ev64_opaque_type): Check for TARGET_SPE and make sure type is
7794         a vector type.  Change return type to bool.
7795         (TARGET_VECTOR_TYPES_COMPATIBLE): Remove.
7796         (TARGET_VECTOR_OPAQUE_P): Define.
7797
7798         * cp/parser.c (cp_parser_init_declarator): Call vector_opaque_p
7799         target hook.
7800         Include target.h.
7801         (cp_parser_init_declarator): Fix typo in function comments.
7802
7803 2003-02-25  Jan Hubicka  <jh@suse.cz>
7804
7805         * Makefile.in (lcm.o):  Add dependency on function.h
7806         * lcm.c (function.h): Include.
7807         * i386.c (machine_function, ix86_stack_locals,
7808         * ix86_save_varrargs_registers) : Move to
7809         ...
7810         * i386.h (machine_function, ix86_stack_locals,
7811         ix86_save_varrargs_registers): ... here; add optimize_mode_switching
7812         (ix86_optimize_mode_switching): New.
7813         * i386.md (fix patterns): Set ix86_optimize_mode_switching
7814
7815 2003-02-25  Nick Clifton  <nickc@redhat.com>
7816
7817         * config/d30v/d30v.c (d30v_init_cumulative_args): Fix typo.  Name
7818         of fourth arg is 'fndecl' not 'indirect'.  Update comment
7819         describing the function's parameters.
7820
7821 2003-02-24  Jan Hubicka  <jh@suse.cz>
7822
7823         * combine.c (simplify_shift_const):  Fix previous patch.
7824
7825 2003-02-24  Jeff Law  <law@redhat.com>
7826
7827         * i386.md (testdi_1_rex64): Discourage reload from using the %eax
7828         alternative.
7829         (testsi_1, testhi_1, testqi_1): Likewise.
7830
7831 2003-02-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7832
7833         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename
7834         __EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX.
7835         * doc/extend.texi (Tru64 Pragmas): Reflect this.
7836
7837         * fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma
7838         extern_prefix support for Tru64 UNIX V5 <sys/stat.h>.
7839         * fixinc/fixincl.x: Regenerate.
7840         * fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New
7841         testcase.
7842         Fixes PR c/5059, c/6126, other/9671.
7843
7844 2003-02-24  Roger Sayle  <roger@eyesopen.com>
7845
7846         * gcc.c (do_spec_1) ['{']:  Handle pending argument upon return
7847         from handle_braces in "%{...}".
7848
7849 2003-02-24  Kaz Kojima  <kkojima@gcc.gnu.org>
7850
7851         * config/sh/sh.c (TARGET_HAVE_TLS): Conditionally define.
7852         (prepare_move_operands): Handle TLS operands.
7853         (tls_symbolic_operand): New.
7854         (nonpic_symbol_mentioned_p): Handle TLS UNSPECs.
7855         (legitimize_pic_address): Do nothing for the TLS symbol.
7856         (sh_encode_section_info): Handle TLS case.
7857         (sh_strip_name_encoding): Drop TLS encoding.
7858         * config/sh/sh-protos.h (tls_symbolic_operand): Add prototype.
7859         * config/sh/sh.h (SH_TLS_ENCODING): Define.
7860         (TLS_SYMNAME_P, STRIP_TLS_ENCODING): Likewise.
7861         (ASM_OUTPUT_LABELREF): Drop TLS encoding.
7862         (OUTPUT_ADDR_CONST_EXTRA): Handle TLS UNSPECs.
7863         * config/sh/sh.md: Define TLS UNSPEC constants.
7864         (type): Add tls_load.
7865         ("tls_global_dynamic", "tls_local_dynamic"): New insns.
7866         ("sym2DTPOFF", "symDTPOFF2reg", "sym2GOTTPOFF"): New expanders.
7867         ("tls_initial_exec"): New insn.
7868         ("sym2TPOFF", "symTPOFF2reg"): New expanders.
7869         ("load_gbr"): New insn.
7870
7871         * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
7872         * configure: Regenerate.
7873
7874 2003-02-24  Alan Modra  <amodra@bigpond.net.au>
7875
7876         PR 9297, PR 9722
7877         * calls.c (store_one_arg): Revert 1999-02-16 change.  Revert
7878         2000-12-17 change.  Pass EXPAND_STACK_PARM to expand_expr.
7879         * expr.h (enum expand_modifier): Define EXPAND_STACK_PARM.
7880         (enum block_op_methods): Reorder for better store_expr optimization.
7881         * expr.c (store_expr): Test bit 1 of "want_value" for call param
7882         stores, test bit 0 for original want_value meaning.  Pass
7883         BLOCK_OP_CALL_PARM to emit_block_move when bit 1 set.  Adjust
7884         recursive calls, and calls to expand_param.
7885         (expand_expr): Handle EXPAND_STACK_PARM modifier.  When cse
7886         expected, set target to 0 rather than to subtarget.  Formatting.
7887
7888 2003-02-23  Kazu Hirata  <kazu@cs.umass.edu>
7889
7890         * gcse.c (cprop_jump): Use the REG_EQUAL note if available.
7891
7892 2003-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7893
7894         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Document
7895         new default behavior.
7896         * ggc-common.c: Include sys/resource.h.
7897         (ggc_rlimit_bound): New function.
7898         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Update
7899         defaults to account for rlimits.
7900
7901 2003-02-22  Richard Henderson  <rth@redhat.com>
7902
7903         * i386.c, i386.h (TUNEMASK): Rename from CPUMASK.
7904
7905 2003-02-22  Kelley Cook <kelley@dwhoops.info>
7906
7907         * i386.h, i386.c, i386.md (ix86_tune): Rename from ix86_cpu.
7908         (ix86_tune_string): Rename from ix86_cpu_string.
7909
7910 2003-02-22  Kelley Cook <kelleycook@comcast.net>
7911
7912         * config/i386/i386.c: Replace "mcpu" with "mtune".
7913         * config/i386/i386.h (TARGET_OPTIONS): Likewise.
7914         (CC1_CPU_SPEC): Likewise. New warning for "-mcpu".
7915         * doc/invoke.texi (i386 and x86-64 Options): Replace "mcpu"
7916         with "mtune".  Note that "mcpu" is a deprecated synonym for "mtune".
7917
7918 2003-02-23  Andreas Schwab  <schwab@suse.de>
7919
7920         * config.gcc: Delete references to m68k/t-linux and
7921         m68k/t-linux-aout.
7922         * config/m68k/t-linux, config/m68k/t-linux-aout: Removed.
7923
7924 2003-02-22  Jan Hubicka  <jh@suse.cz>
7925
7926         * toplev.c (rest_of_compilation):  Apply fotgotten hunk
7927         of track scheduling patch.
7928
7929 2003-02-22  Jan Hubicka  <jh@suse.cz>
7930
7931         * config/linux.h (TARGET_HAS_F_SETLKW): Define.
7932         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Likewise
7933
7934 2003-02-22  Jan Hubicka  <jh@suse.cz>
7935
7936         * c-decl.c (c_expand_body_1): Fix.
7937
7938 2003-02-22  Jan Hubicka  <jh@suse.cz>
7939
7940         * expmed.c (expand_divmod): Undo sign extensions for unsigned operands
7941
7942         * cfgcleanup.c (try_forward_edges):  Don't check loop structures
7943         when not optimizing.
7944         (cleanup_cfg): Do not iterate trought delete_trivially_dead_insns
7945         when not expensive.
7946         * toplev.c (rest_of_compilation):  Duplicate loop headers only when
7947         optimizing;  Delete trivially dead insns early; fix optimize check.
7948
7949         * Makefile.in (c-decl.o, c-objc-common.o, cgraph.o, tree-inline.o): Add
7950         dependency on cgraph.h
7951         * c-decl.c: Include cgraph.h
7952         (finish_function): Update call of tree_inlinable_function_p.
7953         * c-objc-common.c: Include cgraph.h
7954         * cgraph.h: New file.
7955         * cgraphunit.c: New file.
7956         * cgraph.c (cgraph_node, cgraph_edge): Move into cgraph.h
7957         (cgraph_nodes, cgraph_n_nodes): Globalize.
7958         (cgraph_finalize_function, cgraph_finalize_compilation_unit
7959         cgraph_create_edges, cgraph_optimize, cgraph_mark_needed_node):
7960         Move into cgraphunit.c
7961         * tree-inline.c: Include cgraph.h
7962         * tree-inline.c: Include cgraph.h
7963
7964 2003-02-22  Josef Zlomek  <zlomekj@suse.cz>
7965
7966         * config/i386/i386.md: Use gen_lowpart instead of gen_rtx_REG
7967         for copying a register.
7968
7969 2003-02-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
7970
7971         PR other/3782
7972         * toplev.c (process_options): If flag_detailed_statistics is set,
7973         then set time_report as well.
7974
7975         PR c/8828
7976         * jump.c (never_reached_warning): Don't fall through BARRRIER
7977         insns.  Update comments to reflect what the function really does.
7978
7979 2003-02-21  Roger Sayle  <roger@eyesopen.com>
7980
7981         * fold-const.c (omit_one_operand): No longer static.
7982         * tree.h (omit_one_operand): Prototype here.
7983         (div_and_round_double): Keep fold-const.c prototypes together.
7984         * builtins.c (builtin_mathfn_code): Handle binary built-in
7985         funtions, such as "pow" and "atan2".
7986         (fold_builtin): Optimize both pow(x,0.0) and pow(1.0,y) to 1.0.
7987         Simplify optimizations using "type" the builtin's return type.
7988
7989 2003-02-22  Hans-Peter Nilsson  <hp@axis.com>
7990
7991         * config/cris/cris.c (cris_rtx_costs): Blockify dangling else.
7992         Fix functionalization typo.
7993
7994         * regmove.c (optimize_reg_copy_1): Do not replace a hard register
7995         in an asm.
7996
7997 2003-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7998
7999         * Makefile.in (ggc-common.o): Depend on $(PARAMS_H)
8000         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Update
8001         documentation.
8002         * ggc-common.c: Include params.h
8003         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
8004         init_ggc_heuristics): New functions.
8005         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
8006         init_ggc_heuristics): Prototype.
8007         * toplev.c (print_version):  Output GGC heuristics.
8008         (parse_options_and_default_flags): Call init_ggc_heuristics.
8009
8010 2003-02-22  Jan Hubicka  <jh@suse.cz>
8011
8012         * i386.c (def_builtin):  Special case 64bit builtins.
8013         (MASK_SSE164, MASK_SSE264): New constants.
8014         (builtin_description): Add 64bit builtins.
8015         (ix86_init_mmx_sse_builtins): Likewise.
8016         * i386.h (enum ix86_builtins): Likewise.
8017         * i386.md (cvtss2siq, cvttss2siq, cvtsd2siq, cvttsd2siq, cvtsi2sdq,
8018         sse2_movq2dq_rex64, sse2_movsq2q_rex64): New.
8019         (sse2_movq2dq, sse2_movsq2q): Disable for 64bit.
8020         * mmintrin.h (_mm_cvtsi64x_si64, _mm_set_pi64x, _mm_cvtsi64_si64x): New.
8021         * xmmintrin.h (_mm_cvtss_si64x, _mm_cvttss_si64x, _mm_cvtsi64x_ss,
8022         _mm_set_epi64x, _mm_set1_epi64x, _mm_cvtsd_si64x, _mm_cvttsd_si64x,
8023         _mm_cvtsi64x_sd, _mm_cvtsi64x_si128, _mm_cvtsi128_si64x): New.
8024
8025 2003-02-22  Jan Hubicka  <jh@suse.cz>
8026
8027         * i386.c (builtin_description): Add __builtin_ia32_paddq and
8028         __builtin_ia32_psubq. Fix __builtin_ia32_paddq128
8029          and __builtin_ia32_psubq128.
8030         * i386.h (IX86_BUILTIN_PADDQ, IX86_BUILTIN_PSUBQ): New.
8031         * i386.md (addv*, mmx_ior*, mmx_xoe*, mmx_and*): Add missing '%'.
8032         (mmx_adddi3, mmx_subdi3): New.
8033         * mmintrin.h (_mm_add_si64, _mm_sub_si64): New.
8034         * xmmintrin.h (_mm_movepi64_pi64): New.
8035         (_mm_add_epi64, _mm_sub_epi64): fix.
8036         (_mm_mul_pu16): Rename to...
8037         (_mm_mul_su32): ... this one.
8038
8039         * builtins.c (expand_builtin_expect):  Do not predict
8040         flag_guess_branch_prob is not set.
8041         * c-semantics.c (expand_stmt): Likewise.
8042         * predict.c (predict_insn): Likewise.
8043         * stmt.c (expand_continue_loop): Likewise.
8044         * toplev.c (rest_of_compilation): Do not call
8045         note_prediction_to_br_prob and note_prediction_to_br_prob
8046         when not optimizing.
8047
8048 2003-02-21  Jan Hubicka  <jh@suse.cz>
8049
8050         * cfgrtl.c (commit_edge_insertions):  Call
8051         find_many_sub_basic_block only when some code has been emitted.
8052         (commit_edge_insertions_watch_calls): Bring into sync with
8053         commit_edge_insertions
8054
8055 2003-02-21  J"orn Rennecke <joern.rennecke@superh.com>
8056
8057         * sh.h (OVERRIDE_OPTIONS): Fix code that clears 'e' register class.
8058
8059         * sh.md (binary_sf_op): Use extra constant operand instead of
8060         negating constant operand 4.
8061         * sh.c (sh_expand_binop_v2sf): Supply it.
8062
8063 2003-02-21  Zack Weinberg  <zack@codesourcery.com>
8064
8065         * cpphash.h (struct lexer_state): Add directive_wants_padding.
8066         * cpplib.c (_cpp_handle_directive): Set directive_wants_padding
8067         for directives of type INCL.
8068         (glue_header_name, parse_include): Use get_token_no_padding.
8069         * cppmacro.c (replace_args): If directive_wants_padding,
8070         provide padding tokens.
8071
8072 2003-02-21  Kazu Hirata  <kazu@cs.umass.edu>
8073
8074         * config/h8300/h8300.md (a peephole2): New.
8075
8076 2003-02-21  Jan Hubicka  <jh@suse.cz>
8077
8078         * cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting.
8079         (commit_edge_insertions): Call find_many_sub_basic_blocks
8080
8081         * reg-stack.c (convert_regs): Cleax aux for blocks.
8082
8083 2003-02-21  Jan Hubicka  <jh@suse.cz>
8084
8085         * toplev.c (parse_options_and_default_flags): Undo accidental commit.
8086
8087 2003-02-21  Glen Nakamura  <glen@imodulo.com>
8088
8089         PR optimization/8613
8090         * builtins.c (expand_builtin): Emit postincrements before expanding
8091         builtin functions.
8092
8093 2003-02-21  Ben Elliston  <bje@redhat.com>
8094
8095         PR other/5634
8096         * doc/install.texi (Configuration): Explain using $HOME instead of
8097         the ~ metacharacter when referring to home directories.
8098
8099 2003-02-20  Alexandre Oliva  <aoliva@redhat.com>
8100
8101         * configure.in (TARGET_SYSTEM_ROOT): Set default to
8102         ${exec_prefix}/${target_alias}/sys-root.  Match explicit
8103         '${exec_prefix}' (in addition to the expansion thereof) as
8104         relocatable.
8105         * configure: Rebuilt.
8106
8107 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8108
8109         * config/h8300/h8300.md (addhi3_incdec): Change the name to
8110         *addhi3_incdec.
8111         (addsi3_incdec): Change the name to *addsi3_incdec.
8112
8113 2003-02-20  Roger Sayle  <roger@eyesopen.com>
8114
8115         * explow.c (force_reg): Avoid useless REG_EQUAL notes.
8116
8117 2003-02-20  Toon Moene  <toon@moene.indiv.nluug.nl>
8118
8119         PR fortran/9038
8120         * c-opts.c (sanitize_cpp_opts): Add Fortran front end
8121         options to be ignored.
8122         (c_common_decode_option): Ignore them when preprocessing.
8123
8124 2003-02-20  Jan Hubicka  <jh@suse.cz>
8125
8126         * toplev.c (flag_sched2_use_superblocks, flag_sched2_use_traces): New
8127         global variables.
8128         (lang_independent_options):  Add -fsched2-use-superblocks
8129         -fsced2-use-traces.
8130         (rest_of_compilation): Deal with it.
8131         * invoke.texi (-fsched2-use-traces, fsched2-use-superblocks):  Declare.
8132         * flags.h (flag_sched2_use_superblocks, flag_sched2_use_traces):
8133         Declare.
8134         * rtl.h (reg_to_stack):  Update prototype.
8135         * reg-stack.c (reg_to_stack): Return when something has changed;
8136         update liveness when executing after superblock scheduling.
8137
8138         * combine.c (simplify_shift_const):  Simplify few special cases
8139         into constants.
8140
8141 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
8142
8143         * config/rs6000/rs6000.md: (attr "type"): Add fast_compare.
8144         (add.,subf.,neg.): Change attribute to fast_compare.
8145         All DFA descriptions updated.
8146
8147 2003-02-20  Nathan Sidwell  <nathan@codesourcery.com>
8148
8149         Change base class access representation.
8150         * tree.h (TREE_VIA_PUBLIC, TREE_VIA_PROTECTED,
8151         TREE_VIA_PRIVATE): Remove.
8152         (BINFO_BASEACCESSES): New binfo elt.
8153         (BINFO_BASEACCESS): New accessor.
8154         (BINFO_ELTS): Increase.
8155         (TI_ACCESS_PUBLIC, TI_ACCESS_PROTECTED, TI_ACCESS_PRIVATE): New.
8156         (access_public_node, access_protected_node,
8157         access_private_node): New global nodes.
8158         * tree.c (build_common_tree_nodes_2): Initialize access nodes.
8159         * dbxout.c (dbxout_type): Adjust.
8160         * dwarf2out.c (gen_inheritance_die): Add access parameter.
8161         (gen_member_die): Adjust.
8162         * dwarfout.c (output_inheritance_die): ARG is array of two trees.
8163         (output_type): Adjust.
8164         * tree-dump.c (dequeue_and_dump): Adjust binfo dumping.
8165
8166         Change base class access representation. Share virtual base
8167         binfos.
8168         * cp/call.c (build_special_member_call): Remove binfo_for_vbase
8169         call.
8170         * cp/class.c (build_base_path): Likewise.
8171         (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
8172         (build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
8173         (make_new_vtable): Adjust.
8174         (force_canonical_binfo_r): Delete.
8175         (force_canonical_binfo): Delete.
8176         (mark_primary_virtual_base): Delete.
8177         (dfs_unshared_virtual_bases): Delete.
8178         (mark_primary_bases): Adjust.
8179         (maybe_warn_about_overly_private_class): Adjust.
8180         (dfs_base_derived_from): Delete.
8181         (base_derived_from): Follow the inheritance chain.
8182         (struct find_final_overrider_data): Add vpath member.
8183         (dfs_find_final_overrider): Adjust.
8184         (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
8185         (find_final_overrider): Adjust.
8186         (update_vtable_entry_for_fn): Adjust.
8187         (modify_all_vtables): Adjust.
8188         (walk_subobject_offsets): Adjust.
8189         (layout_nonempty_base_or_field): Adjust.
8190         (layout_empty_base): Remove last parameter. Adjust.
8191         (build_base_field): Adjust.
8192         (build_base_fields): Adjust.
8193         (propagate_binfo_offsets): Remove last parameter. Adjust.
8194         (dfs_set_offset_for_unshared_vbases): Delete.
8195         (layout_virtual_bases): Adjust.
8196         (finish_struct_1): Adjust.
8197         (init_class_processing): Don't init access nodes.
8198         (dfs_get_primary_binfo): Delete.
8199         (get_primary_binfo): Adjust.
8200         (dump_class_hierarchy_r): Remove most derived arg, add IGO
8201         parameter. Adjust.
8202         (dump_class_hierarchy): Adjust.
8203         (finish_vtbls): Adjust.
8204         (get_original_base): Delete.
8205         (build_vtt_inits): Adjust.
8206         (dfs_build_secondary_vptr_vtt_inits): Adjust.
8207         (dfs_ctor_vtable_bases_queue_p): Adjust.
8208         (build_ctor_vtbl_group): Adjust.
8209         (dfs_accumulate_vtbl_inits): Adjust.
8210         (build_vtbl_initializer): Adjust.
8211         (build_vbase_offset_vtbl_entries): Adjust.
8212         (add_vcall_offset_vtbl_entries_1): Adjust.
8213         * cp/cp-tree.h (CPTI_ACCESS_*): Remove.
8214         (access_*_node): Remove.
8215         (CANONICAL_BINFO): Delete.
8216         (BINFO_UNSHARED_MARKED): Remove.
8217         (BINFO_MARKED): Set LANG_FLAG_0 directly.
8218         (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
8219         (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
8220         (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
8221         Delete.
8222         (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
8223         (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
8224         (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
8225         Delete.
8226         (BINFO_DEPENDENT_BASE_P): New.
8227         (dfs_walk, dfs_walk_real): Queue function takes derived binfo and
8228         index.
8229         (markedp, unmarkedp): Adjust.
8230         (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
8231         dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
8232         find_vbase_instance, binfo_for_vbase): Delete.
8233         (copied_binfo, original_binfo): Declare.
8234         (finish_base_specifier): Add virtual_p arg.
8235         (unshare_base_binfos): Delete.
8236         (copy_base_binfos): Declare.
8237         (reverse_path): Delete.
8238         * cp/decl.c (xref_basetypes): Access and virtuality passed
8239         differently. Don't copy direct base binfos here. Call
8240         copy_base_binfos.
8241         * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
8242         (initialize_vtbl_ptrs): Adjust.
8243         (expand_member_init): Adjust.
8244         * cp/parser.c (cp_parser_base_specifier): Adjust.
8245         * cp/pt.c (instantiate_class_template): Adjust.
8246         (get_template_base_recursive): Adjust.
8247         * cp/rtti.c (get_pseudo_ti_init): Adjust.
8248         (get_pseudo_ti_desc): Adjust.
8249         * cp/tree.c (unshare_base_binfos): Rename to ...
8250         (copy_base_binfos): ... here, reimplement.
8251         (make_binfo): Set BINFO_DEPENDENT_BASE_P.
8252         (reverse_path): Remove.
8253         * cp/typeck.c (get_delta_difference): Adjust error messages.
8254         * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
8255         * cp/search.c (lookup_base_r): Adjust.
8256         (dynamic_cast_base_recurse): Adjust.
8257         (canonical_binfo): Remove.
8258         (dfs_canonical_queue): Remove.
8259         (dfs_assert_unmarked_p): Remove.
8260         (assert_canonical_unmarked): Remove.
8261         (shared_marked_p, shared_unmarked_p): Remove.
8262         (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
8263         (dfs_access_in_type): Adjust.
8264         (access_in_type): Adjust.
8265         (dfs_accessible_queue_p): Adjust.
8266         (dfs_accessible_p): Adjust.
8267         (is_subobject_of_p_1, is_subobject_of_p): Remove.
8268         (struct lookup_field_info): Remove from_dep_base_p field.
8269         (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
8270         (lookup_field_r): Remove dependent base code.
8271         (lookup_member): Likewise.
8272         (dfs_walk, dfs_walk_real): Add access arg to queue fn.
8273         (dfs_unmarked_real_bases_queue_p): Remove.
8274         (dfs_marked_real_bases_queue_p): Remove.
8275         (dfs_skip_vbases): Remove.
8276         (dfs_get_pure_virtuals): Adjust.
8277         (markedp, unmarkedp): Adjust.
8278         (marked_vtable_pathp, unmarked_vtable_pathp): Remove.
8279         (marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
8280         (dfs_unmark): Adjust.
8281         (dfs_get_vbase_types):Remove.
8282         (dfs_build_inheritance_graph_order): Remove.
8283         (get_vbase_types): Remove
8284         (dfs_find_vbase_instance): Remove.
8285         (find_vbase_instance): Remove.
8286         (dfs_debug_unmarkedp): Adjust.
8287         (dependent_base_p): Remove.
8288         (dfs_push_type_decls): Adjust.
8289         (dfs_push_decls): Adjust.
8290         (dfs_no_overlap_yet): Adjust.
8291         (copied_binfo): New function.
8292         (original_binfo): New function.
8293         (binfo_for_vbase): Remove.
8294
8295         Change base class access representation.
8296         * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
8297         (add_interface_do): Likewise.
8298
8299 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
8300
8301         * config/rs6000/sysv4.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8302         * config/rs6000/power4.md (power4-store,power4-vecstore): New
8303         insn reservations.
8304         (power4-fpstore): Compact.
8305
8306 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8307
8308         * config/h8300/h8300.md (*iorsi3_w): New.
8309
8310 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
8311
8312         * combine.c (distribute_notes): Kill REG_EXEC_COUNT.
8313         * rtl.c (reg_note_name): Likewise.
8314         * rtl.h (enum reg_note): Likewise.
8315         * doc/invoke.texi: Likewise.
8316         * doc/rtl.texi: Likewise.
8317
8318 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
8319
8320         * bb-reorder.c (find_traces_1_round): Fix comment typo.
8321
8322 2003-02-19  Roger Sayle  <roger@eyesopen.com>
8323
8324         * fold-const.c (fold_real_zero_addition_p): Don't fold a zero
8325         addition in the presence of signaling NaNs.
8326
8327 2003-02-19  Krister Walfridsson  <cato@df.lth.se>
8328
8329         * tm.texi (INIT_CUMULATIVE_ARGS): Fix typo.
8330
8331 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8332
8333         * config/h8300/h8300.c (output_logical_op): Optimize or.l when
8334         ORing with 0xffff??00 with the highest bit of the ?? part set.
8335         (compute_logical_op_length): Update.
8336         (compute_logical_op_cc): Likewise.
8337
8338 2003-02-19  Josef Zlomek  <zlomekj@suse.cz>
8339
8340         * bb-reorder.c (find_traces_1_round): Fixed condition for small
8341         destination block with multiple predecessors.
8342         (connect_traces): Check whether the block is a start of trace.
8343
8344 2003-02-19  Jan Hubicka  <jh@suse.cz>
8345
8346         * calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGS
8347         * function.c (assign_params): Likewise.
8348         * arm-protos.h (arm_init_cumulative_args): Update prototype.
8349         * arm.c (arm_init_cumulative_args): Update function.
8350         * arm.h (INIT_CUMULATIVE_ARGS): Update.
8351         * avr-protos.h (init_cumulative_args): Update prototype.
8352         * avr.c (init_cumulative_args): Update function.
8353         * avr.h (INIT_CUMULATIVE_ARGS): Update.
8354         * d30v-protos.h (d30v_init_cumulative_args): Update prototype.
8355         * d30v.c (d30v_init_cumulative_args): Update function.
8356         * d30v.h (INIT_CUMULATIVE_ARGS): Update.
8357         * frv-protos.h (frv_init_cumulative_args): Update prototype.
8358         * frv.c (frv_init_cumulative_args): Update function.
8359         * frv.h (INIT_CUMULATIVE_ARGS): Update.
8360         * mips.c (mips_expand_prolgue): Update call of INIT_CUMULATIVE_ARGS.
8361         * pa.h (INIT_CUMULATIVE_ARGS): Update.
8362         * sparc-protos.h (init_cumulative_args): Update prototype.
8363         * sparc.c (init_cumulative_args): Update function.
8364         * sparc.h (INIT_CUMULATIVE_ARGS): Update.
8365         * tm.texi (INIT_CUMULATIVE_ARGS): Update documentation.
8366
8367 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8368
8369         * config/h8300/h8300.md (*iorsi3_two_qi_sext): New.
8370         (*ashiftsi_sextqi_7): Likewise.
8371
8372 2003-02-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8373
8374         * config/mips/iris6.h (TARGET_OS_CPP_BUILTINS): Define __c99 for
8375         ISO C99 and C++.
8376
8377         * fixinc/inclhack.def (irix___restrict): Don't change __restrict
8378         for C++ on IRIX 6.5.1[89].
8379         * fixinc/tests/base/internal/sgimacros.h: New file.
8380
8381         * fixinc/inclhack.def (irix_wcsftime): Use XPG5 variant for C99.
8382         * fixinc/tests/base/internal/wchar_core.h: New file.
8383
8384         * fixinc/inclhack.def (irix_socklen_t): Fix broken IRIX 6.5.1[78]
8385         socklen_t definition.
8386         * fixinc/fixincl.x: Regenerate.
8387         * fixinc/tests/base/sys/socket.h: New file.
8388         Fixes PR libgcj/9652.
8389
8390 2003-02-19  Jan Hubicka  <jh@suse.cz>
8391
8392         * i386.md (movsfcc_1, movdfcc_1): Fix constrains.
8393
8394 2003-02-19  David Edelsohn  <edelsohn@gnu.org>
8395
8396         * config/rs6000/rs6000.c (rs6000_override_options): Initialize
8397         align_jumps_max_skip and align_loops_max_skip.
8398
8399 2003-02-19  Thierry Moreau  <thierry.moreau@connotech.com>
8400
8401         * config/rs6000/rs6000.c (rs6000_encode_section_info): Do not
8402         test size if named section.
8403
8404 2003-02-19  Daniel Jacobowitz  <drow@mvista.com>
8405
8406         * expr.c (expand_expr): Use gen_int_mode for the argument
8407         to gen_rtx_MULT.
8408
8409 2003-02-19  Jan Hubicka  <jh@suse.cz>
8410
8411         * i386.md (cosxf2):  Fix conditional.
8412
8413 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8414
8415         * config/h8300/h8300.md (extendqisi2): Change to an expander.
8416         (*extendqisi2_h8300): New.
8417         (*extendqisi2_h8300hs): Likewise.
8418
8419 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8420
8421         * config/h8300/h8300-protos.h: Update the prototype for
8422         split_adds_subs.  Remove the prototypes for
8423         const_int_le_2_operand and const_int_le_6_operand.
8424         * config/h8300/h8300.c (split_adds_sub): Don't output inc/dec.
8425         (const_int_le_2_operand): Remove.
8426         (const_int_le_6_operand): Likewise.
8427         * config/h8300/h8300.h (PREDICATE_CODES): Remove the entries
8428         for const_int_le_2_operand and const_int_le_6_operand.
8429         * config/h8300/h8300.md: Update all uses of split_adds_subs.
8430         (a peephole2): New.
8431
8432 2003-02-18  Jan Hubicka  <jh@suse.cz>
8433
8434         * cgraph.c (NPREDECESORC, SET_NPREDECESORS): Kill.
8435         (cgraph_expand_function): Rewrite.
8436
8437 2003-02-18  Matt Austern <austern@apple.com>
8438
8439         * toplev.c, langhooks.c, langhooks-def.h: Move
8440         write_global_declarations from toplev.c to langhooks.c.
8441
8442 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8443
8444         * config/h8300/h8300.c (general_operand_src): Always check
8445         MODE.
8446         (general_operand_dst): Likewise.
8447
8448 2003-02-18  Roger Sayle  <roger@eyesopen.com>
8449
8450         * convert.c (convert_to_real): Also optimize (float)log(x) into
8451         logf(x) where x is a float, i.e. also handle BUILT_IN_LOG{,L}.
8452
8453 2003-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
8454
8455         * config/sh/sh.c (unspec_caller_rtx_p): New.
8456         (sh_cannot_copy_insn_p): New.
8457         (TARGET_CANNOT_COPY_INSN_P): New.
8458
8459 2003-02-18  Richard Henderson  <rth@redhat.com>
8460
8461         * c-common.c (handle_used_attribute): Accept static data too.
8462
8463 2003-02-18  Nick Clifton  <nickc@redhat.com>
8464             Aldy Hernandez  <aldyh@redhat.com>
8465
8466         * testsuite/gcc.dg/20030218-1.c: New.
8467
8468         * doc/tm.texi: Document TARGET_VECTOR_TYPES_COMPATIBLE.
8469
8470         * target-def.h (TARGET_INITIALIZER): Add
8471         TARGET_VECTOR_TYPES_COMPATIBLE.
8472         (TARGET_VECTOR_TYPES_COMPATIBLE): New macro.
8473
8474         * target.h (struct gcc_target): Add field vector_types_compatible.
8475
8476         * c-typeck.c (comptypes): Take into account
8477         TARGET_VECTOR_TYPES_COMPATIBLE.
8478         (convert_for_assignment): Same.
8479
8480         * config/rs6000/rs6000.c (is_ev64_opaque_type): New.
8481         (rs6000_spe_vector_types_compatible): New.
8482         (TARGET_VECTOR_TYPES_COMPATIBLE): Define.
8483
8484 2003-02-19  Andreas Schwab  <schwab@suse.de>
8485
8486         * Makefile.in (toplev.o): Depend on $(LANGHOOKS_DEF_H).
8487         * toplev.c: Include langhooks-def.h.
8488
8489 2003-02-18  Chris Demetriou  <cgd@broadcom.com>
8490
8491         * config/mips/mips.h (enum processor_type): Sort entries
8492         alphabetically.
8493         * config/mips/mips.md (define_attr cpu): Sync with processor_type
8494         enum values, including adding entries that were missing.
8495
8496 2003-02-18  J"orn Rennecke <joern.rennecke@superh.com>
8497
8498         * sh.c (calc_live_regs): Also check GET_CODE when checking if
8499         initial value for PR_REG is still the PR_REG register.
8500
8501 2003-02-18  Jim Wilson  <wilson@redhat.com>
8502
8503         * config/ia64/ia64.md (floatdidf2, floatdisf2): Add %, before second
8504         instruction in output template.
8505         (bsp_value): Change output template from string to C code, add %,
8506         before actual instruction.
8507         (flushrs): Mark as not predicable.
8508
8509 2003-02-18  Krister Walfridsson  <cato@df.lth.se>
8510
8511         * inclhack.def (netbsd_bogus_semicolon): New fix.
8512         * fixincl.x: Rebuilt.
8513         * tests/base/ctype.h: Update.
8514
8515 2003-02-18  Roger Sayle  <roger@eyesopen.com>
8516
8517         * fold-const.c (negate_expr_p): New function to determine whether
8518         an expression can be negated cheaply.
8519         (fold) [MINUS_EXPR]: Use it to determine whether to transform
8520         -A - B into -B - A for floating point types.
8521
8522 2003-02-18  Roger Sayle  <roger@eyesopen.com>
8523
8524         * sbitmap.c (sbitmap_resize): New function.
8525         * sbitmap.h (sbitmap_resize): Prototype here.
8526         * recog.c (split_all_insns): Use sbitmap_resize.
8527
8528 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8529
8530         * config/h8300/h8300.md (*zero_extendhisi2_h8300): Fix the
8531         insn length.
8532         (extendqisi2): Likewise.
8533         (*extendhisi2_h8300): Likewise.
8534
8535 2003-02-18  Matt Austern <austern@apple.com>
8536
8537         * langhooks.h, langhooks-def.h: introduce new langhook,
8538         final_write_globals, with write_global_declarations as default.
8539         * toplev.c: Move invocation of wrapup_global_declarations from
8540         compile_file to new function, write_global_declarations.  Change
8541         compile_file to use final_write_globals hook.  Change
8542         wrapup_global_declarations so writing to DECL_DEFER_OUTPUT is
8543         conditional.
8544
8545 2003-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8546
8547         * pa.md: Correct and enhance comment.
8548
8549 2003-02-18  Geoffrey Keating  <geoffk@apple.com>
8550
8551         * gcc.c (validate_switches): Don't scan past closing '}'.
8552
8553 2003-02-18  Ben Elliston  <bje@redhat.com>
8554
8555         PR c++/1607
8556         * doc/extend.texi (Function Attributes): Document the effect of
8557         the C++ "this" parameter on the counting of arguments for the
8558         "format" and "format_arg" attributes.
8559
8560 2003-02-17  Aldy Hernandez  <aldyh@redhat.com>
8561
8562         * config/rs6000/spe.h (__ev_stdd): Cast 2nd arg.
8563         (__ev_stdw): Same.
8564         (__ev_stdh): Same.
8565
8566 2003-02-17  Jan Hubicka  <jh@suse.cz>
8567
8568         * recog.c (split_all_insns):  Fix memory overflow.
8569
8570 2003-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8571
8572         * config/h8300/h8300.md (cmpqi): Remove mode from compare.
8573         (cmphi): Likewise.
8574         (*cmphi_h8300): Likewise.
8575         (*cmphi_h8300hs): Likewise.
8576         (cmpsi): Likewise.
8577         (7 peephole2): Likewise.
8578
8579 2003-02-16  Jan Hubicka  <jh@suse.cz>
8580
8581         * c-typeck.c (build_c_cast):  Fold constant variables into
8582         initial values.
8583
8584 2003-02-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8585
8586         * doc/install.texi (Specific): Fix link for m68k-att-sysv.
8587         (Binaries): Ditto for Sinix/Reliant Unix.
8588
8589 2003-02-16 Richard Earnshaw  <rearnsha@arm.com>
8590
8591         * arm.c (arm_reload_in_hi): Ensure that the scratch register does
8592         not overlap the final result register.
8593
8594 2003-02-16 Arend Bayer <arend.bayer@web.de>
8595            Richard Henderson  <rth@redhat.com>
8596
8597         PR c/8068
8598         * fold-const.c (extract_muldiv_1): Rename from extract_muldiv;
8599         rearrange mult arguments for less recursion.
8600         (extract_muldiv): New.  Prevent runaway recursion.
8601
8602 2003-02-16  Danny Smith  <dannysmith@users.sourceforge.net>
8603
8604         * config/i386/cygwin.h (TARGET_SUBTARGET_DEFAULT): Set
8605         MASK_ALIGN_DOUBLE.
8606
8607 2003-02-15  Roger Sayle  <roger@eyesopen.com>
8608
8609         * config/i386/i386.c (x86_ext_80387_constants): Use 80387 insns
8610         to load mathematical constants on K6, Athlon, Pentium 4 and PPro.
8611         (ext_80387_constants_table): Global table of 80387 special constants
8612         guarded by ext_80387_constants_init flag when not initialized.
8613         (init_ext_80387_constants): New function to initialize this table.
8614         (standard_80387_constant_p): Extend to recognize extra 80387
8615         constants, in XFmode, on processors where this is a win.
8616         (standard_80387_constant_opcode): New function to return the
8617         opcode associated with standard_80387_constant_p.
8618         (standard_80387_constant_rtx): New function to return the XFmode
8619         CONST_DOUBLE associated with standard_80387_constant_p.
8620         (ix86_rtx_costs): Give the new constants the same cost as 1.0.
8621
8622         * config/i386/i386-protos.h (standard_80387_constant_opcode):
8623         Prototype here.
8624         (standard_80387_constant_rtx): Likewise.
8625
8626         * config/i386/i386.md (*movsf1, *movsf1_nointerunit, *movdf_nointeger,
8627         *movdf_integer, *movxf_nointeger, *movtf_nointeger, *movxf_integer,
8628         *movtf_integer): Simplify using new standard_80387_constant_opcode.
8629
8630 2003-02-15  Geoffrey Keating  <geoffk@apple.com>
8631
8632         * doc/invoke.texi (Optimize Options): Correct @option syntax.
8633
8634 2003-02-15  Richard Henderson  <rth@redhat.com>
8635
8636         * Makefile.in (cfglayout.o): Depend on TARGET_H.
8637         * cfglayout.c: Include target.h.
8638         (cfg_layout_can_duplicate_bb_p): Check targetm.cannot_copy_insn_p.
8639         * target-def.h (TARGET_CANNOT_COPY_INSN_P): New.
8640         * target.h (struct gcc_target): Add cannot_copy_insn_p.
8641
8642         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): New.
8643         (TARGET_CANNOT_COPY_INSN_P): New.
8644         (override_options): Revert 2003-02-08 hack.
8645
8646 2003-02-15  Richard Henderson  <rth@redhat.com>
8647
8648         * gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs.
8649         (bypass_conditional_jumps): Accept computed_jump_p insns as well.
8650
8651 2003-02-15  David Edelsohn  <edelsohn@gnu.org>
8652
8653         * config/rs6000/rs6000.h (processor_type): Add PPC440.
8654         * config/rs6000/rs6000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
8655         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
8656         TARGET_SCHED_VARIABLE_ISSUE): Define.
8657         (rs6000_use_dfa_pipeline_interface): New function.
8658         (rs6000_multipass_dfa_lookahead): New Function.
8659         (rs6000_variable_issue): New function.
8660         (rs6000_adjust_cost): Add CMP and DELAYED_CR types.
8661         (rs6000_issue_rate): Add PPC440.
8662         * config/rs6000/rs6000.md (unspec list): Correct typo.
8663         (attr "type"): Add load_ext, load_ext_u, load_ext_ux, load_u,
8664         store_ux, store_u, fpload_ux, fpload_u, fpstore_ux, fpstore_u,
8665         cmp, delayed_cr, mfcr, mtcr.
8666         (automata_option): Set "ndfa".
8667         (extendMMNN2): Update attributes.
8668         (movcc_internal1): Discourage move to non-cr0.  Update
8669         attributes.
8670         (movMM_update): Update attributes.
8671         (cmpMM_internal): Update attributes.
8672         (sCC CR materialization): Update attributes.
8673         (branch patterns): Do not discourage non-cr0.
8674         (cr logical patterns): Prefer destructive register allocation.
8675         Update attributes.
8676         (movesi_from_cr): Update attribute.
8677         (mtcrf_operation): Update attribute.
8678         (mtcrfsi): Update attribute.
8679         * config/rs6000/40x.md: New file.
8680         * config/rs6000/603.md: New file.
8681         * config/rs6000/6xx.md: New file.
8682         * config/rs6000/7450.md: New file.
8683         * config/rs6000/7xx.md: New file.
8684         * config/rs6000/mpc.md: New file.
8685         * config/rs6000/power4.md: New file.
8686         * config/rs6000/rios1.md: New file.
8687         * config/rs6000/rios2.md: New file.
8688         * config/rs6000/rs64.md: New file.
8689         [Some DFA descriptions based on work by Michael Hayes]
8690
8691 2003-02-15  Richard Henderson  <rth@redhat.com>
8692
8693         * bb-reorder.c (find_traces_1_round): Don't connect easy to copy
8694         successors with multiple predecessors.
8695         (connect_traces): Try harder to copy traces of length 1.
8696
8697         * function.h (struct function): Add computed_goto_common_label,
8698         computed_goto_common_reg.
8699         * function.c (free_after_compilation): Zap them.
8700         * stmt.c (expand_computed_goto): Use them to produce one
8701         indirect branch per function.
8702
8703 2003-02-15  Richard Henderson  <rth@redhat.com>
8704
8705         * cfgcleanup.c: Include params.h.
8706         (try_crossjump_bb): Use PARAM_MAX_CROSSJUMP_EDGES.  Fix test for
8707         too many outgoing edges from a block.
8708         * Makefile.in (cfgcleanup.o): Depend on PARAMS_H.
8709         * params.def (max-crossjump-edges): New.
8710         * doc/invoke.texi: Document it.
8711
8712 2003-02-15  Richard Henderson  <rth@redhat.com>
8713
8714         * recog.c (split_all_insns): Include new blocks in life update;
8715         do a global life update.
8716
8717 2003-02-15  Danny Smith  <dannysmith@users.sourceforge.net>
8718
8719         * config/i386/mingw32.h (LIBGCC_SPEC): Add libmingwex.a.
8720         Update copyright.
8721         * config/i386/cygwin.h (LIBGCC_SPEC): Add libmingwex.a for
8722         -mno-cygwin case.
8723
8724 2003-02-14  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
8725
8726         PR optimization/7702
8727         * reload1.c (reload_cse_simplify_set): Honor
8728         CANNOT_CHANGE_MODE_CLASS.
8729
8730 2003-02-14  Alexandre Oliva  <aoliva@redhat.com>
8731
8732         * config/mn10300/mn10300.c (mn10300_wide_const_load_uses_clr): New
8733         function.
8734         * config/mn10300/mn10300-protos.h: Declare it.
8735         * config/mn10300/mn10300.md (movdi, movdf): Use it to compute
8736         attribute cc of instructions that may use clr.
8737
8738 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
8739
8740         * simplify-rtx.c (simplify_binary_operation): Simplify ~y when
8741         (x - (x & y)) is found.
8742
8743 2003-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8744
8745         * configure.in: Fix typo.
8746         * configure: Regenerate.
8747
8748 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
8749
8750         * config/h8300/h8300.md (*iorsi2_and_1_lshiftrt_1): New.
8751
8752 2003-02-13  Adam Nemet  <anemet@lnxw.com>
8753
8754         PR opt/2391
8755         * combine.c: Fix spelling in comment.
8756         (cached_nonzero_bits): New function.
8757         (cached_num_sign_bit_copies): New function.
8758         (nonzero_bits_with_known): New macro.
8759         (num_sign_bit_copies_with_known): New macro.
8760         (nonzero_bits1): Rename from nonzero_bits.  Add three new
8761         arguments.  Change calls from nonzero_bits to
8762         nonzero_bits_with_known.
8763         (num_sign_bit_copies1): Rename from num_sign_bit_copies.  Add
8764         three new arguments.  Change calls from num_sign_bit_copies to
8765         num_sign_bit_copies_with_known.
8766         (nonzero_bits): New macro.
8767         (num_sign_bit_copies): New macro.
8768         (update_table_tick): Don't traverse identical subexpression more
8769         than once.
8770         (get_last_value_validate): Likewise.
8771
8772 2003-02-13  Zack Weinberg  <zack@codesourcery.com>
8773
8774         * emit-rtl.c (init_emit): Use ggc_alloc for regno_reg_rtx.
8775         * function.h (struct emit_status): Length of regno_pointer_align
8776         and x_regno_reg_rtx as seen by gengtype is only x_reg_rtx_no,
8777         not regno_pointer_align_length (i.e. length actually used, not
8778         length as allocated)
8779
8780         * config/i386/i386.c (struct stack_local_entry): New.
8781         (struct machine_function): Replace huge array with alist.
8782         (assign_386_stack_local): Change to match.
8783
8784 2003-02-13  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
8785
8786         * inclhack.def (hpux_long_double): Tighten select and add bypass
8787         regexp.
8788         * fixincl.x: Rebuilt.
8789
8790 2003-02-13  Josef Zlomek  <zlomekj@suse.cz>
8791
8792         * cfgcleanup.c (outgoing_edges_match): When there is single outgoing
8793         edge and block ends with a jump insn it must be simple jump.
8794
8795 2003-02-13  Daniel Jacobowitz  <drow@mvista.com>
8796
8797         * Makefile.in (PREPROCESSOR_DEFINES): Add
8798         @TARGET_SYSTEM_ROOT_DEFINE@.
8799         * configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot
8800         is specified or if building a cross compiler.
8801         (TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE
8802         if the sysroot is under $exec_prefix.
8803         * configure: Regenerated.
8804         * cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is
8805         defined.
8806         (struct default_include): Add add_sysroot field.
8807         (cpp_SYSROOT): Declare.
8808         * cppdefault.c (cpp_include_defaults): Fill in add_sysroot
8809         field.
8810         (cpp_SYSROOT): New variable.
8811         * cppinit.c (cpp_create_reader): Initialize
8812         CPP_OPTION (pfile, sysroot).
8813         (init_standard_includes): Handle add_sysroot.  Do not
8814         add unrelocated copies of relocated directories.
8815         (COMMAND_LINE_OPTIONS): Add -isysroot.
8816         (cpp_handle_option): Handle -isysroot.
8817         * cpplib.h (struct cpp_options): Add sysroot member.
8818         * gcc.c (The Specs Language): Update description of %I.
8819         (target_system_root_changed): New variable.
8820         (process_command): Conditionalize make_relative_prefix call
8821         on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE.  Set
8822         target_system_root_changed.
8823         (do_spec_1): Add -isysroot to %I.
8824         * doc/invoke.texi (Spec Files): Update description of %I.
8825         * doc/install.texi (--with-sysroot): Update comment about
8826         relocation.
8827
8828 2003-02-13  Kazu Hirata  <kazu@cs.umass.edu>
8829
8830         * config/h8300/h8300.md (a peephole2): New.
8831
8832 2003-02-13  Robert Lipe <robertlipe@usa.net>
8833             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8834
8835         * doc/install.texi (Specific): Update three SCO-related URLs.
8836
8837 2003-02-13  Andreas Schwab  <schwab@suse.de>
8838
8839         * cgraph.c (SET_NPREDECESORS): Add intermediate cast to size_t.
8840         Parenthesize properly.
8841         (NPREDECESORS): Parenthesize properly.
8842
8843 2003-02-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8844
8845         * timevar.h (POP_TIMEVAR_AND_RETURN): New macro.
8846
8847 2003-02-12  Roger Sayle  <roger@eyesopen.com>
8848
8849         * config/i386/i386.md (UNSPEC_FPATAN): New UNSPEC constant.
8850         (atan2sf3, atan2df3, atan2xf3, atan2tf3): New patterns.
8851
8852         * reg-stack.c (subst_stack_regs_pat): Add support for binary
8853         UNSPEC instructions (e.g. "fpatan").
8854
8855 2003-02-12  Mike Stump  <mrs@apple.com>
8856
8857         * varray.c (element_size): Remove.
8858         (uses_ggc): Remove.
8859         (element): Add.
8860         (varray_init): Use new interface.
8861         (varray_grow): Use new interface.
8862         (varray_clear): Use new interface.
8863
8864 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
8865
8866         * config/rs6000/spe.h: Add casts to the arguments of the following
8867         macros: evfsabs, evfsnabs, evfsneg, evfsadd, evfssub, evfsmul,
8868         evfsdiv, evfscfui, evfscfsi evfscfuf evfscfsf, evfsctui, evfsctsi,
8869         evfsctuf, evfsctsf, evfsctuiz, evfsctsiz, __ev_get_upper*,
8870         __ev_get_lower*, __ev_get_u32, __ev_get_s32, __ev_get_fs,
8871         __ev_get_u16, __ev_get_s16.
8872
8873 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
8874
8875         * config/h8300/h8300.md (a peephole2): New.
8876
8877 2003-02-12  Jan Hubicka  <jh@suse.cz>
8878
8879         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-unit-at-a-time
8880         (OBJS): Add callgraph.o
8881         (callgraph.o): New.
8882         * c-decl.c (expand_body_1): Break out from ...
8883         (expand_body): This one;  change calling convention
8884         (finish_function): Move some of expand_body logic here.
8885         (c_expand_deferred_function): Update call of expand_body
8886         (c_expand_stmt): Use c_expand_body_1.
8887         * c-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
8888         * c-objc-commin.c (c_objc_common_finish_file): Use callgraph code.
8889         * c-tree.h (c_expand_body): Declare.
8890         * callgraph.c: New file.
8891         * flags.h (flag_unit_at_a_time): Declare.
8892         * langhooks.h (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION,
8893         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,
8894         LANG_HOOKS_CALLGRAPH_INITIALIZER): New macros.
8895         * langhooks.h (struct lang_hooks_for_callgraph): New.
8896         (struct lang_hooks): Add callgraph field.
8897         * toplev.c (flag_unit_at_a_time): New.
8898         (lang_independent_options): Add flag_unit_at_a_time.
8899         (process_options): Disable unit-at-a-time mode for frontends not
8900         supporting callgraph.
8901         * tree-inline.c (typedef struct inline_data): Add "decl"
8902         (expand_call_inline): Update callgraph.
8903         (optimize_inline_calls): Set id.decl.
8904         * tree.h (cgraph_finalize_function, cgraph_finalize_compilation_unit,
8905         cgraph_create_edges, dump_cgraph, cgraph_optimize, cgraph_remove_call
8906         cgraph_calls_p): Declare.
8907         * invoke.texi (-funit-at-a-time): Document
8908
8909 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
8910
8911         * config/rs6000/spe.h: Fix misc formatting.
8912         (__ev_create_ufix32_fs): Cast ev argument.
8913         (__ev_create_sfix32_fs): Same.
8914         (__ev_get_sfix32_fs_internal): Cast arguments to builtins.
8915         (__ev_get_ufix32_fs_internal): Same.
8916
8917 2003-02-12  Ranjit Mathew  <rmathew@hotmail.com>
8918
8919         * doc/tm.texi (MODIFY_JNI_METHOD_CALL): Document.
8920         * config/i386/cygwin.h (MODIFY_JNI_METHOD_CALL): New macro.
8921
8922 2003-02-12  Zack Weinberg  <zack@codesourcery.com>
8923
8924         * cpplib.c (do_include_common): Move warnings for
8925         #include_next and #import out to callers.  Use early-return
8926         instead of nested ifs.  Don't do check_eol here.
8927         (parse_include): Do check_eol here with the rest of the
8928         parsing stuff.
8929         (do_include_next, do_import): Now handle warnings.
8930
8931 2003-02-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8932
8933         * doc/install.texi (Specific): Update AVR- and Darwin-related URLs.
8934
8935 2003-02-12  Jan Hubicka  <jh@suse.cz>
8936
8937         * predict.c (estimate_probability):  Fix roundoff error.
8938
8939 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
8940
8941         * config/h8300/h8300.md (a peephole2): Don't handle 65535.
8942         (two peephole2): New.
8943
8944 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
8945
8946         * config/h8300/h8300.md (several peephole2): Replace
8947         find_regno_note with peep2_reg_dead_p.
8948
8949 2003-02-11  Richard Henderson  <rth@redhat.com>
8950
8951         * gcse.c (lookup_set): Remove unused argument PAT.  Update
8952         both callers.
8953
8954 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
8955
8956         * diagnostic.c (real_abort): New.
8957         (diagnostic_report_diagnostic): Call real_abort on error.
8958         * diagnostic.h (diagnostic_abort_on_error): New.
8959         (struct diagnostic_context): Add abort_on_error field.
8960         * toplev.c (setup_core_dumping): New.
8961         (decode_d_option): Handle 'H' case.
8962         * doc/invoke.texi (Debugging Options): Document -dH.
8963
8964 2003-02-11  Nathanael Nerode  <neroden@gcc.gnu.org>
8965
8966         * Makefile.in: Remove pointless setting of CXXFLAGS for dejagnu
8967         which refers to obsolete directories.
8968
8969 2003-02-11  Richard Henderson  <rth@redhat.com>
8970
8971         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): New.
8972
8973 2002-10-21  Jan Hubicka  <jh@suse.cz>
8974
8975         * i386.c (contains_128bit_aligned_vector_p): New function.
8976         (ix86_function_arg_boundary): Properly align vector modes.
8977
8978 2003-02-11  Bob Wilson  <bob.wilson@acm.org>
8979
8980         * config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7.
8981         * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP
8982         as a SET pattern.
8983
8984 2003-02-11  Roger Sayle  <roger@eyesopen.com>
8985
8986         * builtins.c:  Fix failure caused by commiting wrong patch.
8987
8988 2003-02-11  Dale Johannesen  <dalej@apple.com>
8989         * ra-build.c (compare_and_free_webs):  Relax checking.
8990         * config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME):  Define.
8991         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):  Define.
8992
8993 2003-02-11  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
8994
8995         PR optimization/9651
8996         * rtlanal.c (may_trap_p): Handle FIX.
8997
8998 2003-02-11  Dave Jones <davej@codemonkey.org.uk>
8999
9000         * config/i386/i386.c (override_options): Define c3-2 as a 686 with SSE.
9001         * doc/invoke.texi: Extra alias.
9002
9003 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
9004
9005         * config/rs6000/host-darwin.c: Fix comment.
9006
9007 2003-02-11  David Edelsohn  <edelsohn@gnu.org>
9008
9009         * config/rs6000/rs6000.md (divmodsi4): Use register_operand
9010         predicate for mod result.
9011
9012 2003-02-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9013
9014         * inclhack.def (hpux_long_double, hpux10_ctype_declarations1,
9015         hpux10_ctype_declarations2, hpux_ctype_macros): New hacks.
9016         * fixincl.x: Rebuilt.
9017         * tests/base/stdlib.h: Update.
9018         * tests/base/ctype.h: New file.
9019
9020 2003-02-11  Jan Hubicka  <jh@suse.cz>
9021
9022         * emit-rtl.c (emit_copy_of_insn_after): Copy insn recog cache too.
9023
9024 2003-02-11  Richard Henderson  <rth@redhat.com>
9025
9026         * config/i386/i386.c (ix86_expand_movstr): Fail if esi or edi
9027         appropriated as globals.
9028         (ix86_expand_clrstr): Similarly.
9029         * config/i386/i386.md (cmpstrsi): Similarly.
9030
9031 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
9032
9033         * config/h8300/h8300.md (a peephole2): Add a case of 255.
9034
9035 2003-02-11  Roger Sayle  <roger@eyesopen.com>
9036
9037         * optabs.h (enum optab_index): Add new OTI_pow and OTI_atan2.
9038         (pow_optab, atan2_optab): Define corresponding macros.
9039         * optabs.c (init_optabs): Initialize pow_optab and atan2_optab.
9040         * genopinit.c (optabs): Implement pow_optab and atan2_optab
9041         using pow?f3 and atan2?f3 patterns.
9042         * builtins.c (expand_errno_check): New function to update errno
9043         if necessary, split out from expand_builtin_mathfn.
9044         (expand_builtin_mathfn): Use expand_errno_check.
9045         (expand_builtin_mathfn_2): New function to handle expanding binary
9046         math functions, reusing the code in expand_errno_check.
9047         (expand_builtin): Handle the pow and atan2 math built-ins,
9048         BUILT_IN_{POW,POWF,POWL,ATAN2,ATAN2F,ATAN2L} via the new function
9049         expand_builtin_mathfn_2.
9050
9051         * doc/md.texi: Document new pow?f3 and atan2?f3 patterns.
9052
9053 2003-02-11  Jan Hubicka  <jh@suse.cz>
9054
9055         * combine.c (combine_simplify_rtx): Fix folding of
9056         nested float_truncates.
9057
9058 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
9059
9060         * config/h8300/h8300.md (a peephole2): Fix a typo.
9061
9062 2003-02-11  Richard Earnshaw  <rearnsha@arm.com>
9063
9064         * arm.mc (return_address_mask): Use CC_REGNUM for the condition code
9065         register number.
9066
9067 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
9068
9069         * config/h8300/h8300-protos.h: Add a prototype for
9070         gtuleu_operator.
9071         * config/h8300/h8300.c (gtuleu_operator): New.
9072         * config/h8300/h8300.h (PREDICATE_CODES): Add gtuleu_operator.
9073         * config/h8300/h8300.md (a peephole2): New.
9074
9075 2003-02-11  Jan Hubicka  <jh@suse.cz>
9076
9077         * sched-ebb.c (schedule_ebbs): Do not verify_flow_info.
9078
9079 2003-02-11  Jan Hubicka  <jh@suse.cz>
9080
9081         * predict.c (choose_function_section): Choose sections correctly.
9082
9083 2003-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9084
9085         * reload1.c (first_label_num): New.
9086         (reload): Index offsets_known_at and offsets_at using difference of
9087         label number and first label number.  Don't use offset pointers.
9088         (set_label_offsets, set_initial_label_offsets): Likewise.
9089
9090 2003-02-10  Roger Sayle  <roger@eyesopen.com>
9091
9092         * mips-tfile.c (init_file): Add missing initializers in the
9093         "#ifdef __alpha" case.
9094         (file_offset, max_file_offset): Declare as unsigned long.
9095         (write_varray): Cast to "unsigned long" in comparisons against
9096         either file_offset or max_file_offset.
9097         (write_object): Likewise.
9098         (read_seek): Likewise.
9099         (copy_object): Likewise. Declare "ifd" as int to match its use
9100         in add_ext_symbol, and avoid signed/unsigned conditional warning.
9101
9102 2003-02-10  Nick Clifton  <nickc@redhat.com>
9103             Aldy Hernandez  <aldyh@redhat.com>
9104
9105         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Do not
9106         override options which have been specified on the command line.
9107
9108 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
9109
9110         * config/h8300/h8300.md (abssf2): New.
9111         (*abssf2_h8300): Likewise.
9112         (*abssf2_h8300hs): Likewise.
9113
9114 2003-02-10  Phil Edwards  <pme@gcc.gnu.org>
9115
9116         * tree.c (build_tree_list):  Fix parameter names in comment.
9117
9118 2003-02-10  Janis Johnson  <janis187@us.ibm.com>
9119
9120         * config/rs6000/ppc64-fp.c: New file.
9121         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
9122
9123 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
9124
9125         * Makefile.in (bb-reorder.o): Add dependency on $(FIBHEAP_H).
9126         * bb-reorder.c (make_reorder_chain): Deleted.
9127         (make_reorder_chain_1): Deleted.
9128         (find_traces): New function.
9129         (rotate_loop): New function.
9130         (mark_bb_visited): New function.
9131         (find_traces_1_round): New function.
9132         (copy_bb): New function.
9133         (bb_to_key): New function.
9134         (better_edge_p): New function.
9135         (connect_traces): New function.
9136         (copy_bb_p): New function.
9137         (get_uncond_jump_length): New function.
9138         (reorder_basic_blocks): Use new functions (Software Trace Cache).
9139         * cfgcleanup.c (outgoing_edges_match): Enable crossjumping across loop
9140         boundaries.
9141
9142 2003-02-10  Aldy Hernandez  <aldyh@redhat.com>
9143
9144         * config/rs6000/rs6000.c (bdesc_2arg): Change spe_evxor to xorv2si3.
9145
9146 2003-02-09  Dan Nicolaescu  <dann@ics.uci.edu>
9147
9148         * tree.h (struct tree_decl): Remove unused live_range_rtl field.
9149         (DECL_LIVE_RANGE_RTL): Remove.
9150
9151 2003-02-10  Nick Clifton  <nickc@redhat.com>
9152
9153         * config/arm/aof.h, config/arm/aout.h, config/arm/arm-modes.def,
9154         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
9155         config/arm/arm.md, config/arm/cirrus.md, config/arm/coff.h,
9156         config/arm/conix-elf.h, config/arm/ecos-elf.h, config/arm/elf.h,
9157         config/arm/freebsd.h, config/arm/linux-elf.h,
9158         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
9159         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
9160         config/arm/rtems-elf.h, config/arm/semi.h, config/arm/semiaof.h,
9161         config/arm/strongarm-coff.h, config/arm/strongarm-elf.h,
9162         config/arm/strongarm-pe.h, config/arm/uclinux-elf.h,
9163         config/arm/unknown-elf-oabi.h, config/arm/unknown-elf.h,
9164         config/arm/xscale-elf.h: Replace occurances of "GNU CC" with "GCC"
9165         and reformat as appropriate.
9166
9167 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
9168
9169         * config/h8300/clzsi2.c: Remove.
9170         * config/h8300/ctzsi2.c: Likewise.
9171         * config/h8300/paritysi2.c: Likewise.
9172         * config/h8300/popcountsi2.c: Likewise.
9173         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Remove clzsi2,
9174         ctzsi2, paritysi2, and popcountsi2.
9175
9176 2003-02-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
9177             Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
9178
9179         PR c/7741
9180         * c-decl.c (duplicate_decls): Discard the initializer of the
9181         new decl when the types are conflicting.
9182
9183 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
9184
9185         * Makefile.in (sreal.o): Added.
9186         (predict.o): Depends on sreal.h instead of real.h.
9187         * sreal.c: New file.
9188         * sreal.h: New file.
9189         * predict.c: Use sreal.c instead of real.c.
9190
9191 2003-02-10  Nick Clifton  <nickc@redhat.com>
9192
9193         * Contributed support for the Cirrus EP9312 "Maverick"
9194         floating point co-processor.  Written by Aldy Hernandez
9195         <aldyh@redhat.com>.
9196         (config/arm/arm.c): Add Cirrus support.
9197         (config/arm/arm.h): Likewise.
9198         (config/arm/aout.h): Likewise.
9199         (config/arm/arm.md): Likewise.
9200         (config/arm/arm-protos.h): Likewise.
9201         (config.gcc): Likewise.
9202         (doc/invoke.texi): Describe new -mcpu value and new
9203         -mcirrus-fix-invalid-insns switch,
9204         (cirrus.md): New file.
9205
9206 2003-02-10  Jan Hubicka  <jh@suse.cz>
9207
9208         * combine.c (combine_simplify_rtx): Simplify using
9209         (float_truncate (float x)) is (float x)
9210         (float_extend (float_extend x)) is (float_extend x).
9211
9212 2003-02-10  Alan Modra  <amodra@bigpond.net.au>
9213
9214         * calls.c (try_to_integrate): Tidy stack_usage_map access.
9215         (emit_library_call_value_1): Likewise.  Formatting.
9216         (store_one_arg): Likewise.
9217
9218 2003-02-09  Nick Clifton  <nickc@redhat.com>
9219             Aldy Hernandez  <aldyh@redhat.com>
9220
9221         * config/rs6000/spe.md: spe_evlhhesplat, spe_evlhhossplat,
9222         spe_evlhhousplat, spe_evlwhsplat, spe_evlwwsplat, spe_evldd,
9223         spe_evldh, spe_evldw, spe_evlwhe, spe_evlwhos, spe_evlwhou,
9224         spe_evstdd, spe_evstdh, spe_evstdw, spe_evstdwx, spe_evstwhe,
9225         spe_evstwho, spe_evstwwe, spe_evstwwo: Fix syntax to match newest
9226         docs.  Add range test for immediate value.
9227
9228 2003-02-09  Aldy Hernandez  <aldyh@redhat.com>
9229
9230         Rename spe_evxor to xorv2si3.
9231         (xorv4hi3): New.
9232         (xorv1di3): New.
9233
9234 2003-02-10  Glen Nakamura  <glen@imodulo.com>
9235
9236         * doc/extend.texi (C++98 Thread-Local Edits): Add missing @item
9237         tag.
9238
9239 2003-02-10  Jan Hubicka  <jh@suse.cz>
9240
9241         * i386.c (vector_move_operand): New predicate.
9242         (ix86_expand_vector_move): Be happy about 0.
9243         * i386.h (PREDICATE_CODES): Add sse-move_operand.
9244         * i386.md (mov*_internal): Add 'C' alternative.
9245
9246 2003-02-09  Jan Hubicka  <jh@suse.cz>
9247
9248         * i386.md (floathi*): Deal with SSE.
9249
9250 2003-02-09  Jan Hubicka  <jh@suse.cz>
9251
9252         * simplify-rtx.c (simplify_unary_operation,
9253         simplify_binary_operation):  Deal with vector modes
9254         (simplify_ternary_operation):  Deal with no-op VEC_MERGE.
9255
9256 2003-02-09  Richard Sandiford  <rsandifo@redhat.com>
9257
9258         * toplev.c (rest_of_compilation): Recompute register usage after
9259         split_all_insns.
9260
9261 2003-02-09  Richard Henderson  <rth@redhat.com>
9262
9263         * libgcc-std.ver (__clztf2): New.
9264         (__ctztf2, __popcounttf2, __paritytf2): New.
9265         * libgcc2.c (__clzSI2, __clzDI2, __ctzSI2, __ctzDI2, __popcountSI2,
9266         __popcountDI2, __paritySI2, __parityDI2): Use UWmode and UDWmode;
9267         adjust code to match the different type sizes.
9268         * libgcc2.h (__clzSI2, __ctzSI2, __popcountSI2, __paritySI2,
9269         __clzDI2, __ctzDI2, __popcountDI2, __parityDI2): New macros.
9270
9271         * optabs.c (init_integral_libfuncs): Don't hard-code SImode and
9272         TImode; select word_mode and twice that.
9273         (init_floating_libfuncs): Don't hard-code SFmode and TFmode;
9274         select the modes from float, double, and long double.
9275         (init_optabs): Remove duplicate initializations.
9276
9277 2003-02-09  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
9278
9279         * doc/install.texi: Squeeze and streamline section on
9280         testing and regression checking.
9281
9282 2003-02-09  Jan Hubicka  <jh@suse.cz>
9283
9284         * i386.md (ahi?v*3): Set third operand type to TImode.
9285         * i386.c (ix86_expand_binop_builtin): Extend operand when needed.
9286
9287         * simplify-rtx.c (simplify_subreg): Fix conversion from vector into
9288         integer mode.
9289
9290         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_DUPLICATE):
9291         Change code so they are arithmetic expressions now.
9292         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
9293         simplify_ternary_operation): Deal with VEC_* expressions.
9294
9295         * i386.md (vmaskcmp, pinsrw, movd patterns):  Fix RTL representation.
9296
9297 2003-02-08  Jan Hubicka  <jh@suse.cz>
9298
9299         * cfgrtl.c (verify_flow_info):  Use control_flow_insn_p.
9300         * reload1.c (fixup_abnormal_edges):  Split basic blocks when EH edges
9301         possibly got duplicated.
9302
9303 2003-02-08  Richard Henderson  <rth@redhat.com>
9304
9305         * config/alpha/alpha.c (override_options): Turn off explicit
9306         relocs until post-peep2 code duplication resolved.
9307
9308 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9309
9310         * optabs.c (expand_unop): Widen clz properly when clz is done
9311         via libcall.
9312
9313 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9314
9315         * config/h8300/clzsi2.c: Replace "GNU CC" with "GCC".
9316         * config/h8300/crti.asm: Likewise.
9317         * config/h8300/crtn.asm: Likewise.
9318         * config/h8300/ctzsi2.c: Likewise.
9319         * config/h8300/fixunssfsi.c: Likewise.
9320         * config/h8300/h8300-protos.h: Likewise.
9321         * config/h8300/h8300.c: Likewise.
9322         * config/h8300/h8300.h: Likewise.
9323         * config/h8300/h8300.md: Likewise.
9324         * config/h8300/paritysi2.c: Likewise.
9325         * config/h8300/popcountsi2.c: Likewise.
9326         * config/h8300/rtems.h: Likewise.
9327
9328 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9329
9330         * doc/invoke.texi: Documentation for my previous commit.
9331         * doc/passes.texi: Ditto.
9332
9333 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9334
9335         * cfgloop.h (fix_loop_placement, can_duplicate_loop_p,
9336         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
9337         Declare.
9338         (DLTHE_FLAG_UPDATE_FREQ): New.
9339         * cfgloopmanip.c (duplicate_loop, duplicate_subloops, copy_loops_to,
9340         loop_redirect_edge, loop_delete_branch_edge, copy_bbs, remove_bbs,
9341         rpe_enum_p, find_branch, alp_enum_p, add_loop, fix_loop_placements,
9342         fix_bb_placement, fix_bb_placements, place_new_loop,
9343         scale_loop_frequencies, scale_bbs_frequencies, record_exit_edges):
9344         New static functions.
9345         (fix_loop_placement, can_duplicate_loop_p,
9346         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
9347         New functions.
9348
9349         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize,
9350         unswitch_loops): Declare.
9351         * loop-init.c: New file.
9352         * loop-unswitch.c: New file.
9353         * Makefile.in (loop-init.o, loop-unswitch.o): New.
9354         * params.def (PARAM_MAX_UNSWITCH_INSNS, PARAM_MAX_UNSWITCH_LEVEL): New.
9355         * toplev.c (DFI_loop2): New dump.
9356         (flag_unswitch_loops): New.
9357         (lang_independent_options): Add it.
9358         (rest_of_compilation): Call new loop optimizer.
9359         (parse_options_and_default_flags): Turn flag_unswitch_loops on with -O3.
9360
9361 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9362
9363         * config/h8300/clzsi2.c: New.
9364         * config/h8300/ctzsi2.c: Likewise.
9365         * config/h8300/paritysi2.c: Likewise.
9366         * config/h8300/popcountsi2.c: Likewise.
9367         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Add above files.
9368
9369 2003-02-07  David Edelsohn  <edelsohn@gnu.org>
9370
9371         * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
9372         * config/rs6000/rs6000.md (clzsi2): Rename from cntlzw2.
9373         (ctzsi2): New pattern.
9374         (ffssi2): Use clz instead of unspec.
9375         (clzdi2): Rename from cntlzd2.
9376         (ctzdi2): New pattern.
9377         (ffsdi2): Use clz instead of unspec.
9378
9379 2003-02-07  Loren James Rittle  <ljrittle@acm.org>
9380
9381         * config/alpha/freebsd.h (LINK_SPEC): Weaken error to notice.
9382         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
9383         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
9384         * config/i386/freebsd.h (LINK_SPEC): Add clause to mirror other arches.
9385
9386 2003-02-07  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
9387
9388         * doc/trouble.texi: Document pitfalls of two-stage name lookup.
9389
9390 2003-02-07  Richard Henderson  <rth@redhat.com>
9391
9392         PR 9226
9393         * gcse.c (local_cprop_find_used_regs): New.
9394         (local_cprop_pass): Use it.
9395
9396 2003-02-07  Fred Fish  <fnf@intrinsity.com>
9397
9398         * mips-tfile.c (parse_def): Parenthesize assignments to fix
9399         precedence bugs.
9400
9401 2003-02-07  Segher Boessenkool  <segher@koffie.nl>
9402
9403         * genoutput.c (output_get_insn_name): Handle NOOP_MOVE_INSN_CODE.
9404
9405 2003-02-07  Roger Sayle  <roger@eyesopen.com>
9406
9407         * builtin-types.def (BT_FN_FLOAT_FLOAT_FLOAT): New built-in type.
9408         (BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE): Likewise.
9409         (BT_FN_DOUBLE_DOUBLE_DOUBLE): Likewise.
9410         * builtins.def: Define pow, powf, powl, atan2, atan2f and atan2l
9411         builtin functions (and their __builtin_* variants).
9412         * builtins.c (mathfn_built_in): Handle missing log{,f,l} cases.
9413         (expand_builtin): Don't expand log{,f,l}, pow{,f,l} or atan2{,f,l}
9414         when not optimizing.
9415
9416         * doc/extend.texi: Document new pow and atan2 builtins, and
9417         their float and long double variants.  Realphabetize builtins.
9418
9419 2003-02-07  Jan Hubicka  <jh@suse.cz>
9420
9421         * i386.md (sse2_nandv2di3): Fix.
9422
9423 2003-03-07  Danny Smith  <dannysmith@users.sourceforge.net>
9424
9425         * config/i386/i386.h (MS_AGGREGATE_RETURN): New define.
9426         * config/i386/cygwin.h (MS_AGGREGATE_RETURN): Override default
9427         definition.
9428         * config/i386/i386.h (ix86_return_in_memory): Return aggregate
9429         types of up to 8 bytes via registers if MS_AGGREGATE_RETURN.
9430
9431 2003-02-07  Jan Hubicka  <jh@suse.cz>
9432
9433         * i386.md (movdi_rex64_1): Fix mmx<->int move opcode.
9434
9435 2003-02-07  Daniel Berlin  <dberlin@dberlin.org>
9436
9437         * cfg.c (dump_flow_info): Add back accidently deleted line.
9438
9439 2003-02-07  Andrey Petrov <petrov@netbsd.org>
9440
9441         * optabs.c (expand_float): Search wider integer modes first.
9442
9443 2003-02-07  Bob Wilson  <bob.wilson@acm.org>
9444
9445         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Set this
9446         based on preprocessor flag.
9447
9448 2003-02-07  Roger Sayle  <roger@eyesopen.com>
9449             Richard Henderson  <rth@redhat.com>
9450
9451         * gcse.c (implicit_sets): New.
9452         (compute_hash_table_work): Include them in hash table.
9453         (find_implicit_sets, fis_get_condition): New.
9454         (one_cprop_pass): Allocate and free implicit_sets; call
9455         find_implicit_sets before building hash table.
9456
9457 2003-02-07  Jason Thorpe  <thorpej@wasabisystems.com>
9458
9459         * config/t-netbsd (USER_H): Revert previous change.
9460
9461 2003-02-07  Gabor Greif  <ggreif@lucent.com>
9462
9463         * doc/c-tree.texi (Namespaces): Fix typo.
9464
9465 2003-02-07  Jan Hubicka  <jh@suse.cz>
9466
9467         * regrename.c (do_replace, find_oldest_value_reg,
9468         copyprop_hardreg_forward_1): Update register attributes.
9469
9470 2003-02-06  Vladimir Makarov  <vmakarov@redhat.com>
9471
9472         * genautomata.c (VLA_PTR_CREATE, VLA_PTR_EXPAND, VLA_PTR_ADD,
9473         VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD): Use temporay
9474         variables starting with underscore.
9475         (struct unit_usage): New structure.
9476         (unit_usages, cycle_alt_unit_usages): New global variables.
9477         (check_unit_distribution_in_reserv): Remove it.
9478         (store_alt_unit_usage): New function.
9479         (check_regexp_units_distribution): Rewrite it.
9480
9481 2003-02-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9482
9483         * config.gcc (hppa*-*-linux*): Set MASK_NO_SPACE_REGS in
9484         target_cpu_default.
9485         * pa.c (attr_length_call): Add 8 to call length (long indirect PA 1.X)
9486         if not MASK_NO_SPACE_REGS.
9487         (output_call): Adjust return pointer, don't load new space register
9488         into %sr0, and use %sr4 for call if TARGET_NO_SPACE_REGS is true.
9489         (pa_asm_output_mi_thunk): Don't load new space register into %sr0 if
9490         TARGET_NO_SPACE_REGS is true.
9491         * pa.md (return_external_pic): Add TARGET_NO_SPACE_REGS to insn
9492         conditions.
9493         (epilogue): Always use return_internal if TARGET_NO_SPACE_REGS is true.
9494         (interspace_jump): Add new pattern for when TARGET_NO_SPACE_REGS is
9495         true.  Use bve when TARGET_64BIT is true.
9496
9497 2003-02-06  Richard Henderson  <rth@redhat.com>
9498
9499         * combine.c (nonzero_bits): Fix double break.
9500
9501 2003-02-06  Eric Botcazou <ebotcazou@libertysurf.fr>
9502             Richard Henderson <rth@redhat.com>
9503
9504         PR c/9530
9505         * config/i386/i386.c (ix86_function_ok_for_sibcall): Forbid sibcalls
9506         from functions that return a float to functions that don't.
9507
9508 2003-02-06  Jan Hubicka  <jh@suse.cz>
9509
9510         * i386.c (x86_inter_unit_moves): New variable.
9511         (ix86_secondary_memory_needed): Fix 64bit case, honor
9512         TARGET_INTER_UNIT_MOVES
9513         * i386.h (x86_inter_unit_moves): Declare.
9514         (TARGET_INTER_UNIT_MOVES): New macro.
9515         * i386.md (movsi_1): Cleanup constraints; disable
9516         when not doing inter-unit moves.
9517         (movsi_1_nointernunit): New.
9518         (movdi_1_rex64): Fix constraints; deal with SSE->GPR moves.
9519         (movdi_1_rex64_nointerunit): New.
9520         (mivsf_1): disable when not doing inter-unit moves.
9521         (movsf_1_nointerunit): New.
9522
9523         * basic-block.h (inside_basic_block_p):  Declare.
9524         * cfgbuild.c (inside_basic_block_p): Make global.
9525         * haifa-sched.c (unlink_other_notes0: Deal with NOT_INSN_BASIC_BLOCK.
9526         * scheudle-ebb.c  (schedule_ebb): Return last basic block of trace;
9527         update CFG.
9528         (fix_basic_block_boundaries, add_missing_bbs): New.
9529         (rank): Use profile.
9530         (scheudle_ebbs): Rely on CFG; update coments.
9531
9532 2003-02-05  Geoffrey Keating  <geoffk@apple.com>
9533
9534         * Makefile.in (host_hook_obj): New.
9535         (OBJS): Add $(host_hook_obj).
9536         (host_default.o): New rule.
9537         * config.gcc (host_hook_obj): New, default to host-default.o.
9538         (powerpc-*-darwin*): Use host-darwin.o.
9539         (out_host_hook_obj): New.
9540         * configure: Regenerate.
9541         * configure.in: Print information about out_host_hook_obj, substitute
9542         into output files.
9543         * host-default.c: New file.
9544         * hosthooks.h: New file.
9545         * toplev.c (general_init): Call host_hooks.extra_signals.
9546         * config/rs6000/host-darwin.c: New file.
9547         * config/rs6000/x-darwin: New file.
9548         * doc/hostconfig.texi: Add documentation for new host hook.
9549         Rearrange existing documentation.
9550
9551 2003-02-05  Roger Sayle  <roger@eyesopen.com>
9552
9553         * dwarf2out.c (mem_loc_descriptor): Replace ASM_SIMPLIFY_DWARF_ADDR
9554         with *targetm.delegitimize_address.
9555         (rtl_for_decl_location): Likewise.
9556         * dwarfout.c (output_mem_loc_descriptor): Likewise.  Include target.h.
9557         * Makefile.in (dwarf2out.c, dwarfout.c): Depend upon $(TARGET_H)
9558
9559         * config/i386/i386.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
9560         * config/i386/i386-protos.h (i386_simplify_dwarf_addr): Remove
9561         prototype.
9562         * config/i386/i386.c (ix86_delegitimize_address): Renamed from
9563         i386_simplify_dwarf_addr.  Made static.  Prototyped.
9564         (TARGET_DELEGITIMIZE_ADDRESS): Update definition from
9565         i386_simplify_dwarf_addr to ix86_delegitimize_address.
9566         (ix86_find_base_term): Likewise.
9567         (maybe_get_pool_constant): Likewise.
9568
9569         * config/s390/s390.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
9570         * config/s390/s390-protos.h (s390_simplify_dwarf_addr): Remove
9571         prototype.
9572         * config/s390/s390.c (s390_delegitimize_address): Renamed from
9573         s390_simplify_dwarf_addr.  Made static.  Prototyped.
9574         (TARGET_DELEGITIMIZE_ADDRESS): Define as s390_delegitimize_address.
9575
9576 2003-02-05  Richard Henderson  <rth@redhat.com>
9577
9578         PR c/8602
9579         * integrate.c (output_inline_function): Reset input_filename
9580         and lineno from the decl before rest_of_compilation.
9581
9582 2003-02-05  Richard Henderson  <rth@redhat.com>
9583
9584         * defaults.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
9585         (CTZ_DEFINED_VALUE_AT_ZERO): New.
9586         * doc/rtl.texi, doc/tm.texi: Document them.
9587
9588         * combine.c (nonzero_bits) [CLZ, CTZ]: Handle the definedness
9589         of the value at zero properly.
9590         * fold-const.c (tree_expr_nonnegative_p): Likewise.
9591         * simplify-rtx.c (simplify_unary_operation): Likewise.
9592
9593         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
9594         (CTZ_DEFINED_VALUE_AT_ZERO): New.
9595
9596         * config/arm/arm.c (TARGET_INIT_BUILTINS): Remove.
9597         (TARGET_EXPAND_BUILTIN): Remove.
9598         (def_builtin, arm_init_builtins, arm_expand_builtin): Remove.
9599         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
9600         (enum arm_builtins): Remove.
9601         * config/arm/arm.md (UNSPEC_CLZ): Remove.
9602         (clzsi2): Rename from clz; use clz instead of unspec.
9603         (ctzsi2): New.
9604         * config/arm/arm-protos.h: Update.
9605
9606 2003-02-05  Jan Hubicka  <jh@suse.cz>
9607
9608         * i386-protos.h (x86_emit_floatuns):  Declare.
9609         * i386.c (x86_emit_floatuns): New global function.
9610         * i386.md (floatunssisf2, floatunsdisf2,
9611         floatunsdidf2):  New patterns.
9612
9613 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9614
9615         * cfgloopmanip.c (force_single_succ_latches): Fix missindentation.
9616
9617 2003-02-05  Hans Boehm <Hans.Boehm@hp.com>
9618
9619         * config/ia64/unwind-ia64.c: include coretypes.h, tm.h to get
9620           config/ia64/linux.h
9621
9622 2003-02-05  Roger Sayle  <roger@eyesopen.com>
9623
9624         * cfgloop.h (flow_bb_inside_loop_p): Correct prototype again.
9625
9626 2003-02-05  Jakub Jelinek  <jakub@redhat.com>
9627
9628         PR optimization/8555
9629         * config/i386/i386.md (sse_mov?fcc split): Handle op2 == op3 case
9630         instead of aborting.
9631
9632 2003-02-04  Richard Henderson  <rth@redhat.com>
9633
9634         * config/i386/i386.md (UNSPEC_BSF): Remove.
9635         (ffssi2): Split into cmove and no_cmove insns and splitters;
9636         lose pentium float trick for now.
9637         (ffssi_1): Add * to name; use CTZ instead of UNSPEC.
9638         (ctzsi2, clzsi2, bsr): New.
9639
9640 2003-02-04  Richard Henderson  <rth@redhat.com>
9641
9642         * config/ia64/ia64.c (rtx_needs_barrier): Handle POPCOUNT,
9643         UNSPEC_GETF_EXP; remove UNSPEC_POPCNT.
9644         * config/ia64/ia64.md (UNSPEC_POPCNT): Remove.
9645         (ffsdi2): Use popcount instead of unspec.
9646         (popcountdi2): Rename from *popcnt.
9647         (ctzdi2, clzdi2, getf_exp_tf): New.
9648
9649 2003-02-04  Kazu Hirata  <kazu@cs.umass.edu>
9650
9651         * genconfig.c (main): Generate CC0_P.
9652         * rtl.h (CC0_P): Remove.
9653
9654 2003-02-04  Richard Henderson  <rth@redhat.com>
9655
9656         * libgcc2.h, libgcc2.c (__ffsSI2): New.
9657         (__ffsDI2): Rename from __ffsdi2.
9658         * mklibgcc.in (lib2funcs): Add _ffssi2.
9659
9660 2003-02-04  Richard Henderson  <rth@redhat.com>
9661
9662         * libgcc2.c (__paritysi2, __paritydi2): Replace last two reduction
9663         rounds with a "bit table" lookup.
9664
9665 2003-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
9666
9667         * reload.c (find_reloads): Do not use the mode specified in the insn
9668         pattern as reload mode for address operands.  Do not generate optional
9669         reloads for operands where a mandatory reload was already pushed.
9670
9671 2003-02-04  Richard Henderson  <rth@redhat.com>
9672
9673         * longlong.h [alpha] (count_leading_zeros, count_trailing_zeros): Use
9674         builtins instead of inline assembly.
9675
9676 2003-02-04  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
9677
9678         PR c/9376
9679         * libgcc2.c (__subvdi3): Fix typo.
9680
9681 2003-02-04  Jan Hubicka  <jh@suse.cz>
9682
9683         * i386.md (movti_rex64):  Fix constraint.
9684
9685 2003-02-04  Jan Hubicka  <jh@suse.cz>
9686
9687         * i386.md (vector push splitters):  Fix typo in resolving conflict.
9688
9689 2003-02-04  Rodney Brown  <rbrown64@csc.com.au>
9690
9691         * config/i386/i386.c (x86_function_profiler): Fix typo in format.
9692
9693 2003-02-04  Phil Edwards  <pme@gcc.gnu.org>
9694
9695         * doc/install.texi (*-*-linux-gnu):  Mention glibc requirements
9696         for recent libstdc++.  Remove formatting cruft.
9697
9698 2003-02-04  Jakub Jelinek  <jakub@redhat.com>
9699
9700         * dwarf2out.c (dwarf2out_finish): Add AT_comp_dir
9701         attribute even if input file name is absolute, but one of the
9702         includes is relative.
9703
9704 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
9705
9706         * doc/gcc.texi, doc/gccint.texi, doc/gcov.texi,
9707         doc/include/fdl.texi, doc/invoke.texi: Update to GFDL 1.2.
9708         * doc/install.texi: Update copyright dates.  Update to GFDL 1.2.
9709
9710 2003-02-03  Richard Henderson  <rth@redhat.com>
9711
9712         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
9713         __popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change
9714         return type to "int".  Shuffle declarations and undef int trap.
9715         * libgcc2.h: Remove their declarations.
9716         * optabs.c (expand_unop): Force outmode to int for bitops.
9717
9718 2003-02-03  Bob Wilson  <bob.wilson@acm.org>
9719
9720         * config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the
9721         coprocessor registers before floating-point registers.
9722         * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Adjust register numbers
9723         to account for a previously removed register.
9724         (SPEC_REG_FIRST, SPEC_REG_LAST, SPEC_REG_NUM, COUNT_REGISTER_REGNUM):
9725         Delete unused macros.
9726
9727 2003-02-03  Jan Hubicka  <jh@suse.cz>
9728
9729         * i386.c (ix86_expand_store_builtin):  Always force op1 to register.
9730         (mov*_internal): Fix predicates; require one of operands to not be
9731         memory.
9732         (SSE?MMX move expanders):  Fix predicates; force one of operands to
9733         register.
9734         (SSE/MMX push patterns): Reorganize; fix x86-64 code generation.
9735         (movups/movupd/movdqu patterns): Force one of operands to not be
9736         memory.
9737
9738 2003-02-03  Roger Sayle  <roger@eyesopen.com>
9739
9740         * hooks.c (hook_rtx_rtx_identity): Generic hook function that
9741         takes a single rtx and returns it unmodified.
9742         * hooks.h (hook_rtx_rtx_identity): Prototype here.
9743         * target.h (struct gcc_target): Add "delegitimize_address"
9744         field to target structure.
9745         * target-def.h (TARGET_DELEGITIMIZE_ADDRESS):  Provide default
9746         for delegitimize_address target using hook_rtx_rtx_identity.
9747         (TARGET_INITIALIZER): Initialize delegitimize_address field
9748         using TARGET_DELEGITIMIZE_ADDRESS macro.
9749         * simplify-rtx.c (avoid_constant_pool_reference): Handle float
9750         extensions of constant pool references.  Use delegitimize_address
9751         to undo the obfuscation of "-fpic".
9752         * Makefile.in (simplify-rtx.o): Add dependency on target.h.
9753
9754         * config/i386/i386.c (TARGET_DELEGITIMIZE_ADDRESS): Define as
9755         i386_simplify_dwarf_addr.
9756         (ix86_find_base_term): Simplify using i386_simplify_dwarf_addr.
9757         (maybe_get_pool_constant): Likewise.
9758
9759 2003-02-03  Jan Hubicka  <jh@suse.cz>
9760
9761         * i386.c (ix86_expand_int_movcc):  Fix setcc sign bit case.
9762
9763 2003-02-03  Jan Hubicka  <jh@suse.cz>
9764
9765         * regclass.c (cannot_change_mode_set_regs): Correct argument order.
9766
9767 2003-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9768
9769         * mips/_tilib.c: Don't include tsystem.h or defaults.h.  Don't
9770         define LIBGCC2_WORDS_BIG_ENDIAN.  Include coretypes.h and tm.h.
9771
9772 2003-02-02  Andreas Schwab  <schwab@suse.de>
9773
9774         * varasm.c (asm_output_aligned_bss): Declare as possibly unused.
9775
9776 2003-02-02  Richard Earnshaw  <rearnsha@arm.com>
9777
9778         * arm.md (sibcall_epilogue): Set the "conds" to "clob".
9779         (epilogue_insns): Likewise.
9780
9781 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9782
9783         * doc/install.texi (hppa*-hp-hpux11*): Update installation notes.
9784
9785 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9786
9787         * pa-protos.h (attr_length_millicode_call): Remove second argument.
9788         (attr_length_indirect_call, attr_length_indirect_call,
9789         attr_length_save_restore_dltp): New prototypes.
9790         * pa.c (attr_length_millicode_call): Remove second argument.  Check
9791         INSN_ADDRESSES_SET_P in distance calculation.
9792         (output_millicode_call): Check INSN_ADDRESSES_SET_P before using
9793         INSN_ADDRESSES.
9794         (attr_length_call): Check INSN_ADDRESSES_SET_P in distance calculation.
9795         (output_call): Check INSN_ADDRESSES_SET_P before using INSN_ADDRESSES.
9796         Call attr_length_call directly.
9797         (attr_length_indirect_call, output_indirect_call,
9798         attr_length_save_restore_dltp): New functions.
9799         * pa.md (attr_length_millicode_call): Drop second argument from all
9800         patterns.
9801         (return_internal_pic): Delete.
9802         (return_external_pic): Remove use of PIC register and pic operand and
9803         flag checks.
9804         (epilogue): Use return_internal for both normal and pic code.
9805         (call, call_value): Emit new 32-bit pic patterns for symref and
9806         indirect calls.  Remove uses for arg pointer and pic register.
9807         (call_symref_pic, call_symref_pic_post_reload, call_reg_pic,
9808         call_reg_pic_post_reload, call_val_symref_pic,
9809         call_val_symref_pic_post_reload, call_val_reg_pic,
9810         call_val_reg_pic_post_reload): New pre and post reload insn patterns.
9811         Implement define_split and define_peephole2 patterns for pre reload
9812         patterns.
9813         (call_symref_64bit, call_internal_reg_64bit, call_value_symref_64bit,
9814         call_value_internal_reg_64bit): Shorten names.
9815         (all call patterns): Explicitly indicate registers used and clobbered.
9816         Use attr_length_indirect_call and attr_length_save_restore_dltp for
9817         attribute length calculation.  Move code generation for indirect calls
9818         to output_indirect_call.
9819         (sibcall, sibcall_value): Don't restore PIC register.
9820         (exception_receiver, builtin_setjmp_receiver): Add blockage after PIC
9821         register retore.
9822
9823 2003-02-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9824
9825         * doc/install.texi (Testing): Simplify and compress instructions
9826         concerning Dejagnu.
9827
9828 2003-02-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9829
9830         * collect2.c (pexecute_pid): Rename to pid.
9831         (collect_wait, collect_execute, scan_prog_file, scan_libraries): Use
9832         pid.
9833
9834 2003-02-01  Geoffrey Keating  <geoffk@apple.com>
9835
9836         * doc/extend.texi (Function Attributes): Remove documentation
9837         for PowerPC Windows NT function attributes..
9838
9839 2003-02-01  Daniel Jacobowitz  <drow@mvista.com>
9840
9841         * dwarf2out.c (gen_type_die): Check for typedefs before calling
9842         for TYPE_MAIN_VARIANT.
9843
9844 2003-02-01  Richard Henderson  <rth@redhat.com>
9845
9846         * libgcc2.c: Include auto-host.h.
9847         (ATTRIBUTE_HIDDEN): New.
9848         (__clz_tab): Don't declare here for clz and ctz.
9849         (__clzsi2, __clzdi2): Use count_leading_zeros.
9850         (__ctzsi2, __ctzdi2): Use count_trailing_zeros.
9851         (__popcount_tab): Mark ATTRIBUTE_HIDDEN.
9852         (__paritysi2, __paritydi2): Use shifts instead of __popcount_tab.
9853         * longlong.h (__clz_tab): Mark ATTRIBUTE_HIDDEN.
9854
9855 2003-02-01  Richard Henderson  <rth@redhat.com>
9856
9857         * config/i386/i386.md (addsi_1_zext splitter): Add TARGET_64BIT
9858         to the conditional.
9859         (ashlsi3_1_zext splitter): Likewise.
9860
9861 2003-02-01  Richard Henderson  <rth@redhat.com>
9862
9863         * optabs.c (expand_unop): Use word_mode for outmode of bit scaners.
9864         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
9865         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change
9866         return type to Wtype.
9867
9868         * libgcc-std.ver (GCC_3.4): Fix inheritance.
9869
9870         * config/i386/i386.md (ffssi2): Use nonimmediate_operand for
9871         expander input constraint.
9872
9873 2003-02-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
9874
9875         * optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and
9876         OTI_parity.
9877         (clz_optab, ctz_optab, popcount_optab, parity_optab): New.
9878         * optabs.c (widen_clz, expand_parity): New.
9879         (expand_unop): Handle clz and parity.  Hardcode SImode as outmode
9880         for libcalls to clz, ctz, popcount, and parity.
9881         (init_optabs): Init clz_optab, ctz_optab, popcount_optab and
9882         parity_optab, and set up libfunc handlers.
9883         * libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
9884         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2,
9885         __popcount_tab): New.
9886         * libgcc2.h: Declare them.
9887         * libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c.
9888         * genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab
9889         and parity_optab.
9890         * builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New.
9891         * builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT,
9892         BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL,
9893         BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL,
9894         BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL,
9895         BUILT_IN_PARITYLL): New.
9896         * builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs
9897         and add optab argument.
9898         (expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*.
9899         * tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New.
9900         * expr.c (expand_expr): Handle them.
9901         * fold-const.c (tree_expr_nonnegative_p): Likewise.
9902         * rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New.
9903         * reload1.c (eliminate_regs): Handle them.
9904         (elimination_effects): Likewise.
9905         * function.c (instantiate_virtual_regs_1): Likewise
9906         * genattrtab.c (check_attr_value): Likewise.
9907         * simplify-rtx.c (simplify_unary_operation): Likewise.
9908         * c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR.
9909         * combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY.
9910         (nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY.
9911         * config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New.
9912         * config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to
9913         __builtin_arm_clz.
9914         * Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move...
9915         * mklibgcc.in (lib2funcs): ...here and merge.  Add new members.
9916         * doc/extend.texi (Other Builtins): Add new builtins.
9917         * doc/md.texi (Standard Names): Add new patterns.
9918
9919 2003-02-01  Ulrich Weigand  <uweigand@de.ibm.com>
9920
9921         * reload.c: Revert 2003-01-31 change.
9922
9923 2003-02-01  Jan Hubicka  <jh@suse.cz>
9924
9925         * combine.c (combine_simplify_rtx):  Use reversed_comparison_code_parts.
9926
9927 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
9928
9929         * flags.h (flag_volatile): Remove declaration.
9930         (flag_volatile_global, flag_volatile_static): Likewise.
9931         * c-typeck.c (build_indirect_ref): Don't check flag_volatile.
9932         * toplev.c (flag_volatile): Remove definition.
9933         (flag_volatile_global, flag_volatile_static): Likewise.
9934         (f_options): Remove corresponding entries here.
9935         * varasm.c (make_decl_rtl): Don't check flag_volatile_global
9936         or flag_volatile_static.
9937         * doc/invoke.texi: Remove documentation of -fvolatile,
9938         -fvolatile-global and -fvolatile-static.
9939
9940 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9941
9942         * pa.c (pa_output_function_prologue, pa_output_function_epilogue): Move
9943         updating of total_code_bytes from prologue to epilogue.
9944
9945 2003-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
9946
9947         * reload.c (find_reloads): Do not use the mode specified in the insn
9948         pattern as reload mode for address operands.  Do not generate optional
9949         reloads for operands where a mandatory reload was already pushed.
9950         Generate optional reloads only in the final pass though find_reloads.
9951         (have_replacement_p): New function.
9952
9953 2003-01-31  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9954
9955         * doc/install.texi (Testing): Remove a reference to our obsolete
9956         /testresults web pages and strip redundant information concerning
9957         test results.
9958         (Binaries): Refer to Microsoft Windows instead of listing all
9959         possible variants.
9960
9961 2003-02-01  Jan Hubicka  <jh@suse.cz>
9962
9963         * loop.c (emit_prefetch_instructions):  Do conversion at right place in
9964         RTL chain.
9965
9966         * combine.c (simplify_set): Reverse order of ragumetns to
9967         REG_CANNOT_CHANGE_MODE_P
9968         * df.c (df_def_record_1): Likewise.
9969         * recog.c (register_operand): Likewise.
9970         * simplify-rtx.c (simplify_subreg): Likewise.
9971         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of
9972         CANNOT_CHANGE_MODE_CLASS.
9973         * regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p):
9974         Likewise.
9975         * reload.c (push_reload): Likewise.
9976         * alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
9977         * ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
9978         * mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
9979         * mips-protos.h (mips_cannot_change_mode_class): Update prototype.
9980         * mips.c (mips_cannot_change_mode_class): Update.
9981         * pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
9982         * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
9983         * s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
9984         * sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
9985         * sh-protos.h (sh_cannot_change_mode_class): Update prototype.
9986         * sh.c (sh_cannot_change_mode_class): Update.
9987         * i386.h (CANNOT_CHANGE_MODE_CLASS): New.
9988         * tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation.
9989
9990 2003-01-31  Geoffrey Keating  <geoffk@apple.com>
9991
9992         * config/darwin.h (LINK_COMMAND_SPEC): Update for Nathan's recent
9993         change to LINK_COMMAND_SPEC in gcc.c.
9994
9995 2003-01-31  Jan Hubicka  <jh@suse.cz>
9996
9997         PR c/9506
9998         * i386.c (override_options): Use DEFAULT_PCC_STRUCT_RETURN.
9999
10000 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10001
10002         * pa32-regs.h (REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Delete
10003         duplicated code.
10004
10005 2003-01-31  Nathan Sidwell  <nathan@codesourcery.com>
10006
10007         * tree.h (TYPE_BINFO_SIZE, TYPE_BINFO_SIZE_UNIT): Remove.
10008         (BINFO_ELTS): New #define.
10009         * stor-layout.c (finalize_record_size): Don't set them.
10010         * cp/cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
10011         BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
10012         (BINFO_LANG_ELTS): New #define.
10013         * cp/tree.c (make_binfo): Use BINFO_LANG_ELTS.
10014         * java/class.c (make_class): Use BINFO_ELTS.
10015         (set_super_info): Likewse.
10016         (add_interface_do): Likewise.
10017         * objc/objc-act.c (start_class): Use BINFO_ELTS.
10018
10019 2003-01-31 Danny Smith <dannysmith@users.sourceforge.net>
10020
10021         * timevar.c (getrusage): Don't ever declare if not HAVE_GETRUSAGE.
10022         (times): Don't ever declare if not HAVE_TIMES.
10023         (clock): Don't ever declare if not HAVE_CLOCK.
10024
10025 2003-01-30  Richard Henderson  <rth@redhat.com>
10026
10027         * flow.c (update_life_info): Zap life info after cleanup_cfg.
10028         (regno_uninitialized): Use correct live at function entry set.
10029         (regno_clobbered_at_setjmp): Likewise.
10030
10031         * expr.c (store_expr): Promote all MEM intermediates to regs.
10032
10033 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
10034
10035         * config/arm/arm.c: Fix comment typos.
10036         * config/arm/arm.h: Likewise.
10037         * config/arm/netbsd-elf.h: Likewise.
10038         * config/arm/netbsd.h: Likewise.
10039
10040 2003-01-30  Geoffrey Keating  <geoffk@apple.com>
10041
10042         * gengtype.c (struct walk_type_data): Add needs_cast_p.
10043         (walk_type): Set needs_cast_p in walk_type_data.
10044         (write_types_process_field): Supply casts when required to suppress
10045         warnings.
10046         (write_root): Cast gt_pch_n_S to suppress warning.
10047         * Makefile.in: Remove -Wno-error from gtype-desc.o and c-decl.o.
10048         * config/rs6000/rs6000.c (print_operand): Mask off high bits only
10049         when they might exist.
10050         * config/rs6000/t-rs6000: Remove -Wno-error from varasm.o,
10051         insn-conditions.o, and rs6000.o.
10052
10053 2003-01-30  Richard Henderson  <rth@redhat.com>
10054
10055         * ggc-page.c (G.context_depth_allocations): New.
10056         (G.context_depth_collections): New.
10057         (alloc_page): Set G.context_depth_allocations.
10058         (ggc_collect): Set G.context_depth_collections.
10059         (ggc_push_context): Limit to HOST_BITS_PER_LONG contexts.
10060         (ggc_pop_context): Early exit for no allocations or collections.
10061
10062 2003-01-30  Richard Henderson  <rth@redhat.com>
10063
10064         * tree-inline.c (walk_tree): Streamline duplicate hash table lookup.
10065
10066 2003-01-30  Richard Earnshaw  <rearnsha@arm.com>
10067
10068         * arm.c (arm_compute_initial_elimination_offset): If optimizing for
10069         size, the link register is always saved if any other register is
10070         saved.
10071
10072 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
10073
10074         * config/h8300/h8300-protos.h: Update the prototype for
10075         compute_plussi_cc.
10076         (cpp_reader): Declare before it is used.
10077         * config/h8300/h8300.c (compute_plussi_cc): Change the return
10078         type to int.
10079         * config/h8300/h8300.md (monitor_prologue): Call abort() if we
10080         see an unknown H8 variant.
10081
10082 2003-01-30  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
10083
10084         PR target/9316
10085         * config/rs6000/rtems.h: Add CPP_OS_DEFAULT_SPEC.
10086         * config/rs6000/sysv4.h: Add CPP_OS_RTEMS_SPEC.
10087         * config/rs6000/t-rtems: New file. multilib variants to match OS.
10088         * config.gcc (powerpc-*-rtems*): Use rs6000/t-rtems instead of
10089         rs6000/t-ppcgas so we get the desired multilibs.
10090
10091 2003-01-30  Nick Clifton  <nickc@redhat.com>
10092
10093         * config/arm/arm.c (arm_output_epilogue): Update stack pointer
10094         when popping saved IP register off the stack.
10095
10096 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
10097
10098         * config/rs6000/aix43.h: Fix comment typos.
10099         * config/rs6000/aix51.h: Likewise.
10100         * config/rs6000/aix52.h: Likewise.
10101         * config/rs6000/altivec.h: Likewise.
10102         * config/rs6000/rs6000.c: Likewise.
10103         * config/rs6000/rs6000.h: Likewise.
10104         * config/rs6000/rs6000.md: Likewise.
10105         * config/rs6000/spe.md: Likewise.
10106
10107 2003-01-29  Mark Mitchell  <mark@codesourcery.com>
10108
10109         * c-common.c (builtin_define_float_constants): Define
10110         __<TYPE>_HAS_INFINITY__ and __<TYPE>_HAS_QUIET_NAN__.
10111
10112 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
10113
10114         * config/sh/lib1funcs.asm: Fix comment typos.
10115         * config/sh/linux.h: Likewise.
10116         * config/sh/sh.c: Likewise.
10117         * config/sh/sh.md: Likewise.
10118
10119 2003-01-30  Loren James Rittle  <ljrittle@acm.org>
10120
10121         * objc/Make-lang.in (objc-parse.y): Find c-parse.in in $(srcdir).
10122
10123 2003-01-30  Alexandre Oliva  <aoliva@redhat.com>
10124
10125         * config/fp-bit.h (__make_dp): Declare if TMODES.
10126
10127 2003-01-29  Kazu Hirata  <kazu@cs.umass.edu>
10128
10129         * config/h8300/h8300.h (PREDICATE_CODES): Add entries for
10130         general_operand_src and general_operand_dst.
10131
10132 2003-01-29  David Edelsohn  <edelsohn@gnu.org>
10133
10134         * config/rs6000/rs6000.c (function_arg_pass_by_reference):
10135         Return true for variable sized types.
10136         (rs6000_va_arg): Handle variable sized types passed by reference
10137         on non-SVR4 ABI.
10138
10139 2003-01-29  Richard Earnshaw  <rearnsha@arm.com>
10140
10141         * arm.c (arm_legtimize_address): New function.
10142         * arm-protos.h (arm_legtimize_address): Add prototype.
10143         * arm.h (ARM_LEGITIMIZE_ADDRESS): Use arm_legitimize_address.
10144         (LEGITIMIZE_ADDRESS, THUMB_LEGITIMIZE_ADDRESS): Wrap with
10145         do ... while (0)
10146
10147 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
10148
10149         PR bootstrap/9296
10150         * gthr-rtems.h: Define __GTHREAD_MUTEX_INIT.  Apparently no code
10151         depended on it being defined until now.
10152
10153 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
10154
10155         PR target/9295
10156         * config/mips/rtems.h: Predefine __USE_INIT_FINI__ so generic
10157         RTEMS code knows which C++ initialization style the toolset
10158         configuration is using.
10159
10160 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
10161
10162         PR bootstrap/9293
10163         * config/m68k/t-crtstuff: Replace spaces with tabs, add
10164          $(MULTILIB_CFLAGS) as compiler option and multilib crtbegin/end.o.
10165
10166 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
10167
10168         PR bootstrap/9292
10169         * config.gcc (hppa1.1-rtems):  Did not include t-rtems nor enable
10170         RTEMS threads.
10171         * config/pa/rtems.h (LIB_SPEC): Use -N when linking.
10172
10173 2003-01-29  Nick Clifton  <nickc@redhat.com>
10174
10175         * Makefile.in (c-parse.o): Locate source file in $(parsedir)
10176         not $(srcdir).
10177
10178 2003-01-29  Andrew Haley  <aph@redhat.com>
10179
10180         * tree-inline.c (walk_tree): Add CHAR_TYPE.
10181
10182 2003-01-29  Jan Hubicka  <jh@suse.cz>
10183
10184         * i386.md (subdi3_carry_rex64): Fix typo.
10185
10186 2003-01-28  Stan Shebs  <shebs@apple.com>
10187
10188         * coretypes.h (cpp_reader): Forward declare struct.
10189         * c-pragma.h (cpp_reader): Remove forward declaration.
10190         * hashtable.h (cpp_reader): Likewise.
10191         * scan.h (cpp_reader): Likewise.
10192         * tree.h (cpp_reader): Likewise.
10193         * config/darwin-protos.h (cpp_reader): Likewise.
10194         * config/arm/arm-protos.h (cpp_reader): Likewise.
10195         * config/rs6000/rs6000-protos.h: Remove GCC_CPPLIB_H ifdef, use
10196         struct cpp_reader in prototypes.
10197
10198 2003-01-28  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
10199
10200         * doc/install.texi: Add documentation for installation into
10201         tooldirs and with DESTDIR.
10202
10203 2003-01-28  Richard Henderson  <rth@redhat.com>
10204
10205         * config.gcc (ia64*-*-aix*): Remove.
10206         * config/ia64/aix.h, config/ia64/t-aix: Remove file.
10207         * config/ia64/unwind-aix.c: Remove file.
10208
10209 2003-01-28  Andreas Schwab  <schwab@suse.de>
10210
10211         * config/m68k/m68k.md (tablejump+2): Don't sign extend an address
10212         register.
10213         * config/m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Likewise.
10214         * config/m68k/coff.h (ASM_RETURN_CASE_JUMP): Likewise.
10215         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Likewise.
10216         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
10217         * config/m68k/mot3300.h (ASM_RETURN_CASE_JUMP): Likewise.
10218         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
10219         * config/m68k/pbb.h (ASM_RETURN_CASE_JUMP): Likewise.
10220
10221 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
10222
10223         * combine.c (nonzero_bits): Fix check for negative divide operands.
10224
10225 2003-01-28  Richard Henderson  <rth@redhat.com>
10226
10227         * config/ia64/ia64.c (ia64_rwreloc_section_type_flags): New.
10228         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): New.
10229
10230 2003-01-28  Richard Henderson  <rth@redhat.com>
10231
10232         * cse.c (find_best_addr): Kill !ADDRESS_COST code.
10233
10234         * config/cris/cris.c (cris_address_cost): Make static.
10235         (TARGET_RTX_COSTS, TARGET_ADDRESS_COST): New.
10236         * config/cris/cris.h (ADDRESS_COST): Remove.
10237         * config/cris/cris-protos.h: Update.
10238
10239 2003-01-23  Mike Stump  <mrs@apple.com>
10240
10241         * regclass.c (init_reg_autoinc): New function.
10242         (regclass): Move initialization of forbidden_inc_dec_class from
10243         here...
10244         (init_regs): to here.  Avoids reinitialization for each function,
10245         saving compilation time.
10246
10247 2003-01-28  Jason Merrill  <jason@redhat.com>
10248
10249         * cpplib.h (struct cpp_options): Add warn_deprecated field.
10250         * cppinit.c (cpp_create_reader): Turn it on by default.
10251         * c-opts.c (c_common_decode_option): Set it.
10252         * cpplib.c (do_pragma_once): Only complain about #pragma once
10253         if warn_deprecated is set.
10254
10255 2003-01-28  Dale Johannesen  <dalej@apple.com>
10256
10257         * emit-rtl.c (const_double_htab_hash):  Use mode in the hash.
10258         * loop.c (scan_loop):  Move movables on -Os rich-register targets.
10259         * config/rs6000/rs6000.md (sibcall*):  Use match_operand for LR.
10260
10261 2003-01-28  Richard Henderson  <rth@redhat.com>
10262
10263         * target.h (targetm.address_cost): New.
10264         * target-def.h (TARGET_ADDRESS_COST): New.
10265         (TARGET_RTX_COSTS): Uncomment.  Oops.
10266         * cse.c (address_cost): Use new target hook.
10267         (default_address_cost): New.
10268         * output.h (default_address_cost): Declare.
10269         * hooks.c (hook_int_rtx_0): New.
10270         * hooks.h (hook_int_rtx_0): Declare.
10271         * loop.c (combine_givs_p): Remove if 0 code.
10272         * system.h (ADDRESS_COST): Poison.
10273
10274         * config/alpha/alpha.c, config/alpha/alpha.h, config/d30v/d30v.c,
10275         config/d30v/d30v.h, config/ia64/ia64.c, config/ia64/ia64.h,
10276         config/m32r/m32r.c, config/m32r/m32r.h, config/mcore/mcore.c,
10277         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.h,
10278         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sparc/sparc.c,
10279         config/sparc/sparc.h, config/v850/v850.c, config/v850/v850.h,
10280         config/xtensa/xtensa.c, config/xtensa/xtensa.h
10281         (TARGET_ADDRESS_COST): Define as hook_int_rtx_0.
10282         (ADDRESS_COST): Remove.
10283
10284         * config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
10285         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
10286         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
10287         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
10288         config/dsp16xx/dsp16xx.h, config/i386/i386-protos.h,
10289         config/i386/i386.c, config/i386/i386.h, config/i960/i960-protos.h,
10290         config/i960/i960.c, config/i960/i960.h, config/ip2k/ip2k-protos.h,
10291         config/ip2k/ip2k.c, config/ip2k/ip2k.h, config/mips/mips-protos.h,
10292         config/mips/mips.c, config/mips/mips.h,
10293         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
10294         config/m68hc11/m68hc11.h, config/ns32k/ns32k-protos.h,
10295         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa-protos.h,
10296         config/pa/pa.c, config/pa/pa.h, config/s390/s390-protos.h,
10297         config/s390/s390.c, config/s390/s390.h, config/vax/vax-protos.h,
10298         config/vax/vax.c, config/vax/vax.h
10299         (foo_address_cost): Make static.
10300         (TARGET_ADDRESS_COST): New.
10301         (ADDRESS_COST): Remove.
10302
10303         * config/arm/arm.h, config/arm/arm.c, config/m88k/m88k.h,
10304         config/m88k/m88k.c, config/romp/romp.h, config/romp/romp.c,
10305         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
10306         config/stormy16/stormy16.h
10307         (ADDRESS_COST): Move code ...
10308         (foo_address_cost): ... here.
10309         (TARGET_ADDRESS_COST): New.
10310
10311         * config/m32r/m32r.c (m32r_address_cost): Remove.
10312         * config/m32r/m32r-protos.h: Update.
10313
10314         * config/mmix/mmix.c (mmix_address_cost): Remove.
10315         * config/mmix/mmix-protos.h: Update.
10316
10317         * config/mn10300/mn10300.c (mn10300_address_cost_1): Rename from
10318         mn10300_address_cost; move unsig allocation ...
10319         (mn10300_address_cost): ... here.
10320         (TARGET_ADDRESS_COST): New.
10321         * config/mn10300/mn10300-protos.h: Update.
10322         * config/mn10300/mn10300.h (ADDRESS_COST): Remove.
10323
10324         * doc/tm.texi: Update.
10325
10326 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
10327
10328         * haifa-sched.c (schedule_insn): Return necessary cycle advance
10329         after issuing the insn.
10330         (rank_for_schedule): Make a insn with /S the highest priority
10331         insn.
10332         (move_insn): Ignore schedule groups.  Clear SCHED_GROUP_P.
10333         (choose_ready): Check SCHED_GROUP_P.
10334         (schedule_block): Advance cycle after issuing insn if it is
10335         necessary.  Don't reorder insns if there is an insn with /S.
10336         (set_priorities): Ignore schedule groups.
10337
10338         * sched-deps.c (remove_dependence, group_leader): Remove the
10339         functions.
10340         (add_dependence): Ignore schedule groups.
10341         (set_sched_group_p): Don't make copy of dependencies from previous
10342         insn of the schedule group.  Add anti-dependency to the previous
10343         insn of the schedule group.
10344         (compute_forward_dependences): Ignore schedule groups.
10345
10346         * sched-ebb.c (init_ready_list): Ignore schedule groups.
10347
10348         * sched-rgn.c (init_ready_list): Ditto.
10349         (can_schedule_ready_p): Ditto.
10350
10351 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
10352
10353         * config/i386/i386.md (*movsi_1): Use movdqa to move one xmm
10354         register to another one.
10355
10356 2003-01-28  Richard Henderson  <rth@redhat.com>
10357
10358         * calls.c (default_must_pass_in_stack): Fix typo in !type case.
10359
10360 2003-01-28  Roger Sayle  <roger@eyesopen.com>
10361
10362         * cse.c (cse_insn): Avoid redundant REG_EQUAL notes.
10363
10364 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
10365
10366         * config/sh/sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA, and the given
10367         class contains a floating-point register, return the size of the
10368         mode in half words.
10369
10370 2003-01-28  Jan Hubicka  <jh@suse.cz>
10371
10372         * i386.c (ix86_carry_flag_operator):  New predicate.
10373         (fcmov_operator): Fix whitespace.
10374         (ix86_expand_carry_flag_compare):  Deal with floating point.
10375         (ix86_expand_int_movcc): Deal with fp; update insn expansion
10376         (ix86_expand_int_addcc): Likewise.
10377         (ix86_expand_strlensi_unroll_1): likewsie.
10378         * i386.h (PREDICATE_CODES): Add ix86_carry_flag_operator.
10379         * i386.md (add?i_carry_rex64): Use new predicate.
10380         (sub?i3_carry_rex64): Likewise.
10381         (x86_mov?icc_0_m1*): Likewise.
10382
10383 2003-01-28  Andreas Schwab  <schwab@suse.de>
10384
10385         * cfgloopmanip.c (create_preheader): Initialize src to avoid
10386         warning.
10387
10388         * expmed.c (emit_store_flag): Fix cast to avoid sign
10389         comparison warning.
10390
10391         * combine.c (force_to_mode): Add cast to fix warning when
10392         STORE_FLAG_VALUE is negative.
10393
10394 2003-01-27  Richard Henderson  <rth@redhat.com>
10395
10396         * Makefile.in (cse.o): Depend on TARGET_H.
10397         * cse.c (rtx_cost): Use targetm.rtx_costs.
10398         * system.h (CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS): Poison.
10399         * doc/tm.texi: Update.
10400
10401         * target.h (targetm.rtx_costs): New.
10402         * target-def.h (TARGET_RTX_COSTS): New.
10403         * hooks.c (hook_bool_rtx_int_int_intp_false): New.
10404         * hooks.h: Update.
10405
10406         * config/alpha/alpha.c (alpha_rtx_cost_data): New.
10407         (alpha_rtx_costs, TARGET_RTX_COSTS): New.
10408         * config/alpha/alpha.h (PROCESSOR_MAX): New.
10409         (CONST_COSTS, RTX_COSTS): Remove.
10410
10411         * config/arc/arc.c, config/arc/arc.h, config/c4x/c4x.c,
10412         config/c4x/c4x.h, config/cris/cris.c, config/cris/cris.h,
10413         config/d30v/d30v.c, config/d30v/d30v.h, config/dsp16xx/dsp16xx.c,
10414         config/dsp16xx/dsp16xx.h, config/frv/frv.c, config/frv/frv.h,
10415         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
10416         config/i370/i370.h, config/i386/i386.c, config/i386/i386.h,
10417         config/i960/i960.c, config/i960/i960.h, config/ia64/ia64.c,
10418         config/ia64/ia64.h, config/m32r/m32r.c, config/m32r/m32r.h,
10419         config/m68k/m68k.c, config/m68k/m68k.h, config/m88k/m88k.c,
10420         config/m88k/m88k.h, config/mcore/mcore.c, config/mcore/mcore.h,
10421         config/mips/mips.c, config/mips/mips.h, config/mn10200/mn10200.c,
10422         config/mn10200/mn10200.h, config/mn10300/mn10300.c,
10423         config/mn10300/mn10300.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h,
10424         config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.c,
10425         config/pdp11/pdp11.h, config/romp/romp.c, config/romp/romp.h,
10426         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c,
10427         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
10428         config/stormy16/stormy16.c, config/stormy16/stormy16.h,
10429         config/v850/v850.c, config/v850/v850.h,
10430         config/xtensa/xtensa.c, config/xtensa/xtensa.h
10431         (CONST_COSTS, RTX_COSTS): Move code ...
10432         (foo_rtx_costs, TARGET_RTX_COSTS): ... here.
10433
10434         * config/arm/arm.c (arm_rtx_costs_1): Rename from arm_rtx_costs.
10435         (arm_rtx_costs, TARGET_RTX_COSTS): New.
10436         * config/arm/arm-protos.h: Update.
10437         * config/arm/arm.h (DEFAULT_RTX_COSTS): Remove.
10438
10439         * config/avr/avr.h (CONST_COSTS): Move code ...
10440         * config/avr/avr.c (avr_rtx_costs): ... here.
10441         (default_rtx_costs): Make static.
10442         * config/avr/avr-protos.h: Update.
10443
10444         * config/h8300/h8300.c (const_costs): Make static.
10445         (h8300_and_costs, h8300_shift_costs): Likewise.
10446         * config/h8300/h8300-protos.h: Update.
10447
10448         * config/ip2k/ip2k.h (DEFAULT_RTX_COSTS): Remove.
10449         (CONST_COSTS): Move code ...
10450         * config/ip2k/ip2k.c (ip2k_rtx_costs): ... here.  Rename from
10451         default_rtx_costs; update for signature change.
10452         * config/ip2k/ip2k-protos.h: Update.
10453
10454         * config/m68hc11/m68hc11.h (RTX_COSTS): Remove.
10455         (CONST_COSTS): Move code ...
10456         * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): ... here.
10457         (TARGET_RTX_COSTS): New.
10458         (m68hc11_rtx_costs_1): Rename from m68hc11_rtx_costs; make static.
10459         * config/m68hc11/m68hc11-protos.h: Update.
10460
10461         * config/m68k/m68k.c (const_int_cost): Make static.
10462         * config/m68k/m68k-protos.h: Update.
10463
10464         * config/mcore/mcore.c (mcore_const_costs): Make static.
10465         (mcore_and_cost, mcore_ior_cost): Likewise.
10466         * config/mcore/mcore-protos.h: Update.
10467
10468         * config/mmix/mmix.c (mmix_rtx_costs, TARGET_RTX_COSTS): New.
10469         (mmix_rtx_cost_recalculated): Remove.
10470         * config/mmix/mmix.h (DEFAULT_RTX_COSTS): Remove.
10471         * config/mmix/mmix-protos.h: Update.
10472
10473         * config/sh/sh.c (shiftcosts): Make static.
10474         (addsubcosts, andcosts, multcosts): Likewise.
10475         * config/sh/sh-protos.h: Update.
10476
10477         * config/sparc/sparc.c (TARGET_RTX_COSTS): New.
10478         (sparc_rtx_costs): Make static; update for change in signature.
10479         * config/sparc/sparc.h (RTX_COSTS_CASES, RTX_COSTS): Remove.
10480         * config/sparc/sparc-protos.h: Update.
10481
10482         * config/v850/v850.c (const_costs): Make static.
10483         * config/v850/v850-protos.h: Update.
10484
10485         * config/vax/vax.h (RTX_COSTS): Remove.
10486         (CONST_COSTS): Move code ...
10487         * config/vax/vax.c (vax_rtx_costs_1): ... here; rename
10488         from vax_rtx_cost.
10489         (vax_rtx_costs, TARGET_RTX_COSTS): New.
10490
10491 2003-01-27  Richard Henderson  <rth@redhat.com>
10492
10493         * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove.  Really.
10494         * config/vax/vax-protos.h: Update.  Really.
10495
10496 2003-01-28  Alexandre Oliva  <aoliva@redhat.com>
10497
10498         * config/mips/mips.h (UNITS_PER_HWFPVALUE): Renamed from...
10499         (UNITS_PER_FPVALUE): Defined as the width of a long double, or
10500         zero if no hardware floating point.
10501         (LONG_DUBLE_TYPE_SIZE): Set to 128 on N32 and N64.
10502         (MAX_FIXED_MODE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE.
10503         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
10504         (BIGGEST_ALIGNMENT): Same as LONG_DOUBLE_TYPE_SIZE.
10505         (FUNCTION_VALUE_REGNO_P): Set for FP_RETURN+2 on N32 and N64.
10506         * config/mips/mips.c (mips_arg_info): Pass TFmode values in
10507         even FP registers on N32 and N64.
10508         (mips_setup_incoming_varargs): Use UNITS_PER_HWFPVALUE.
10509         (mips_va_start): Adjust alignment of ARG_POINTER_REGNUM.
10510         (mips_va_arg): Use UNITS_PER_HWFPVALUE.  Impose additional
10511         even-register-like alignment to 128-bit arguments.
10512         (save_restore_insns): Use UNITS_PER_HWFPVALUE.
10513         (mips_function_value): Likewise.  Return TFmode in $f0 and $f2
10514         on N32 or N64.
10515         * config/mips/_tilib.c (__negti2, __ashlti3, __lshrti3): New.
10516         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Add _tilib.c.
10517         (TPBIT): Set to tp-bit.c.
10518         (tp-bit.c): Create out of fp-bit.c.
10519
10520 2003-01-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10521
10522         * c-parse.in: Remove '%expect 32' directive in objc mode.
10523
10524 2003-01-27  Nathan Sidwell  <nathan@codesourcery.com>
10525
10526         * Makefile.in (LIB2FUNCS_ST): Remove _gcov.
10527         (LIBGCOV): New variable.
10528         (libgcc.mk): Add LIBGCOV.
10529         (LIBGCC_DEPS): Add libgcov.c.
10530         (libgcov.a): New target.
10531         (clean): Remove libgcov.a.
10532         (install-libgcc): Do libgcov too.
10533         (stage1-start, stage2-start, stage3-start, stage4-start): Deal
10534         with libgcov.a.
10535         * libgcc2.c (L_gcov): Move into ...
10536         * libgcov.c: ... here. New file.
10537         * mklibgcc.in: Add libgcov rules.
10538         * gcc.c (LINK_COMMAND_SPEC): Add -lgcov when profiling.
10539
10540         * doc/invoke.texi (profile-arcs, test-coverage): Update and
10541         clarify.
10542
10543         * profile.c (index_counts_file): Remove duplicate check for open file.
10544
10545 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
10546
10547         * gcc/doc/invoke.texi (Optimization Options): Group together
10548         optional and experimental flags.  Move trapv and bounds-check
10549         out of this section.  Group floating point flags together.
10550         (Code Gen Options): Move trapv and bounds-check to here.
10551
10552 2003-01-27  Josef Zlomek  <zlomekj@suse.cz>
10553
10554         * gcse.c (constprop_register): Check NEXT_INSN (insn) != NULL.
10555
10556 2003-01-27  Richard Earnshaw  <rearnsha@arm.com>
10557
10558         PR optimization/9090
10559         * function.c (purge_addressof_1): After pushing an addressed register
10560         onto the stack, simplify the result.
10561
10562 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10563
10564         * doc/extend.texi: Fix typo.
10565
10566 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10567
10568         * doc/cppopts.texi: Fix typo.
10569         * doc/objc.texi: Likewise.
10570         * doc/passes.texi: Likewise.
10571
10572 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
10573
10574         * real.c (ibm_extended_format): Add 53 to minimum exponent.
10575         (encode_ibm_extended): Adjust.
10576
10577 2003-01-26  Gabriel Dos Reis  <gdr@soliton.integrable-solutions.net>
10578
10579         * timevar.def (TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION): New
10580         timevar_id enumerations.
10581
10582 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10583
10584         * combine.c: Fix formatting.
10585
10586 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10587
10588         * doc/gccint.texi: Update the copyright.
10589
10590 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10591
10592         * doc/cpp.texi: Fix typos.
10593         * doc/extend.texi: Likewise.
10594         * doc/gty.texi: Likewise.
10595         * doc/install.texi: Likewise.
10596         * doc/passes.texi: Likewise.
10597         * doc/rtl.texi: Likewise.
10598         * doc/tm.texi: Likewise.
10599
10600 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10601
10602         * config/ia64/fde-glibc.c: Fix comment typos.
10603         * config/ia64/hpux.h: Likewise.
10604         * config/ia64/ia64.c: Likewise.
10605         * config/ia64/ia64.h: Likewise.
10606         * config/ia64/unwind-ia64.c: Likewise.
10607
10608 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10609
10610         * config/i386/i386-modes.def: Fix comment typos.
10611         * config/i386/i386.c: Likewise.
10612         * config/i386/i386.md: Likewise.
10613
10614 2003-01-26  Steven Bosscher  <s.bosscher@student.tudelft.nl>
10615
10616         * config/avr/avr.h, config/cris/aout.h, config/elfos.h,
10617         config/i386/freebsd-aout.h, config/mips/iris6.h: Undefine
10618         ASM_FINISH_DECLARE_OBJECT before defining it.
10619         * toplev.c (rest_of_decl_compilation):  Don't define
10620         ASM_FINISH_DECLARE_OBJECT.  Only use it if it is defined.
10621         (rest_of_type_compilation): Don't ATTRIBUTE_UNUSED function
10622         parameters for DWARF2 targets because they _are_ used.
10623
10624 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
10625
10626         * fp-bit.h: Define macros for TFmode floating-point constants
10627         in IBM-extended TFmode types.
10628         (TMODES): Define if __LDBL_MANT_DIG__ has the newly-supported
10629         widths.
10630         * config/fp-bit.c (pack_d, unpack_d): Support IBM-extended
10631         TFmode type.
10632
10633         * config/fp-bit.h: Define macros for TFmode floating-point
10634         constants in IEEE quad TFmode type.  Declare functions according
10635         to L_ macros.
10636         (TMODES): Define if __LDBL_MANT_DIG__ is 113.
10637         (TFtype, TItype, UTItype): Define if TMODES is defined.
10638         (MAX_UDI_INT, MAX_DI_INT, BITS_PER_DI): Likewise.
10639         (F_T_BITOFF, D_T_BITOFF): Define.
10640         (IMPLICIT_1, IMPLICIT_2): Cast constants to types that are
10641         guaranteed to be wide enough.
10642         * config/fp-bit.c: Check for L_ macros for tf functions.
10643         (__thenan_tf): New.
10644         (nan): Adjust.
10645         (pack_d, unpack_d): Support IEEE 854 quad type.
10646         (_fpmul_parts): Support TFmode.  Compute exponent adjustment
10647         from FRAC_NBITS, FRAC_BITS and NGARDS.
10648         (usi_to_float): Cast constants to be shifted to fractype
10649         instead of assuming long long is wide enough.
10650         (sf_to_tf, df_to_tf, __make_tp, tf_to_df, tf_to_sf): New.
10651
10652 2003-01-26  Andreas Jaeger  <aj@suse.de>
10653
10654         * df.c: Remove prototype of unused function df_regno_rtl_debug.
10655
10656 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
10657
10658         * Makefile.in (FPBIT_FUNCS): Added _sf_to_tf.
10659         (DBBIT_FUNCS): Added _df_to_tf.
10660         (TPBIT_FUNCS): New.
10661         (libgcc.mk): Pass TPBIT and TPBIT_FUNCS down.
10662         (LIBGCC_DEPS): Added TPBIT.
10663         * mklibgcc.in: Support TPBIT and TPBIT_FUNCS.
10664
10665         * optabs.c (expand_binop) <add, sub>: Return xtarget if we haven't
10666         been able to move the result to target.
10667
10668         * expr.c (emit_group_store): Initialize dst with CONST0_RTX
10669         for the appropriate mode.
10670
10671         * calls.c (emit_library_call_value_1): Handle return values
10672         in a PARALLEL.
10673
10674         * rtl.c (get_mode_alignment): Moved to...
10675         * stor-layout.c: ... here.
10676
10677         * print-rtl.c (print_rtx): Don't print MEM details in
10678         GENERATOR_FILEs.
10679
10680 2003-01-26  Michael Hayes  <mph@paradise.net.nz>
10681
10682         * df.h: Update comments, tidy formatting.
10683         (DF_FORWARD, DF_REVERSE, DF_UNION, DF_INTERSECTION): Rename from FORWARD,
10684         REVERSE, UNION, INTERSECTION.  All uses updated.
10685         (OLD_DF_INTERFACE): Remove.
10686         (struct insn_info): Remove commented out insn field.
10687         * df.c: Update comments, tidy formatting.
10688         (df_def_table_realloc): Remove.
10689
10690
10691 2003-01-26  Alan Modra  <amodra@bigpond.net.au>
10692
10693         * calls.c (save_fixed_argument_area): Tidy.
10694         (restore_fixed_argument_area): Tidy.  Set alignment of stack_area.
10695         (expand_call): Comment typo fixes.  Don't init low_to_save.  Start
10696         call chain loop at 1 if !try_tail_call.  Formatting.
10697         (emit_library_call_value_1): Don't init low_to_save or high_to_save.
10698         Use save_fixed_argument_area and restore_fixed_argument_area.
10699
10700 2003-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10701
10702         * df.c (df_uses_record): Handle CC0.
10703
10704 2003-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
10705
10706         * reload.c (maybe_memory_address_p): New function.
10707         (find_reloads_address): Use it instead of memory_address_p.
10708
10709 2003-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
10710
10711         * final.c (shorten_branches): Align the address of code label
10712         when computing initial lengths and addresses.
10713
10714 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10715
10716         * config/m68hc11/m68hc11.md: Fix a comment typo.
10717
10718 2003-01-25  Andreas Jaeger  <aj@suse.de>
10719
10720         * config/i386/i386.c (x86_output_mi_thunk): Correct test for
10721         TARGET_MACHO.
10722
10723 2003-01-25  Roger Sayle  <roger@eyesopen.com>
10724
10725         * gcse.c (bypass_last_basic_block): New global variable.
10726         (bypass_block):  Use redirect_edge_and_branch_force to redirect
10727         fall-through edges.  Use bypass_last_basic_block to determine
10728         which blocks have valid PRE information.
10729         (bypass_conditional_jumps): Initialize bypass_last_basic_block.
10730
10731 2003-01-25  Jan Hubicka  <jh@suse.cz>
10732
10733         * gcse.c (local_cprop_pass): Update reg_sets table when needed.
10734
10735 2003-01-25  Jan Hubicka  <jh@suse.cz>
10736                               Eric Botcazou <ebotcazou@libertysurf.fr>
10737         PR opt/8492
10738         * gcse.c (one_cprop_pass): Delete unreachable blocks.
10739
10740 2003-01-25  Richard Henderson  <rth@redhat.com>
10741
10742         * config/ia64/ia64.c (ia64_rwreloc_select_rtx_section): Rename
10743         from ia64_aix_select_rtx_section.
10744         (ia64_rwreloc_select_section): Simlarly; use default*_1 function
10745         instead of saving and restoring flag_pic.
10746         (ia64_rwreloc_unique_section): Similarly.
10747         * config/ia64/aix.h (TARGET_ASM_SELECT_SECTION,
10748         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Update.
10749         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
10750         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): New.
10751
10752 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10753
10754         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Update a
10755         comment.
10756
10757 2003-01-25  Richard Henderson  <rth@redhat.com>
10758
10759         * config/m68k/m68k-none.h (ASM_SPEC): Adjust inter-option spacing.
10760
10761 2003-01-25  Kelley Cook <kelleycook@comcast.net>
10762
10763         * ggc-simple.c (debug_ggc_tree): Add PTR cast.
10764
10765 2003-01-25  Segher Boessenkool  <segher@koffie.nl>
10766
10767         * bitmap.h (BITMAP_WORD): New typedef: fundamental storage
10768         type for bitmaps.  Use unsigned long.
10769         (nBITMAP_WORD_BITS): New macro.
10770         (BITMAP_WORD_BITS): New macro.
10771         (rest of file): Use it.
10772         * bitmap.c: Use it.
10773
10774 2003-01-25  Richard Henderson  <rth@redhat.com>
10775
10776         2002-02-19  Robert Lipe  <robertlipe@usa.net>
10777         * config/i386/t-sco5gas: (CRTSTUFF_T_CFLAGS_S): Delete -mcoff.
10778
10779 2003-01-25  Roger Sayle  <roger@eyesopen.com>
10780
10781         * builtins.c (purge_builtin_constant_p): Scan insn stream
10782         sequentially rather than by basic block.
10783         * function.c (purge_addressof): Simplify test with INSN_P.
10784
10785 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10786
10787         * combine.c (simplify_comparison, case AND): Remove a redundant test.
10788
10789 2003-01-25  Roger Sayle  <roger@eyesopen.com>
10790
10791         * function.h (struct function): New field calls_constant_p.
10792         (current_function_calls_constant_p): New macro for above.
10793         * function.c (prepare_function_start): Initialize calls_eh_return
10794         and calls_constant_p.
10795         * builtins.c (expand_builtin_constant_p): Set calls_constant_p.
10796         * toplev.c (rest_of_compilation): Only call purge_builtin_constant_p
10797         when the current_function_calls_constant_p.
10798         * integrate.c (expand_inline_function): Set calls_constant_p if
10799         the function being inlined has calls_constant_p set.
10800
10801 2003-01-25  Roger Sayle  <roger@eyesopen.com>
10802
10803         * cse.c (fold_rtx): Instantiate CONSTANT_P_RTX to 0 when not
10804         optimizing, even if flag_gcse is true.
10805         * toplev.c (rest_of_compilation): purge_builtin_constant_p
10806         only needs to be called when "optimize > 0 && flag_gcse".
10807
10808 2003-01-25  Roger Sayle  <roger@eyesopen.com>
10809
10810         * stmt.c (emit_case_bit_tests): New routine to implement suitable
10811         switch statements using the equivalent of "if ((1<<x) & cst) ... ".
10812         (case_bit_test_cmp): New comparison function for "qsort" to order
10813         case_bit_tests by decreasing number of destination nodes.
10814         (lshift_cheap_p): New function to determine if "1 << x" is cheap.
10815         (expand_end_case_type): Use emit_case_bit_tests to implement
10816         suitable switch statments.
10817         (CASE_USE_BIT_TESTS): New target macro to disable the above.
10818         * Makefile.in (stmt.o): Add dependency on optab.h.
10819         * doc/tm.texi (CASE_USE_BIT_TESTS): Document new target macro.
10820
10821 2003-01-23  Andreas Schwab  <schwab@suse.de>
10822
10823         * config/ia64/crtend.asm [HAVE_INITFINI_ARRAY]: Make
10824         __do_global_ctors_aux hidden global and don't put it in
10825         .init_array.
10826         * config/ia64/crtbegin.asm [HAVE_INITFINI_ARRAY]: Put it here
10827         instead so that it comes first.
10828
10829 2003-01-25  Jan Hubicka  <jh@suse.cz>
10830
10831         * df.c (read_modify_subreg_p):  When osize == UNITS_PER_WORD,
10832         subreg is read/modify.
10833
10834 2003-01-25  Jan Hubicka  <jh@suse.cz>
10835
10836         * i386.c (ix86_expand_movstr, ix86_expand_clrstr): Consistently
10837         do libcall for large blocks.
10838         * i386.md (comi patterns): Set type to ssecomi.
10839         (sse2_unpck?pd): Fix mode of vec_select.
10840
10841         * cse.c: Include except.h
10842         (cse_set_around_loop):  Do not create new basic blocks.
10843         * Makefile.in (cse.o): Add dependnecy on except.h
10844
10845 2003-01-25  Jan Hubicka  <jh@suse.cz>
10846
10847         * builtins.c (fold_trunc_transparent_mathfn): New function.
10848         (fold_builtin): Use it.
10849         * convert.c (convert_to_real): Re-enable code to convert
10850         math functions; add support for floor familly functions.
10851
10852 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10853
10854         * Makefile.in (cfgloop.o, cfgloopanal.o, cfgloopmanip.o): Add
10855         dependencies on coretypes.h and $(TM_H).
10856
10857 2003-01-25  Jan Hubicka  <jh@suse.cz>
10858
10859         * builtins.c (fold_trunc_transparent_mathfn):  Undo accidental commit.
10860
10861 2003-01-24  Stuart Hastings  <stuart@apple.com>
10862
10863         * config/i386/i386.c (x86_output_mi_thunk): Add Darwin/x86 support.
10864
10865 2003-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10866
10867         * config/c4x/c4x.md (UNSPEC_BU): New constants.
10868         (UNSPEC_RPTS, UNSPEC_LSH, UNSPEC_CMPHI, UNSPEC_RCPF): Likewise.
10869         (UNSPEC_RND, UNSPEC_RPTB_FILL, UNSPEC_LOADHF_INT): Likewise.
10870         (UNSPEC_STOREHF_INT, UNSPEC_RSQRF, UNSPEC_LOADQF_INT): Likewise.
10871         (UNSPEC_STOREQF_INT, UNSPEC_LDIV, UNSPEC_PUSH_ST):  Likewise.
10872         (UNSPEC_POP_ST, UNSPEC_PUSH_DP, UNSPEC_POP_DP):  Likewise.
10873         (UNSPEC_POPQI, UNSPEC_POPQF, UNSPEC_ANDN_ST):  Likewise.
10874         (UNSPEC_RPTB_INIT, UNSPEC_TOIEEE, UNSPEC_FRIEEE):  Likewise.
10875
10876 2003-01-24  Jan Hubicka  <jh@suse.cz>
10877
10878         * emit-rtl.c (reg_attrs_htab): New static variable.
10879         (reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static
10880         functions.
10881         (reg_rtx): Do not maintain regno_decl.
10882         (gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx,
10883         set_mem_attrs_from_reg): New global function.
10884         (init_emit): Do not initialize regno_decl.
10885         (init_emit_once): initialize reg_attrs_htab.
10886         * final.c (alter_subreg): Do not replace REG by SUBREG.
10887         (gen_mem_expr_from_op): Improve output.
10888         (output_asm_operands): Likewise.
10889         * function.c (assign_params): Do not set REGNO_DECL.
10890         * function.h (struct function): Kill regno_decl.
10891         (REGNO_DECL): Kill.
10892         * gengtype.c (adjust_field_rtx_def): Handle new field of reg.
10893         * print_rtl.c (print_rtx): Output REG information.
10894         * regclass.c (reg_scan_mark_refs): Update attrs.
10895         * reload1.c (alter_reg): Likewise.
10896         * simplify_rtx.c (simplify_subreg): Likewise.
10897         * stmt.c (expand_decl): Likewise.
10898         * rtl.def (REG): Add new field.
10899         * rtl.h (struct reg_attrs): New.
10900         (rtunion_def): At rtreg.
10901         (X0MEMATTR): Add checking.
10902         (X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro.
10903         (set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset):
10904         Declare.
10905         * tree.h (SET_DECL_RTL): Call set_decl_rtl.
10906
10907 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
10908
10909         * config/xtensa/xtensa.c: Remove unused include of machmode.h.
10910         (xtensa_emit_call, print_operand): Fix printf format strings
10911         to avoid compile warnings.
10912         (xtensa_function_prologue, xtensa_function_epilogue): Change type
10913         of "size" argument to HOST_WIDE_INT to fix compile warnings.
10914         * config/xtensa/xtensa-protos.h
10915         (xtensa_function_prologue, xtensa_function_epilogue): Ditto.
10916
10917 2003-01-24  Jan Hubicka  <jh@suse.cz>
10918
10919         * builtins.c (DEF_BUILTIN): Accept 10 arguments.
10920         (implicit_built_in_decls): New global array.
10921         (mathfn_built_in): New global function.
10922         (fold_trunc_transparent_mathfn): New static function
10923         (expand_builtin_strstr, expand_bultin_strchr,
10924         expand_builtin_strpbrk, expand_builtin_strcpy,
10925         expand_builtin_strncpy, expand_bultin_strcmp,
10926         expand_bultin_strncat, expand_builtin_fputs): Use
10927         implicint_built_in_decls.
10928         (fold_builtin): Fold floor/trunc/round/ceil/nearbyint.
10929         * builtins.def: Fix comments.
10930         (DEF_GCC_BUILTIN, DEF_FALLBACK_BUILTIN, DEF_EXT_FALLBACK_BUILTIN,
10931         DEF_LIB_BUILTIN, DEF_LIB_ALWAYS_BUILTIN, DEF_EXT_LIB_BUILTIN,
10932         DEF_C99_BULTIN, DEF_FRONT_END_LIB_BUILTIN,
10933         DEF_EXT_FRONT_END_LIB_BUILTIN): Pass implicit as needed.
10934         (DEF_C99_C90RES_BULTIN): New.
10935         (*f, *l builtins): Update.
10936         * c-common.c (DEF_BUILTIN): Initialize implicit array.
10937         (c_expand_builtin_printf, c_expand_builtin_fprintf): Update.
10938         * convert.c (strip_float_extensions): New global function.
10939         * tree.h (DEF_BUILTIN): Accept 10 arguments.
10940         (implicit_built_in_decls, mathfn_built_in, strip_float_extension):
10941         Declare.
10942         * java/builtins.c (define_builtin): Handle implicit.
10943         (DEF_BUILTIN): Update.
10944         * tm.texi (TARGET_C99_FUNCTIONS): Document.
10945         * defaults.h (TARGET_C99_FUNCTIONS): Default to 0.
10946         * config/linux.h (TARGET_C99_FUNCTIONS): Default to 1
10947         when using glibc2.
10948
10949 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
10950
10951         * config.gcc (xtensa-*-elf*): Removed assignments to with_newlib,
10952         extra_parts, and fixincludes.  Add xtensa/t-elf tmake_file.
10953         (xtensa-*-linux*): Add xtensa/t-linux tmake_file.
10954         * config/xtensa/crti.asm: New file.
10955         * config/xtensa/crtn.asm: New file.
10956         * config/xtensa/t-elf: New file.
10957         * config/xtensa/t-linux: New file.
10958         * config/xtensa/t-xtensa: Add rules for crti.o and crtn.o.
10959         Move various CFLAGS settings to new t-elf file.
10960
10961 2003-01-24  Richard Henderson  <rth@redhat.com>
10962
10963         PR optimization/4382
10964         * tree-inline.c (find_builtin_longjmp_call_1): New.
10965         (find_builtin_longjmp_call): New.
10966         (inlinable_function_p): Use it.
10967
10968 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10969
10970         * config/i386/i386-protos.h (function_arg_pass_by_reference): Declare.
10971         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
10972         * config/i386/i386.c (function_arg_pass_by_reference): New.
10973         (ix86_va_arg): Support arguments passed by reference.
10974
10975 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10976
10977         * cfgloopanal.c: New file.
10978         * cfgloopmanip.c: New file.
10979         * Makefile.in (cfgloopanal.o, cfgloopmanip.o): New.
10980         (toplev.o, loop.o, doloop.o, unroll.o, cfgloop.o, predict.o,
10981         cfglayout.o): Add dependency on cfgloop.h.
10982         (cfgloop.o): Add flags.h dependency.
10983         * basic-block.h (BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK): New flags.
10984         (VLS_EXPECT_PREHEADERS, VLS_EXPECT_SIMPLE_LATCHES): Removed.
10985         (struct loop, struct loops, flow_loops_find, flow_loops_update,
10986         flow_loops_free, flow_loops_dump, flow_loop_dump,
10987         flow_loop_scan, flow_loop_tree_node_add, flow_loop_tree_node_remove,
10988         LOOP_TREE,,LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
10989         LOOP_ALL, flow_loop_outside_edge_p, flow_loop_nested_p,
10990         flow_bb_inside_loop_p, get_loop_body, loop_preheader_edge,
10991         loop_latch_edge, add_bb_to_loop, remove_bb_from_loops,
10992         find_common_loop, verify_loop_structure): Declarations moved to ...
10993         * cfgloop.h: New file.
10994         * bb-reorder.c (reorder_basic_blocks): Modified.
10995         * cfglayout.c: Include cfgloop.h.
10996         (cleanup_unconditional_jumps, cfg_layout_redirect_edge,
10997         cfg_layout_duplicate_bb, cfg_layout_initialize): Update loop structure.
10998         (break_superblocks): New static function.
10999         (cfg_layout_finalize): Use it.
11000         (cfg_layout_split_block): New function.
11001         * cfglayout.h (struct reorder_block_def): Add copy and duplicated
11002         fields.
11003         (cfg_layout_initialize, cfg_layout_redirect_edge): Declaration
11004         changed.
11005         (cfg_layout_split_block): Declare.
11006         * cfgloop.c: Include cfgloop.h and flags.h.
11007         (flow_loop_dump, flow_loops_free, flow_loop_exit_edges_find,
11008         get_loop_body): Avoid signed versus unsigned comparison warnings.
11009         (make_forwarder_block, flow_loops_find, loop_preheader_edge,
11010         loop_latch_edge): Modified.
11011         (verify_loop_structure): Modified to use flags stored in loop structure;
11012         check irreducible loops.
11013         (cancel_loop, cancel_loop_tree): New functions.
11014         (estimate_probability): Use loop analysis code for predictions.
11015         (estimate_loops_at_level):  Avoid signed versus unsigned comparison
11016         warnings.
11017         * doloop.c: Include cfgloop.h.
11018         * loop.c: Include cfgloop.h.
11019         * predict.c: Include cfgloop.h.
11020         * toplev.c: Include cfgloop.h.
11021         * unroll.c: Include cfgloop.h.
11022         * tracer.c (tracer): Modified.
11023
11024 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11025
11026         * config/h8300/h8300.c (get_shift_alg): Fix a typo.
11027
11028 2003-01-24  Ulrich Weigand  <uweigand@de.ibm.com>
11029
11030         * configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
11031         * configure: Regenerate.
11032
11033         * config/s390/s390-protos.h (tls_symbolic_operand): Add prototype.
11034         (tls_symbolic_reference_mentioned_p): Add prototype.
11035         (s390_tls_get_offset): Add prototype.
11036         (emit_pic_move): Remove prototype, replace by ...
11037         (emit_symbolic_move): .. this new prototype.
11038
11039         * config/s390/s390.c (TARGET_HAVE_TLS): Conditionally define.
11040         (tls_model_chars): New global variable.
11041         (s390_encode_section_info): Encode TLS model.
11042         Use targetm.binds_local_p to check for local symbols.
11043         (s390_strip_name_encoding): New function.
11044         (TARGET_STRIP_NAME_ENCODING): Define.
11045
11046         (get_thread_pointer): New function.
11047         (legitimize_tls_address): New function.
11048         (legitimize_address): Call it.
11049         (emit_pic_move): Remove, replace by ...
11050         (emit_symbolic_move): ... this new function.
11051
11052         (larl_operand): Handle TLS operands.
11053         (legitimate_constant_p): Likewise.
11054         (s390_decompose_address): Likewise.
11055         (s390_cannot_force_const_mem): New function.
11056         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
11057
11058         (s390_output_symbolic_const): Handle TLS unspecs.
11059         (print_operand): New code 'J'.
11060         (machine_function): Add struct member 'some_ld_name'.
11061         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
11062
11063         (enum s390_builtin): New type.
11064         (code_for_builtin_64, code_for_builtin_31): New global variables.
11065         (s390_init_builtins, s390_expand_builtin): New functions.
11066         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
11067
11068         * config/s390/s390.h (TLS_SYMBOLIC_CONST): New macro.
11069         (ASM_OUTPUT_LABELREF): Define.
11070         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Handle TLS constants.
11071
11072         * config/s390/s390.md: Define TLS UNSPEC constants.
11073         ("movdi", "movsi"): Handle TLS operands.
11074         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): New insns.
11075         ("*tls_load_64", "*tls_load_31"): New insns.
11076         ("call_value_tls", "call_value_tls_exp"): New expanders.
11077         ("brasl_tls", "bras_tls", "basr_tls_64", "basr_tls_31",
11078         "bas_tls_64", "bas_tls_31"): New insns.
11079
11080 2003-01-24  Nathan Sidwell  <nathan@codesourcery.com>
11081
11082         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Make sure
11083         spe ABI is configured, if requested.
11084
11085 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
11086
11087         * doc/passes.texi: Fix typo.
11088
11089 2003-01-24  Andreas Schwab  <schwab@suse.de>
11090
11091         * stor-layout.c (excess_unit_span): Only define if used.
11092
11093 2003-01-24  Jerry Quinn  <jlquinn@optonline.net>
11094
11095         * gcc/doc/invoke.texi (Optimization Options): List -O levels
11096         for each optimization flag.
11097
11098 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11099
11100         * config/h8300/h8300.md (*andsi3_ashift_n_lower): New.
11101
11102 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
11103
11104         * doc/bugreport.texi: Use @command instead of @code for commands.
11105         * doc/collect2.texi: Likewise.
11106         * doc/headerdirs.texi: Likewise.
11107         * doc/invoke.texi: Likewise.
11108         * doc/standards.texi: Likewise.
11109         * doc/tm.texi: Likewise.
11110         * doc/trouble.texi: Likewise.
11111
11112 2003-01-24  Nick Clifton  <nickc@redhat.com>
11113
11114         * config/arm/arm.c (use_return_insn): Do not use a single return
11115         instruction for interrupt handelrs which have to create a stack
11116         frame.
11117         (arm_expand_prologue): Do not pre-bias the return address of
11118         interrupt handlers which create a stack frame.
11119
11120 2003-01-24  Nick Clifton  <nickc@redhat.com>
11121
11122         * Add sh2e support:
11123
11124         2002-08-12  Alexandre Oliva  <aoliva@redhat.com>
11125
11126                 * config/sh/sh.c (output_branch) [TARGET_SH2E]: Handle
11127                 med_cbranches.  Fix logic in short_cbranches.
11128
11129         2002-04-03  Alexandre Oliva  <aoliva@redhat.com>
11130
11131                 * config/sh/sh.md (delay for cbranch): Don't annul delay
11132                 slots on SH2e.
11133                 * config/sh/sh.c (sh_insn_length_adjustment): Add 2 for
11134                 cbranch with unfilled delay slot on SH2e.
11135                 (output_branch): Fill with a nop the delay slot of a
11136                 branch that required a delay slot but didn't get one.
11137
11138         2002-04-02  Alexandre Oliva  <aoliva@redhat.com>
11139
11140                 * doc/invoke.texi (SH options): Document -m2e.
11141                 * config/sh/crt1.asm: Add __SH2E__ Next to __SH3E__.
11142                 * config/sh/lib1funcs.asm: Likewise.
11143                 * config/sh/sh.c: Replace all uses of TARGET_SH3E with SH2E.
11144                 * config/sh/sh.h (CPP_SPEC): Define __SH2E__ for -m2e, and
11145                 not __sh1__.
11146                 (CONDITIONAL_REGISTER_USAGE): Don't disable FP regs from
11147                 SH2E up.
11148                 (SH3E_BIT): Renamed to...
11149                 (SH_E_BIT): ... this.  Replace all uses.
11150                 (TARGET_SH2E): Define from SH_E_BIT and TARGET_SH2.
11151                 Replace all uses of TARGET_SH3E with TARGET_SH2E.
11152                 (TARGET_SWITCHES): Added 2e.
11153                 (OVERRIDE_OPTIONS): Set sh_cpu for SH2E.
11154                 (processor_type): Added PROCESSOR_SH2E.
11155                 * config/sh/sh.md: Replace all uses of TARGET_SH3E with
11156                 TARGET_SH2E, except in sqrtsf2_i.
11157                 (attribute cpu): Added sh2e.
11158                 * config/sh/t-sh (MULTILIB_OPTIONS): Replace m3e with m2e.
11159                 (MULTILIB_MATCHES): Use m2e multilib for m3e.
11160                 * config.gcc: Add sh2e target support.
11161
11162 2003-01-24  Phil Edwards  <pme@gcc.gnu.org>
11163
11164         Rename -W to -Wextra.
11165         * c-decl.c:  Update comments.
11166         * c-typeck.c:  Likewise.
11167         * flags.h:  Likewise.
11168         * function.c:  Likewise.
11169         * stmt.c:  Likewise.
11170         * toplev.c:  Update comments.
11171         (W_options):  Add 'extra'.
11172         (display_help):  Remove '-W'.
11173         (decode_W_option):  Special warn_uninitialized treatment in the case
11174         of -Wextra.
11175         * doc/invoke.texi:  Update with new entries.
11176
11177 2003-01-23  Richard Henderson  <rth@redhat.com>
11178
11179         * ifcvt.c (noce_process_if_block): Re-add check vs X being changed
11180         in no-else-block case.  Add commentary.
11181
11182 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11183
11184         * configure.in: Revert last change.
11185
11186 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11187
11188         * configure.in: Don't include ansidecl.h in tconfig.h.
11189         * gcov-io.h (PARAMS, ATTRIBUTE_UNUSED: Define if IN_LIBGCC2.
11190         * unwind-dw2-fde.h (last_fde): Use __attribute__, not
11191         ATTRIBUTE_UNUSED.
11192
11193         * configure: Regenerate.
11194
11195 2003-01-23  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11196
11197         PR java/6748
11198         * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Don't destroy
11199         regs->nip. Fix rt_sigreturn frame layout. Add support for newer
11200         kernels.
11201
11202 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11203
11204         * cpplex.c (cpp_interpret_charconst): Squelch warning with cast.
11205
11206 2003-01-23  Ulrich Weigand  <uweigand@de.ibm.com>
11207
11208         * genattrtab.c (write_attr_get): Mark 'insn' paramter
11209         as ATTRIBUTE_UNUSED.
11210
11211 2003-01-23  Richard Earnshaw  <rearnsha@arm.com>
11212
11213         * arm.c (thumb_base_register_rtx_p): New function.
11214         (thumb_index_register_rtx_p): New function.
11215         (thumb_legitimate_address_p): New function.
11216         (thumb_legitimate_offset_p): New function.
11217         * arm.h (REG_STRICT_P): Define according to setting of REG_OK_STRICT.
11218         (ARM_GO_IF_LEGITIMATE_ADDRESS): Use REG_STRICT_P to avoid duplicate
11219         definitions.
11220         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Use thumb_legitimate_address_p.
11221         (THUMB_LEGITIMATE_OFFSET): Delte.
11222         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use thumb_legitimate_offset.
11223         * arm-protos.h (thumb_legitimate_address_p): Add prototype.
11224         (thumb_legitimate_offset_p): Likewise.
11225
11226 2003-01-23  Andreas Schwab  <schwab@suse.de>
11227
11228         * unwind.h (_Unwind_GetTextRelBase): Mark parameter as unused.
11229
11230 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11231
11232         * fixinc/Makefile.in (FL_LIST): Revert last change.
11233
11234 2003-01-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
11235
11236         PR other/7341
11237         * invoke.texi (ftest-coverage): Fix broken cross-reference.
11238         Change @code to @command for gcov command.
11239
11240         * gcc.texi: Adjust title of gcov section.
11241         Adjust copyright.
11242         * gcov.texi: Likewise.
11243
11244 2003-01-22  Roger Sayle  <roger@eyesopen.com>
11245
11246         PR optimization/8423
11247         * cse.c (fold_rtx): Only eliminate a CONSTANT_P_RTX to 1 when
11248         its argument is constant, or 0 if !flag_gcse.
11249         * simplify-rtx.c (simplify_rtx): Convert CONSTANT_P_RTX to 1
11250         if it's argument is constant.
11251         * gcse.c (want_to_gcse_p): Ignore CONSTANT_P_RTX nodes.
11252         (hash_scan_set): Don't record CONSTANT_P_RTX expressions.
11253         (do_local_cprop): Don't propagate CONSTANT_P_RTX constants.
11254         * builtins.c (purge_builtin_constant_p): New function to force
11255         instantiation of any remaining CONSTANT_P_RTX nodes.
11256         * rtl.h (purge_builtin_constant_p): Prototype here.
11257         * toplev.c (rest_of_compilation): Invoke purge_builtin_constant_p
11258         pass after GCSE and before loop.
11259         (flag_gcse): No longer static.
11260         * flags.h (flag_gcse): Prototype here.
11261
11262 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
11263
11264         * config/s390/s390.h (HARD_REGNO_MODE_OK): Fix warning regression
11265         introduced by last change.
11266
11267 2003-01-22  Andreas Schwab  <schwab@suse.de>
11268
11269         * ra-rewrite.c (rewrite_program2): Initialize bb to avoid warning.
11270
11271 2003-01-22  Kazu Hirata  <kazu@cs.umass.edu>
11272
11273         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Don't
11274         request a scratch reg on H8S when the shift count is 8.
11275
11276 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
11277
11278         * config/s390/s390-protos.h (preferred_la_operand_p):
11279         Remove second parameter.
11280         * config/s390/s390.c (preferred_la_operand_p): Likewise.
11281         * config/s390/s390.h (FRAME_REGNO_P, FRAME_REG_P): New macros.
11282         (HARD_REGNO_MODE_OK): Use FRAME_REGNO_P.
11283         * config/s390/s390.md ("*la_cc_64", "*la_cc_31", splitters): Remove.
11284         Add peepholes to transform ADD to LOAD ADDRESS.
11285
11286 2003-01-22  Richard Earnshaw  <rearnsha@arm.com>
11287
11288         * arm.c (arm_address_register_rtx_p): New function.
11289         (arm_legitimate_address_p): New function.
11290         (arm_legitimate_index_p): New function.
11291         (legitimize_pic_address): Use arm_legitimate_index_p.
11292         * arm-protos.h (arm_legtimate_address_p): Add prototype.
11293         * arm.h (ARM_GO_IF_LEGITIMATE_INDEX): Delete.
11294         (ARM_GO_IF_LEGITIMATE_ADDRESS): Call arm_legitimate_address_p.
11295
11296 2003-01-22  Hartmut Penner  <hpenner@de.ibm.com>
11297
11298         * config/s390/s390.md (floatdfdi2): Insn has type 'itof'.
11299         * config/s390/2064.md (define_bypass): Correct 'Load' and
11300         'Load-address' bypass values.
11301
11302 2003-01-22  Andreas Schwab  <schwab@suse.de>
11303
11304         * config/ia64/t-ia64 (insn-attrtab.o-warn): Define as -Wno-error.
11305
11306 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
11307
11308         * genautomata.c (output_internal_insn_latency_func,
11309         output_print_reservation_func): Short circuit when there is no
11310         automaton to generate code for.
11311
11312 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11313
11314         * Makefile.in (ssa-ccp.o): Depend on coretypes.h $(TM_H).
11315         (df.o): Delete duplicate dependency on coretypes.h $(TM_H).
11316
11317 2003-01-21  Geoffrey Keating  <geoffk@apple.com>
11318
11319         * config/rs6000/rs6000.md: Remove warning.
11320         (builtin_setjmp_receiver): Likewise.
11321         * config/darwin.c (update_stubs): Slightly improve terrible hack
11322         with identifiers.  Add comment pointing out problems with it.
11323         (update_non_lazy_ptrs): Likewise.
11324
11325 2003-01-21  Richard Henderson  <rth@redhat.com>
11326
11327         * dwarf2out.c (lookup_filename): Fix printf format warning.
11328         * system.h (fread_unlocked, fwrite_unlocked): Undef.
11329
11330         * fixinc/Makefile.in (FL_LIST): Add $($@-warn) hook.
11331         (fixincl.o-warn, gnu-regex.o-warn): New.
11332         * fixinc/fixfixes.c (FIX_PROC_HEAD): Mark parameters unused.
11333         * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Likewise.
11334         * fixinc/fixincl.c (process): Fix printf format warning.
11335
11336 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
11337
11338         * dwarf2out (output_file_names): Don't crash if called
11339         with empty file_table.
11340
11341 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
11342
11343         * genautomata.c (output_internal_insn_latency_func): Add
11344         missing break statement to generated code.
11345
11346 2003-01-21  Roger Sayle  <roger@eyesopen.com>
11347
11348         * stmt.c (same_case_target_p): New function to determine whether
11349         two case labels branch to the same target.  Split out from...
11350         (group_case_nodes): ... here.  Use same_case_target_p instead.
11351         (strip_default_case_nodes): Remove explicit case nodes
11352         that branch to the default destination.
11353         (expand_end_case_type): Call strip_default_case_nodes after
11354         group_case_nodes, to simplify the case-list before we count it.
11355         Only generate table_label RTX when actually needed.  Try to share
11356         thiscase->exit_label and thiscase->data.case_stmt.default_label
11357         when a switch has no explicit default case.  Simplify test for
11358         constant index.
11359
11360 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11361
11362         * config/h8300/h8300.md (*negsf2_h8300): Use \\t instead of
11363         \t.
11364         (*negsf2_h8300hs): Likewise.
11365         (*addsi3_lshiftrt_16_zexthi): Likewise.
11366         (*iorhi3_lshiftrt_8): Likewise.
11367
11368 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
11369
11370         * dwarf2out.c (fde_table_in_use): Mark GTY.
11371         (dwarf2out_cfi_label_num): New variable, marked GTY.
11372         (dwarf2out_cfi_label): Use it instead of static label_num.
11373         * emit-rtl.c (label_num): Mark GTY.
11374
11375 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11376
11377         * config/h8300/h8300.c (output_plussi): Support H8/300.
11378         (compute_plussi_length): Likewise.
11379         (compute_plussi_cc): Likewise.
11380         * config/h8300/h8300.md (addsi_h8300): Use output_plussi to
11381         output assembly instructions.
11382
11383 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11384
11385         * calls.c (fix_unsafe_tree): Prototype.
11386
11387         * Makefile.in (GCC_WARN_CFLAGS): Add $(WERROR) $($@-warn)
11388         (gtype-desc.o-warn, c-decl.o-warn, varasm.o-warn, gcc.o-warn,
11389         insn-conditions.o-warn, out_object_file, gengtype-yacc.o-warn,
11390         c-parse.o-warn): Add -Wno-error.
11391         (STAGE2_FLAGS_TO_PASS): Add WERROR="@WERROR@".
11392
11393         * configure.in (--enable-werror): Add new flag.
11394         * doc/install.texi (--enable-werror): Document.
11395         * configure: Regenerate.
11396
11397         * objc/Make-lang.in (objc/objc-parse.o-warn): Add -Wno-error.
11398
11399 2003-01-21  Andreas Schwab  <schwab@suse.de>
11400
11401         * genautomata.c (output_internal_insn_latency_func): Fix missing
11402         close paren in output.
11403
11404 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
11405
11406         * genautomata.c: Space savings in generated code:
11407         (output_dfa_insn_code_func): Split out the table-enlargement
11408         path to an out-of-line static function, dfa_insn_code_enlarge.
11409         (output_internal_insn_latency_func): Use a lookup table for the
11410         default latencies.
11411         (output_print_reservation_func): Use a lookup table for the
11412         strings.
11413
11414 2003-01-21  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
11415
11416         PR opt/7507
11417         * calls.c (fix_unsafe_tree): Split out from ...
11418         (expand_call): ... here.  Use it on the function address too.
11419
11420 2003-01-20  Richard Henderson  <rth@redhat.com>
11421
11422         * expr.h (default_must_pass_in_stack): Move decl outside ifdef.
11423
11424 2003-01-20  Richard Henderson  <rth@redhat.com>
11425
11426         PR opt/7154
11427         * stmt.c (expand_asm_operands): Validize memory operands.
11428
11429 2003-01-20  Richard Henderson  <rth@redhat.com>
11430
11431         PR opt/8848
11432         * ifcvt.c (noce_process_if_block): Correct arguments to
11433         modified_between_p for no-else-block case.
11434
11435 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11436
11437         * config/h8300/h8300.c (const_costs): Remove a warning.
11438         (output_plussi): Likewise.
11439         (compute_plussi_length): Likewise.
11440         (compute_plussi_cc): Likewise.
11441
11442 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11443
11444         * config/h8300/h8300.md (addsi_h8300): Remove the last
11445         alternative.
11446
11447 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11448
11449         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
11450
11451 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11452
11453         * system.h (__NO_STRING_INLINES): Define.
11454
11455 2003-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11456
11457         * ifcvt.c (noce_emit_store_flag): Don't emit store flag if mode of x
11458         is not a scalar int mode.
11459
11460 2003-01-20  Roger Sayle  <roger@eyesopen.com>
11461
11462         * cse.c (cse_insn): Avoid RTL sharing when updating the RETVAL
11463         insn's notes following a substitution inside a libcall.
11464
11465 2003-01-20  Zack Weinberg  <zack@codesourcery.com>
11466
11467         * configure.in: Check for system-provided 'uchar' type.
11468         * configure, config.in: Regenerate.
11469         * cpphash.h: Only typedef 'uchar' if the system doesn't.
11470
11471 2003-01-20  Richard Henderson  <rth@redhat.com>
11472
11473         * expr.h (MUST_PASS_IN_STACK): Move implementation...
11474         * calls.c (default_must_pass_in_stack): ... here.
11475
11476 2003-01-20  Vladimir Makarov  <vmakarov@redhat.com>
11477
11478         * genattrtab.h (INSN_ALTS_FUNC_NAME): Move it from genautomata.c.
11479
11480         * genautomata.c (INSN_ALTS_FUNC_NAME): Move it into genattrtab.h.
11481
11482         * genattr.c (main): Output default definition of AUTOMATON_ALTS.
11483         Wrap up definition of `insn_alts'.
11484
11485         * genattrtab.c (main): Wrap up `insn_alts'.
11486
11487 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11488
11489         * collect2.c (ldgetname): Check HAVE_DECL_LDGETNAME before
11490         prototyping.
11491         * configure.in: Check for <ldfcn.h> and ldgetname() prototype.
11492
11493         * config.in, configure: Regenerate.
11494
11495 2003-01-20  Nick Clifton  <nickc@redhat.com>
11496
11497         * config/arm/arm.md (sibcall_epilogue): Add an
11498         UNSPEC_PROLOGUE_USE to prevent the link register from being
11499         considered dead.
11500
11501 2003-01-20  Jan Hubicka  <jh@suse.cz>
11502
11503         * i386.md (SSE cmov splitter):  Handle memory operand in operand 5.
11504
11505 2003-01-20  Andreas Schwab  <schwab@suse.de>
11506
11507         * system.h: Don't declare strsignal if the decl test hasn't been
11508         run yet.
11509
11510 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11511
11512         * config/h8300/h8300.c (notice_update_cc): Don't assume that
11513         recog_data.operands[0] is always associated with cc0.
11514
11515 2003-01-19  David Edelsohn  <edelsohn@gnu.org>
11516
11517         * collect2.c (ldgetname): Expand declaration to prototype.
11518         * read-rtl.c (atoll): Add prototype.
11519         * system.h (strsignal): Also declare if no declaration found.
11520
11521 2003-01-19  Alexandre Oliva  <aoliva@redhat.com>
11522
11523         * config.gcc (mips64*-*-linux*): Added.
11524         * config/mips/linux64.h, config/mips/t-linux64: New file.
11525         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Define.
11526         * config/mips/mips.c (override_options): Use it.
11527         * config/mips/mips.h (TARGET_SWITCHES): Added...
11528         (SUBTARGET_TARGET_SWITCHES): New, empty by default.
11529         * Makefile.in (SPECS): New.
11530         (STAGESTUFF, specs, mostlyclean, install-common): Use it.
11531         * gcc.c (process_command): Move self-spec processing past spec
11532         file loading.
11533         * doc/tm.texi (DRIVER_SELF_SPECS): Document the change.
11534         * doc/fragments.texi (MULTILIB_EXTRA_OPTS): Document need for
11535         CRTSTUFF_T_CFLAGS.
11536         (SPECS): Document.
11537         * doc/invoke.texi (-mabi-fake-default): Document.
11538
11539 2003-01-19  Stephane Carrez  <stcarrez@nerim.fr>
11540
11541         * config/m68hc11/m68hc11.c (stack_push_word, stack_pop_word,
11542         z_reg, z_reg_qi): Declare static and GTY().
11543         (da_reg): Remove.
11544         (create_regs_rtx): Don't create da_reg.
11545         ("gt-m68hc11.h"): Include for GTY roots.
11546         * config/m68hc11/m68hc11.h (ix_reg, iy_reg, d_reg): Declare extern
11547         and GTY() here.
11548         (m68hc11_compare_op0, m68hc11_compare_op1): Likewise.
11549         (m68hc11_soft_tmp_reg): Likewise.
11550         * config/m68hc11/m68hc11-protos.h: Remove above declarations.
11551
11552 2003-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11553
11554         * basic-block.h: Fix comment formatting.
11555         * calls.c: Likewise.
11556         * combine.c: Likewise.
11557         * convert.c: Likewise.
11558         * gcov.c: Likewise.
11559         * haifa-sched.c: Likewise.
11560         * libgcc2.c: Likewise.
11561         * loop.c: Likewise.
11562         * profile.c: Likewise.
11563         * system.h: Likewise.
11564
11565 2003-01-18  Roger Sayle  <roger@eyesopen.com>
11566
11567         * config/pa/pa.md (muldi3): Avoid invalid sharing of SUBREG RTXs.
11568
11569 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11570
11571         * ra-build.c (undef_to_size_word): Avoid `switch' warning.
11572
11573 2003-01-17  Dale Johannesen  <dalej@apple.com>
11574
11575         * config/rs6000/rs6000.md (*floatsidf2_internal):  Add earlyclobbers.
11576           (*floatunssidf2_internal):  Ditto.
11577
11578 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
11579
11580         * alias.c: Fix comment typos.
11581         * basic-block.h: Likewise.
11582         * c-common.c: Likewise.
11583         * c-common.h: Likewise.
11584         * c-decl.c: Likewise.
11585         * c-opts.c: Likewise.
11586         * c-pragma.c: Likewise.
11587         * c-pretty-print.h: Likewise.
11588         * cfg.c: Likewise.
11589         * cfganal.c: Likewise.
11590         * cfgbuild.c: Likewise.
11591         * cfgcleanup.c: Likewise.
11592         * cfglayout.c: Likewise.
11593         * cfgrtl.c: Likewise.
11594         * convert.c: Likewise.
11595         * cpphash.h: Likewise.
11596         * cpplex.c: Likewise.
11597         * cpplib.h: Likewise.
11598         * df.h: Likewise.
11599         * diagnostic.c: Likewise.
11600         * diagnostic.h: Likewise.
11601         * dwarf2.h: Likewise.
11602
11603 2003-01-17  Stan Shebs  <shebs@apple.com>
11604
11605         * config/darwin-protos.h: Forward-declare struct cpp_reader.
11606
11607 2003-01-17  Douglas B Rupp  <rupp@gnat.com>
11608
11609         * config/alpha/alpha.c (alpha_need_linkage): Fix obvious
11610         mistake in last checkin.
11611
11612 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
11613
11614         * et-forest.c: Fix comment typos.
11615         * et-forest.h: Likewise.
11616         * except.c: Likewise.
11617         * expr.c: Likewise.
11618         * flags.h: Likewise.
11619         * flow.c: Likewise.
11620         * gcc.c: Likewise.
11621         * gcse.c: Likewise.
11622         * genattrtab.c: Likewise.
11623         * genautomata.c: Likewise.
11624         * gengtype.c: Likewise.
11625         * genrecog.c: Likewise.
11626         * global.c: Likewise.
11627         * gthr-rtems.h: Likewise.
11628
11629 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11630
11631         * i386.c (x86_function_profiler): Fix format specifier.
11632
11633 2003-01-17  Richard Henderson  <rth@redhat.com>
11634
11635         * gengtype.c (walk_type): Allow paramN_is.
11636
11637 2003-01-17  Nick Clifton  <nickc@redhat.com>
11638
11639         * config/i960/t-960bare (i960-c.o): Add missing newline escape.
11640
11641 2003-01-16  Richard Henderson  <rth@redhat.com>
11642
11643         * config/alpha/linux-elf.h (LIB_SPEC): Adjust inter-option spacing.
11644
11645 2003-01-16  Richard Henderson  <rth@redhat.com>
11646
11647         * config/alpha/alpha.c (alpha_sr_alias_set): Mark GTY.
11648         (alpha_next_sequence_number): Likewise.
11649         (alpha_this_literal_sequence_number): Likewise.
11650         (alpha_this_gpdisp_sequence_number): Likewise.
11651         (struct alpha_funcs, alpha_funcs_num): Likewise.
11652         (struct alpha_links): Fix branch merge error.
11653         (alpha_need_linkage, alpha_use_linkage): Use GC for alpha_funcs.
11654
11655 2003-01-17  Alexandre Oliva  <aoliva@redhat.com>
11656
11657         * config/mips/mips.h: Don't use #elif.  Reported by Kaveh
11658         R. Ghazi.
11659
11660 2003-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11661
11662         * ifcvt.c: Fix comment typos.
11663         * lcm.c: Likewise.
11664         * libgcc2.c: Likewise.
11665         * local-alloc.c: Likewise.
11666         * loop.c: Likewise.
11667         * predict.c: Likewise.
11668         * ra-build.c: Likewise.
11669         * ra.c: Likewise.
11670         * ra-colorize.c: Likewise.
11671         * ra.h: Likewise.
11672         * ra-rewrite.c: Likewise.
11673         * regmove.c: Likewise.
11674         * reload.h: Likewise.
11675         * rtlanal.c: Likewise.
11676         * toplev.c: Likewise.
11677         * tree.h: Likewise.
11678         * unwind-dw2-fde-glibc.c: Likewise.
11679         * vmsdbgout.c: Likewise.
11680
11681 2003-01-16  Richard Henderson  <rth@redhat.com>
11682
11683         * dwarf2out.c (struct file_table): Remove.
11684         (FILE_TABLE_INCREMENT): Remove.
11685         (file_table): Make a varray; mark for GC.  Update all users.
11686         (file_table_last_lookup_index): Extract from struct file_table.
11687         (output_file_names): Fix unsigned compare warnings.
11688         (add_name_attribute): Remove inline marker.
11689         (add_comp_dir_attribute): Split out from gen_compile_unit_die.
11690         (lookup_filename): Don't manage size of file_table.
11691         (init_file_table): Allocate file_table with GC.
11692         (dwarf2out_init): Don't record main_input_filename here.
11693         (dwarf2out_finish): Do it here instead.
11694
11695 2003-01-16  Bruce Korb  <bkorb@gnu.org>
11696
11697         * gcc/fixinc/inclhack.def(limits_ifndef): QNX needs a bypass, too.
11698
11699 2003-01-16  Kaz Kojima  <kkojima@gcc.gnu.org>
11700
11701         * config/sh/sh.c (sh_initialize_trampoline): Emit rotrdi3_mextr
11702         instead of rotldi3_mextr.
11703
11704 2003-01-16  Vladimir Makarov  <vmakarov@redhat.com>
11705
11706         * haifa-sched.c (move_insn): Restore moving all schedule group.
11707         (set_priorities): Restore taking SCHED_GROUP_P into account.
11708
11709         * sched-deps.c (add_dependence): Restore processing the last group
11710         insn.
11711         (remove_dependence, group_leader): Restore the functions.
11712         (set_sched_group_p): Restore adding dependencies from previous insn
11713         in the group.
11714         (compute_forward_dependences): Restore usage of group_leader.
11715
11716         * sched-ebb.c (init_ready_list): Restore taking SCHED_GROUP_P into
11717         account.
11718
11719         * sched-rgn.c (init_ready_list): Restore taking SCHED_GROUP_P into
11720         account.
11721         (can_schedule_ready_p): Ditto.
11722         (add_branch_dependences): Restore skipping over the group insns.
11723
11724 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
11725
11726         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling
11727         68HC12 pre/post inc/dec side effects.
11728
11729 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
11730
11731         * config/m68hc11/m68hc11.h (MASK_M6812): Define.
11732
11733 2003-01-16  J"orn Rennecke <amylaar@onetel.net.uk>
11734
11735         * sh.md (mshflo_w_x): Fix description of operation.
11736
11737 2003-01-16  Zack Weinberg  <zack@codesourcery.com>
11738
11739         * config/rs6000/rs6000.h: Mention Altivec registers in
11740         commentary.  Fix typo.
11741
11742 2003-01-16  David Edelsohn  <edelsohn@gnu.org>
11743
11744         * config/rs6000/rs6000.md (movti_string): Remove clobber.
11745         * config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly
11746         generate PARALLEL with clobber for TARGET_POWER.
11747
11748 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11749
11750         * ra-colorize.c (colorize_one_web): Initialize variable.
11751         * regmove.c (fixup_match_1): Likewise.
11752         * reload1.c (reload_as_needed): Likewise.
11753         * sdbout.c (SET_KNOWN_TYPE_TAG): Add cast.
11754
11755 2003-01-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11756
11757         * cfgloop.c (flow_loops_find): Fix handling of abnormal edges.
11758
11759 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11760
11761         * dbxout.c (lastfile, cwd): Fix `unused' warning.
11762         * dwarf2out.c (fde_table_in_use, current_funcdef_fde,
11763         dw_cfi_oprnd1_desc, dw_cfi_oprnd2_desc, next_die_offset,
11764         is_main_source, file_table, decl_die_table_in_use,
11765         abbrev_die_table_in_use, line_info_table_in_use,
11766         separate_line_info_table_in_use, pubname_table_in_use,
11767         arange_table_in_use, ranges_table_in_use,
11768         current_function_has_inlines): Likewise.
11769         * flow.c (life_analysis): Likewise.
11770         * genemit.c (gen_insn): Likewise.
11771         * protoize.c (cplus_suffix): Likewise.
11772
11773         * arm.c (ROUND_UP_WORD): Renamed from ROUND_UP.
11774         * arm.h (ROUND_UP_WORD): Likewise.
11775
11776         * arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned
11777         warning.
11778         * emit-rtl.c (gen_rtx_REG, set_mem_attributes_minus_bitpos,
11779         init_emit_once): Likewise.
11780         * flow.c (mark_regs_live_at_end, calculate_global_regs_live):
11781         Likewise.
11782         * function.c (assign_stack_temp_for_type): Likewise.
11783         * loop.c (loop_invariant_p): Likewise.
11784         * recog.c (push_operand): Likewise.
11785         * regclass.c (init_reg_sets_1): Likewise.
11786         * reload.c (update_auto_inc_notes): Likewise.
11787         * reload1.c (reload_as_needed, emit_input_reload_insns): Likewise.
11788         * stmt.c (expand_asm_operands): Likewise.
11789         * stor-layout.c (start_record_layout): Likewise.
11790
11791 2003-01-16  Herman A.J. ten Brugge <hermantenbrugge@home.nl>
11792
11793         * config/c4x/c4x.md (epilogue): Correct last patch.
11794
11795 2003-01-15  Richard Henderson  <rth@redhat.com>
11796
11797         * config/alpha/alpha.c (find_lo_sum_using_gp): Rename from find_lo_sum;
11798         also check that GP is being used.
11799         (alpha_find_lo_sum_using_gp): New.
11800         (alpha_does_function_need_gp): Use get_attr_usegp.
11801         * config/alpha/alpha-protos.h: Update.
11802         * config/alpha/alpha.md (attr usegp): New.  Annotate patterns
11803         as needed.
11804
11805 2003-01-15  Roger Sayle  <roger@eyesopen.com>
11806
11807         * gcse.c (one_cprop_pass): Change function arguments to take both
11808         cprop_jumps and bypass_jumps flags instead of just alter_jumps.
11809         (gcse_main): Update calls to one_cprop_pass, disabling bypassing.
11810         (bypass_jumps): New function to perform separate jump bypassing pass.
11811         * rtl.h (bypass_jumps): Add function prototype.
11812         * timevar.def (TV_BYPASS): New timing variable.
11813         * toplev.c (enum dump_file_index): Add new entry DFI_bypass.
11814         (dump_file): New entry for the bypass RTL dump file.
11815         (rest_of_compilation): Insert new jump bypassing optimization
11816         pass after loop.
11817         * doc/passes.texi: Document new pass.
11818
11819 2003-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11820
11821         * som.h (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY,
11822         ASM_WEAKEN_LABEL, GTHREAD_USE_WEAK): Define.
11823         * pa.h (TARGET_SOM_SDEF): Define.
11824         * pa-hpux11.h (TARGET_SOM_SDEF): Define.
11825
11826 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
11827
11828         * config/m68hc11/m68hc11.c (expand_prologue): Use push/pop to
11829         allocate 4-bytes of locals on 68HC11.
11830         (expand_epilogue): Likewise.
11831         (m68hc11_memory_move_cost): Increase cost of HI/QI soft registers.
11832
11833 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
11834
11835         * config/m68hc11/m68hc11.h (ASM_SPEC): Handle -m68hcs12; Pass -mshort
11836         and -mshort-double to the assembler to specify the ABI.
11837         (LINK_SPEC): Likewise.
11838         (CPP_SPEC): Pass HCS12 specific define.
11839         (MASK_M68S12): New define.
11840         (TARGET_M68S12): Likewise.
11841         (TARGET_SWITCHES): New options -m68hcs12 and -m68S12.
11842         (TARGET_VERSION): Update.
11843         * config/m68hc11/m68hc12.h (CPP_SPEC): Pass HCS12 specific define.
11844         (LINK_SPEC): Update.
11845         (ASM_SPEC): Update.
11846         * config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Update.
11847         * doc/invoke.texi (M68hc1x Options): Document -m68hcs12.
11848
11849 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
11850
11851         * config/m68hc11/m68hc11.md ("return"): Use emit_jump_insn to emit
11852         the return code.
11853
11854 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
11855
11856         * cfganal.c (set_edge_can_fallthru_flag): Clear the EDGE_CAN_FALLTHRU
11857         flag before setting it.
11858
11859 2003-01-15  Roger Sayle  <roger@eyesopen.com>
11860
11861         * c-semantics.c (genrtl_while_stmt):  Improve initial RTL generation
11862         when loop condition is known true, i.e.  "while (1) { ... }".
11863         (genrtl_for_stmt): Similarly for "for" statements.
11864
11865 2003-01-15  Roger Sayle  <roger@eyesopen.com>
11866
11867         * real.c (real_sqrt): Return a bool result indicating whether
11868         a floating point exception or trap should be raised.
11869         * real.h (real_sqrt): Update function prototype.
11870         * builtins.c (fold_builtin): Only fold non-trapping square
11871         roots unless we're ignoring errno and trapping math.
11872
11873 2003-01-15  John David Anglin  <dave.anglin@nrc.gc.ca>
11874
11875         * expr.h (emit_conditional_add): Add PARAMS to declaration.
11876         * gengtype-lex.l (malloc, realloc): Move defines after include of
11877         system.h.  Remove duplicate include of system.h.
11878
11879 2003-01-15  Roger Sayle  <roger@eyesopen.com>
11880
11881         PR middle-end/9009
11882         * optabs.c (expand_unop):  When manipulating the FP sign bit
11883         using integer operations, account for targets with different
11884         integer and FP word orders.
11885         (expand_abs): Likewise.
11886
11887 2003-01-15  David Edelsohn  <edelsohn@gnu.org>
11888
11889         * config/rs6000/rs6000.c (rs6000_gen_section_name): Do not include
11890         file extension in section name.
11891
11892 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
11893
11894         * flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with
11895         constant offset.
11896
11897 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
11898
11899         * arm.h (HAVE_PRE_MODIFY_DISP, HAVE_PRE_MODIFY_REG): Define.
11900         (HAVE_POST_MODIFY_DISP, HAVE_POST_MODIFY_REG): Define.
11901         (ARM_GO_IF_LEGITIMATE_ADDRESS): Handle pre/post-modify addresses.
11902         (ARM_PRINT_OPERAND_ADDRESS): Likewise.
11903
11904 2003-01-15  Jan Hubicka  <jh@suse.cz>
11905
11906         PR f/9258
11907         * global.c (struct allocno): Add no_stack_reg.
11908         (global_conflicts): Set no_stack_reg.
11909         (find_reg): Use it.
11910
11911         * convert.c (convert_to_real): Fold - and abs only when profitable.
11912         * fold-const.c (fold): Fold truncates in - and abs.
11913
11914 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
11915
11916         Segher Boessenkool  <segher@koffie.nl>
11917
11918         * predict.c (real_inv_br_prob_base): New variable.
11919         (propagate_freq): Use multiply by reciprocal instead of
11920         division.  Don't divide by 1.0 at all.
11921         (estimate_bb_frequencies): Similar.
11922
11923 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
11924
11925         * configure.in (libgcc_visibility): Force disabled on IRIX 6 too.
11926         * configure: Rebuilt.
11927
11928 2003-01-15  Hartmut Penner  <hpenner@de.ibm.com>
11929
11930         * config/s390/s390.c (s390_safe_attr_type): New function.
11931         (s390_use_dfa_pipeline_interface): New function, return true for z900.
11932         (s390_issue_rate): New function.
11933         (s390_agen_dep_p): New function.
11934         (addr_generation_dependency_p): Use 's390_safe_attr_type'.
11935         (s390_adjust_cost): Return 'cost' if new DFA is used.
11936         (s390_adjust_priority): Delete function.
11937         * config/s390/s390-protos.h: (s390_agen_dep_p): New prototype.
11938         * config/s390/s390.md (atype attribute): Attribute 'atype' default
11939         determined by 'op_type'.
11940         (type attribute): Added more type attributes.
11941         * config/s390/2064.md: New DFA description for z900 pipeline.
11942
11943 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
11944
11945         * config/i386/i386.c (ix86_expand_vector_move): Validize constant
11946         forced to memory.  Fixes PR bootstrap/9036.
11947
11948         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Define so as
11949         to set $gp before the call.
11950
11951 2003-01-14  Richard Henderson  <rth@redhat.com>
11952
11953         * config/alpha/alpha.c (alpha_expand_mov): Use correct mode
11954         for force_const_mem.
11955
11956 2003-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11957
11958         * genattr.c (main): Rearrange output to avoid prototype warning.
11959         * genautomata.c (transform_3): Fix ambiguous-else warning.
11960         * local-alloc.c (requires_inout): Add parentheses around
11961         assignment used as truth-value.
11962         * timevar.c: Move system includes above local includes.  Include
11963         toplev.h
11964         * Makefile.in (timevar.o): Depend on toplev.h.
11965
11966 2003-01-14  Denis Chertykov  <denisc@overta.ru>
11967
11968         * config/ip2k/ip2k.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
11969         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
11970
11971         * config/ip2k/ip2k.c (ip2k_attribute_table): New table of
11972         attributes.
11973         (TARGET_ATTRIBUTE_TABLE): New macro.
11974         (valid_machine_type_attribute): Remove.
11975         (valid_machine_decl_attribute): Remove.
11976         (ip2k_handle_progmem_attribute): New function.
11977         (ip2k_handle_fndecl_attribute): New function.
11978
11979 2003-01-10  Andrew Haley  <aph@redhat.com>
11980
11981         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Rename
11982         registers to be in correct order.  Add rip.
11983
11984 2003-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11985
11986         * config/h8300/h8300.md (*andsi3_lshiftrt_9_sb): New.
11987         (*iorsi3_and_lshiftrt_9_sb): Likewise.
11988
11989 2003-01-14  Jan Hubicka  <jh@suse.cz>
11990
11991         * convert.c (strip_float_extensions):  Look for narrowest type handling
11992         FP constants.
11993
11994         * fold-const.c (fold):  Fold (double)float1 CMP (double)float2 into
11995         float1 CMP float2.
11996         * convert.c (strip_float_extensions): Make global.
11997         * tree.h (strip_float_extensions): Declare.
11998
11999 2003-01-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12000
12001         * timevar.def: define TV_NAME_LOOKUP.
12002         * timevar.c (timevar_pop): Be verbose when aborting.
12003
12004 2003-01-13  Andreas Schwab  <schwab@suse.de>
12005
12006         * Makefile.in ($(parsedir)/gengtype-lex.c): Don't change to
12007         $(parsedir), just move the temporary file at the end.
12008         ($(parsedir)/gengtype-yacc.c): Likewise.
12009
12010 2003-01-13  Alexandre Oliva  <aoliva@redhat.com>
12011
12012         * aclocal.m4 (gcc_AC_PROG_GNAT): Don't try to prepend
12013         ${ac_tool_prefix} to ADAC or CC.  Protect them from word
12014         splitting.
12015         * configure: Rebuilt.
12016
12017 2003-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12018
12019         * config/sparc/gmon-sol2.c (moncontrol, monstartup, _mcleanup,
12020         internal_mcount): Don't use PARAMS.
12021         (monstartup, _mcleanup, internal_mcount, moncontrol): Convert to
12022         ISO C style.
12023         (internal_mcount): Use __attribute__, not ATTRIBUTE_UNUSED.
12024
12025 2003-01-13  Andreas Schwab  <schwab@suse.de>
12026
12027         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Output type
12028         directive.
12029
12030 2003-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12031
12032         * config/h8300/h8300.md (*andsi3_lshift_n_sb): New.
12033         (*iorsi3_and_lshiftrt_n_sb): Likewise.
12034
12035 2003-01-12  Mark Mitchell  <mark@codesourcery.com>
12036
12037         PR c++/9264
12038         * c-lex.c (c_lex): Set the token value to error_mark_node for
12039         invalid numeric constants.
12040
12041 2003-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12042
12043         * c-pch.c (asm_file_startpos): Change to `long'.
12044         (pch_init): Use ftell, not ftello.
12045         (c_common_write_pch): Use ftell/fseek, not ftello/fseeko.
12046         Use `long' instead of `off_t'.
12047         (c_common_read_pch): Likewise.
12048         * ggc-common.c (gt_pch_save): Use long/ftell instead of
12049         off_t/ftello.
12050
12051 2003-01-12  Alan Modra  <amodra@bigpond.net.au>
12052
12053         * expr.c (expand_expr <RDIV_EXPR>): Correct recursive call args.
12054
12055 2003-01-11  Richard Earnshaw  (rearnsha@arm.com)
12056
12057         * arm-protos.h (struct cpp_reader): Add declaration.
12058
12059 2003-01-11  Jan Hubicka  <jh@suse.cz>
12060
12061         PR target/9068
12062         * i386.c (output_fp_compare): Fix typo.
12063
12064 2003-01-10  David Edelsohn  <edelsohn@gnu.org>
12065
12066         * config/rs6000/rs6000.c (common_mode_defined): Mark for PCH.
12067
12068 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
12069
12070         * Makefile.in (parsedir): New variable.
12071         (docobjdir): New variable.
12072         (c-parse.o, c-parse.c, c-parse.y, gengtype-lex.o, gengtype-yacc.o,
12073         gengtype-lex.c, gengtype-yacc.c): Use parsedir.
12074         (info, cpp.info, gcc.info, gccint.info, gccinstall.info,
12075         cppinternals.info, generated-manpages, gcov.1, cpp.1, gcc.1, gfdl.7,
12076         gpl.7, fsf-funding.7, maintainer-clean, install-info, install-man):
12077         Use docobjdir.
12078         * objc/Make-lang.in (objc/objc-parse.c, objc/objc-parse.y,
12079         objc.maintainer-clean): Use parsedir.
12080
12081         * varasm.c (struct constant_descriptor_rtx): Remove unused
12082         `label' field.
12083
12084         * toplev.c (documented_lang_options): Document -Winvalid-pch.
12085
12086 2003-01-10  Richard Henderson  <rth@redhat.com>
12087
12088         * config/alpha/alpha.h (NO_PROFILE_COUNTERS): Set.
12089         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Kill.
12090
12091 2003-01-10  Richard Henderson  <rth@redhat.com>
12092
12093         * combine.c (make_compound_operation): Use SCALAR_INT_MODE_P,
12094         not INTEGRAL_MODE_P when widening extensions.
12095
12096 2003-01-10  Richard Henderson  <rth@redhat.com>
12097
12098         * config/alpha/alpha.c (decl_has_samegp): True for !TREE_PUBLIC.
12099
12100 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
12101
12102         * ggc-page.c (ggc_collect): Avoid overflow computing
12103         min_expand.
12104
12105         * Makefile.in (RANLIB_FOR_TARGET): Use RANLIB when native.
12106         (RANLIB_TEST_FOR_TARGET): Delete.  Don't pass down to sub-makes.
12107         Remove calls.
12108         * mklibgcc.in: Remove uses of RANLIB_TEST_FOR_TARGET.
12109
12110 2003-01-10  Jan Hubicka  <jh@suse.cz>
12111
12112         * ifcvt.c (noce_try_addcc): Do not call emit_conditional_add
12113         with weird operands.
12114
12115 2003-01-10  Dale Johannesen <dalej@apple.com>
12116
12117         * calls.c (load_register_parameters):  Add is_sibcall, sibcall_failure
12118         parameters.  Call check_sibcall_argument_overlap if indicated.
12119         (check_sibcall_argument_overlap):  Add mark_stored_args_map
12120         parameter.  Don't mark parameter area as clobbered if not set.
12121         (expand_call):  Adjust calls to above.
12122
12123 2003-01-10 Kelley Cook <kelleycook@comcast.net>
12124
12125         * configure.in (linker read-only and read-write section mixing):
12126         Squelch some assembler warnings.
12127         * configure: Likewise.
12128
12129 2003-01-10  Hartmut Penner  <hpenner@de.ibm.com>
12130
12131         * doc/invoke.texi: Document -mtune, delete -mcpu
12132         option for S/390 and zSeries.
12133         * config/s390/s390.c (s390_tune_string) New variable.
12134         (s390_cpu_string) Delete variable.
12135         (override_options): Use s390_tune_string instead of
12136         s390_cpu_string.
12137         * config/s390/s390.h: (TARGET_OPTIONS) '-mtune' instead of '-mcpu'.
12138
12139 2003-01-10  Kazu Hirata  <kazu@cs.umass.edu>
12140
12141         * config/h8300/h8300.md (*iorsi3_ashift_31): New.
12142
12143 2003-01-10  Josef Zlomek  <zlomekj@suse.cz>
12144
12145         * jump.c (next_nonnote_insn_in_loop): New function.
12146         (copy_loop_headers): Use next_nonnote_insn_in_loop instead of
12147         next_nonnote_insn.
12148         (duplicate_loop_exit_test). Likewise.
12149
12150 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
12151
12152         Merge from pch-branch:
12153
12154         2003-01-06  Geoffrey Keating  <geoffk@apple.com>
12155
12156         * ggc-page.c (ggc_pch_read): Update the statistics after a PCH
12157         load.
12158
12159         2002-12-24  Geoffrey Keating  <geoffk@apple.com>
12160
12161         * cpplib.c (count_registered_pragmas): New function.
12162         (save_registered_pragmas): New function.
12163         (_cpp_save_pragma_names): New function.
12164         (restore_registered_pragmas): New function.
12165         (_cpp_restore_pragma_names): New function.
12166         * cpphash.h (_cpp_save_pragma_names): Prototype.
12167         (_cpp_restore_pragma_names): Likewise.
12168         * cpppch.c (struct save_macro_item): Split from save_macro_data.
12169         (struct save_macro_data): New field 'saved_pragmas'.
12170         (save_macros): Update for changes to struct save_macro_data.
12171         (cpp_prepare_state): Call _cpp_save_pragma_names, update
12172         for changes to struct save_macro_data.
12173         (cpp_read_state): Call _cpp_restore_pragma_names, update
12174         for changes to struct save_macro_data.
12175
12176         * cpppch.c (cpp_read_state): Restore the hashtable references
12177         in the cpp_reader.
12178
12179         * tree.h (built_in_decls): Mark for PCH.
12180
12181         * dbxout.c (lastfile): Don't mark for PCH.
12182
12183         * ggc.h: Document PCH calls into memory managers.
12184
12185         2002-12-18  Geoffrey Keating  <geoffk@apple.com>
12186
12187         * doc/invoke.texi (Precompiled Headers): Document the
12188         directory form of PCH.
12189         * cppfiles.c (validate_pch): New function.
12190         (open_file_pch): Search suitably-named directories for PCH files.
12191
12192         2002-12-14  Geoffrey Keating  <geoffk@apple.com>
12193
12194         * doc/gty.texi (GTY Options): Document chain_next, chain_prev,
12195         reorder options.
12196         (Type Information): Mention that the information is also
12197         used to implement PCH.
12198         * doc/passes.texi (Passes): Improve documentation of
12199         language-specific files.
12200
12201         2002-12-11  Geoffrey Keating  <geoffk@apple.com>
12202
12203         * gengtype.c (struct write_types_data): Add reorder_note_routine field.
12204         (struct walk_type_data): Add reorder_fn field.
12205         (walk_type): Process 'reorder' option.
12206         (write_types_process_field): Reorder parameters to gt_pch_note_object,
12207         call reorder_note_routine.
12208         (write_func_for_structure): Reorder parameters to gt_pch_note_object.
12209         (ggc_wtd): Update for change to struct write_types_data.
12210         (pch_wtd): Likewise.
12211         * ggc.h (gt_pch_note_object): Reorder parameters.
12212         (gt_handle_reorder): New definition.
12213         (gt_pch_note_reorder): New prototype.
12214         * ggc-common.c (struct ptr_data): Add reorder_fn.
12215         (gt_pch_note_object): Reorder parameters.
12216         (gt_pch_note_reorder): New.
12217         (gt_pch_save): Call reorder_fn.
12218         * stringpool.c (gt_pch_n_S): Update for change to gt_pch_note_object.
12219
12220         * dbxout.c (cwd): Don't mark for PCH.
12221
12222         2002-12-09  Geoffrey Keating  <geoffk@apple.com>
12223
12224         * gengtype.c (finish_root_table): Fix some warnings.
12225         (write_root): Handle TYPE_STRING.
12226         * ggc.h (gt_ggc_m_S): Add prototype.
12227         * stringpool.c (gt_ggc_m_S): New function.
12228
12229         2002-11-30  Geoffrey Keating  <geoffk@apple.com>
12230
12231         * dwarf2out.c (dw2_string_counter): New.
12232         (AT_string_form): Use it.
12233         (same_dw_val_p): Update for removal of hashtable.h hash tables.
12234
12235         2002-11-22  Geoffrey Keating  <geoffk@apple.com>
12236
12237         * dbxout.c: Include gt-dbxout.h.
12238         (lastfile): Mark for PCH/GGC.
12239         (cwd): Likewise.
12240         (struct typeinfo): Likewise.
12241         (typevec): Likewise.
12242         (typevec_len): Likewise.
12243         (next_type_number): Likewise.
12244         (struct dbx_file): Likewise.
12245         (current_file): Likewise.
12246         (next_file_number): Likewise.
12247         (dbxout_init): Allocate typevec, struct dbx_file with GGC.
12248         (dbxout_start_source_file): Allocate struct dbx_file with GGC.
12249         (dbxout_end_source_file): Don't free struct dbx_file.
12250         (dbxout_type): Use GGC to allocate typevec.
12251         * Makefile.in (dbxout.o): Depend on gt-dbxout.h, $(GGC_H).
12252         (GTFILES): Add dbxout.c.
12253         (gt-dbxout.h): New rule.
12254
12255         * Makefile.in (c-pch.o): Add debug.h as dependency.
12256         * c-pch.c: Include debug.h.
12257         (pch_init): Call start_source_file to keep nesting right.
12258         (c_common_read_pch): Add orig_name parameter.  Call
12259         start_source_file debug hook.  Call end_source_file debug hook.
12260         * c-common.h (c_common_read_pch): Update prototype.
12261         * cpplib.h (struct cpp_callbacks): Add fourth field to read_pch
12262         callback.
12263         * cppfiles.c (struct include_file): Add new field `header_name'.
12264         (find_or_create_entry): Default it to `name'.
12265         (open_file_pch): Set it to the original header file searched for.
12266         (stack_include_file): Don't stack an empty buffer, just handle
12267         PCH files immediately.  Pass header_name field to read_pch callback.
12268
12269         2002-11-19  Geoffrey Keating  <geoffk@apple.com>
12270
12271         * function.c (funcdef_no): Mark to be saved in a PCH.
12272
12273         2002-11-15  Geoffrey Keating  <geoffk@apple.com>
12274
12275         * ggc-page.c (ggc_pch_read): Remove unused 'bmap_size'.
12276
12277         * cpppch.c (cpp_read_state): Correct size reallocated for 'defn'.
12278
12279         2002-11-14  Geoffrey Keating  <geoffk@apple.com>
12280
12281         * optabs.h (code_to_optab): Add GTY marker.
12282
12283         2002-11-13  Geoffrey Keating  <geoffk@apple.com>
12284
12285         * Makefile.in (GTFILES): Add cpplib.h.
12286         * c-common.h (struct c_common_identifier): Don't skip 'node' field.
12287         * c-decl.c (build_compound_literal): Don't use var_labelno.
12288         * cpplib.h (struct cpp_hashnode): Use gengtype to mark.
12289         * dwarf2asm.c (dw2_force_const_mem): Don't use const_labelno.
12290         * varasm.c (const_labelno): Use gengtype to mark.
12291         (var_labelno): Likewise.
12292         (in_section): Likewise.
12293         (in_named_name): Likewise.
12294         (struct in_named_entry): Likewise.
12295         (in_named_htab): Likewise.
12296         (set_named_section_flags): Use GGC to allocate struct in_named_entry.
12297         (init_varasm_once): Use GGC to allocate in_named_htab.
12298         * config/darwin.c (current_pic_label_num): Mark for PCH.
12299
12300         2002-11-11  Geoffrey Keating  <geoffk@apple.com>
12301
12302         * ggc-simple.c (init_ggc_pch): New stub procedure.
12303         (ggc_pch_count_object): Likewise.
12304         (ggc_pch_total_size): Likewise.
12305         (ggc_pch_this_base): Likewise.
12306         (ggc_pch_alloc_object): Likewise.
12307         (ggc_pch_prepare_write): Likewise.
12308         (ggc_pch_write_object): Likewise
12309         (ggc_pch_finish): Likewise.
12310         (ggc_pch_read): Likewise.
12311
12312         2002-11-08  Geoffrey Keating  <geoffk@apple.com>
12313
12314         * c-pch.c (c_common_write_pch): Write the macro definitions after
12315         the GCed data.
12316         (c_common_read_pch): Call cpp_prepare_state.  Restore the macro
12317         definitions after the GCed data.
12318         * cpplib.c (save_macros): New.
12319         (reset_ht): New.
12320         (cpp_write_pch_deps): Split out of cpp_write_pch.
12321         (cpp_write_pch_state): Split out of cpp_write_pch.
12322         (cpp_write_pch): Delete.
12323         (struct save_macro_data): Delete.
12324         (cpp_prepare_state): New.
12325         (cpp_read_state): Erase and restore initial macro definitions.
12326         * cpplib.h (struct save_macro_data): Forward-declare.
12327         (cpp_write_pch_deps): Prototype.
12328         (cpp_write_pch_state): Prototype.
12329         (cpp_write_pch): Delete prototype.
12330         (cpp_prepare_state): Prototype.
12331         (cpp_read_state): Add fourth argument.
12332
12333         2002-11-04  Geoffrey Keating  <geoffk@apple.com>
12334
12335         * gengtype.c (adjust_field_rtx_def): Don't use skip on valid fields.
12336         (write_array): Remove warning.
12337
12338         * gengtype.c (contains_scalar_p): New.
12339         (finish_root_table): Add the table to all languages, even if it's
12340         empty.
12341         (write_roots): Output gt_pch_scalar_rtab.
12342         * ggc-common.c (gt_pch_save): Write out scalars.
12343         (gt_pch_restore): Read scalars back.
12344
12345         * ggc-page.c (OBJECTS_IN_PAGE): New macro.
12346         (struct page_entry): Delete pch_page field.
12347         (ggc_recalculate_in_use_p): Use OBJECTS_IN_PAGE.
12348         (clear_marks): Likewise.
12349         (sweep_pages): Likewise.
12350         (poison_pages): Likewise.
12351         (ggc_print_statistics): Likewise.
12352         (ggc_pch_read): Don't free objects read from a PCH.
12353         Properly set up in_use_p and page_tails.
12354
12355         2002-10-25  Geoffrey Keating  <geoffk@apple.com>
12356
12357         * gengtype.c (struct write_types_data): New.
12358         (struct walk_type_data): Make `cookie' const; add extra
12359         prev_val item; add `orig_s' field.
12360         (walk_type): Update prev_val[3].
12361         (write_types_process_field): New.
12362         (write_func_for_structure): Take write_types_data structure.
12363         (write_types): New.
12364         (ggc_wtd): New.
12365         (pch_wtd): New.
12366         (write_types_local_process_field): New.
12367         (gc_mark_process_field): Delete.
12368         (write_local_func_for_structure): New.
12369         (gc_mark_func_name): Delete.
12370         (write_gc_types): Delete.
12371         (write_local): New.
12372         (finish_root_table): Don't include 'ggc_' in PFX.
12373         (write_root): Rename from write_root.  Fill pchw field of structures.
12374         (write_array): New.
12375         (write_roots): Rename from write_gc_roots.  Split out to write_array.
12376         Update to changes to other routines.  Write gt_pch_cache_rtab table.
12377         (main): Write PCH walking routines.
12378         * ggc-common.c: Include toplev.h, sys/mman.h.
12379         (ggc_mark_roots): For cache hashtables, also mark the hash table
12380         and the array of entries.
12381         (saving_htab): New.
12382         (struct ptr_data): New.
12383         (POINTER_HASH): New.
12384         (gt_pch_note_object): New.
12385         (saving_htab_hash): New.
12386         (saving_htab_eq): New.
12387         (struct traversal_state): New.
12388         (call_count): New.
12389         (call_alloc): New.
12390         (compare_ptr_data): New.
12391         (relocate_ptrs): New.
12392         (write_pch_globals): New.
12393         (struct mmap_info): New.
12394         (gt_pch_save): New.
12395         (gt_pch_restore): New.
12396         * ggc-page.c (ROUND_UP_VALUE): New.
12397         (ROUND_UP): New.
12398         (struct page_entry): Add field `pch_page'.
12399         (init_ggc): Use ROUND_UP.
12400         (struct ggc_pch_data): Declare.
12401         (init_ggc_pch): New.
12402         (ggc_pch_count_object): New.
12403         (ggc_pch_total_size): New.
12404         (ggc_pch_this_base): New.
12405         (ggc_pch_alloc_object): New.
12406         (ggc_pch_prepare_write): New.
12407         (ggc_pch_write_object): New.
12408         (ggc_pch_finish): New.
12409         (ggc_pch_read): New.
12410         * ggc.h (gt_pointer_operator): New.
12411         (gt_note_pointers): New.
12412         (gt_pch_note_object): New prototype.
12413         (gt_pointer_walker): New.
12414         (struct ggc_root_tab): Use gt_pointer_walker, add `pchw' field.
12415         (LAST_GGC_ROOT_TAB): Update.
12416         (gt_pch_cache_rtab): Declare.
12417         (gt_pch_scalar_rtab): Declare.
12418         (struct ggc_cache_tab): Use gt_pointer_walker, add `pchw' field.
12419         (LAST_GGC_CACHE_TAB): Update.
12420         (gt_pch_save_stringpool): Declare.
12421         (gt_pch_restore_stringpool): Declare.
12422         (gt_pch_p_S): Declare.
12423         (gt_pch_n_S): Declare.
12424         (struct ggc_pch_data): Forward-declare.
12425         (init_ggc_pch): Declare.
12426         (ggc_pch_count_object): Declare.
12427         (ggc_pch_total_size): Declare.
12428         (ggc_pch_this_base): Declare.
12429         (ggc_pch_alloc_object): Declare.
12430         (ggc_pch_prepare_write): Declare.
12431         (ggc_pch_write_object): Declare.
12432         (ggc_pch_finish): Declare.
12433         (ggc_pch_read): Declare.
12434         (gt_pch_save): Declare.
12435         (gt_pch_restore): Declare.
12436         * fold-const.c (size_int_type_wide): Allocate size_htab using GGC.
12437         * emit-rtl.c (init_emit_once): Allocate const_int_htab,
12438         const_double_htab, mem_attrs_htab using GGC.
12439         * c-pch.c: Include ggc.h.
12440         (pch_init): Allow reading PCH file back.
12441         (c_common_write_pch): Call gt_pch_save.
12442         (c_common_read_pch): Call gt_pch_restore.
12443         * c-parse.in (init_reswords): Delete now-untrue comment.
12444         Allocate ridpointers using GGC.
12445         * c-objc-common.c (c_objc_common_finish_file): Write PCH before
12446         calling expand_deferred_fns.
12447         * c-common.h (ridpointers): Mark for GTY machinery.
12448         * Makefile.in (stringpool.o): Update dependencies.
12449         (c-pch.o): Update dependencies.
12450         (ggc-common.o): Update dependencies.
12451         * stringpool.c: Include gt-stringpool.h.
12452         (gt_pch_p_S): New.
12453         (gt_pch_n_S): New.
12454         (struct string_pool_data): New.
12455         (spd): New.
12456         (gt_pch_save_stringpool): New.
12457         (gt_pch_restore_stringpool): New.
12458         * tree.c (init_ttree): Make type_hash_table allocated using GC.
12459
12460         2002-10-04  Geoffrey Keating  <geoffk@apple.com>
12461
12462         * gengtype.c (adjust_field_rtx_def): Don't pass size_t to printf.
12463         (output_mangled_typename): Don't pass size_t to printf.
12464
12465         * tree.h (union tree_type_symtab): Add tag to `address' field.
12466         (union tree_decl_u2): Add tag to 'i' field.
12467         * varasm.c (union rtx_const_un): Add tags to all fields.
12468         * gengtype.c (struct walk_type_data): New.
12469         (output_escaped_param): Take struct walk_type_data parameter.
12470         (write_gc_structure_fields): Delete.
12471         (walk_type): New.
12472         (write_gc_marker_routine_for_structure): Delete.
12473         (write_func_for_structure): New.
12474         (gc_mark_process_field): New.
12475         (gc_mark_func_name): New.
12476         (gc_counter): Delete.
12477         (write_gc_types): Use write_func_for_structure.
12478         (write_gc_roots): Use walk_type.
12479
12480         2002-10-02  Geoffrey Keating  <geoffk@apple.com>
12481
12482         * ggc-common.c (ggc_mark_roots): Delete 'x'.
12483         (ggc_splay_dont_free): Fix warning about unused 'x'.
12484         (ggc_print_common_statistics): Remove warnings.
12485
12486         2002-10-01  Mike Stump  <mrs@apple.com>
12487
12488         * ggc-common.c (ggc_splay_alloc): Actually return the allocated area.
12489         * gengtype.c (write_gc_structure_fields): Handle param[digit]_is.
12490
12491         2002-09-01  Geoffrey Keating  <geoffk@redhat.com>
12492             Catherine Moore  <clm@redhat.com>
12493
12494         * Makefile (c-pch.o): Update dependencies.
12495         (LIBCPP_OBJS): Add cpppch.o.
12496         (cpppch.o): New.
12497         * c-common.c (c_common_init): Don't call pch_init here.
12498         * c-common.h (c_common_read_pch): Update prototype.
12499         * c-lex.c (c_common_parse_file): Call pch_init here.
12500         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-pch, -fpch-deps.
12501         (c_common_decode_option): Handle them.
12502         * c-pch.c: Include c-pragma.h.
12503         (save_asm_offset): Delete.
12504         (pch_init): Move contents of save_asm_offset into here, call
12505         cpp_save_state.
12506         (c_common_write_pch): Call cpp_write_pch.
12507         (c_common_valid_pch): Warn only when -Winvalid-pch.  Call
12508         cpp_valid_state.
12509         (c_common_read_pch): Add NAME parameter.  Call cpp_read_state.
12510         * cppfiles.c (stack_include_file): Update for change to
12511         parameters of cb.read_pch.
12512         * cpphash.h (struct cpp_reader): Add `savedstate' field.
12513         * cpplib.h (struct cpp_options): Add `warn_invalid_pch' and
12514         `restore_pch_deps' fields.
12515         (struct cpp_callbacks): Add NAME parameter to `read_pch'.
12516         (cpp_save_state): Prototype.
12517         (cpp_write_pch): Prototype.
12518         (cpp_valid_state): Prototype.
12519         (cpp_read_state): Prototype.
12520         * cpppch.c: New file.
12521         * flags.h (version_flag): Remove prototype.
12522         * mkdeps.c (deps_save): New.
12523         (deps_restore): New.
12524         * mkdeps.h (deps_save): Prototype.
12525         (deps_restore): Prototype.
12526         * toplev.c (late_init_hook): Delete.
12527         (version_flag): Make static again.
12528         (compile_file): Don't call late_init_hook.
12529         * toplev.h (late_init_hook): Delete.
12530         * doc/cppopts.texi: Document -fpch-deps.
12531         * doc/invoke.texi (Warning Options): Document -Winvalid-pch.
12532
12533         2002-08-27  Geoffrey Keating  <geoffk@redhat.com>
12534
12535         * c-pch.c (c_common_write_pch): Rename from c_write_pch, change
12536         callers.
12537         (c_common_valid_pch): Rename from c_valid_pch, change callers.
12538         (c_common_read_pch): Rename from c_read_pch, change callers.
12539
12540         * c-opts.c (COMMAND_LINE_OPTIONS): Allow -output-pch= to have
12541         a space between it and its argument.
12542
12543         2002-08-24  Geoffrey Keating  <geoffk@redhat.com>
12544
12545         * c-pch.c: New file.
12546         * toplev.h (late_init_hook): Declare.
12547         * toplev.c (late_init_hook): Define.
12548         (version_flag): Make globally visible.
12549         (compile_file): Call late_init_hook.
12550         (init_asm_output): Make output file seekable.
12551         * gcc.c (default_compilers): Update c-header rule.
12552         * flags.h (version_flag): Declare.
12553         * cpplib.h (struct cpp_callbacks): Add 'valid_pch' and 'read_pch'
12554         fields.
12555         * cppfiles.c (struct include_file): Add 'pch' field.
12556         (INCLUDE_PCH_P): New.
12557         (open_file_pch): New.
12558         (stack_include_file): Handle PCH files specially.
12559         (find_include_file): Call open_file_pch instead of open_file.
12560         (_cpp_read_file): Explain why open_file is used instead of
12561         open_file_pch.
12562         * c-opts.c (c_common_decode_option): Correct OPT__output_pch case.
12563         * c-objc-common.c (c_objc_common_finish_file): Call c_write_pch.
12564         * c-lex.c (init_c_lex): Set valid_pch and read_pch fields
12565         in cpplib callbacks.
12566         * c-common.c (pch_file): Correct comment.
12567         (allow_pch): Define.
12568         (c_common_init): Call pch_init.
12569         * c-common.h (allow_pch): Declare.
12570         (pch_init): Declare.
12571         (c_valid_pch): Declare.
12572         (c_read_pch): Declare.
12573         (c_write_pch): Declare.
12574         * Makefile.in (c-pch.o): New.
12575         (C_AND_OBJC_OBJS): Add c-pch.o.
12576         * doc/invoke.texi (Precompiled Headers): Add index entries,
12577         complete truncated paragraph.
12578
12579         2002-08-17  Geoffrey Keating  <geoffk@redhat.com>
12580
12581         * c-common.c: (pch_file): Define.
12582         * c-common.h (pch_file): Declare.
12583         * c-opts.c (COMMAND_LINE_OPTIONS): Add --output-pch=.
12584         (missing_arg): Require --output-pch= to have an argument.
12585         (c_common_decode_option): Handle --output-pch=.
12586         * gcc.c: Document new %V.
12587         (default_compilers): Handle compiling C header files.
12588         (do_spec_1): Implement %V.
12589         (main): Handle "gcc foo.h" without trying to run linker.
12590         * doc/invoke.texi (Invoking GCC): Add new menu item for PCH.
12591         (Overall Options): Document what the driver does with header files,
12592         document new -x option possibilities.
12593         (Invoking G++): More documentation for PCH.
12594         (Precompiled Headers): New.
12595
12596         2002-08-09  Geoffrey Keating  <geoffk@redhat.com>
12597
12598         * ggc.h: Don't include varray.h.  Rearrange functions to be more
12599         organized.
12600         (ggc_add_root): Delete.
12601         (ggc_mark_rtx): Delete.
12602         (ggc_mark_tree): Delete.
12603         (struct ggc_statistics): Remove contents.
12604         * ggc-common.c: Remove unneeded includes.
12605         (struct ggc_root): Delete.
12606         (roots): Delete.
12607         (ggc_add_root): Delete.
12608         (ggc_mark_roots): Don't mark `roots'.  Call ggc_mark_stringpool.
12609         (ggc_print_common_statistics): Remove most of the contents.
12610         * Makefile.in (GGC_H): No longer uses varray.h.
12611         (ggc-common.o): Update dependencies.
12612         (c-parse.o): Add varray.h to dependencies.
12613         (c-common.o): Add varray.h.
12614         * stringpool.c (mark_ident): Use mangled name for tree marker routine.
12615         (mark_ident_hash): Rename to ggc_mark_stringpool.
12616         (init_stringpool): Don't use ggc_add_root.
12617         * c-parse.in: Include varray.h.
12618         * c-common.c: Include varray.h.
12619         * objc/Make-lang.in (objc-act.o): Add varray.h.
12620         * objc/objc-act.c: Include varray.h.
12621
12622         2002-07-25  Geoffrey Keating  <geoffk@redhat.com>
12623
12624         * dwarf2out.c (dw_cfi_oprnd2_desc): Fix ISO-only function definition.
12625         (dw_cfi_oprnd1_desc): Likewise.
12626
12627         2002-07-17  Geoffrey Keating  <geoffk@redhat.com>
12628
12629         * config/alpha/alpha.c (struct alpha_links): Use gengtype to mark;
12630         move out of ifdef.
12631         (alpha_links): Use gengtype to mark; move out of ifdef.
12632         (mark_alpha_links_node): Delete.
12633         (mark_alpha_links): Delete.
12634         (alpha_need_linkage): Use GGC to allocate splay tree, struct
12635         alpha_links, strings.  Don't use ggc_add_root.
12636         * ggc-common.c (ggc_splay_alloc): New.
12637         (ggc_splay_dont_free): New.
12638         * ggc.h (ggc_mark_rtx): Update for changed name mangling.
12639         (ggc_mark_tree): Likewise.
12640         (splay_tree_new_ggc): New.
12641         (ggc_splay_alloc): Declare.
12642         (ggc_splay_dont_free): Declare.
12643         * dwarf2asm.c: Include gt-dwarf2asm.h.
12644         (mark_indirect_pool_entry): Delete.
12645         (mark_indirect_pool): Delete.
12646         (indirect_pool): Use gengtype to mark.
12647         (dw2_force_const_mem): Don't use ggc_add_root.
12648         * Makefile.in (dwarf2asm.o): Depend on gt-dwarf2asm.h.
12649         (GTFILES): Add SPLAY_TREE_H, dwarf2asm.c.
12650         (gt-dwarf2asm.h): Depend on s-gtype.
12651
12652         2002-07-08  Geoffrey Keating  <geoffk@redhat.com>
12653
12654         * tree.h (union tree_type_symtab): Mark `die' field.
12655         * Makefile.in (dwarf2out.o): Update dependencies.
12656         * dwarf2out.c: Use GGC to allocate all structures.  Convert to htab_t
12657         hash tables.
12658         (dw_cfi_oprnd1_desc): New function.
12659         (dw_cfi_oprnd2_desc): New function.
12660         (indirect_string_alloc): Delete.
12661         (debug_str_do_hash): New function.
12662         (debug_str_eq): New function.
12663         (mark_limbo_die_list): Delete.
12664         (dwarf2out_init): Don't call ggc_add_root.
12665
12666 2003-01-09  Vladimir Makarov  <vmakarov@redhat.com>
12667
12668         The following changes are merged from itanium-sched-branch:
12669
12670         2003-01-08  David Edelsohn  <edelsohn@gnu.org>
12671
12672         * doc/md.texi: Clarify assignment of units to automata description.
12673
12674         2003-01-08  Vladimir Makarov  <vmakarov@redhat.com>
12675
12676         * genautomata.c (unit_decl): Remove members
12677         `the_same_automaton_unit' and
12678         `the_same_automaton_message_reported_p'.
12679         (process_unit_to_form_the_same_automaton_unit_lists,
12680         form_the_same_automaton_unit_lists_from_regexp,
12681         form_the_same_automaton_unit_lists, the_same_automaton_lists):
12682         Remove them.
12683         (annotation_message_reported_p): New global variable.
12684         (check_unit_distribution_in_reserv,
12685         check_regexp_units_distribution): New functions.
12686         (check_unit_distributions_to_automata): Rewrite it.
12687
12688         2003-01-04  Vladimir Makarov  <vmakarov@redhat.com>
12689
12690         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
12691         Use continue instead of break if cycle is too big.
12692
12693         2002-12-20  Vladimir Makarov  <vmakarov@redhat.com>
12694
12695         * genautomata.c (check_unit_distributions_to_automata): Output at
12696         most one message for a unit.
12697         (process_unit_to_form_the_same_automaton_unit_lists): Check
12698         automaton of units instead of units themself.
12699
12700         * doc/md.texi: Describe the constraint about assigning unit to
12701         automata.
12702
12703         2002-12-20  Jan Hubicka  <jH@suse.cz>
12704                     Vladimir Makarov  <vmakarov@redhat.com>
12705
12706         * genautomata.c (unit_decl): Add new members `min_occ_cycle_num'
12707         and `in_set_p'.
12708         (gen_cpu_unit): Initialize the new members.
12709         (process_regexp_cycles): Calculate minimal finish cycle too.  Set
12710         up `min_occ_cycle_num'.
12711         (evaluate_max_reserv_cycles): Change the function call.
12712         (CLEAR_BIT): New macro.
12713         (states_union, state_shift): Use the mask.
12714         (initiate_excl_sets, form_reserv_sets_list): Set up `in_set_p'.
12715         (form_reservs_matter): New function.
12716         (make_automaton): Call the function and use the mask.
12717         (estimate_one_automaton_bound): Take `min_occ_cycle_num' into
12718         account.
12719
12720         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
12721
12722         * config/ia64/itanium2.md (lfetch): Change the insn reservation.
12723
12724         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
12725
12726         * config/ia64/ia64.c (bundling): Try to insert 2 nops for M insn
12727         for Itanium.
12728
12729         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
12730
12731         * config/ia64/ia64.c (ia64_override_options): Make itanium2 as
12732         default cpu.
12733
12734         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
12735                 2002-10-31  Dale Johannesen <dalej@apple.com>
12736
12737         * haifa-sched.c (find_set_reg_weight): New function.
12738         (find_insn_reg_weight): Use the new function.
12739         (schedule_block): Do sorting ready queue always
12740         after insn issue.
12741
12742         2002-11-27  Vladimir Makarov  <vmakarov@redhat.com>
12743
12744         * config/ia64/ia64.c (bundling): Use MFI template instead of MLX.
12745
12746         2002-11-19  Vladimir Makarov  <vmakarov@redhat.com>
12747
12748         * haifa-sched.c (choice_entry): New structure.
12749         (choice_stack, cycle_issued_insns): New variables.
12750         (max_issue): Rewrite it.
12751         (choose_ready): Set up ready_try for unknown insns too.
12752         (schedule_block): Allocate and free choice_stack.  Set up
12753         and modify cycle_issued_insns.
12754
12755         * config/ia64/ia64.c (issue_nops_and_insn): Combine insn issue
12756         with and without filling the bundle.
12757         (bundling): Combine calls of issue_nops_and_insn.
12758
12759         2002-10-17  Vladimir Makarov  <vmakarov@redhat.com>
12760
12761         * config/ia64/itanium1.md: New file.
12762
12763         * config/ia64/itanium2.md: New file.
12764
12765         * config/ia64/ia64.md: Move DFA descriptions into the new files.
12766         Remove the old pipeline description.
12767
12768         * config/ia64/ia64.c (ia64_override_options): Add aliases of
12769         itanium processor names.
12770
12771         2002-10-16  Vladimir Makarov  <vmakarov@redhat.com>
12772
12773         * config/ia64/ia64.c (bundling): Print states for Itanium2 too.
12774         (ia64_reorg):  Set up queried unit codes for Itanium2 too.
12775
12776         * config/ia64/ia64.md: Add descriptions for Itanium2.
12777
12778         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
12779
12780         * config/ia64/ia64.h (processor_type): New enumeration.
12781         (ia64_tune, ia64_tune_string): New external declarations.
12782         (TARGET_OPTIONS): Add option `tune='.
12783
12784         * config/ia64/ia64.c (ia64_tune, ia64_tune_string): New global
12785         variables.
12786         (ia64_override_options): Set up `ia64_tune'.
12787         (ia64_sched_reorder2): Set up `clocks' only for Itanium.
12788         (ia64_dfa_new_cycle): Set up `add_cycles' only for Itanium.
12789         (bundling): Add nops for MM-insns only for Itanium.
12790         (ia64_reorg): Allocate and free `clocks' and `add_cycles' only for
12791         Itanium.
12792
12793         * config/ia64/ia64.md (cpu): New attribute.
12794         (DFA description): Enable it only for Itanium.
12795
12796         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
12797                     Richard Henderson  <rth@redhat.com>
12798
12799         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS): Rename it to
12800         MASK_EARLY_STOP_BITS.
12801         (TARGET_TUNE_STOP_BITS): Rename it to TARGET_EARLY_STOP_BITS.
12802         (TARGET_SWITCHES): Rename option `tune-stop-bits' to
12803         `early-stop-bits'.
12804
12805         * config/ia64/ia64.c (ia64_dfa_new_cycle,
12806         final_emit_insn_group_barriers): Use TARGET_EARLY_STOP_BITS
12807         instead of TARGET_TUNE_STOP_BITS.
12808
12809         * doc/invoke.texi: Rename option `-mtune-stop-bits' to
12810         `-mearly-stop-bits'.
12811
12812         * config/ia64/ia64.c (automata_option "v"): Comment it.
12813
12814         2002-10-07  Vladimir Makarov  <vmakarov@redhat.com>
12815
12816         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS, TARGET_TUNE_STOP_BITS):
12817         New macros.
12818         (TARGET_SWITCHES): Add entries for the new option.
12819
12820         * config/ia64/ia64.c (dfa_stop_insn, last_scheduled_insn, rtx
12821         dfa_pre_cycle_insn, ia64_nop): Don't make them as roots for GC.
12822         (stops_p, stop_before_p, clocks_length, clocks, add_cycles): New
12823         global variables.
12824         (ia64_sched_reorder2): Set up `clocks'.
12825         (ia64_variable_issue): Set up `stops_p' and reset `stop_before_p'.
12826         (ia64_dfa_new_cycle): Set up add_cycle.  Permit sorting ready
12827         queue when TARGET_TUNE_STOP_BITS.
12828         (bundling): Insert additional nops for MM-insns.
12829         (final_emit_insn_group_barriers): Add insertion of stop bits
12830         according `stops_p'.
12831         (ia64_reorg): Initiate the new varibales.
12832
12833         * doc/invoke.texi: Add description of option `-mtune-stop-bits'.
12834
12835         2002-10-02  Vladimir Makarov  <vmakarov@redhat.com>
12836
12837         * haifa-sched.c (schedule_block): Modify INSN_TICK of depended
12838         insns at the end of block insn scheduling.
12839
12840         2002-09-30  Vladimir Makarov  <vmakarov@redhat.com>
12841
12842         * sched-deps.c (remove_dependence, group_leader): Remove it.
12843         (add_dependence): Add dependence to group leader to.
12844         (set_sched_group_p): Add dependence to the first insn of the
12845         schedule group too.
12846         (sched_analyze_insn): Make dependence to jump as anti-dependence.
12847         Change true dependence by anti-dependence when
12848         `reg_pending_barrier'.
12849
12850         * sched-rgn.c (init_ready_list, can_schedule_ready_p,
12851         add_branch_dependences): Ignore schedule groups.
12852
12853         * sched-ebb.c (init_ready_list): Ditto.
12854
12855         * (move_insn, set_priorities): Ditto.
12856
12857         * config/ia64/ia64.c (ia64_sched_init): Check that schedule group
12858         flag is clear after reload.
12859         (adjust_cost): Change cost only for output dependencies.
12860
12861         * config/ia64/ia64.md: Add more insns into bypass for MM-insns.
12862
12863         2002-09-26  Vladimir Makarov  <vmakarov@redhat.com>
12864
12865         * Makefile.in (sched-ebb.o): Add `$(TARGET_H)' to the entry.
12866
12867         * target.h (gcc_target): Add member
12868         `dependencies_evaluation_hook'.
12869
12870         * target-def.h (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New
12871         macro.
12872         (TARGET_SCHED): Add initiatialization of the new member.
12873
12874         * sched-ebb.c: Include `target.h'.
12875         (schedule_ebb): Call `dependencies_evaluation_hook'.
12876
12877         * sched-rgn.c (schedule_region): Call
12878         `dependencies_evaluation_hook'.
12879
12880         * config/ia64/ia64.c (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
12881         New macro.
12882         (ia64_dependencies_evaluation_hook): New function.
12883
12884         * doc/tm.texi (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
12885         Describe the new hook.
12886
12887         2002-09-25  Vladimir Makarov  <vmakarov@redhat.com>
12888
12889         * target.h (gcc_target): Add members
12890         `first_cycle_multipass_dfa_lookahead_guard' and `dfa_new_cycle'.
12891
12892         * target-def.h (TARGET_SCHED_DFA_NEW_CYCLE,
12893         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): New
12894         macros.
12895         (TARGET_SCHED): Add initiatialization of the new members.
12896
12897         * haifa-sched.c (schedule_insn): Update last_clock_var for the 1st
12898         insn scheduling too.
12899         (choose_ready): Use `first_cycle_multipass_dfa_lookahead_guard' to
12900         initialize `ready_try'.
12901         (schedule_block): Use `dfa_new_cycle'.  Sort `ready' only unless
12902         `dfa_new_cycle' says not to do it.
12903
12904         * config/ia64/ia64.md: Add DFA Itanium 1 description for insn
12905         bundling.
12906
12907         * config/ia64/ia64.h (CPU_UNITS_QUERY): New macro.
12908
12909         * config/ia64/ia64.c: Include `hashtab.h'.
12910         (ia64_first_cycle_multipass_dfa_lookahead_guard,
12911         ia64_dfa_new_cycle, final_emit_insn_group_barriers,
12912         ia64_dfa_sched_reorder, get_free_bundle_state, free_bundle_state,
12913         initiate_bundle_states, finish_bundle_states, bundle_state_hash,
12914         bundle_state_eq_p, insert_bundle_state,
12915         initiate_bundle_state_table, finish_bundle_state_table,
12916         try_issue_nops, try_issue_insn, issue_nops_and_insn, get_max_pos,
12917         get_template, get_next_important_insn, bundling): New functions.
12918         (ia64_internal_sched_reorder): Remove it.
12919         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
12920         TARGET_SCHED_DFA_NEW_CYCLE): New macros.
12921         (ia64_safe_itanium_requires_unit0): Remove it.
12922         (group_barrier_needed_p): Place group barrier right before a real
12923         insn.
12924         (bundle, ia64_packet, NR_PACKETS, type_names, packets, packets):
12925         Remove them.
12926         (bundle_name): New variable.
12927         (_0mii_, _0mmi_, _0mfi_, _0mmf_, _0bbb_, _0mbb_, _0mib_, _0mmb_,
12928         _0mfb_, _0mlx_, _1mii_, _1mmi_, _1mfi_, _1mmf_, _1bbb_, _1mbb_,
12929         _1mib_, _1mmb_, _1mfb_, _1mlx_, pos_1, pos_2, pos_3, pos_4, pos_5,
12930         pos_6, dfa_stop_insn, last_scheduled_insn, dfa_state_size,
12931         temp_dfa_state, prev_cycle_state): New global variables.
12932         (insn_matches_slot, maybe_rotate, finish_last_head,
12933         rotate_one_bundle, rotate_one_bundles, nop_cycles_until,
12934         cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn,
12935         find_best_packet, itanium_reorder, dump_current_packet,
12936         schedule_stop, gen_nop_type, ia64_emit_nops): Remove them.
12937         (sched_data, sched_ready, sched_types): Remove them.
12938         (ia64_sched_init): Initiate only `last_scheduled_insn' and call
12939         `init_insn_group_barriers'.
12940         (ia64_sched_reorder, ia64_sched_reorder2): Call
12941         ia64_dfa_sched_reorder.
12942         (ia64_variable_issue): Rewrite it.
12943         (bundle_state): New structure.
12944         (index_to_bundle_states, bundle_states_num,
12945         allocated_bundle_states_chain, free_bundle_state_chain): New
12946         global variables.
12947         (ia64_sched_finish): Add stop bits and call `bundling' after the
12948         2nd insn scheduling.
12949         (ia64_use_dfa_pipeline_interface): Return zero always.
12950         (ia64_first_cycle_multipass_dfa_lookahead): Return 6 for the 2nd
12951         insn scheduling.
12952         (ia64_init_dfa_pre_cycle_insn): Initialize `dfa_state_size',
12953         `temp_dfa_state', `prev_cycle_state', and `dfa_stop_insn'.
12954         (ia64_reorg): Add bundling insns.
12955
12956         * doc/tm.texi
12957         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
12958         TARGET_SCHED_DFA_NEW_CYCLE): Describe the new hooks.
12959
12960         2002-09-23  Vladimir Makarov  <vmakarov@redhat.com>
12961
12962         * config/ia64/ia64.md: Add Itanium1 DFA description.
12963         (itanium_class): Add `nop' and `pre_cycle'.  Add
12964         define_function_unit for `nop'.
12965         (nop): Change attribute `itanium_class'.
12966         (pre_cycle): New define_insn.
12967
12968         * config/ia64/ia64-protos.h (bundling_p): New external variable.
12969         (ia64_st_address_bypass_p, ia64_ld_address_bypass_p,
12970         ia64_produce_address_p): New function prototypes.
12971
12972         * config/ia64/ia64.c (bundling_p): New global variable.
12973         (ia64_use_dfa_pipeline_interface,
12974         ia64_first_cycle_multipass_dfa_lookahead,
12975         ia64_init_dfa_pre_cycle_insn, ia64_dfa_pre_cycle_insn): New
12976         functions.
12977         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
12978         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
12979         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
12980         TARGET_SCHED_DFA_PRE_CYCLE_INSN): New macros.
12981         (ia64_sched_init, ia64_sched_reorder, ia64_sched_reorder2,
12982         ia64_variable_issue, ia64_sched_finish): Do nothing before reload.
12983         (dfa_pre_cycle_insn): New variable.
12984
12985         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
12986
12987         * rtl.def (FINAL_PRESENCE_SET, FINAL_ABSENCE_SET): New
12988         constructions.
12989
12990         * genattrtab.h (gen_final_presence_set, gen_final_absence_set):
12991         New function prototypes.
12992
12993         * genattrtab.c (main): Process the new constructions.
12994
12995         * genautomata.c (gen_presence_absence_set,
12996         process_presence_absence_names, process_presence_absence_patterns,
12997         add_presence_absence, check_absence_pattern_sets): Add parameter
12998         `final_p'.
12999         (unit_decl): Add new members `final_presence_list' and
13000         `final_absence_list'.
13001         (unit_pattern_rel_decl): Add new member `final_p'.
13002         (gen_final_presence_set, gen_final_absence_set): New functions.
13003         (process_decls): Use member `final_p'.
13004         (temp_reserv): New global variable.
13005         (reserv_sets_are_intersected): Add processing `final_presence_set'
13006         and `final_absence_set'.
13007         (initiate_states): Allocate `temp_reserv'.
13008         (unit_final_presence_set_table, unit_final_absence_set_table): New
13009         gloabal variables.
13010         (initiate_presence_absence_pattern_sets): Initiate them.
13011         (NDFA_to_DFA): Fix typo.
13012         (output_description): Output `final_presence_set' and
13013         `final_absence_set'.
13014
13015         * doc/md.texi (final_presence_set, final_absence_set): Describe
13016         them.
13017
13018         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
13019
13020         * genautomata.c (transform_3): Process a missing case (nothing on
13021         unit place).
13022
13023         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
13024
13025         * rtl.def (DEFINE_QUERY_CPU_UNIT, AUTOMATA_OPTION): Change
13026         comments about queried units and the minimization.
13027
13028         * doc/md.texi: Ditto.
13029
13030         * genautomata.c (create_composed_state): Return nonzero if the new
13031         state has been created.
13032         (first_cycle_unit_presence): New function.
13033         (state_is_differed): Add new parameter.  Use the new function.
13034         Take queried units into account.
13035         (partition_equiv_class): Pass additional parameter to
13036         `state_is_differed'.
13037         (merge_states): Process composed states too.
13038         (build_automaton, create_automata, output_min_issue_delay_table,
13039         output_tables, output_statistics): Output more information.
13040         (output_reserved_units_table): Use function
13041         `first_cycle_unit_presence'.
13042         (output_tables): Output table of queried units even if the
13043         minimization is switched on.
13044         (write_automata): Output code for querying units even if the
13045         minimization is switched on.
13046
13047         2002-09-19  Vladimir Makarov  <vmakarov@redhat.com>
13048
13049         * rtl.def (PRESENCE_SET, ABSENCE_SET): Add comments about extended
13050         syntax of the constructions.
13051
13052         * doc/md.texi (PRESENCE_SET, ABSENCE_SET): Add description of
13053         extended syntax of the constructions.
13054
13055         * genautomata.c (unit_rel_decl): Rename it to
13056         `unit_pattern_rel_decl'.
13057         (pattern_set_el, pattern_reserv): New structures.
13058         (pattern_set_el_t, pattern_reserv_t): New types.
13059         (gen_presence_absence_set): New function.
13060         (process_presence_absence): Remove it.
13061         (process_presence_absence_names,
13062         process_presence_absence_patterns): New functions.
13063         (get_presence_absence_set): Remove it.
13064         (initiate_presence_absence_sets): Rename it on
13065         `initiate_presence_absence_pattern_sets'.  Use new function
13066         `form_reserv_sets_list'.
13067         (form_reserv_sets_list, check_presence_pattern_sets,
13068         check_absence_pattern_sets, output_pattern_set_el_list): New
13069         functions.
13070         (unit_decl): Change types of members `presence_list' and
13071         `absence_list'.
13072         (unit_rel_decl): Rename member `names_num' to `all_names_num'.
13073         (decl): Change types of members `excl', `presence', and `absence'.
13074         (get_str_vect): Rename `par_flag' to `paren_p'.  Add null element
13075         at the end of the vector.
13076         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
13077         gen_automaton, gen_regexp_repeat, gen_regexp_allof,
13078         gen_regexp_oneof, gen_regexp_sequence): Use boolean values.
13079         (gen_presence_set, gen_absence_set): Use new function
13080         `gen_presence_absence_set'.
13081         (add_presence_absence): Process `pattern_list' instead of
13082         `source_list'.
13083         (process_decls): USe new functions
13084         `process_presence_absence_names' and
13085         `process_presence_absence_patterns'.
13086         (reserv_sets_are_intersected): Use new function
13087         `check_presence_pattern_sets'.
13088         (presence_set, absence_set): Remove them.
13089         (unit_presence_set_table, unit_absence_set_table): New global
13090         variables.
13091         (output_description): Use new function
13092         `output_pattern_set_el_list'.
13093         (generate): Use `initiate_presence_absence_pattern_sets'.
13094
13095         2002-09-18  Vladimir Makarov  <vmakarov@redhat.com>
13096
13097         * genattr.c (main): Add output of prototype of new interface
13098         function `dfa_clean_insn_cache'.
13099
13100         * genautomata.c (output_dfa_clean_insn_cache_func): New function.
13101         (DFA_CLEAN_INSN_CACHE_FUNC_NAME): New macro.
13102         (output_dfa_start_func): Use function `dfa_clean_insn_cache' in
13103         the generated code.
13104         (write_automata): Call the new function.
13105
13106 2003-01-09  Jan Hubicka  <jh@suse.cz>
13107
13108         * i386.md (unit, prefix_0f, memory attributes): Hanlde sseicvt
13109         correctly.
13110
13111 2003-01-09  Paolo Carlini  <pcarlini@unitus.it>
13112
13113         * doc/tm.texi (EXTRA_ADDRESS_CONSTRAINT): Fix typo.
13114
13115 2003-01-09  J"orn Rennecke <joern.rennecke@superh.com>
13116
13117         * defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument.
13118         (EXTRA_ADDRESS_CONSTRAINT): Likewise.
13119         (CONSTRAINT_LEN): Provide default definition.
13120         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
13121         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Likewise.
13122         (EXTRA_CONSTRAINT_STR): Likewise.
13123         (REG_CLASS_FROM_CONSTRAINT): Define.
13124         * genoutput.c (check_constraint_len, constraint_len): New functions.
13125         (validate_insn_alternatives): Check CONSTRAINT_LEN for each
13126         constraint / modifier.
13127         (gen_insn): Call check_constraint_len.
13128         * local-alloc.c (block_alloc): Update to use new macros / pass
13129         second argument to EXTRA_{MEMORY,ADDRESS}_CONSTRAINT.
13130         * ra-build.c (handle_asm_insn): Likewise.
13131         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
13132         (constrain_operands, peep2_find_free_register): Likewise.
13133         * regclass.c (record_operand_costs, record_reg_classes): Likewise.
13134         * regmove.c (find_matches): Likewise.
13135         * reload.c (push_secondary_reload, find_reloads): Likewise.
13136         (alternative_allows_memconst): Likewise.
13137         * reload1.c (maybe_fix_stack_asms): Likewise.
13138         (reload_cse_simplify_operands): Likewise.
13139         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
13140         * doc/tm.texi (CONSTRAINT_LEN, REG_CLASS_FROM_CONSTRAINT): Document.
13141         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
13142         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR): Likewise.
13143         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Add STR argument.
13144         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Likewise.
13145
13146         * sh.h (OVERRIDE_OPTIONS): Allow first scheduling pass for SH5.
13147
13148 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
13149
13150         * config/h8300/h8300.md (*extzv_1_r_h8300): Correct the insn
13151         length.
13152         (*extzv_1_r_h8300hs): Likewise.
13153         (*extzv_1_r_inv_h8300): Likewise.
13154         (*extzv_1_r_inv_h8300hs): Likewise.
13155
13156 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
13157
13158         * config/h8300/h8300.h (PREDICATE_CODES): New.
13159
13160 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
13161
13162         * config/h8300/h8300.md (*addsi3_upper): New.
13163         (*iorsi3_shift): Likewise.
13164         (two splitters): Likewise.
13165         (*addsi3_shift): Likewise.
13166         (two splitters): Likewise.
13167
13168 2003-01-09  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
13169
13170         * Makefile.in (optabs.o): Add dependency on basic-block.h.
13171         * basic-block.h (control_flow_insn_p): Fuction was exported.
13172         * cfgbuild.c (control_flow_insn_p): Fuction was made non-static.
13173         * optabs.c (emit_libcall_block): Emit REG_LIBCALL and REG_RETVAL
13174         notes only when the region is contained in a single basic block.
13175
13176 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
13177
13178         PR inline-asm/8832
13179         * tree.h (expand_asm): New prototype.
13180         * stmt.c (expand_asm): Set the MEM_VOLATILE_P flag if instructed
13181         to do so.
13182         * c-semantics (genrtl_asm_stmt): Pass the RID_VOLATILE qualifier
13183         down to expand_asm.
13184         * c-typeck.c (simple_asm_stmt): Set the RID_VOLATILE qualifier.
13185         * rtlanal.c (volatile_insn_p) [ASM_INPUT]: Test the MEM_VOLATILE_P flag.
13186         (volatile_refs_p) [ASM_INPUT]: Likewise.
13187         (side_effects_p) [ASM_INPUT]: Likewise.
13188
13189 2003-01-09  Jan Hubicka  <jh@suse.cz>
13190
13191         * i386.md (*mul*): FIx constraints; remove confused comment; fix
13192         athlon_decode attributes
13193         (imul/k8 optimization peep2s): New.
13194
13195         * athlon.md (athlon_ssecmp*): Handle ssecomi as well.
13196         * i386.md (type attribute): Add ssecomi.
13197         (unit, memory, prefix attributes): Handle ssecomi.
13198         (cvt?2? patterns): Fix athlon_decode attribute
13199         (comi patterns): Set attribute to ssecomi.
13200
13201         PR target/8343
13202         * m68k.md (umulsidi, mulsidi expanders): Use register operand.
13203
13204 2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
13205
13206         * config/mips/mips.h (PREDICATE_CODES): Add ADDRESSOF for predicates
13207         that match register_operands.
13208         * config/mips/mips.c (reg_or_0_operand, true_reg_or_0_operand): Make
13209         register_operand the default case.
13210
13211 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
13212
13213         PR c/8032
13214         * c-typeck.c (process_init_element) [RECORD_TYPE]: For
13215         an empty element, do not advance the pointer to unfilled
13216         fields if there are pending initializers.
13217
13218 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
13219
13220         * Makefile.in (ORDINARY_FLAGS_TO_PASS): Also pass DESTDIR.
13221         (install-gcc-tooldir, install-cpp, installdirs,
13222         install-common, install-driver, install-info, install-man,
13223         install-headers, install-include-dir, install-headers-tar,
13224         install-headers-cpio, install-headers-cp, install-mkheaders,
13225         install-collect2, uninstall): Prepend $(DESTDIR) to
13226         destination paths in all (un)installation commands.
13227         (install-driver): Rewrite $(LN) commands to support DESTDIR
13228         with "ln" as well as with "ln -s".
13229         (installdirs): Simply use mkinstalldirs.
13230         (install-libgcc, install-multilib): Also pass DESTDIR.
13231         * mklibgcc.in: Prepend $(DESTDIR) to $(libsubdir) in the
13232         installation destination variable ldir.
13233         * config/alpha/t-osf4, config/arm/t-netbsd,
13234         config/ia64/t-hpux, config/mips/t-iris5-6,
13235         config/pa/t-hpux-shlib, config/rs6000/t-aix43,
13236         config/rs6000/t-aix52, config/t-slibgcc-elf-ver,
13237         config/t-slibgcc-sld: Prepend $$(DESTDIR) to $$(slibdir)
13238         in the definition of SHLIB_INSTALL.
13239         * config/arc/t-arc (install-multilib-arc): Prepend $(DESTDIR) to
13240         $(libsubdir) in the installation commands.
13241
13242 2003-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
13243
13244         * config/sh/sh.h (CASE_VECTOR_MODE): Use SImode for a
13245         non-optimizing compile.
13246         (ASM_OUTPUT_ADDR_VEC_ELT): Use .long for a non-optimizing
13247         compile.
13248
13249 2003-01-08  Douglas B Rupp  <rupp@gnat.com>
13250
13251         * config/i386/i386.c (ix86_attribute_table): Add new attributes
13252         ms_struct and gcc_struct.
13253         (ix86_handle_struct_attribute): New function.
13254         (ix86_ms_bitfield_layout_p): Update to take new attributes
13255         into account.
13256         * doc/extend.texi: Document new attributes.
13257         * testsuite/gcc.dg/bf-ms-attrib.c: New test.
13258
13259 2003-01-08  Danny Smith  <dannysmith@users.sourceforge.net>
13260
13261         PR optimization/8750
13262         * config/i386/i386.c (ix86_expand_prologue): Don't allow
13263         scheduling pass to move insns across __alloca call.
13264
13265 2003-01-08  Dale Johannesen  <dalej@apple.com>
13266
13267         * config/rs6000/rs6000.md:  Replace *store_multiple_string
13268         with *stmsi[3-8].
13269
13270 2003-01-08  Jeff Sturm  <jsturm@one-point.com>
13271
13272         PR target/9210
13273         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info):
13274         Set SYMBOL_REF_FLAG on local data sym_ref.
13275
13276 2003-01-08  Dale Johannesen  <dalej@apple.com>
13277
13278         * function.c (assign_parms):  Don't set pretend_args_size if
13279           REG_PARM_STACK_SPACE.
13280           config/rs6000/rs6000.c (setup_incoming_varargs):  Don't set
13281           pretend_args_size.
13282
13283 2003-01-08  Nathanael Nerode  <neroden@gcc.gnu.org>
13284
13285         * gcc.hlp: Delete.
13286
13287 2003-01-09  Jan Hubicka  <jh@suse.cz>
13288
13289         * i386.c  (ix86_expand_int_addcc): Fix thinko.
13290
13291 2003-01-08  David Edelsohn  <edelsohn@gnu.org>
13292
13293         * config/rs6000/rs6000.h (FUNCTION_MODE): Always use SImode.
13294         * config/rs6000/rs6000.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine
13295         as hook_bool_tree_hwi_hwi_tree_true.
13296         (rs6000_emit_allocate_stack): Use TARGET_32BIT.
13297         (rs6000_emit_epilogue): Same.
13298         (rs6000_output_mi_thunk): Re-implement as RTL.
13299         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Call
13300         xcoffout_declare_function if any debugging enabled.
13301
13302 2003-01-08  Chris Demetriou  <cgd@broadcom.com>
13303
13304         * config.gcc (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*): New
13305         targets, to support MIPS32 Release 2 (MIPS32R2) configurations.
13306         * config/mips/mips.h (enum processor_type): Rename
13307         PROCESSOR_R4KC to PROCESSOR_4KC, PROCESSOR_R5KC to
13308         PROCESSOR_5KC, and PROCESSOR_R20KC to PROCESSOR_20KC.
13309         Add PROCESSOR_M4K.
13310         (TARGET_MIPS4KC, TARGET_MIPS5KC): Update for the renaming.
13311         (ISA_MIPS32R2): New define.
13312         (GENERATE_MULT3_SI, ISA_HAS_CONDMOVE, ISA_HAS_8CC)
13313         (ISA_HAS_MADD_MSUB, ISA_HAS_CLZ_CLO)
13314         (ISA_HAS_PREFETCH): Add support for MIPS32R2.
13315         (MIPS_ISA_DEFAULT): Likewise.  Also, fix indentation.
13316         (TARGET_CPU_CPP_BUILTINS): Add support for MIPS32R2.  Add new
13317         predefine __mips_isa_rev for MIPS32, MIPS32R2, and MIPS64.
13318         (ISA_HAS_ROTR_SI): Add support for MIPS32R2, and avoid if
13319         compiling MIPS16 code.
13320         (ISA_HAS_ROTR_DI): Do not use if compiling MIPS16 code, and fix
13321         comment.
13322         (ISA_HAS_SEB_SEH): New define.
13323         (ASM_SPEC, LINK_SPEC): Pass -mips32r2 to assembler and linker.
13324         * config/mips/mips.c (mips_cpu_info_table): Adjust for enum
13325         processor_type value renaming.  Add support for MIPS32R2.
13326         Clean up comments, and move "sb1" entry with other MIPS64 CPU
13327         entries.
13328         (override_options): Reimplement -mipsN option handling so that
13329         it will work correctly for -mips32r2.  Avoid branch-likely
13330         instructions on MIPS32R2.
13331         * config/mips/mips.md (mulsi3_mult3): Add support for MIPS32R2.
13332         (extendhisi2): Use extendhisi2_hw if ISA_HAS_SEB_SEH.
13333         (extendqisi2): Use extendqisi2_hw if ISA_HAS_SEB_SEH.
13334         (extendhisi2_hw, extendqisi2_hw): New.
13335         * config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Add support
13336         for MIPS32R2.  Add new predefine __mips_isa_rev for MIPS32,
13337         MIPS32R2, and MIPS64.
13338         (LINK_SPEC): Pass -mips32r2 to linker.
13339         * config/mips/t-isa3264: Built -mips32r2 multilibs.
13340         * doc/invoke.texi (MIPS Options): Add -mips32r2, add support
13341         for mips32r2 in the -march description.  Alphabetically sort
13342         CPU names in the -march description.  Add long-missed -mips32
13343         and -mips64 to MIPS option summary.
13344
13345         * config.gcc: Update copyright years to include 2003.
13346         * config/mips/mips.c: Likewise.
13347         * config/mips/mips.h: Likewise.
13348         * config/mips/mips.md: Likewise.
13349         * config/mips/netbsd.h: Likewise.
13350         * doc/invoke.texi: Likewise.
13351
13352 2003-01-08  Andreas Schwab  <schwab@suse.de>
13353
13354         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): Fix spelling of cache
13355         variable.
13356         * configure: Regenerated.
13357
13358 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
13359
13360         * config/h8300/h8300.c (output_logical_op): Replace byte/word
13361         extraction of det with b0, b1, w0, w2, etc.
13362         (compute_logical_op_length): Likewise.
13363         (compute_logical_op_cc): Likewise.
13364
13365 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
13366
13367         * config/h8300/h8300.h (CONSTANT_ADDRESS_P): Allow CONST and
13368         HIGH on all variants.
13369
13370 2003-01-08  Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz>
13371
13372         * Makefile.in (PARTITION_H): New.
13373         (BASIC_BLOCK_H): Added hard-reg-set.h and $(PARTITION_H).
13374         * basic-block.h: Include hard-reg-set.h.
13375
13376 2003-01-08  Richard Earnshaw  <rearnsha@arm.com>
13377
13378         * arm.h (ENABLE_XF_PATTERNS): Delete.
13379         * arm.md (addxf3, subxf3, mulxf3, divxf3, modxf3, negxf2, absxf2)
13380         (sqrtxf2, floatsixf2, fix_truncxfsi2, truncxfsf2, truncxfdf2)
13381         (extendsfxf2, extenddfxf2, movxf, cmpxf, cmpxf_insn)
13382         (cmpxf_trap): Delete.
13383         (movxf_hard_insn): Remove test of ENABLE_XF_PATTERNS.
13384
13385 2003-01-08  Jan Hubicka  <jh@suse.cz>
13386
13387         * i386.md (adddi3_carry_rex64, subdi3_carry_rex64): Name pattern.
13388         (addhi3_carry, addqi3_carry, subhi3_carry, subqi3_carry): New patterns.
13389         (add??cc): New expanders.
13390         * i386.c (expand_int_addcc): New function.
13391         * i386-protos.h (expand_int_addcc): Declare.
13392
13393         * alias.c (memory_modified_1): New static function.
13394         (memory_modified): New static varaible.
13395         (memory_modified_in_insn_p): New global function.
13396         * rtl.h (memory_modified_in_insn_p): Declare.
13397         * rtlanal.c (modified_between_p, modified_in_p): Be smart about memory
13398         references.
13399
13400         * expr.h (emit_conditional_add): Declare.
13401
13402 2003-01-07  Janis Johnson  <janis187@us.ibm.com>
13403
13404         PR other/8947
13405         * doc/invoke.texi (-malign-double): Explain that the option breaks
13406         binary compatibility.
13407
13408 2003-01-08  Andreas Schwab  <schwab@suse.de>
13409
13410         * config.gcc (m68k-*-linux*): Don't set extra_parts and gnu_ld,
13411         should come from the generic *-*-linux* entry.
13412
13413 2003-01-07  Jan Hubicka  <jh@suse.cz>
13414
13415         * cselib.c (cselib_current_insn_in_libcall): New static variable.
13416         (new_elt_loc_list, cselib_process_insn, cselib_init): Keep track on whether
13417         we are inside libcall.
13418         * cselib.h (elt_loc_list): Add in_libcall.
13419         * gcse.c (do_local_cprop): Do not copy propagate using insns
13420         in libcalls.
13421
13422 2003-01-07  David Edelsohn  <edelsohn@gnu.org>
13423
13424         * doc/tm.texi (TARGET_SCHED_VARIABLE_ISSUE): CLOBBER and USE do
13425         not normally affect to issue rate.
13426
13427 2003-01-07  Jan Hubicka  <jh@suse.cz>
13428
13429         * genopinit.c (optabs): Add addc_optab.
13430         * ifcvt.c (noce_try_store_flag): Rename to ...
13431         (noce_try_addcc): ... this one; handle generic conditional increment.
13432         (noce_process_if_block): Update noce_try_addcc call.
13433         * optabs.c (emit_conditional_add): New.
13434         (init_obtabs): Initialize addc_optab.
13435         * optabs.h (optab_index): Add OTI_addcc.
13436         (addcc_optab): New macro.
13437         * md.texi: Document addMcc
13438
13439         PR target/8322
13440         * i386.c (ix86_init_mmx_sse_builtins): Constify arguments of loads.
13441         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
13442         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
13443
13444         * reload1.c (delete_output_reload): Avoid repeated attempts
13445         to delete insn.
13446
13447 2003-01-07  Andreas Schwab  <schwab@suse.de>
13448
13449         * configure.in: Restore CFLAGS before gcc_AC_INITFINI_ARRAY.
13450         Move --enable-initfini-array check ...
13451         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): ... here.  Define
13452         HAVE_INITFINI_ARRAY also when --enable-initfini-array is given.
13453         Don't AC_SUBST gcc_cv_initfinit_array.  Use AC_TRY_RUN.
13454         * configure: Rebuild.
13455
13456 2003-01-07  Richard Henderson  <rth@redhat.com>
13457
13458         * alias.c (find_base_value): Only use new_reg_base_value shortcut
13459         if the register is set once.
13460
13461 2003-01-07  Sylvain Pion <Sylvain.Pion@mpi-sb.mpg.de>
13462
13463         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
13464         __builtin_ia32_ldmxcsr and __builtin_ia32_stmxcsr are SSE, not MXX.
13465         * config/i386/i386.md (ldmxcsr, stmxcsr): SSE, not MMX.
13466
13467 2003-01-07  Benjamin Kosnik  <bkoz@redhat.com>
13468             Sunil Davasam  <sunil.k.davasam@intel.com>
13469
13470         PR libstdc++/9076
13471         * unwind-dw2.c (execute_cfa_program): DW_CFA_undefined,
13472         DW_CFA_same_value, read next and ignore.
13473
13474 2003-01-07  Richard Henderson  <rth@redhat.com>
13475
13476         * cfganal.c (flow_call_edges_add): Don't crash on noreturn call.
13477
13478 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
13479
13480         * cfg.c: Include alloc-pool.h
13481         (edge_pool): New pool.
13482         (bb_pool): New pool.
13483         (first_deleted_edge): Remove.
13484         (first_deleted_block): Remove.
13485         (init_flow): Alloc/free the pools.
13486         (free_edge): Use pools.
13487         (alloc_block): Ditto.
13488         (expunge_block): Ditto.
13489         (cached_make_edge): Ditto.
13490
13491         * Makefile.in (cfg.o): Add alloc-pool.h dependency.
13492
13493 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
13494
13495         * et-forest.c: Include alloc-pool.h.
13496         (struct et_forest): Add node_pool and occur_pool.
13497         (et_forest_create): Create the new pools.
13498         (et_forest_delete): Delete them.
13499         (et_forest_add_node): Allocate and free using pools.
13500         (et_forest_add_edge): Ditto.
13501         (et_forest_remove_node): Ditto.
13502         (et_forest_remove_edge): Ditto.
13503
13504         * Makefile.in (et-forest.o): Add alloc-pool.h dependency.
13505
13506 2003-01-07  Kazu Hirata  <kazu@cs.umass.edu>
13507
13508         * config/h8300/h8300.c (output_logical_op): Simplify and
13509         optimize the handling of SImode.
13510         * config/h8300/h8300.c (compute_logical_op_length): Update
13511         accordingly.
13512         * config/h8300/h8300.c (compute_logical_op_cc): Likewise.
13513
13514 2003-01-07  Richard Sandiford  <rsandifo@redhat.com>
13515
13516         * config/mips/mips.c (mips_va_arg): In the EABI code, apply the
13517         big-endian correction to indirect arguments too.
13518
13519 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
13520
13521         Segher Boessenkool  <segher@koffie.nl>
13522
13523         * config/rs6000/rs6000.c (rs6000_reg_names): Add missing registers.
13524         (alt_reg_names): Ditto, fix formatting.
13525         * config/rs6000/rs6000.h (DEBUG_REGISTER_NAMES): Fix formatting.
13526
13527 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13528
13529         * config/h8300/h8300.c (final_prescan_insn): Constify uid.
13530         (output_logical_op): Constify intval and det.
13531         (compute_logical_length): Likewise.
13532         (compute_logical_cc): Likewise.
13533         (output_a_shift): Constify mask.
13534         (h8300_encode_label): Constify len.
13535
13536 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13537
13538         * config/h8300/h8300.c (h8300_expand_prologue): Remove fsize.
13539         (h8300_expand_epilogue): Likewise.
13540
13541 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
13542
13543         Segher Boessenkool  <segher@koffie.nl>
13544
13545         * config/rs6000/altivec.md: Remove spaces from assembler
13546         instruction argument lists.
13547
13548 2003-01-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13549
13550         * config/c4x/c4x.c (c4x_naked_function_p): Rename from
13551         c4x_assembler_function_p.
13552         (c4x_null_epilogue_p): Complement return value, all uses updated.
13553         (c4x_insert_attributes): Add naked.
13554         * config/c4x/c4x.md (c4x_null_epilogue_p): Changes uses.
13555         * doc/extend.texi: Update C4x function attributes.
13556
13557 2003-01-06  Richard Henderson  <rth@redhat.com>
13558
13559         * config/alpha/alpha.c (alpha_encode_section_info): Adjust symbol_str
13560         properly when changing "local-ness".
13561         * config/alpha/alpha.md (movdi_er_high_g): Allow all symbols.
13562
13563 2003-01-06  Dale Johannesen  <dalej@apple.com>
13564
13565         * config/darwin-protos.h:  Add prototypes for new section functions.
13566
13567 2003-01-06  Chris Demetriou  <cgd@broadcom.com>
13568
13569         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*): Default ABI
13570         to EABI.
13571
13572 2003-01-06  Zack Weinberg  <zack@codesourcery.com>
13573
13574         * hwint.h: If the current compiler has no 64-bit type at all,
13575         make HOST_WIDEST_INT 32 bits.
13576
13577 2003-01-06  Eric Christopher  <echristo@redhat.com>
13578
13579         * config/mips/mips.md (movdf_internal2): Fix constraints.
13580
13581 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13582
13583         * config/h8300/h8300.md (*twoshifts_l16_r1): New.
13584
13585 2003-01-06  Richard Sandiford  <rsandifo@redhat.com>
13586
13587         * config/mips/mips.md (leadi): Use dla rather than la.
13588
13589 2003-01-06  Svein E. Seldal  <Svein.Seldal@solidas.com>
13590
13591         * config/c4x/c4x.h: Updated specs for new gas format.  Fixed bug
13592         in C33_FLAG.  Added proper C33 support in ASM_FILE_START macro.
13593
13594 2003-01-06 Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
13595
13596         * config/c4x/c4x.h: Remove hwint.h include and HOST_WIDE_INT_PRINT_HEX
13597         redefinition.
13598
13599 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13600
13601         * config/h8300/h8300.md (*extzv_8_23): New.
13602
13603 2003-01-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13604
13605         * pa64-hpux.h (JCR_SECTION_NAME): Define.
13606         (PA_INIT_FRAME_DUMMY_ASM_OP): Check EH_FRAME_SECTION_NAME instead of
13607         USE_EH_FRAME_REGISTRY when defining.
13608
13609 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13610
13611         * config/h8300/h8300.c (output_a_shift): Do not output a
13612         variable shift.
13613         * config/h8300/h8300.md (two splitters): New.
13614
13615 2003-01-05  Richard Sandiford  <rsandifo@redhat.com>
13616
13617         * config/mips/mips.md: Disable the movstrsi define_split.
13618
13619 2003-01-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13620
13621         * alloc-pool.c: Don't include "libiberty.h".
13622         * config/sparc/gmon-sol2.c: Include <fcntl.h>.
13623         * convert.c (convert_to_real): Hide unused variable.
13624
13625 2003-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13626
13627         * Makefile.in (gtyp-gen.h): Const-ify.
13628         * gcov-dump.c (tag_table): Likewise.
13629
13630 2003-01-04  Bruce Korb  <bkorb@gnu.org>
13631
13632         * fixinc/fixfixes.c(wrap_fix): the wrapper guard must be a function
13633         of *both* the file name and the fix name.
13634
13635 2003-01-04  John David Anglin  <dave.anglin@nrc.ca>
13636
13637         * config.gcc (hppa*64*-*-hpux11*): Define extra_parts.  Don't use
13638         collect2.
13639         * pa-hpux11.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Undefine.
13640         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Define.
13641         * pa64-hpux.h (HP_INIT_ARRAY_SECTION_ASM_OP,
13642         GNU_INIT_ARRAY_SECTION_ASM_OP, HP_FINI_ARRAY_SECTION_ASM_OP,
13643         GNU_FINI_ARRAY_SECTION_ASM_OP): Define.
13644         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define when not using
13645         elfos.h.
13646         (EH_FRAME_IN_DATA_SECTION): Delete define.
13647         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Undefine.
13648         (STARTFILE_SPEC): Use crtbegin.o.
13649         (ENDFILE_SPEC): Use crtend.o.
13650         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION,
13651         SUPPORTS_INIT_PRIORITY, PA_CXA_FINALIZE_STUB, PA_INIT_FINI_HACK,
13652         PA_INIT_FRAME_DUMMY_ASM_OP, PA_JV_REGISTERCLASSES_STUB,
13653         DTOR_LIST_BEGIN): Define.
13654         * pa.c (TARGET_ASM_CONSTRUCTOR): Define.
13655         (pa_asm_out_constructor, pa_asm_out_destructor): New functions.
13656         * som.h (SUPPORTS_INIT_PRIORITY): Delete define.
13657
13658 2002-12-31  Larin Hennessy  <larin@science.oregonstate.edu>
13659
13660         * fixinc/fixinc.svr4: Remove references to i860, Sony NewsOS, and spur.
13661         * fixinc/inclhack.def: Remove tests for Apple A/UX, ARM/RISCiX, DG/UX,
13662         m88k-*-sysv3*, Sony NewsOS.   Remove references to i860.
13663         Cleanup handling of replacement text.
13664         * fixinc/mkfixinc.sh: Remove reference to i?86-*-osf1*
13665
13666 2003-01-04  Bruce Korb  <bkorb@gnu.org>
13667
13668         * fixinc/tests/base/math.h: removed obsolete results
13669         * fixinc/tests/base/stdlib.h: ditto
13670         * fixinc/tests/base/sys/param.h: ditto
13671         * fixinc/tests/base/sys/stat.h: ditto
13672         * fixinc/tests/base/time.h: ditto
13673         * fixinc/tests/base/X11/Intrinsic.h: removed obsolete file
13674         * fixinc/tests/base/sys/byteorder.h: ditto
13675         * fixinc/inclhack.def: Remove superfluous backslashes
13676
13677 2003-01-04  Kazu Hirata  <kazu@cs.umass.edu>
13678
13679         * config/h8300/h8300-protos.h: Add prototypes for
13680         the new functions defined below.
13681         * config/h8300/h8300.c (TARGET_ASM_FUNCTION_PROLOGUE): Do not
13682         define.
13683         (dosize): Emit RTL instead of assembly code.
13684         (push): Likewise.
13685         (pop): Likewise.
13686         (h8300_output_function_prologue): Remove.
13687         (h8300_expand_prologue): New.
13688         (h8300_expand_epilogue): New.
13689         (h8300_output_function_epilogue): Do only the reset of
13690         pragma_saveall.
13691         * config/h8300/h8300.md (push_h8300): New.
13692         (push_h8300hs): Likewise.
13693         (pop_h8300): Likewise.
13694         (pop_h8300hs): Likewise.
13695         (*stm_h8300s_2): Change the name to stm_h8300s_2.
13696         (*stm_h8300s_3): Change the name to stm_h8300s_3.
13697         (*stm_h8300s_4): Change the name to stm_h8300s_4.
13698         (*ldm_h8300s_2): New.
13699         (*ldm_h8300s_3): Likewise.
13700         (*ldm_h8300s_4): Likewise.
13701         (return): Likewise.
13702         (*return_1): Likewise.
13703         (prologue): Likewise.
13704         (epilogue): Likewise.
13705         (monitor_prologue): Likewise.
13706
13707 2003-01-03  Dale Johannesen  <dalej@apple.com>
13708
13709         * config/darwin.h:  (EXTRA_SECTIONS):  Add machopic_symbol_stub1,
13710           machopic_picsymbol_stub1.
13711           (EXTRA_SECTION_FUNCTIONS):  Ditto.
13712         * rs6000/rs6000.c:  Update copyright.
13713           (machopic_output_stub):  Use them.  Remove an insn from stub code.
13714
13715 2003-01-02  Jason Merrill  <jason@redhat.com>
13716
13717         * fold-const.c (fold) [COND_EXPR]: Avoid NOP_EXPRs better.
13718
13719         * integrate.c (copy_decl_for_inlining): Don't clear the rtl for
13720         static/external decls.
13721
13722         * c-common.c (finish_fname_decls): Put the DECL_STMTs inside the
13723         outermost scope.
13724         * c-decl.c (c_make_fname_decl): Push the decls there, too.
13725
13726 2003-01-03  Kazu Hirata  <kazu@cs.umass.edu>
13727
13728         * config/h8300/h8300-protos.h: Add a prototype for
13729         h8300_current_function_interrupt_function_p.
13730         * config/h8300/h8300.c (interrupt_handler): Remove.
13731         (os_task): Likewise.
13732         (monitor): Likewise.
13733         (pragma_interrupt): New.
13734         (WORD_REG_USED): Use
13735         h8300_current_function_interrupt_function_p.
13736         (dosize): Likewise.
13737         (h8300_output_function_prologue): Likewise.
13738         Do not set interrupt_handler, os_task, monitor.
13739         (h8300_output_function_prologue): Use
13740         h8300_current_function_interrupt_function_p.
13741         Do not set interrupt_handler, os_task, monitor.
13742         (h8300_current_function_interrupt_function_p): New.
13743         (h8300_pr_interrupt): Set pragma_interrupt.
13744         (h8300_insert_attributes): Reset pragma_interrupt.
13745
13746 2003-01-03  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13747
13748         * doc/install.texi (Configuration): Fix markup for reference to
13749         gcc/config.gcc.
13750
13751 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
13752
13753         * config/h8300/h8300.md (*iorhi3_zext): Relax the condition.
13754         (*iorhi3_two_qi): Likewise.
13755         (*iorsi3_zexthi): Likewise.
13756         (*xorhi3_zextqi): Likewise.
13757         (*xorsi3_zexthi): Likewise.
13758         (*xorsi3_zextqi): Likewise.
13759
13760 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
13761
13762         * config/h8300/h8300.c (stack_pointer_operand): New.
13763         (const_int_gt_2_operand): Likewise.
13764         (const_int_ge_8_operand): Likewise.
13765         * config/h8300/h8300.md (a splitter): Likewise.
13766         (a peephole2): Likewise.
13767         * config/h8300/h8300-protos.h: Add prototypes for the new
13768         functions above.
13769
13770 2003-01-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
13771
13772         * objc/Make-lang.in, objc/config-lang.in, objc/lang-specs.h,
13773         objc/objc-act.h: Fix copyright years.
13774
13775 2003-01-02  Steven Bosscher  <s.bosscher@student.tudelft.nl>
13776
13777         * doc/passes.texi: Fix documentation for -fssa-ccp
13778
13779 2003-01-02  Neil Booth  <neil@daikokuya.co.uk>
13780
13781         * gccbug.in: Update for new categories.
13782
13783 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
13784
13785         * config/h8300/h8300.md: Reorder some patterns.
13786
13787 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
13788
13789         * config/h8300/h8300.c (output_logical_op): Fix a warning.
13790
13791 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
13792
13793         * config/darwin-protos.h, config/c4x/c4x-protos.h,
13794         config/cris/cris-protos.h, config/i370/i370-protos.h,
13795         config/i960/i960-protos.h, config/ia64/ia64-protos.h,
13796         config/v850/v850-protos.h: Use struct, and don't conditionally
13797         compile on GCC_C_PRAGMA_H.
13798
13799 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
13800
13801         * config/arm/arm-protos.h: Remove #ifdef GCC_C_PRAGMA_H.
13802         * config/h8300/h8300-protos.h: Likewise.
13803         * config/sh/sh-protos.h: Likewise.
13804
13805 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
13806
13807         * config/arm/arm-protos.h: Use struct cpp_reader instead of
13808         cpp_reader.
13809         * config/h8300/h8300-protos.h: Likewise.
13810         * config/sh/sh-protos.h: Likewise.
13811
13812 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
13813
13814         * config/arm/arm.c (arm_pr_long_calls, arm_pr_no_long_calls,
13815         arm_pr_long_calls_off): Use struct.
13816         * config/h8300/h8300.c (h8300_pr-interrupt, h8300_pr_saveall)
13817         : Similarly.
13818         Don't include cpplib.h.
13819         * config/sh/sh.c (sh_pr_interrupt, sh_pr_trapa,
13820         sh_pr_nosave_low_regs): Similarly.
13821
13822 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
13823
13824         * config/h8300/h8300.c: Include cpplib.h.
13825
13826 2003-01-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
13827
13828         * objc/Make-lang.in, objc/config-lang.in, objc/lang-options.h,
13829           objc/lang-specs.h, objc/objc-act.c, objc/objc-act.h,
13830           objc/objc-lang.c, objc/objc-tree.def: Replace "GNU CC" with
13831           "GCC" in the copyright header.
13832
13833 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
13834
13835         * c-pragma.c (c_register_pragma): New.
13836         (init_pragma): Use it.
13837         * c-pragma.h (cpp_register_pragma): Don't declare.
13838         (c_register_pragma): New.
13839         * cpplib.h: Remove #ifdef GCC_C_PRAGMA_H.
13840         * config/darwin.h (REGISTER_TARGET_PRAGMAS): Update.
13841         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS): Update.
13842         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
13843         * config/h8300/h8300.h (REGISTER_TARGET_PRAGMAS): Update.
13844         * config/i370/i370.h (REGISTER_TARGET_PRAGMAS): Update.
13845         * config/i960/i960.h (REGISTER_TARGET_PRAGMAS): Update.
13846         * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Update.
13847         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Update.
13848         * config/sh/sh.h (REGISTER_TARGET_PRAGMAS): Update.
13849         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS): Update.
13850         * doc/tm.texi (REGISTER_TARGET_PRAGMAS): Update
13851
13852 See ChangeLog.8 for earlier changes.