OSDN Git Service

* stor-layout.c (place_field): When adjusting offset_align, use
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-05-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2
3         * stor-layout.c (place_field): When adjusting offset_align, use
4         desired_align, not DECL_ALIGN.
5
6 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
7
8         * c-decl.c (pending_invalid_xref_file): Remove.
9         (pending_invalid_xref_line): Remove.
10         (pending_invalid_xref_location): New.
11         (lookup_label): Use location_t and input_location directly.
12         (lookup_tag): Likewise.
13         (pending_xref_error): Likewise.
14         (c_expand_body_1): Likewise.
15         * c-common.c (x_expand_start_cond): Likewise.
16         * c-semantics.c (genrtl_for_stmt): Likewise.
17         (find_reachable_label): Likewise.
18         * expr.c (expand_expr): Likewise.
19         * integrate.c (output_inline_function): Likewise.
20         * tree-inline.c (find_alloca_call): Likewise.
21         (find_builtin_longjmp_call): Likewise.
22         * gcc.c (input_filename): Make static.
23         
24 2003-05-03  Richard Sandiford  <rsandifo@redhat.com>
25
26         * config/mips/mips.md: Fix comment typo.
27
28         * config/mips/mips.c (mips_integer_op): New structure.
29         (MIPS_MAX_INTEGER_OPS): Define.
30         (mips_const_insns): Use mips_build_integer to determine the number
31         of instructions needed to load a CONST_INT.
32         (move_operand): Reject compound CONST_INTs.
33         (mips_build_shift, mips_build_lower, mips_build_integer): New fns.
34         (mips_move_integer): New fn.
35         (mips_legitimize_const_move): Pass CONST_INTs to mips_move_integer.
36         (mips_legitimize_move): Only legitimize constants when moving
37         word or subword values.
38
39 2003-05-02  Matt Kraai  <kraai@alumni.cmu.edu>
40
41         * Makefile.in (gcov-iov.h): Use move-if-change and a stamp.
42
43 2003-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
44
45         * builtins.c (expand_builtin_stpcpy): Copy `arglist' before
46         modifying it.
47
48 2003-05-03  Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
49             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
50
51         * doc/contrib.texi (Contributors): Add Zdenek Dvorak, Aldy
52         Hernandez, and Kazu Hirata.  Update Richard Henderson.
53
54 2003-05-02  Geoffrey Keating  <geoffk@apple.com>
55
56         * config/rs6000/rs6000.c (rs6000_attribute_table): Add 'extern'
57         to tentative declaration.
58         
59         * config/rs6000/sysv4.h (SYMBOL_FLAG_SMALL_V4): Delete.
60         (SYMBOL_FLAG_SMALL_V4): Delete.
61         * config/rs6000/rs6000.c (small_data_operand): Use SYMBOL_REF_SMALL_P.
62         (rs6000_elf_encode_section_info): Don't set SYMBOL_FLAG_SMALL_V4.
63         (rs6000_elf_in_small_data_p): Add extra section names.  Add
64         comment about TREE_PUBLIC test.
65
66         * c-semantics.c (genrtl_switch_stmt, genrtl_if_stmt): Call
67         expand_stmt on result of expand_unreachable_stmt.
68
69 2003-05-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
70
71         * doc/contrib.texi (Contributors): Add Daniel Berlin.
72
73 2003-05-02  David Edelsohn  <edelsohn@gnu.org>
74
75         * config/rs6000/{603.md,6xx.md,7450.md,7xx.md,rs64.md}: Decrease
76         number of automata.
77
78         * config/rs6000/rs6000.c (symbol_ref_operand): Check
79         SYMBOL_REF_FUNCTION_P on AIX.
80         (current_file_function_operand): Same.
81         * config/rs6000/rs6000.md (call,call_value): Force non-function
82         symbol_ref into register on AIX.
83
84 2003-05-02  Alan Modra  <amodra@bigpond.net.au>
85
86         * calls.c (struct arg_data): Move offset, slot_offset, size and
87         alignment_pad to struct locate_and_pad_arg_data.  Update all refs.
88         (initialize_argument_information): Adjust call to locate_and_pad_parm.
89         Delete alignment_pad var.  Don't calculate slot_offset here.
90         (emit_library_call_value_1): Delete alignment_pad, offset and size
91         vars.  Use struct locate_and_pad_arg_data instead.  Adjust refs.
92         Adjust call to locate_and_pad_parm.  Don't tweak arg size for
93         partial in-regs here.  Formatting fixes.
94         * expr.h (struct locate_and_pad_arg_data): New struct.
95         (locate_and_pad_parm): Adjust declaration.
96         * function.c (assign_parms): Localize vars.  Use "locate" instead of
97         other arg location vars.  Don't invoke FUNCTION_ARG or
98         FUNCTION_INCOMING_ARG unless pretend_named is different from
99         named_arg.  Heed MUST_PASS_IN_STACK and set up "partial" before
100         calling locate_and_pad_parm.  Adjust locate_and_pad_parm call.
101         Use slot_offset for stack home of reg parms.  Correct test for
102         parm passed in memory.  Formatting fixes.
103         (locate_and_pad_parm): Add "partial" to params.  Replace offset_ptr
104         arg_size_ptr and alignment pad with "locate".  Set slot_offset here.
105         Correct initial_offset_ptr handling.  Localize vars.  Always pad
106         locate->offset even when in_regs.
107
108 2003-05-02  Nathan Sidwell  <nathan@codesourcery.com>
109
110         * Makefile.in (TREE_H): Replace location.h with input.h.
111         (GTFILES) Remove location.h
112         (gt-lists.h): Replace gt-location.h with gt-input.h
113         * input.h (input_filename, input_line): Remove variables.
114         (location_s, location_t): Move from location.h.
115         (input_location): New.
116         (input_filename, input_line): New #defines.
117         * location.h: Remove.
118         * tree.h: Replace location.h with input.h.
119         (input_filename, input_line): Remove.
120         * diagnostic.h: Replace location.h with input.h.
121         * gcc.h (input_filename, input_filename_length): Remove declarations.
122         * toplev.c (input_filename, input_line): Remove.
123         (input_location): Define.
124         (push_srcloc, pop_srcloc): Adjust.
125         * diagnostic.c (diagnostic_report_current_module): Adjust.
126
127 2003-05-02  Nick Clifton  <nickc@redhat.com>
128
129         * configure.in: Add xstormy16 to list of targets that has a nop
130         instruction and hence which can be tested to see if the
131         assembler supports the --gdwarf2 switch.
132         * configure: Regenerate.
133
134 2003-05-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
135  
136         PR target/8257
137         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
138         alpha_start_function, alpha_expand_epilogue, unicosmk_gen_dsib):
139         Avoid undefined shifts by making the shift operand unsigned.
140  
141 2003-05-01  DJ Delorie  <dj@redhat.com>
142
143         * reload.c (find_reloads): Also check that all of a multi-reg
144         value is in the class.
145
146 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
147
148         * scan.h (lineno): Revert the rename here.
149
150 2003-05-01  Stan Shebs  <shebs@apple.com>
151
152         * config/darwin.c (darwin_encode_section_info): Call
153         default_encode_section_info.
154
155 2003-05-01  David Edelsohn  <edelsohn@gnu.org>
156
157         * config/rs6000/rs6000.md (define_attr "type"): Add mfjmpr.
158         (movsi_internal1): Use new mfjmpr attribute.
159         (movhi_internal): Same.
160         (movqi_internal): Same.
161         (movcc_internal1): Same.
162         (movdi_internal64): Same.
163         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
164         power4.md,rios1.md,rios2.md,rs64.md}: Add mfjmpr.
165         * config/rs6000/40x.md: Add fpu_405.
166         * config/rs6000/power4.md: Merge power4lsu and power4disp automata
167         into power4misc automata.  Remove extraneous parentheses.
168         * config/rs6000/440.md: New file.
169         * config/rs6000/rs6000.c (processor_target_table): Add 440,
170         440fp.  Rename 405f to 405fp.
171         (function_arg_padding): Correct formatting.
172         (rs6000_rtx_costs): Add PROCESSOR_PPC440 cases.
173
174 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
175
176         * input.h (lineno): Rename to ...
177         (input_line): ... here.
178         * tree.h (lineno): Rename to ...
179         (input_line): ... here.
180         * scan.h (lineno): Rename to ...
181         (input_line): ... here.
182         * toplev.c (lineno): Rename to ...
183         (input_line): ... here.
184         (push_srcloc, pop_srcloc):  Rename lineno to input_line.
185         * c-common.c (c_expand_start_cond, fname_decl): Likewise.
186         * c-decl.c (poplevel, pop_label_level, lookup_label, lookup_tag,
187         store_parm_decls, c_expand_body_1): Likewise.
188         * c-errors.c (pedwarn_c99): Likewise.
189         * c-format.c (status_warning): Likewise.
190         * c-lex.c (fe_file_change, cb_def_pragma, c_lex): Likewise.
191         * c-opts.c (c_common_post_options, c_common_parse_file): Likewise.
192         * c-parse.in (save_filename, maybe_type_qual, ifc): Likwise.
193         * c-semantics.c (finish_stmt_tree, build_stmt, emit_local_var,
194         gentrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt,
195         genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt,
196         genrtl_return_stmt, genrtl_for_stmt, build_break_stmt,
197         build_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt,
198         prep_stmt, find_reachable_label, expand_unreachable_stmt): Likewise.
199         * coverage.c (create_coverage): Likewise.
200         * diagnostic.c (pedwarn, sorry, error, fatal_error,
201         internal_error, warning, diagnostic_report_current_module,
202         inform): Likewise.
203         * expr.c (expand_expr): Likewise.
204         * integrate.c (expand_inline_function,
205         output_inline_function): Likewise.
206         * rtl-error.c (file_and_line_for_asm): Likewise.
207         * tree-inline.c (find_alloca_call, find_builtin_longjmp_call,
208         walk_tree): Likewise.
209         * tree.c (make_node): Likewise.
210         * ada, cp, f, java, objc, treelang: Likewise.
211         * objc/objc-act.c (objc_init): Rename lineno to input_line.
212         (build_module_descriptor, build_selector_translation_table,
213         build_protocol_template, build_method_prototype_list_template,
214         build_category_template, build_selector_table,
215         build_class_template, build_super_template, build_ivar_template,
216         build_ivar_list_template, build_method_list_template,
217         build_method_template, add_instance_variable): Likewise.
218
219         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Change parameter
220         name from input_filename.
221
222 2003-04-30  Eric Christopher  <echristo@redhat.com>
223             Richard Sandiford <rsandifo@redhat.com>
224
225         * configure: Regenerate from patches below.
226         * combine.c (gen_lowpart_for_combine): Fix comment and add tests
227         for all symbolic operands.
228         * config/mips/mips.c: Migrate RTX_COSTS and CONST_COSTS
229         to function.
230         * config/mips/linux.h: Fix typo.
231         * Merge from mips-3_4-rewrite branch:
232
233         2003-04-07  Richard Sandiford  <rsandifo@redhat.com>
234
235                 * config/mips/mips.c (mips_classify_symbol): Add catch-all case for
236                 handling local labels when TARGET_ABICALLS.
237
238         2003-04-04  Richard Sandiford  <rsandifo@redhat.com>
239
240                 * config/mips/mips-protos.h (mips_expand_epilogue): Add an
241                 integer argument.
242                 (mips_expand_call): Likewise.
243                 * config/mips/mips.h (TARGET_SIBCALLS): New macro.
244                 (FIXED_REGISTERS): Clear $31 entry.
245                 (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTER): Likewise.
246                 (EPILOGUE_USES): Define.
247                 * config/mips/mips.c (mips_function_ok_for_sibcall): New function.
248                 (TARGET_FUNCTION_OK_FOR_SIBCALL): Use it.
249                 (override_options): Add a 'j' register class.
250                 (mips_expand_call): Handle sibcalls
251                 (mips_expand_epilogue): Handle epilogues for sibcalls.
252                 * config/mips/mips.md (epilogue): Adjust call to mips_expand_epilogue.
253                 (sibcall_epilogue): New pattern.
254                 (call, call_value): Adjust calls to mips_expand_call.
255                 (sibcall, sibcall_value): New expanders.
256                 (sibcall_internal, sibcall_value_internal): New patterns.
257                 (sibcall_value_multiple_internal): New pattern.
258
259         2003-03-25  Richard Sandiford  <rsandifo@redhat.com>
260
261                 * config/mips/mips.md (extended_mips16): New attribute.
262                 (define_attr length): Default to 8 if extended_mips16 == yes.
263                 (truncdisi2): Set extended_mips16 to yes for the sll alternative.
264                 (truncdihi2, truncdiqi2, *extendsidi2): Likewise.
265                 (call_internal): Set extended_mips16 to yes for direct jumps.
266                 Remove redundant mode attribute.
267                 (call_value_internal, call_value_multiple_internal): Likewise.
268                 (call_split): Remove redundant mode attribute.
269                 (call_value_split, call_value_multiple_split): Likewise.
270
271                 * config/mips/mips.c (mips_symbol_insns): Rework.  Fix handling
272                 of unaligned offsets.
273
274                 * config/mips/mips.c (mips_splittable_symbol_p): Fix handling
275                 of SYMBOL_GENERAL.
276
277         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
278
279                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS): Add commentary.
280                 * config/mips/mips.c (override_options): Disable -mexplicit-relocs
281                 for mips16 code.
282
283         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
284
285                 * config/mips/mips.h (ADDRESS_COST): Define.
286
287         2003-03-20  Richard Sandiford  <rsandifo@redhat.com>
288
289                 * config/mips/mips.h (EXTRA_CONSTRAINT): Give existing meaning of
290                 'R' to 'U'.  Make 'R' mean a single-instruction memory reference.
291                 * config/mips/mips.md: Replace 'R' constraints with 'U'.
292
293         2003-03-18  Richard Sandiford  <rsandifo@redhat.com>
294
295                 * config/mips/mips.md (truncdisi2): Add commentary.  Use sll instead
296                 of a two-instruction sequence.  Add register->memory alternative.
297                 (truncdihi2, truncdiqi2): Likewise.
298                 Rework shift/truncate instructions so that they only handle right
299                 shifts of 32 (or more, in the case of arithmetic shifts).
300                 Add patterns for truncate/sign-extend.
301
302         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
303
304                 * configure.in (mips*-*-*): Check for explicit relocation support.
305                 * configure: Regenerate.
306
307         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
308
309                 * config/mips/mips.h (TARGET_SWITCHES): Add -mexplicit-relocs
310                 and -mno-explicit-relocs.
311                 (MASK_EXPLICIT_RELOCS): Define.
312                 (TARGET_EXPLICIT_RELOCS): Use it.
313                 (mips_split_addresses): Remove declaration.
314                 * config/mips/mips.c (override_options): Update comment for
315                 mips_split_addresses.  Clear MASK_EXPLICIT_RELOCS for non-PIC n64.
316
317         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
318
319                 * combine.c (gen_lowpart_for_combine): Treat the lowpart Pmode of
320                 a CONST as identity.  Check the return value of gen_lowpart_common.
321
322         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
323
324                 * config/mips/mips.c (mips_legitimize_symbol): Handle small data
325                 references for TARGET_EXPLICIT_RELOCS.
326                 (mips_reloc_string): Return "%gp_rel(" for RELOC_GPREL16 if
327                 !TARGET_MIPS16.
328
329         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
330
331                 * config/mips/mips.md: Replace 'IQ' mips16 constraints with just 'Q'.
332                 (addsi3): Remove redundant constraints.
333                 (addsi3_internal): Use separate register & constant alternatives.
334                 Use a 'Q' constraint and "addiu" insn for the latter.
335                 (adddi3_internal_3, addsi3_internal_2): Likewise.
336
337         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
338
339                 * config/mips/mips-protos.h (mips_expand_unaligned_load): Declare.
340                 (mips_expand_unaligned_store): Declare.
341                 * config/mips/mips.c (mips_get_unaligned_mem): New fn.
342                 (mips_expand_unaligned_load, mips_expand_unaligned_store): New fns.
343                 * config/mips/mips.md (UNSPEC_ULW, UNSPEC_USW): Remove.
344                 (UNSPEC_ULD, UNSPEC_USD): Remove.
345                 (UNSPEC_LWL, UNSPEC_LWR, UNSPEC_SWL, UNSPEC_SWR): New.
346                 (UNSPEC_LDL, UNSPEC_LDR, UNSPEC_SDL, UNSPEC_SDR): New.
347                 (extv, extzv): Use mips_expand_unaligned_load.
348                 (insv): Use mips_expand_unaligned_store.  Use a reg_or_0_operand
349                 predicate for operand 3.
350                 (movsi_ulw, movsi_usw): Replace with...
351                 (mov_lwl, mov_lwr, mov_swl, move_swr): ...these new insns.
352                 (movdi_uld, movdi_usd): Likewise replace with...
353                 (mov_ldl, mov_ldr, mov_sdl, move_sdr): ...these insns.
354
355         2003-02-26  Richard Sandiford  <rsandifo@redhat.com>
356
357                 * config/mips/mips-protos.h (mips_global_pic_constant_p): Declare.
358                 * config/mips/mips.h (LEA_REGS): New register class.
359                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for it.
360                 (GR_REG_CLASS_P): Include LEA_REGS.
361                 (DANGEROUS_FOR_LA25_P): New macro.
362                 (EXTRA_CONSTRAINT): Add !DANGEROUS_FOR_LA25_P to R's condition.
363                 Add a T constraint for the DANGEROUS_FOR_LA25_P case.
364                 * config/mips/mips.c (mips_regno_to_class): Change GR_REGS
365                 entries to LEA_REGS.
366                 (mips_global_pic_constant_p): New function.
367                 (override_options): Add 'e' register constraint.
368                 (mips_secondary_reload_class): Return LEA_REGS when reloading
369                 a dangerous constant into a class containing $25.
370                 * config/mips/mips.md (movdi_internal2): Add an e <- T alternative.
371                 (movsi_internal): Likewise.
372
373         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
374
375                 * config/mips/mips.h (TARGET_SPLIT_CALLS): New macro.
376                 * config/mips/mips.md (call_split): New insn.
377                 (call_value_split, call_value_multiple_split): New insns.
378                 (call_internal): Turn into a define_insn_and_split.  Split the
379                 instruction into a call and $gp load if TARGET_SPLIT_CALLS.
380                 (call_value_internal, call_value_multiple_internal): Likewise.
381
382         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
383
384                 * config/mips/mips.c (mips_reloc_string): Return "%got(" for
385                 RELOC_GOT_PAGE and RELOC_GOT_DISP if !TARGET_NEWABI.
386                 (mips_encode_section_info): Don't take symbol visibility into
387                 account if TARGET_ABICALLS.  Add more commentary.
388                 * config/mips/mips.md: Add commentary above reloc constants.
389
390         2003-02-12  Richard Sandiford  <rsandifo@redhat.com>
391
392                 * config/mips/mips.c (mips_legitimize_const_move): New, extracted
393                 from mips_legitimize_move.  Legitimize constant pool references.
394                 (mips_legitimize_move): Call mips_legitimize_const_move.  Attach
395                 a REG_EQUAL note to the last instruction.
396
397         2003-02-11  Richard Sandiford  <rsandifo@redhat.com>
398
399                 * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Declare.
400                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS, TARGET_NEWABI): New.
401                 (ASM_SIMPLIFY_DWARF_ADDR): Define to mips_simplify_dwarf_addr.
402                 (EXTRA_CONSTRAINT): Allow symbolic call addresses for TARGET_ABICALLS.
403                 * config/mips/mips.md (UNSPEC_HIGH): New constant.
404                 (UNSPEC_RELOC_GPREL16): Rename to...
405                 (RELOC_GPREL16): ...this.
406                 (RELOC_GOT_HI, RELOC_GOT_LO, RELOC_GOT_PAGE, RELOC_GOT_DISP): New.
407                 (RELOC_CALL16, RELOC_CALL_HI, RELOC_CALL_LO): New.
408                 (macro_calls): New attribute.
409                 (length): Use it to set the default length of calls.  Don't allow
410                 calls to have delay slots if macro_calls is "yes".
411                 (luisi, luidi): New patterns.
412                 (lowsi, lowdi): Use '%R' to print the relocation.
413                 (lowdi_extend): Remove.
414                 (loadgp): Remove mode from operand 0.  Use '%0' instead of '%a0'.
415                 (call_internal): Merge alternatives.  Always use "jal".
416                 (call_value_internal, call_value_multiple_internal): Likewise.
417                 (reloc_gprel16): Remove.
418                 * config/mips/mips.c (mips_got_alias_set): New variable.
419                 (mips_classify_constant): Handle the new relocation constants.
420                 (mips_classify_symbol): Reverse the sense of SYMBOL_REF_FLAG for PIC.
421                 (mips_symbolic_address_p): Return false if generating explicit relocs.
422                 Otherwise allow local PIC symbols to have an offset.
423                 (mips_splittable_symbol_p): New function.
424                 (mips_classify_address): Use it to check whether a LO_SUM is valid.
425                 (mips_const_insns): Always accept HIGH.
426                 (call_insn_operand): Don't accept global symbols if using explicit
427                 relocs.
428                 (move_operand): Don't accept HIGH when generating PIC.
429                 (mips_reloc, mips_lui_reloc): New functions.
430                 (mips_force_temporary): Remove MODE argument.  Expect VALUE to
431                 be a valid right-hand-side for a SET pattern.
432                 (mips_load_got, mips_load_got16, mips_load_got32): New functions.
433                 (mips_emit_high): New function.
434                 (mips_legitimize_symbol): Use mips_reloc for the mips16 gp-relative
435                 case.  Use mips_splittable_symbol_p to check whether a LO_SUM
436                 address should be used.  Use mips_emit_high to generate the
437                 high part of such an address.  Adjust the global symbol + offset
438                 case to match the change to mips_force_temprorary.
439                 (mips_legitimize_move): Shuffle call to mips_legitimize_symbol.
440                 If generating explicit-reloc PIC, load the address of global
441                 symbols from the GOT.  Use mips_emit_high to emit the high part
442                 of an address.
443                 (mips_simplify_dwarf_addr): New function.
444                 (mips_move_1word): Use lwc1 instead of l.s and swc1 instead of s.s.
445                 (mips_move_2words): Likewise ldc1/l.d and sdc1/s.d if TARGET_64BIT.
446                 (mips_expand_call): Load the addresses of global functions using
447                 %call* relocs if generating explicit-reloc PIC.  Don't generate
448                 an exception_receiver pattern.
449                 (override_options): Initialize mips_got_alias_set.
450                 (print_relocation): Remove in favour of...
451                 (mips_reloc_string): ...this new function.
452                 (print_operand): Handle '%R'.  Use mips_reloc_string.
453                 (print_operand_address): Use print_operand to print the symbolic
454                 part of a LO_SUM address.
455                 (mips_output_function_prologue): Use .cprestore, reverting last patch.
456                 (mips_encode_section_info): Factor out DECL_RTL accesses.  Reverse
457                 sense of SYMBOL_REF_FLAG for PIC, using binds_local_p to check
458                 for local symbols.
459
460         2003-02-02  Eric Christopher  <echristo@redhat.com>
461
462                 * config/mips/mips.c (mips_sign_extend): Remove.
463                 * config/mips/mips-protos.h: Ditto.
464                 * config/mips/mips.md (movdi_internal2_extend): Remove.
465                 (extendsidi2): Fix mode of convert_memory_address.
466
467         2003-01-24  Eric Christopher  <echristo@redhat.com>
468
469                 * config/mips/mips.md: Rewrite zero_extend* and extend*
470                 patterns. Use explicit instructions and split after reload
471                 for register extensions.
472                 (ashlsi3_internal1_extend): New combiner pattern for
473                 shift and extend combinations.
474                 * config/mips/mips.h: Change Pmode back to ptr_mode
475                 for performance enhancement.
476                 * combine.c (expand_compound_operation): Make sure
477                 that zero_extend operation is profitable.
478
479         2003-01-14  Richard Sandiford  <rsandifo@redhat.com>
480
481                 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Make size of stored
482                 addresses depend on ptr_mode rather than Pmode.
483                 (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Update acoordingly.
484                 (INITIALIZE_TRAMPOLINE): Rework to handle Pmode != ptr_mode.
485                 (CASE_VECTOR_MODE): Use ptr_mode for !TARGET_MIPS16.
486                 (ASM_OUTPUT_ADDR_VEC_ELT): Update accordingly.
487                 * config/mips/mips.md (tablejump): Likewise.  Remove Pmode
488                 condition for selecting cpaddsi or cpadddi: use cpadd instead.
489                 (tablejump_internal1): Remove condition.
490                 (tablejump_internal2): Change condition to TARGET_64BIT.
491                 (cpaddsi): Rename to...
492                 (cpadd): ...this.
493                 (cpadddi): Remove.
494
495         2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
496
497                 * config/mips/mips-protos.h (mips16_constant_after_function_p,
498                 mips_address_cost, mips_check_split, double_memory_operand,
499                 mips16_gp_offset, mips16_gp_offset_p, mips16_constant,
500                 pic_address_needs_scratch, symbolic_operand): Remove declarations.
501                 (mips_legitimate_address_p): Return bool.
502                 (mips_address_insns, mips_fetch_insns, mips_const_insns,
503                 mips_legitimize_address, mips_legitimize_move,
504                 mips_expand_call): Declare.
505                 (mips_return_addr): Move outside #ifdef RTX_CODE.
506
507                 * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): New macro.
508                 (PIC_FN_ADDR_REG): New reg_class.
509                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add corresponding entries.
510                 (GR_REG_CLASS_P): True for PIC_FN_ADDR_REG.
511                 (SMALL_OPERAND, SMALL_OPERAND_UNSIGNED, LUI_OPERAND,
512                 CONST_HIGH_PART, CONST_LOW_PART, LUI_INT): New macros.
513                 (SMALL_INT, SMALL_INT_UNSIGNED, CONST_OK_FOR_LETTER_P): Use new macros.
514                 (EXTRA_CONSTRAINTS): Give new meanings to Q, R and S.
515                 (CONSTANT_ADDRESS_P): Use mips_legitimate_address_p.
516                 (LEGITIMATE_PIC_OPERAND): Undefine.
517                 (LEGITIMATE_CONSTANT_P): Use mips_const_insns.
518                 (LEGITIMIZE_ADDRESS): Use mips_legitimize_address.
519                 (CONSTANT_AFTER_FUNCTION_P): Remove definition in #if 0 block.
520                 (FUNCTION_MODE): Change to SImode.
521                 (CONST_COSTS): Use mips_const_insns to calculate the cost of
522                 most constants.  Treat const_artih_operands specially if they
523                 occur in a PLUS or MINUS.
524                 (CONSTANT_POOL_COST): New macro.
525                 (RTX_COSTS): Use mips_address_insns for MEMs, with a base cost of 2.
526                 Add LO_SUM handling.
527                 (ADDRESS_COST): Undefine.
528                 (PREDICATE_CODES): Add symbolic_operand and const_arith_operand.
529                 Add CONST to the list of codes for arith_operand.  Add LABEL_REF
530                 to call_insn_operand and remove CONST_INT.
531
532                 * config/mips/mips.c: Include integrate.h.
533                 (SINGLE_WORD_MODE_P): New macro.
534                 (mips_constant_type, mips_symbol_type, mips_address_type): New enums.
535                 (mips_constant_info, mips_address_info): New structs.
536                 (mips_regno_to_class): Map $25 to PIC_FN_ADDR_REG.
537                 (mips_classify_constant, mips_classify_symbol,
538                 mips_valid_base_register_p, mips_symbolic_address_p,
539                 mips_classify_address, mips_symbol_insns,
540                 mips16_unextended_reference_p, mips_address_insns, mips_const_insns,
541                 mips_fetch_insns, mips_force_temporary, mips_add_offset,
542                 mips_legitimize_symbol, mips_legitimize_address, mips_legitimize_move,
543                 mips_print_relocation): New functions.
544                 (const_arith_operand): New operand predicate.
545                 (arith_operand): Use it.
546                 (mips_const_double_ok, mips16_simple_memory_operand,
547                 simple_memory_operand, double_memory_operand, mips_check_split,
548                 mips_address_cost, pic_address_needs_scratch, mips16_gp_offset,
549                 mips16_gp_offset_p, mips16_output_gp_offset,
550                 mips16_constant_after_function_p, mips16_constant): Remove.
551                 (call_insn_operand): Be more fussy about symbolic constants.
552                 Use register_operand.
553                 (move_operand): Use mips_symbolic_address_p to check symbolic
554                 operands and general_operand to check the rest.
555                 (symbolic_operand): Use mips_classify_constant.
556                 (mips_legitimate_address_p): Use mips_classify_address.
557                 (mips_move_1word): Combine handling of symbolic addresses.
558                 Remove special treatment of gp-relative loads for TARGET_MIPS16.
559                 (move_move_2words): Likewise.  Assume addresses are offsettable
560                 if they need to refer to more than one word.  Add HIGH handling.
561                 (mips_restore_gp): Use ptr_mode for the GP save slot.
562                 (mips_expand_call): New function, combining the old mips.md
563                 call and call_internal define_expands.  If the address isn't
564                 a call_insn_operand, force it into a register.  For SVR4 PIC,
565                 emit an exception_receiver instruction after the call.
566                 (override_options): Only override flag_pic for TARGET_ABICALLS
567                 if it is currently zero.  Allow mips_split_addresses when
568                 Pmode == DImode too, except when ABI_HAS_64BIT_SYMBOLS.
569                 Add new register class letter, 'c'.
570                 (print_operand): Use mips_classify_constant for constant operands.
571                 (print_operand_address): Use mips_classify_address.
572                 (mips_output_function_prologue): Don't use .cprestore.
573                 (mips_expand_epilogue): For TARGET_MIPS16, only adjust the stack
574                 via the frame pointer if current_function_calls_eh_return.
575                 (mips_encode_section_info): For TARGET_ABICALLS, use SYMBOL_REF_FLAG
576                 to mark whether a symbol is local or global.
577                 (build_mips16_call_stub): Expect the address of the function rather
578                 than a MEM reference to it.  Update call generation sequences.
579                 (mips16_optimize_gp): Remove Pmode checks.  Temporarily disable
580                 small-data adjustments.
581
582                 * config/mips/mips.md: Remove 'R'/'m' memory distinction.  Use default
583                 length for loads and stores.
584                 (UNSPEC_CPADD, UNSPEC_RELOC_GPREL16): New constants.
585                 (define_attr type): Add const and prefetch.
586                 (define_attr length): Use mips_const_insns for const instructions.
587                 Use mips_fetch_insns for load and store instructions.
588                 (define_attr single_insn): New.
589                 (define_attr can_delay): Use it.
590                 (define_attr abicalls): Remove.
591                 (define_delay): Use can_delay.  Always allow calls to have delay slots.
592                 (addsi3_internal_2): Add 'Q' constraint.
593                 (movsi_ulw, movsi_usw, movdi_uld, movdi_usd): Set length to 8.
594                 (high): Remove.
595                 (lowsi): Renamed from low.
596                 (lowdi): New pattern.
597                 (movdi, movsi): Use mips_legitimize_move.  Remove define_split.
598                 (lwxc1, ldxc1, swxc1, sdxc1): Set length to 4.
599                 (loadgp): Change operand 0 to an immediate_operand.
600                 (tablejump): Use the same patterns for SVR4 PIC but emit a cpadd
601                 beforehand.
602                 (cpaddsi, cpadddi): New patterns.
603                 (tablejump_internal3, tablejump_internal4): Remove define_expands
604                 and associated define_splits.
605                 (call, call_value): Use mips_expand_call.
606                 (call_internal): New, replacing all existing call_internal* insns.
607                 (call_value_internal): Likewise call_value_internal*.
608                 (call_value_multiple_internal): Likewise call_value_multiple_internal*.
609                 (untyped_call): Remove if (operands[0]) magic.
610                 (prefetch_si_address, prefetch_si): Change type to "prefetch".
611                 (prefetch_di_address, prefetch_di): Likewise.
612                 (leasi, leadi): Remove.
613                 (reloc_gprel16): New.
614
615                 * config/mips/5400.md (ir_vr54_hilo): Include const type.
616                 * config/mips/5500.md (ir_vr55_hilo): Likewise.
617                 * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
618
619         2003-01-08  Eric Christopher  <echristo@redhat.com>
620
621                 * config.gcc (mipsisa32*): Change ABI_MEABI to ABI_EABI.
622                 * config/mips/elf.h (STARTFILE_SPEC): Remove ABI_MEABI references and
623                 configure check for libgloss.
624                 * config/mips/elf64.h: Ditto.
625                 * config/mips/mips.c: Remove ABI_MEABI.
626                 * config/mips/mips.h: Ditto.
627
628         2002-11-05  Richard Sandiford  <rsandifo@redhat.com>
629
630                 Fix merge fallout.
631                 * config/mips/mips.md (mul_acc_si): Reapply 2002-10-16 change.
632                 (muldi3_internal): Remove outdated comment.
633                 (*muls_di, *umuls_di): Fix comment and 64-bitness.
634                 (*smsac_di, *umsac_di): Likewise.  Reformat.
635                 (umulsi3_highpart): Minor formatting tweaks.
636                 (umulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.  Remove
637                 redundant scratch operand.  Minor formatting tweak.
638                 (umulsi3_highpart_mulhi_internal): Use for !TARGET_64BIT as well.
639                 (umulsi3_highpart_neg_mulhi_internal): Likewise.  Fix asm template.
640                 (smulsi3_highpart): As for the unsigned version.
641                 (smulsi3_highpart_internal): Likewise.
642                 (smulsi3_highpart_mulhi_internal): Likewise.
643                 (smulsi3_highpart_neg_mulhi_internal): Likewise.
644                 (smuldi3_highpart, umuldi3_highpart): Minor formatting tweaks.
645                 (*smul_acc_di): Remove duplicated pattern.
646                 (*umul_acc_di, *smul_acc_di): Reapply 2002-10-16 change.
647                 (anddi3) [unnamed mips16 pattern]: Remove reintroduced length.
648                 (zero_extendsidi2_internal2): Remove new, but commented-out pattern.
649
650         2002-10-22  Eric Christopher  <echristo@redhat.com>
651
652                 * config/mips/mips-protos.h (mips_return_addr): New.
653                 * config/mips/mips.c (mips_return_addr): New.
654                 (movdi_operand): Remove.
655                 (se_register_operand): Ditto.
656                 (se_reg_or_0_operand): Ditto.
657                 (se_uns_arith_operand): Ditto.
658                 (se_arith_operand): Ditto.
659                 (se_nonmemory_operand): Ditto.
660                 (extend_operator): Ditto.
661                 (highpart_shift_operator): Ditto.
662                 (mips_initial_elimination_offset): Remove return address pointer
663                 elimination.
664                 (mips_reg_names): Remove $ra.
665                 (mips_regno_to_class): Ditto.
666                 * config/mips/mips.h (POINTER_SIZE): Define based on TARGET_LONG64
667                 and TARGET_64BIT.
668                 (POINTER_BOUNDARY): Remove.
669                 (POINTERS_EXTEND_UNSIGNED): Define to 0.
670                 (PROMOTE_MODE): Promote to Pmode.
671                 (SHORT_IMMEDIATES_SIGN_EXTEND): Define.
672                 (Pmode): Define to TARGET_64BIT.
673                 (FUNCTION_MODE): Define as Pmode.
674                 (mips_args): Remove deleted functions.
675                 (SIZE_TYPE): Depend on POINTER_SIZE.
676                 (PTRDIFF_TYPE): Ditto.
677                 (FIXED_REGISTERS): Fix extra registers.
678                 (CALL_USED_REGISTERS): Ditto.
679                 (CALL_REALLY_USED_REGISTERS): Ditto.
680                 (RAP_REG_NUM): Remove.
681                 (RETURN_ADDRESS_POINTER_REGNUM): Ditto.
682                 (RETURN_ADDR_RTX): Define to mips_return_addr.
683                 (ELIMINABLE_REGS): Remove RETURN_ADDRESS_POINTER_REGNUM.
684                 (CAN_ELIMINATE): Ditto.
685                 * config/mips/mips.md: For DImode patterns, take into account
686                 deletions above. Split mulsidi patterns into sign_extend and
687                 zero_extend.
688
689         2002-10-16  Richard Sandiford  <rsandifo@redhat.com>
690                     Michael Meissner  <meissner@redhat.com>
691
692                 * config/mips/mips.h (ISA_HAS_MACC): True for normal-mode vr4120 code.
693                 * config/mips/mips.md (mulsi3_mult3): Add a define_peephole2 to
694                 mop up unnecessarly moves through LO.
695                 (*mul_acc_si): Remove vr5400 and vr5500 handling from here.
696                 (*macc): New pattern for ISA_HAS_MACC.  Add define_peephole2s to
697                 change mtlo/macc sequences into mul/add sequences when a three-
698                 address mul is available.
699                 (*macc2): New pattern.  Add a define_peephole2 to generate it.
700                 (*mul_sub_si): Fix contraint for operand 5.
701                 (*muls): Use in 32-bit code as well.
702                 (*msac): Likewise.  Use msub instead of msac in vr5500 code
703                 if the destination is LO.  Remove duplicate define_split.
704                 (*muls_di): Use only in 32-bit code.  Adjust rtl accordingly.
705                 (*msac_di): Likewise.  Fix formatting.
706                 (smulsi3_highpart, umulsi3_highpart): Use mulhi in 32-bit code too.
707                 (*xmulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.
708                 (*xmulsi3_highpart_mulhi): Use even if !TARGET_64BIT.
709                 (*xmulsi3_neg_highpart_mulhi): Likewise.
710                 (*mul_acc_64bit_di): Remove.
711                 (*mul_acc_di): Use only in 32-bit code.  Handle ISA_HAS_MACC as well.
712
713         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
714
715                 * config/mips/vr.h (DRIVER_SELF_SPECS): Define.
716                 * config/mips/t-vr (MULTILIB_OPTIONS): Remove mlong32.
717                 (MULTILIB_DIRNAMES): Remove long32.
718                 (MULTILIB_EXCEPTIONS): Don't build -mabi=32 -mgp32 multilibs.
719                 (MULTILIB_REDUNDANT_DIRS): Remove.
720
721         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
722
723                 * doc/tm.texi (DRIVER_SELF_SPECS): Document.
724                 * gcc.c (driver_self_specs): New variable.
725                 (do_self_spec): New function.
726                 (main): Use it to process driver_self_specs.
727
728         2002-10-09  Richard Sandiford  <rsandifo@redhat.com>
729
730                 * config/mips/mips.md (one_cmpldi2): Use only if TARGET_64BIT.
731                 Remove DImode define_split for !TARGET_64BIT.
732                 (anddi3): Remove !TARGET_64BIT support from here as well.
733                 Change operand 2's predicate to se_uns_arith_operand.
734                 Add constant alternatives to define_insn.
735                 (iordi3, xordi3, *nordi3): Likewise.
736                 (anddi3_internal1, xordi3_immed): Remove.
737
738         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
739
740                 * config/mips/mips.h (PROCESSOR_R4121): Rename to PROCESSOR_R4120.
741                 (TARGET_MIPS4121): Rename to TARGET_MIPS4120.
742                 * config/mips/mips.c (mips_cpu_info): Rename vr4121 to vr4120.
743                 * config/mips/mips.md: Apply same renaming here.
744
745         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
746
747                 * config/mips/mips.c (PROCESSOR_R4320, TARGET_MIPS4320): Remove.
748                 (GENERATE_MULT3_SI): Remove use of TARGET_MIPS4320.
749                 * config/mips/mips.c (mips_cpu_info): Remove vr4320 entry.
750                 * config/mips/mips.md (define_attr cpu): Remove r4320.
751                 Remove vr4320 scheduler and uses of TARGET_MIPS4320.
752
753         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
754
755                 * config/mips/mips.c (mips16_strings): New variable.
756                 (mips_output_function_epilogue): Clear the SYMBOL_REF_FLAG of every
757                 symbol in mips16_strings.  Free the list.
758                 (mips_encode_section_info): Keep track of local strings.
759
760         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
761
762                 * config/mips/mips.md (bunge, bltgt, bungt): New define_expands.
763                 (sordered_df, sordered_sf): Remove.
764                 * config/mips/mips.c (get_float_compare_codes): New fn.
765                 (gen_int_relational, gen_conditional_move): Use it.
766
767         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
768
769                 * config/mips/mips-protos.h (mips_emit_fcc_reload): Declare.
770                 * config/mips/mips.h (PREDICATE_CODES): Add fcc_register_operand.
771                 * config/mips/mips.c (fcc_register_operand): New function.
772                 (mips_emit_fcc_reload): New function, extracted from reload_incc.
773                 (override_options): Allow TFmode values in float registers
774                 if ISA_HAS_8CC.
775                 * cnfig/mips/mips.md (reload_incc): Change destination prediate
776                 to fcc_register_operand.  Remove misleading source constraint.
777                 Use mips_emit_fcc_reload.
778                 (reload_outcc): Duplicate reload_incc.
779
780
781 2003-04-30  Diego Novillo  <dnovillo@redhat.com>
782
783         * builtins.def (BUILTIN_CONSTANT_P): Mark as constant.
784
785 2003-04-30  Geoffrey Keating  <geoffk@apple.com>
786
787         * tree-inline.c (inlinable_function_p): Back out last change, it's
788         unnecessary.
789
790 2003-04-30  Steven Bosscher  <steven@gcc.gnu.org>
791
792         * ggc-page.c (TREE_EXP_SIZE): Define.
793         (extra_order_size_table): New entry for expr trees with
794         two operands.
795
796 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
797
798         * c-common.c (if_elt): Use location_t in lieu of "file, line" pair.
799         (c_expand_start_cond): Adjust.
800         (c_expand_end_cond): Don't use warning_with_file_and_file.
801         (shadow_warning): Likewise.
802
803 2003-04-30  Nathan Sidwell  <nathan@codesourcery.com>
804
805         * tree.h (DECL_POINTER_DEPTH): Remove.
806         (struct tree_decl): Remove pointer_depth.
807
808 2003-04-30  Janis Johnson  <janis187@us.ibm.com>
809
810         * config/rs6000/linux64.h (ASM_OUTPUT_LABELREF): Remove.
811         * config/rs6000/rs6000.c (rs6000_elf_strip_name_encoding): Remove.
812         (rs6000_xcoff_encode_section_info): Remove.
813         (current_file_function_operand): Use SYMBOL_REF_FLAGS; fix latent bug.
814         (rs6000_output_mi_thunk): Remove dead code; use SYMBOL_REF_FLAGS.
815         (small_data_operand, rs6000_emit_move, rs6000_elf_in_small_data_p,):
816         Use SYMBOL_REF_FLAGS.
817         (rs6000_elf_encode_section_info): Call default_encode_section_info for
818         generic flags, use SYMBOL_REF_FLAGS; code cleanups.
819         * sysv4.h (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
820         (SYMBOL_FLAG_SMALL_V4, SYMBOL_REF_SMALL_V4_P): New.
821         * xcoff.h (TARGET_ENCODE_SECTION_INFO): Remove.
822         (ASM_DECLARE_FUNCTION_NAME): Remove setting of SYMBOL_REF_FLAG.
823
824 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
825
826         * diagnostic.c (output_pointer): Use HOST_PTR_PRINTF.
827
828 2003-04-30  Andreas Schwab  <schwab@suse.de>
829
830         * doc/extend.texi (Other Builtins): Enclose multiple word data
831         type in braces for @deftypefn.
832
833 2003-04-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
834
835         * stor-layout.c (mode_for_size_tree): Use BLKmode if SIZE overflows.
836
837         * doc/install.texi (--enable-threads): Document "gnat" option.
838
839 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
840
841         * diagnostic.h (output_formatted_scalar): Tweak.
842         * diagnostic.c (output_long_decimal): Likewise.
843         (output_unsigned_decimal): Likewise.
844         (output_long_unsigned_decimal): Likewise.
845         (output_octal): Likewise.
846         (output_long_octal): Likewise.
847         (output_hexadecimal): Likewise.
848         (output_long_hexadecimal): Likewise.
849         (output_pointer): New function.
850         (output_format): Use it.  Recognize "%p" format specifier.
851
852 2003-04-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
853
854         * function.c (purge_addressof_1): Postpone insn in fewer cases.
855
856 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
857
858         * config/rs6000/host-darwin.c (segv_handler): When -dH is used,
859         call abort() after running out of stack space.
860
861         * c-typeck.c (function_types_compatible_p): Ignore incompatible
862         'volatile' qualifiers on a function's return type in GNU mode.
863
864 2003-04-29  Aldy Hernandez  <aldyh@redhat.com>
865
866         * expr.c (emit_group_load): Dump parallels of simd types to
867         memory.
868
869 2003-04-29  Vladimir Makarov  <vmakarov@redhat.com>
870
871         * genautomata.c (add_vect): Check undefined value for range type
872         too.
873
874 2003-04-29  Phil Edwards  <pme@gcc.gnu.org>
875
876         * configure.in:  More general test for cmp --ignore-initial.
877         * configure:  Regenerate.
878
879 2003-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
880
881         * stor-layout.c (mode_for_size_tree): Use tree_low_cst.
882         (layout_decl, place_field): Likewise.
883         Also make minor type and whitespace changes.
884
885         * tree.c (save_expr): Don't fold a COMPONENT_REF.
886
887 2003-04-29  Olivier Hainque <hainque@act-europe.fr>
888
889         * calls.c (expand_call): When modes of target and valreg match, force
890         sibcall failure when target is a MEM.
891
892 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
893
894         * tree-inline.c (inlinable_function_p): Don't support inlining
895         functions using varargs.
896
897         * doc/invoke.texi (Overall Options): Mention -x objective-c-header.
898
899         * dwarf2out.c (output_call_frame_info): No need to output EH
900         unwind information if all_throwers_are_sibcalls.
901
902         * c-semantics.c (expand_unreachable_stmt): Return a tree.
903         (expand_stmt): Update for change to expand_unreachable_stmt.
904         (expand_unreachable_if_stmt): Likewise.
905
906         * Makefile.in (quickstrap): Pass BOOT_CFLAGS to submake.
907
908 2003-04-29  Jason Merrill  <jason@redhat.com>
909
910         PR middle-end/10336
911         * jump.c (never_reached_warning): Really stop looking if we reach
912         the beginning of the function.
913
914 2003-04-29  Bob Wilson  <bob.wilson@acm.org>
915
916         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE, USER_LABEL_PREFIX):
917         Remove redundant macros.
918         (WCHAR_TYPE, WCHAR_TYPE_SIZE): Change to "short unsigned int".
919         (LOCAL_LABEL_PREFIX): Define unconditionally.
920         (NO_DOT_IN_LABEL): Clarify comment.
921         * config/xtensa/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Add explicit
922         definition to "long int".
923
924 2003-04-29  Alexander Kabaev  <kan@FreeBSD.ORG>
925
926         bootstrap/10452
927         * gengtype-yacc.y: Improve portability.
928
929 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
930
931         * config.gcc: Install obsolete target list for GCC 3.3.
932         * doc/install.texi: Mention in specific-target instructions
933         that certain configurations are deprecated.
934
935 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
936
937         * tree.h: Delete no-checking definition of CST_OR_CONSTRUCTOR_CHECK.
938
939 2003-04-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
940
941         * c-pragma.c (maybe_apply_renaming_pragma): Fix typo.
942         * gcc.c (display_help): Likewise.
943         * toplev.c (f_options): Likewise.
944         * params.def (PARAM_MAX_INLINE_SCOPE): Likewise.
945         * config/c4x/c4x.h (TARGET_SWITCHES): Likewise.
946         * config/mcore/mcore.h (TARGET_SWITCHES): Likewise.
947         * config/s390/s390.h (TARGET_SWITCHES): Likewise.
948         * config/v850/v850.h (TARGET_SWITCHES): Likewise.
949
950 2003-04-29  J"orn Rennecke <joern.rennecke@superh.com>
951
952         * varasm.c (default_assemble_visibility): Use assemble_name.
953
954 2003-04-29  David O'Brien  <obrien@FreeBSD.org>
955
956         * config/i386/freebsd64.h (LINK_SPEC): Mirror FreeBSD linker.
957         * config/rs6000/freebsd.h (LINK_SHLIB_SPEC): New macro.
958         (SIZE_TYPE): New macro.
959         * config/i386/freebsd-aout.h (NO_PROFILE_COUNTERS): New macro.
960         (SET_ASM_OP): New macro.
961         (HANDLE_SYSV_PRAGMA): New macro.
962         (ASM_WEAKEN_LABEL): New macro.
963
964 2003-04-28  Mark Mitchell  <mark@codesourcery.com>
965
966         PR c++/10180
967         * tree-inline.c (expand_call_inline): Call push_srcloc when
968         encountering EXPR_WITH_FILE_LOCATION.  Honor warn_inline.
969
970 2003-04-28  Mike Stump  <mrs@apple.com>
971
972         * gdbinit.in: Update to reflect new identifier structure.
973
974 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
975
976         * tree.h (TREE_CST_RTL, CST_OR_CONSTRUCTOR_CHECK): Delete.
977         (struct tree_int_cst, struct tree_real_cst, struct tree_string,
978         struct tree_complex, struct tree_vector): Remove RTL field.
979         (CONSTRUCTOR_ELTS): Use elt 0.
980         * tree.def (CONSTRUCTOR): Delete first of its two operands.
981         * varasm.c (output_constant_def): Remove early exit if
982         TREE_CST_RTL is set.  Don't set TREE_CST_RTL.
983         (decode_addr_const): Don't mention TREE_CST_RTL in comment.
984         * target.h (select_section): Don't mention TREE_CST_RTL in comment.
985         * doc/tm.texi (encode_section_info): Don't talk about TREE_CST_RTL.
986
987 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
988
989         * c-decl.c (finish_decl): When prototype with asmspec is found
990         for built-in, adjust built_in_decls as well as expr.c decls.
991         * expr.c (init_block_move_fn, init_block_clear_fn): New functions.
992         (emit_block_move_libcall_fn, clear_storage_libcall_fn): Use it.
993         * expr.c (init_block_move_fn, init_block_clear_fn): New prototypes.
994
995 2003-04-28  Richard Henderson  <rth@redhat.com>
996
997         * config/sparc/sparc.c (print_operand): Add 's' to sign-extend.
998         * config/sparc/sparc.md (const_mulsidi3_v8plus): Fix mode of
999         integral constant mult operand.
1000         (const_mulsidi3_sp32, const_mulsidi3_sp64): Likewise.
1001         (const_smulsi3_highpart_v8plus): Likewise.
1002         (const_smulsi3_highpart): Likewise.
1003         (const_umulsidi3_sp32): Likewise; sign-extend it in the output.
1004         (const_umulsidi3_sp64, const_umulsidi3_v8plus): Likewise.
1005         (const_umulsi3_highpart_v8plus): Likewise.
1006         (const_umulsi3_highpart): Likewise.
1007
1008 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
1009
1010         * config/i386/x86-64.h (NO_PROFILE_COUNTERS, HAVE_AS_DWARF2_DEBUG_LINE):
1011         Define as 1.
1012
1013 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
1014
1015         * config/i386/i386.h (builtin_define): Add __amd64 and __amd64__.
1016
1017 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
1018
1019         * builtins.def (BUILT_IN_BCOPY, BUILT_IN_MEMMOVE): New.
1020         * builtin-types.def (BT_FN_VOID_CONST_PTR_PTR_SIZE): New.
1021         * builtins.c (expand_builtin_memmove, expand_builtin_bcopy): New
1022         functions.
1023         (expand_builtin): Handle BUILT_IN_BCOPY and BUILT_IN_MEMMOVE.
1024
1025 2003-04-28  Nick Clifton  <nickc@redhat.com>
1026
1027         * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Remove definition.
1028
1029 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
1030
1031         * expr.c (expand_expr <COMPLEX_CST, STRING_CST>): Always call
1032         output_constant_def, use its result instead of TREE_CST_RTL (exp).
1033         Can assume it has the form (mem (symbol_ref ".LCxxx")).
1034         (expand_expr <COMPONENT_REF>): Can always just extract the
1035         relevant field of a CONSTRUCTOR.
1036         (expand_expr <ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF,
1037         ARRAY_RANGE_REF>): Make control flow explicit.
1038         * varasm.c (output_constant_def): Can look at TREE_CST_RTL of
1039         an INTEGER_CST.
1040
1041 2003-04-27  Kazu Hirata  <kazu@cs.umass.edu>
1042
1043         * reload1.c (reg_set_luid): Fix a comment typo.
1044
1045 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
1046
1047         * varasm.c (const_str_htab_hash, const_str_htab_eq, STRHASH,
1048         struct deferred_string, const_str_htab): Kill.
1049         (n_deferred_strings): New static variable.
1050         (build_constant_desc): Set SYMBOL_REF_DECL of the new
1051         symbol_ref to point to the constant.
1052         (output_constant_def): When a deferred string is forced out,
1053         just clear STRING_POOL_ADDRESS_P and decrement n_deferred_strings.
1054         (mark_constant): Likewise.
1055         (maybe_output_constant_def_contents): When deferring a string
1056         constant, just set STRING_POOL_ADDRESS_P and increment
1057         n_deferred_strings.
1058         (mark_constant_pool): Check n_deferred_strings, not the size
1059         of const_str_htab.
1060         (init_varasm_once): No need to create const_str_htab.
1061
1062         * rtl.def, rtl.h, doc/rtl.texi: Document possibility that
1063         SYMBOL_REF_DECL points to a constant.
1064
1065 2003-04-26  Zack Weinberg  <zack@codesourcery.com>
1066
1067         * varasm.c (output_constant_def): Split out two new static
1068         functions, build_constant_desc and maybe_output_constant_def_contents.
1069         Restructure for comprehensibility.  Don't call
1070         output_addressed_constants.  Treat defstr being non-NULL for
1071         STRING_POOL_ADDRESS_P constants as an invariant.
1072         (struct deferred_string): Remove labelno field.
1073         (output_constant_def_contents): Kill labelno argument. Call
1074         output_addressed_constants here.  Use ASM_OUTPUT_LABEL, not
1075         asm_out.internal_label.
1076         (mark_constant): Update call to output_constant_def_contents.
1077         Treat defstr being non-NULL for STRING_POOL_ADDRESS_P
1078         constants as an invariant.
1079
1080 2003-04-26  Richard Henderson  <rth@redhat.com>
1081
1082         * config/i386/i386.c (output_pic_addr_const): Use SYMBOL_REF_LOCAL_P.
1083         (ix86_expand_call, ix86_rtx_consts): Likewise.
1084
1085 2003-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1086
1087         * doc/md.texi (cmpstr): Document additional restrictions.
1088
1089 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
1090
1091         * flags.h (time_report): Remove.
1092         * timevar.c (timevar_enable): New.
1093         (TIMEVAR_ENABLE): Remove, use timevar_enable.
1094         (timevar_init): Rename from init_timevar.
1095         * timevar.h (timevar_init): Rename from init_timevar.
1096         * toplev.c (time_report): Make static.
1097         (do_compile): Conditionally call init_timevar first.
1098         (preprocess_options): Move some code to do_compile.
1099
1100 2003-04-26  Stephane Carrez  <stcarrez@nerim.fr>
1101
1102         * doc/install.texi (Binaries): Mention binaries for HC11/HC12.
1103
1104 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
1105
1106         * _cpp_lex_direct: Remove pointless code.
1107
1108 2003-04-26 Stephane Carrez <stcarrez@nerim.fr>
1109
1110         * doc/extend.texi (Function Attributes): Document "near" and "far"
1111         for 68HC11 and 68HC12.
1112
1113 2003-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1114
1115         * expr.c (store_field): When making temporary for store, don't
1116         make it TYPE_QUAL_CONST.
1117
1118 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
1119
1120         * toplev.c (read_integral_parameter):  Use "argument" in error
1121         message to distinguish it from actual invalid options.
1122
1123 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
1124
1125         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Back out previous
1126         addition of __PIC__ and __pic__ macros.
1127         * config/xtensa/xtensa.h: Clean up indentation.
1128
1129 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
1130
1131         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of
1132         _GNU_SOURCE.  Add definitions of __PIC__ and __pic__.
1133         (SUBTARGET_CPP_SPEC): Define.
1134         (LIB_SPEC): Delete.
1135         * config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete.
1136         * config/xtensa/xtensa.c (xtensa_declare_object): Delete.
1137         * config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS):
1138         Define.
1139         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
1140         (ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define.
1141
1142 2003-04-25  H.J. Lu <hjl@gnu.org>
1143
1144         * config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode
1145         for return mode.
1146         (ia64_expand_builtin): Set rmode to SImode for
1147         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI,
1148         IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI and
1149         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI. Set remode to DImode
1150         for IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI.
1151
1152 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
1153
1154         * configure.in (make_compare_target):  Test for GNU cmp and set this
1155         variable appropriately.
1156         * Makefile.in (compare, compare3, compare4, compare-lean, compare3-lean,
1157         compare4-lean): Rename actual targets to slowcompare*.  New compare*
1158         targets depend on names based on make_compare_target.
1159         * configure:  Regenerated.
1160
1161 2003-04-25  Richard Henderson  <rth@redhat.com>
1162
1163         * config/ia64/ia64.c (ia64_compute_frame_size): Allow inline asm
1164         to clobber ar.pfs and ar.unat.
1165         (ia64_expand_prologue): Force alloc instruction if ar.pfs saved;
1166         fix test for spilling ar.pfs to the stack.
1167
1168 2003-04-25  Richard Henderson  <rth@redhat.com>
1169
1170         PR opt/10315
1171         * config/rs6000/rs6000.c (rs6000_emit_move): Only elide proper
1172         checks during reload; use validize_mem instead of adjust_address.
1173
1174 2003-04-26  Ben Elliston  <bje@wasabisystems.com>
1175
1176         * config/arm/arm.c (arm_adjust_cost): Correct logic that tests the
1177         return values from recog_memoized().
1178
1179 2003-04-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1180
1181         PR opt/8705
1182         * gcse.c (try_replace_reg): On a successful substitution of a constant
1183         into a single set, try to simplify the source of the set.
1184         * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a
1185         constant source.
1186
1187 2003-04-24  Neil Booth  <neil@daikokuya.co.uk>
1188
1189         * cpplex.c (cpp_token_len): Tighten up.
1190         (cpp_token_as_text): Need extra byte now.
1191         * cpplib.c (glue_header_name): Need extra 2 bytes.
1192         * cppmacro.c (cpp_macro_definition): Need extra byte.
1193
1194 2003-04-24  Alexander Kabaev <kan@FreeBSD.ORG>
1195
1196         * config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using
1197         const_umulsidi3_sp32 and const_mulsidi3_sp32 on 64bit targets
1198         where they might be not present. Use their _sp64 equivalent
1199         instead.
1200
1201 Thu Apr 24 20:42:12 CEST 2003  Jan Hubicka  <jh@suse.cz>
1202
1203         * i386.md (cvtsi2sdq): Fix typo in previous patch.
1204
1205 2003-04-24  Krister Walfridsson  <cato@df.lth.se>
1206
1207         * configure.in: Check whether mbstowcs works.
1208         * configure, config.in: Regenerate.
1209         * intl.c: Use HAVE_WORKING_MBSTOWCS.
1210
1211 2003-04-24  H.J. Lu <hjl@gnu.org>
1212
1213         * config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di
1214         for __sync_bool_compare_and_swap_di for int return type.
1215
1216         * config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di):
1217         Change return type to int.
1218         (__sync_bool_compare_and_swap): Likewise.
1219
1220 Thu Apr 24 16:55:26 CEST 2003  Jan Hubicka  <jh@suse.cz>
1221
1222         * cfgbuild.c (make_edges):  Do not use next_nonnote_insn when
1223         looking for fallthru edge.
1224
1225         * athlon.md (athlon-agu, athlon-store, athlon-fany, athlon-faddmul):
1226         Fix.
1227         (athlon-load2, athlon-store2, athlon-fpsched, athlon-fpload,
1228         athlon-fvector): New.
1229         (athlon_*): Revisit to match new optimization guide.
1230         * i386.c (ix86_adjust_cost):  Fix memory operand costs on Athlon/k8
1231         * i386.md (cvt??2?? patterns): Fix modes.
1232         (fistp patterns): Set modes.
1233
1234         Accidentaly commited with my earlier reload patch:
1235         PR c/10308
1236         * reload.c (find_reloads_address_1): Reload plus at the place of
1237         index register.
1238
1239 2003-04-24  Nathan Sidwell  <nathan@codesourcery.com>
1240
1241         New GCOV_TAG_FUNCTION layout
1242         * coverage.c (struct function_list): Replace name with ident.
1243         (struct counts_entry): Likewise.
1244         (fn_ident): New.
1245         (htab_counts_entry_hash, htab_counts_entry_eq,
1246         htab_counts_entry_del): Adjust.
1247         (reads_count_file, get_coverage_counts,
1248         coverage_begin_output, coverage_end_function): Adjust.
1249         (build_fn_info_type, build_fn_info_value): Likewise.
1250         * gcov-dump.c (tag_function): Adjust.
1251         * gcov-io.c (gcov_write_string, gcov_read_string): Not in LIBGCOV.
1252         * gcov-io.h (gcov_write_string, gcov_read_string): Not in LIBGCOV.
1253         * gcov.c (struct function_info): Add ident.
1254         (read_graph_file, read_count_file): Adjust.
1255         * libgcov.c (gcov_exit): Adjust.
1256
1257 2003-04-23  Richard Henderson  <rth@redhat.com>
1258
1259         PR opt/8300
1260         * toplev.c (rest_of_compilation): Delay no_new_pseudos until
1261         after initialize_uninitialized_subregs; update reg info assuming
1262         new pseudos were created.
1263
1264 2003-04-23  Neil Booth  <neil@daikokuya.co.uk>
1265
1266         * Makefile.in (c-lex.o, LIBCPP_OBJS, cpplex.o): Update.
1267         * c-lex.c (MULTIBYTE_CHARS): Remove conditionals.
1268         (lex_string): Take cpp_string with full spelling.
1269         (cb_ident): Update.
1270         (c_lex): Update diagnostics.
1271         * cpplex.c (SPELL_NUMBER, SPELL_STRING): Combine into SPELL_LITERAL.
1272         (create_literal): New.
1273         (lex_string): Unterminated literals have type CPP_OTHER.
1274         (_cpp_lex_direct): Update calls to lex_string.  Use create_literal
1275         for CPP_OTHER.
1276         (cpp_token_len, cpp_spell_token, cpp_output_token): Simplify.
1277         (_cpp_equiv_tokens, cpp_interpret_charconst): Update.
1278         * cpplib.c (parse_include, do_line, do_linemarker,
1279         destringize_and_run): Update for token storing full spelling.
1280         * cpplib.h: Update token spelling types.
1281         * cppmacro.c (stringify_arg, check_trad_stringification):
1282         Update for token storing full spelling.
1283
1284 2003-04-23  Ulrich Weigand  <uweigand@de.ibm.com>
1285
1286         * config/s390/s390.c (s390_expand_cmpstr): Disable CLC loop.
1287
1288 2003-04-23  Richard Earnshaw  <rearnsha@arm.com>
1289
1290         * arm.h (TARGET_OPTIONS): Add value field.
1291
1292 2003-04-23  Mark Mitchell  <mark@codesourcery.com>
1293
1294         * doc/extend.texi: Remove duplicate 2003 copyright date.
1295
1296 2003-04-23  Nathan Sidwell  <nathan@codesourcery.com>
1297
1298         * Makefile.in (LIBGCC_DEPS): Add gcov headers.
1299         (libgcov.a): Depends on LIBGCC_DEPS.
1300         * basic-block.h (profile_info): Moved here from coverage.h. Made
1301         a pointer.
1302         * coverage.c (struct function_list): Fixed array of counter types.
1303         (struct counts_entry): Keyed by counter type, contains summary.
1304         (profile_info): Moved to profile.c.
1305         (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, fn_n_ctrs): New global
1306         vars.
1307         (profiler_label): Remove.
1308         (ctr_labels): New.
1309         (set_purpose, label_for_tag, build_counter_section_fields,
1310         build_counter_section_value, build_counter_section_data_fields,
1311         build_counter_section_data_values, build_function_info_fields,
1312         build_function_info_value, gcov_info_fields, gcov_info_value): Remove.
1313         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
1314         build_ctr_info_value, build_gcov_info): New.
1315         (htab_counts_entry_hash, htab_counts_entry_eq): Adjust.
1316         (reads_counts_file): Adjust.
1317         (get_coverage_counts): Takes counter number. Add summary
1318         parameter. Adjust.
1319         (coverage_counter_ref): Tkaes counter number. Adjust. Lazily
1320         create counter array labels.
1321         (coverage_end_function): Adjust.
1322         (create_coverage): Adjust.
1323         (find_counters_section): Remove.
1324         * coverage.h (MAX_COUNTER_SECTIONS): Remove.
1325         (struct section_info, struct profile_info): Remove.
1326         (profile_info): Moved to basic-block.h.
1327         (coverage_counter_ref): Takes a counter number.
1328         (get_coverage_counts): Takes a counter number. Added summary
1329         parameter.
1330         (find_counters_section): Remove.
1331         * gcov-dump.c (tag_arc_counts): Rename to ...
1332         (tag_counters): ... here. Adjust.
1333         (tag_table): Move tag_counters to 3rd entry. Remove
1334         PROGRAM_PLACEHOLDER and PROGRAM_INCORRECT entries.
1335         (dump_file): Check for counter tag values here.
1336         (tag_summary): Adjust.
1337         * gcov-io.c (gcov_write_summary, gcov_read_summary): Adjust.
1338         * gcov-io.h (GCOV_LOCKED): New.
1339         (GCOV_TAG_ARC_COUNTS): Rename to ...
1340         (GCOV_TAG_COUNTS_BASE): ... here.
1341         (GCOV_TAG_PLACEHOLDER_SUMMARY, GCOV_TAG_INCORRECT_SUMMARY):
1342         Remove.
1343         (GCOV_COUNTER_ARCS, GCOV_COUNTERS, GCOV_NAMES): New.
1344         (GCOV_TAG_FOR_COUNTER, GCOV_COUNTER_FOR_TAG,
1345         GCOV_TAG_IS_COUNTER): New.
1346         (struct gcov_ctr_summary): New.
1347         (struct gcov_summary): Adjust.
1348         (struct gcov_counter_section): Remove.
1349         struct gcov_counter_section_data): Remove.
1350         (struct gcov_function_info): Rename to ...
1351         (struct gcov_fn_info): ... here. Adjust.
1352         (struct gcov_ctr_info): New.
1353         (struct gcov_info): Adjust.
1354         * gcov.c (read_count_file): Adjust.
1355         (output_lines): Adjust.
1356         * libgcov.c (gcov_exit): Adjust.
1357         (__gcov_flush): Adjust.
1358         * mklibgcc.in (libgcc2_c_dep): Add gcov headers.
1359         * predict.c (maybe_hot_bb_p, probably_cold_bb_p,
1360         probably_never_executed_bb_p, compute_frequency_function): Adjust
1361         profile_info use.
1362         * profile.c (struct counts_entry): Remove.
1363         (profile_info): Define here.
1364         (get_exec_counts): Adjust get_coverage_counts call.
1365         (compute_branch_probablilities): Remove find_counters_section
1366         call.
1367         (gen_edge_profiler): Adjust coverage_counter_ref call.
1368         * tracer.c (tail_duplicate): Adjust profile_info use.
1369
1370 2003-04-23  Roger Sayle  <roger@eyesopen.com>
1371
1372         PR optimization/10339
1373         * builtins.c (expand_builtin_strcmp): Try to emit cmpstrsi insn
1374         directly instead of unsafely transforming call into a memcmp.
1375         (expand_builtin_strncmp): Likewise.
1376
1377 2003-04-22  Roger Sayle  <roger@eyesopen.com>
1378
1379         * alias.c (mark_constant_function):  Check for constancy and
1380         purity even of void functions.  Update both the function decl
1381         and the cgraph RTL info with the results.
1382
1383 2003-04-22  Roger Sayle  <roger@eyesopen.com>
1384
1385         * real.c (do_add): Change to return a bool indicating that the
1386         result of the operation may be inexact due to loss of precision.
1387         (do_multiply): Likewise.
1388         (do_divide): Likewise.
1389
1390 2003-04-22  Geoffrey Keating  <geoffk@apple.com>
1391             Loren James Rittle  <ljrittle@acm.org>
1392
1393         * dwarf2out.c (fde_table_allocated): Mark with GTY.
1394         (decl_die_table_allocated): Likewise.
1395         (abbrev_die_table_allocated): Likewise.
1396         (line_info_table_allocated): Likewise.
1397         (separate_line_info_table_allocated): Likewise.
1398         (pubname_table_allocated): Likewise.
1399         (arange_table_allocated): Likewise.
1400         (ranges_table_allocated): Likewise.
1401         (decl_die_table_in_use): Unconditionalize; mark with GTY.
1402         (abbrev_die_table_in_use): Likewise.
1403         (line_info_table_in_use): Likewise.
1404         (separate_line_info_table_in_use): Likewise.
1405         (pubname_table_in_use): Likewise.
1406         (arange_table_in_use): Likewise.
1407         (ranges_table_in_use): Likewise.
1408         (have_location_lists): Likewise.
1409         (emitcount): New GTY-marked static, moved...
1410         (maybe_emit_file): ...from here.
1411         (label_num): New GTY-marked static, moved...
1412         (gen_internal_sym): ...from here.
1413
1414 2003-04-22  Richard Henderson  <rth@redhat.com>
1415
1416         PR 8866
1417         * rtl.h (MEM_NOTRAP_P): New.
1418         (MEM_COPY_ATTRIBUTES): Copy it.
1419         * rtlanal.c (may_trap_p): Check it.
1420         * expr.c (do_tablejump): Set it.
1421         * doc/rtl.texi (Flags): Document it.
1422
1423         * cfgrtl.c (try_redirect_by_replacing_jump): Revert last three changes.
1424
1425 2003-04-22  Olivier Hainque  <hainque@act-europe.fr>
1426
1427         * config/alpha/alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't
1428         set FRP on stack adjustment for outgoing args if frame_pointer_needed.
1429
1430 2003-04-22  Vincent Celier <celier@gnat.com>
1431
1432         * gthr-gnat.h, gthr-gnat.c: new sources for implementation of
1433         --enable-threads=gnat.
1434         * Makefile.in: Add gthr-gnat.c to LIB2ADDEH.
1435         * configure.in: Add gnat to the list of thread packages
1436         * configure: Rebuild.
1437         * config/t-linux: Add gthr-gnat.c to LIB2ADDEH and LIB2ADDEHDEP
1438
1439 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
1440
1441         * cpplex.c (_cpp_get_fresh_line): Pop the buffer if return_at_eof.
1442
1443 2003-04-22  Devang Patel  <dpatel@apple.com>
1444
1445         * cpptrad.c (_cpp_replacement_text_len): Add check for macro
1446         parameter count.
1447         (_cpp_copy_replacement_text): Same.
1448
1449 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
1450
1451         * c-lex.c (c_lex): Handle CPP_OTHER differently.
1452         * cppexp.c (_cpp_parse_expr): Similarly.
1453         * cpplex.c (SPELL_CHAR): Remove.
1454         (_cpp_lex_direct): Stray chars are saved as byte strings.
1455         (cpp_spell_token, cpp_output_token, _cpp_equiv_token): Don't
1456         handle SPELL_CHAR.
1457         (cpp_avoid_paste): Update handling of CPP_OTHER.
1458         * cpplib.h: Spell CPP_OTHER like a number.
1459         (struct cpp_token): Remove member c.
1460         * cppmacro.c (stringify_arg): Update handling of CPP_OTHER.
1461
1462 2003-04-22  David Turner <novalis@gnu.org>
1463
1464         * gbl-ctors.h: Add special license exception.
1465         * libgcc2.h: Likewise.
1466         * tsystem.h: Likewise.
1467         * gcov-io.h: Likewise.
1468
1469 2003-04-22  David Edelsohn  <edelsohn@gnu.org>
1470
1471         * fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT
1472         macro defaulting to original BRANCH_COST heuristic.
1473         * doc/tm.texi (RANGE_TEST_NON_SHORT_CIRCUIT): Document.
1474
1475         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Define.
1476
1477 2003-04-22  Aldy Hernandez  <aldyh@redhat.com>
1478
1479         * config/rs6000/t-spe: Merge in t-fprules into file.
1480
1481         * config.gcc: Add t-spe to powerpc-eabispe.
1482
1483 2003-04-22  Kean Johnston  <jkj@sco.com>
1484
1485         * tlink.c (recompile_files): Add missing '=' to putenv calls
1486
1487 2003-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1488
1489         * ginclude/stddef.h: Provide C++ safe offsetof.
1490
1491 2003-04-22  J"orn Rennecke <joern.rennecke@superh.com>
1492
1493         * function.c (purge_addressof_1): In (mem (addressof (reg))) case
1494         for reg notes, if there are no substitutions, just use a SUBREG.
1495
1496 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
1497
1498         * Makefile.in (calls.o): Depend on except.h.
1499         * calls.c: Include except.h.
1500         (emit_call_1): Call note_eh_region_may_contain_throw if
1501         appropriate.
1502         * except.c (eh_region): Add may_contain_throw.
1503         (expand_eh_region_end_cleanup): Do not include handler code when
1504         it cannot be reached.
1505         (note_eh_region_may_contain_throw): New function.
1506         * except.h (note_eh_region_may_contain_throw): New function.
1507
1508 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
1509
1510         * config/i386/winnt.c (i386_pe_mark_dllimport): Revert previous
1511         changes.
1512
1513 2003-04-21  Aldy Hernandez  <aldyh@redhat.com>
1514
1515         * config/rs6000/rs6000.c (rs6000_override_options): No SPE means
1516         64-bit long doubles.
1517
1518 2003-04-21  Olivier Hainque  <hainque@act-europe.fr>
1519
1520         * fold-const.c (fold, case PLUS_EXPR and case MULT_EXPR): Restore
1521         a number of conversions required for type consistency and previously
1522         stripped off by STRIP_NOPS.
1523
1524         * calls.c (expand_call): Prevent sibcall optimization for calls to
1525         nested subprograms.
1526
1527         * expmed.c (extract_bit_field): Reverse operands of && condition to
1528         prevent a potential division by zero in the previously first branch.
1529         * config/pa/pa.md (extv, extzv): FAIL if the bitfield length is zero.
1530
1531 2003-04-21  Joel Brobecker  <brobecker@gnat.com>
1532
1533         * dwarf2out.c (is_ada, is_ada_subrange_type): New functions.
1534         (subrange_type_die): Likewise.
1535         (modified_type_die): Emit a subrange_type DIE for Ada subrange types.
1536         (is_c_family, is_cxx, is_java, is_fortran): Return bool and clean up.
1537
1538 2003-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1539
1540         Break out coverage routines to new file.
1541         * Makefile.in (COVERAGE_H): New variable
1542         (C_OBJS): Add coverage.o
1543         (coverage.o): New target.
1544         (profile.o, loop-init.o, sched-ebb.o, predict.o, tracer.o): Adjust
1545         dependencies.
1546         (GTFILES): Adjust.
1547         (gt-coverage.h): New target.
1548         (gt-profile.h): Remove.
1549         * profile.h: Remove. Move to ...
1550         * coverage.h: ... here. New. #include gcov-io.h.
1551         * gcov-io.h: Move function definitions to ...
1552         * gcov-io.c: ... here. New.
1553         * profile.c: Move coverage routines to coverage.c.
1554         (instrument_edges, get_exec_counts, branch_prob, init_branch_prob,
1555         end_branch_prob): Adjust.
1556         * coverage.c: New. Coverage routines from profile.c
1557         (coverage_counter_ref, coverage_init, coverage_finish,
1558         coverage_end_function, coverage_begin_output,
1559         coverage_counter_ref, get_coverage_counts): Define.
1560         * gcov-dump.c, gcov.c: #include gcov-io.c.
1561         * libgcov.c: Likewise. Adjust.
1562         * loop-init.c: Don't #include profile.h
1563         * tracer.c, predict.c, sched-ebb.c: Adjust #includes.
1564         * rtl.h: Add coverage prototypes.
1565         * toplev.c (compile_file): Init coverage, not branch_prob.
1566         Always call coverage_finish.
1567         (rest_of_compilation): Call coverage_end_function.
1568
1569 2003-04-21  Matt Kraai  <kraai@alumni.cmu.edu>
1570
1571         * config/rs6000/rs6000.md (*movsf_softfloat): Add "h" <- "0" case.
1572
1573 2003-04-21  Neil Booth  <neil@daikokuya.co.uk>
1574
1575         * c-ppoutput.c (cb_include): Don't take a cpp_token.
1576         * cppfiles.c: Don't undef strcmp.
1577         (find_include_file): Don't take a cpp_token.  Check for empty
1578         file names.
1579         (_cpp_execute_include, _cpp_compare_file_date): Don't take a cpp_token.
1580         (cpp_push_include): Simplify.
1581         * cpphash.h (_cpp_execute_include, _cpp_compare_file_date): Update.
1582         * cpplib.c (glue_header_name): Return the file name, not a cpp_token.
1583         (parse_include): Similary.  Don't check for zero-length filenames.
1584         (do_include_common, do_pragma_dependency): Update accordingly.
1585         * cpplib.h (struct cpp_callbacks): Change prototype of include.
1586
1587 2003-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1588
1589         * doc/rtl.texi (RTX_UNCHANGING_P): Point to true_dependence for
1590         details of conflict handling.
1591
1592         * fold-const.c (extract_muldiv, case CONVERT_EXPR): Detect case
1593         when conversion overflows.
1594
1595         * stor-layout.c (layout_decl): Don't set DECL_SIZE_UNIT if already set.
1596
1597         * expr.c (store_constructor): Set RTX_UNCHANGING_P if readonly_field_p
1598         before clearing.
1599
1600 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
1601
1602         * config/i386/winnt.c (i386_pe_mark_dllimport): Make the new RTL
1603         have the same form as the old RTL.
1604
1605 2003-04-21  Andreas Jaeger  <aj@suse.de>
1606
1607         * cppcharset.c (_cpp_valid_ucn): Cast field precision to int.
1608
1609 2003-04-20  Chris Lattner  <sabre@nondot.org>
1610             Zack Weinberg  <zack@codesourcery.com>
1611
1612         * c-common.h, c-semantics.c: Rename genrtl_decl_cleanup to
1613         genrtl_cleanup_stmt.  Correct comment at head of
1614         genrtl_cleanup_stmt (no such thing as a DECL_CLEANUP).
1615
1616         * stmt.c (struct nesting): Kill n_function_calls.
1617         (expand_start_bindings): Don't set
1618         thisblock->data.block.n_function_calls.
1619         (expand_end_bindings): Compare function_call_count against 0.
1620         (expand_cleanups): Kill DONT_DO argument; all callers passed
1621         NULL_TREE. All callers updated to match.
1622
1623 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
1624
1625         * varasm.c (struct deferred_constant, defer_addressed_constants_flag)
1626         (defer_addressed_constants, output_deferred_addressed_constants): Kill.
1627         (output_constant_def): Remove code predicated on
1628         defer_addressed_constants_flag.
1629
1630         * output.h: Remove prototypes of deleted functions.
1631         * c-typeck.c (constructor_subconstants_deferred): Kill.
1632         (struct initializer_stack): Remove 'deferred' field.
1633         (start_init): Remove all references to the above.
1634         (finish_init): Likewise. Also remove never-executed call to
1635         output_deferred_addressed_constants.  Pull assignment to
1636         defstr out of if expression.
1637
1638 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
1639
1640         * cpphash.h (NOTE_ESC_NL, NOTE_ESC_SPACE_NL, NOTE_TRIGRAPH,
1641         NOTE_NEWLINE): Remove.
1642         * cpplex.c (_cpp_clean_line, _cpp_process_line_notes): Update
1643         to handle new form of line note type.
1644
1645 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
1646
1647         * target.h (encode_section_info): Add new argument carrying
1648         the RTL to be modified by the hook.
1649
1650         * varasm.c (make_decl_rtl, output_constant_def): Update calls
1651         to encode_section_info.
1652         (default_encode_section_info): Take and use RTL argument,
1653         don't use TREE_CST_RTL or DECL_RTL.
1654         * output.h: Update prototype of default_encode_section_info.
1655         * config/darwin.h (ASM_DECLARE_OBJECT_NAME)
1656         (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL):
1657         Update calls to encode_section_info.
1658
1659         * config/darwin.c, config/arm/arm.c, config/arm/pe.c
1660         * config/h8300/h8300.c, config/i386/winnt.c, config/m32r/m32r.c
1661         * config/m68hc11/m68hc11.c, config/m88k/m88k.c, config/mcore/mcore.c
1662         * config/mips/mips.c, config/mmix/mmix.c, config/pa/pa.c
1663         * config/romp/romp.c, config/rs6000/rs6000.c, config/s390/s390.c
1664         * config/v850/v850.c (TARGET_ENCODE_SECTION_INFO definitions):
1665         Take and use RTL argument, don't use TREE_CST_RTL or DECL_RTL,
1666         except for PE dllimport/dllexport.  Update calls to
1667         default_encode_section_info.
1668
1669         * config/darwin-protos.h, config/arm/arm-protos.h, config/i386-protos.h:
1670         Update prototypes.
1671
1672         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update.
1673
1674 2003-04-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1675
1676         PR/8705
1677         * pa.md (movccfp): New expander.
1678         (setccfp0, setccfp1): Rename to movccfp0 and movccfp1, respectively.
1679         Reverse fcmp conditions.
1680
1681 2003-04-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1682
1683         * config/avr/avr.md (*cmpqi_sign_extend): Handle negative values
1684         of operand 1 correctly.
1685
1686 2003-04-20  Nathan Sidwell  <nathan@codesourcery.com>
1687
1688         * cpplex.c (_cpp_lex_direct): Set BOL for CPP_EOF tokens.
1689         * gcov.c (output_lines): Don't be so fussy about going past EOF.
1690
1691 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
1692
1693         * Makefile.in (LIBCPP_OBJS): Add cppcharset.o.
1694         (cppcharset.o): New target.
1695         * c-lex.c (is_extended_char): Move to cppcharset.c.
1696         (utf8_extend_token): Delete.
1697         * cppcharset.c: New file.
1698         * cpphash.h (_cpp_valid_ucn): New.
1699         * cpplex.c (lex_identifier): Update prototype.
1700         (continues_identifier_p): Rename forms_identifier_p.  Handle UCN
1701         escapes.
1702         (maybe_read_ucs): Rename maybe_read_ucn.  Update to use code
1703         in cppcharset.c.
1704         (lex_number, lex_identifier, cpp_parse_escape): Update.
1705         (_cpp_lex_direct): Update to handle UCNs.
1706         (cpp_avoid_paste): Don't paste to form a UCN.
1707
1708 2003-04-19  Roger Sayle  <roger@eyesopen.com>
1709
1710         * builtins.c (expand_builtin):  Don't expand a pure or const
1711         built-in function if the result will be ignored and none of
1712         its arguments are volatile.
1713
1714 2003-04-19  Kean Johnston  <jkj@sco.com>
1715
1716         * unwind-dw2.c (_Unwind_GetCFA): cast return to avoid warning
1717         * config.gcc: make SCO use dbxelf.h and elfos.h; only use one
1718         target fragment now: t-sco5; dont compile crti.o.
1719         * config/i386/sco5.h: major overhaul to remove all COFF remnants
1720         and to use elfos.h for most definitions.
1721         (BSS_SECTION_ASM_OP): set correct segment attributes.
1722         (PREFERED_DEBUGGING_TYPE): set to DWARF-2.
1723         (DWARF2_UNWIND_INFO): Always set to 1.
1724         (MD_STARTFILE_PREFIX): Make /usr/gnu/lib the default.
1725         (MD_STARTFILE_PREFIX_1): Define.
1726         (MD_EXEC_PREFIX): Adjust to /usr/gnu/bin if using GAS.
1727         (DEFAULT_LINKER): Define if not specified to configure.
1728         (CTORS_SECTION_ASM_OP): Remove COFF crud.
1729         (DTORS_SECTION_ASM_OP): Remove COFF crud.
1730         (WINT_TYPE): Define.
1731         (SDB_DEBUGGING_INFO): Remove.
1732         (EXTRA_SECTIONS): Likewise.
1733         (EXTRA_SECTION_FUNCTIONS): Likewise.
1734         (CTOR_LIST_BEGIN): Likewise.
1735         (CTOR_LIST_END): Likewise.
1736         (INIT_SECTION_FUNCTION): Likewise.
1737         (FINI_SECTION_FUNCTION): Likewise.
1738         (SUBTARGET_FRAME_POINTER_REQUIRED): Likewise.
1739         (LOCAL_LABEL_PREFIX): Likewise.
1740         (NON_SAVING_SETJMP): Likewise.
1741         (RETURN_POPS_ARGS): Likewise.
1742         (ASM_OUTPUT_SKIP): Likewise.
1743         (TARGET_ASM_NAMED_SECTION): Likewise.
1744         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
1745         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
1746         (ASM_OUTPUT_IDENT): Likewise.
1747         (ASM_OUTPUT_CASE_LABEL): Likewise.
1748         (ASM_OUTPUT_ASCII): Likewise.
1749         (ASM_OUTPUT_LIMITED_STRING): Likewise.
1750         (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
1751         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
1752         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1753         (ASM_FINISH_DECLARE_OBJECT): Likewise.
1754         (ASM_DECLARE_OBJECT_NAME): Likewise.
1755         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
1756         (ASM_DECLARE_FUNCTION_NAME): Likewise.
1757         (ASM_DECLARE_RESULT): Likewise.
1758         (ASM_WEAKEN_LABEL): Likewise.
1759         (SUPPORTS_WEAK): Likewise.
1760         (APPLY_RESULT_SIZE): Likewise.
1761         (LPREFIX): Likewise.
1762         (ALIGN_ASM_OP): Likewise.
1763         (ASCII_DATA_ASM_OP): Likewise.
1764         (IDENT_ASM_OP): Likewise.
1765         (ASM_SHORT): Likewise.
1766         (ASM_LONG): Likewise.
1767         (TYPE_ASM_OP): Likewise.
1768         (SIZE_ASM_OP): Likewise.
1769         (STRING_ASM_OP): Likewise.
1770         (SKIP_ASM_OP): Likewise.
1771         (EH_FRAME_SECTION_ASM_OP): Likewise.
1772         (READONLY_DATA_SECTION_ASM_OP): Likewise.
1773         (INIT_SECTION_ASM_OP): Likewise.
1774         (FINI_SECTION_ASM_OP): Likewise.
1775         (TEXT_SECTION_ASM_OP): Likewise.
1776         (DATA_SECTION_ASM_OP): Likewise.
1777         (TYPE_OPERANT_FORMAT): Likewise.
1778         (ASM_SPEC): Remove COFF code.
1779         (STARTFILE_SPEC): Likewise. Always use crti.o; add -p and -pp support;
1780         cause -pg to emit an error; use pcrt1elf.o with -pp
1781         (ENDFILE_SPEC): Likewise.
1782         (TARGET_OS_CPP_BUILTINS): Add _SCO_DS_LL.
1783         (CPP_SPEC): Remove COFF crud; always look in /usr/gnu/include first.
1784         (LINK_SPEC): Remove COFF crud; use -E for environment switch not -R;
1785         add -z alt_resolve to support weak symbols the way GCC wants them.
1786         (LIB_SPEC): Use the profiler libraries in -p or -pp mode.
1787         (LIBGCC_SPEC): Dont use -lgcc in -G mode.
1788         (ASM_PREFERED_EH_DATA_FORMAT): Remove.
1789         * config/i386/t-sco5 (TARGET_LIBGCC2_CFLAGS): Remove.
1790         (CRTSTUFF_T_CFLAGS_S): Define.
1791         (MULTILIB_OPTIONS): Likewise.
1792         (MULTILIB_DIRNAMES): Likewise.
1793         (MULTILIB_MATCHES): Likewise.
1794         (MULTILIB_EXTRA_OPTS): Likewise.
1795         (LIBGCC): Likewise.
1796         (INSTALL_LIBGCC): Likewise.
1797         (crti.o): Remove.
1798         * config/i386/t-sco5gas: Remove.
1799         * doc/install.texi: Updated for new OpenServer instructions.
1800         * testsuite/gcc.dg/nest.c: Allow failure on SCO (-pg not supported)
1801
1802 2003-04-19  Kean Johnston  <jkj@sco.com>
1803
1804         * fixinc/check.tpl: Allow user to over-ride diff program.
1805         * fixinc/inclhack.def: Removed extraneous #ifndef SVR5.
1806         (sco_math): Added test for SCO math header files.
1807         (sco_regset): Added check for conflicts with ieeefp.h.
1808         (svr4_disable_opt): Removed extraneous #ifdef SVR4.
1809         * fixinc/fixincl.x: Regenerated
1810         * fixinc/tests/base/math.h: Added sco_math tests.
1811         * fixinc/tests/base/string.h: New file.
1812         * fixinc/tests/base/sys/regset.h: New file.
1813
1814 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
1815
1816         * cpphash.h (struct cpp_buffer): Remove backup_to.
1817         * cpplex.c (BACKUP, get_effective_char): Die.
1818         (_cpp_skip_block_comment): Assume '*' is location on entry.
1819         (continues_identifier_p): Respect -fno-dollars-in-identifiers.
1820         (IF_NEXT_IS): Update.
1821         (_cpp_lex_direct): Don't use backup_to; look ahead directly.
1822
1823 2003-04-19  Matt Kraai  <kraai@alumni.cmu.edu>
1824
1825         * README.Portability: Move to a new section and obsolete K+R
1826         portability issues.
1827
1828 Sat Apr 19 14:56:17 CEST 2003  Jan Hubicka  <jh@suse.cz>
1829
1830         * rtlanal.c (subreg_offset_representable_p):  Fix call of
1831         subreg_lowpart.
1832
1833 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
1834
1835         * cpphash.h (struct cpp_reader): New member warned_dollar.
1836         * cpplex.c (continues_identifier_p): New function.
1837         (parse_identifier, parse_number, parse_string): Rename lex_identifer,
1838         lex_number and lex_string, and simplify.
1839         (parse_slow, unescaped_terminator_p): Die.
1840         (_cpp_lex_direct): Update.
1841
1842 2003-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1843
1844         * calls.c (expand_call): Provide init for old_stack_pointer_delta.
1845
1846 2003-04-19  Nathan Sidwell  <nathan@codesourcery.com>
1847
1848         * doc/invoke.texi (-fprofile-arcs): Mention -lgcov, locking and
1849         fork behaviour.
1850
1851 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
1852
1853         * cppexp.c (eval_token): Permit true and false even if pedantic.
1854
1855 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
1856
1857         * cpplex.c (skip_whitespace): Rearrange to avoid stage1 ICE.
1858
1859 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
1860
1861         * cppfiles.c (ENABLE_VALGRIND_CHECKING, VALGRIND_DISCARD,
1862         MMAP_THRESHOLD, TEST_THRESHOLD, SHOULD_MMAP): Remove.
1863         (struct include_file): Remove fefcnt, mapped members.
1864         (open_file, stack_include_file, _cpp_pop_file_buffer): Disable caching.
1865         (read_include_file): Don't use mmap, terminate buffers in '\r'.
1866         (purge_cache): Don't use munmap.
1867         * cpphash.h (CPP_BUF_COLUMN): Update.
1868         (lexer_state): Remove lexing_comment.
1869         (struct _cpp_line_note): New.
1870         (struct cpp_buffer): New members cur_note, notes_used, notes_cap,
1871         next_line and need_line.  Remove col_adjust and saved_flags.
1872         (_cpp_process_line_notes, _cpp_clean_line, _cpp_get_fresh_line,
1873         _cpp_skip_block_comment, scan_out_logical_line): New.
1874         (_cpp_init_mbchar): Remove.
1875         * cppinit.c (init_library): Remove call to _cpp_init_mbchar.
1876         (cpp_read_main_file): Set line to 1 earlier.
1877         (post_options): -traditional-cpp doesn't want trigraphs.
1878         * cpplex.c (MULTIBYTE_CHARS): Remove code predicated on this.
1879         (add_line_note, _cpp_clean_line, _cpp_process_line_notes,
1880         _cpp_get_fresh_line): New.
1881         (handle_newline, skip_escaped_newlines, trigraph_p,
1882         continue_after_nul, _cpp_init_mbchar): Remove.
1883         (get_effective_char): Update.
1884         (_cpp_skip_block_comment): Rename from skip_block_comment, simplify.
1885         (skip_line_comment): Simplify.
1886         (skip_whitespace, parse_identifier, parse_slow, parse_number,
1887         parse_string): Update.
1888         (cpp_lex_direct): Use clean lines and process line notes.  Update.
1889         (cpp_interpret_charconst): No MULTIBYTE_CHARS.
1890         * cpplib.c (prepare_directive_trad): Call scan_out_logical_line
1891         directly.
1892         (_cpp_handle_directive): Don't set saved_flags.
1893         (run_directive, destringize_and_run, cpp_define, cpp_define_builtin,
1894         cpp_undef, handle_assertion, cpp_push_buffer): Update.
1895         (_cpp_pop_buffer): Free notes.
1896         * cppmacro.c (builtin_macro, paste_tokens): \n terminate buffer.
1897         * cpppch.c (cpp_read_state): \n terminate buffer.
1898         * cpptrad.c (skip_escaped_newlines, handle_newline): Remove.
1899         (copy_comment): Use _cpp_skip_block_comment.
1900         (skip_whitespace, lex_identifier, _cpp_read_logical_line_trad):
1901         Simplify.
1902         (_cpp_overlay_buffer, _cpp_remove_overlay, push_replacement_text,
1903         save_replacement_text): Update.
1904         (scan_out_logical_line): Update to use clean lines and process
1905         line notes.
1906         * fix-header.c (read_scan_file): Update.
1907
1908 2003-04-18  Douglas B Rupp  <rupp@gnat.com>
1909
1910         * unwind-dw2-fde.c (__register_frame_info_bases): Check for
1911         null begin parameter (as well as pointer to null).
1912         (__deregister_frame_info_bases): Likewise.
1913
1914 2003-04-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1915
1916         * function.c (purge_addressof_1): For ADDRESSOF, see if SUB is a
1917         hard or virtual register and copy into pseudo if replacement fails.
1918
1919         * cfgcleanup.c (flow_find_cross_jump): Use INSN_P, not active_insn_p.
1920
1921         * expmed.c (mask_rtx): Avoid undefined shifts for BITSIZE of 0.
1922
1923 2003-04-18  Olivier Hainque <hainque@act-europe.fr>
1924
1925         * calls.c (expand_call): Move special case for constructor calls
1926         to right place. Ensures constructor calls used to initialize
1927         arguments get a clean outgoing argument block for themselves.
1928         Move check for stack deallocation completeness until after last
1929         deallocation.  Add stack_pointer_delta to set of state
1930         variables saved and restored along with current stack_level.
1931
1932         * integrate.c (expand_inline_function): Ensure non-const actuals
1933         don't end up const in the caller's flow after conversion to possibly
1934         const formal type.
1935
1936 2003-04-18  Vincent Celier  <celier@gnat.com>
1937
1938         * dwarf2out.c (loc_descriptor_from_tree): Treat all *_MOD_EXPR
1939         and *_DIV_EXPR as TRUNC_*_EXPR.
1940
1941 2003-04-18  Mark Mitchell  <mark@codesourcery.com>
1942
1943         * cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block
1944         for orphaned jump tables.
1945
1946 2003-04-18  Kazu Hirata  <kazu@cs.umass.edu>
1947
1948         * reload1.c: Revert my previous patch on 2002-04-17.
1949
1950 2003-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1951
1952         * doc/contrib.texi (Contributors): Prefer "bug fix" over "bugfix".
1953         Add Segher Boessenkool.
1954
1955 2003-04-18  Alexander Sotirov  <sluncho@mirizma.org>
1956
1957         PR c/9177
1958         * c-decl.c (c_expand_body): Don't garbage collect the function
1959         body if we are going to dump it later.
1960
1961 2003-04-18  Richard Henderson  <rth@redhat.com>
1962
1963         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): Remove.
1964         (alpha_end_function): Don't set them.
1965         (decl_in_text_section): Remove.
1966         (alpha_encode_section_info): Remove.
1967         (samegp_function_operand): Use SYMBOL_REF LOCAL_P and EXTERNAL_P.
1968         (direct_call_operand): Use SYMBOL_REF_DECL and compare actual
1969         sections, rather than decl_in_text_section results.
1970
1971 2003-04-18  Roger Sayle  <roger@eyesopen.com>
1972
1973         * rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT
1974         and SIGN_EXTRACT.
1975
1976 2003-04-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1977
1978         PR optimization/7675
1979         * c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag
1980         on VAR_DECL, PARM_DECL and FUNCTION_DECL from within
1981         nested functions if they refer to declarations from parent functions.
1982         * stmt.c (expand_decl): Don't put automatic variables in registers
1983         if the DECL_NONLOCAL flag is set.
1984
1985 2003-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
1986
1987         * gcse.c (compute_ld_motion_mems): For MEM destinations, only
1988         consider those to be movable where the source matches
1989         want_to_gcse_p.
1990         (update_ld_motion_stores): In comment, refer to
1991         compute_ld_motion_mems for validity of replacement.
1992
1993 Fri Apr 18 01:28:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
1994
1995         * gcov-dump.c (tag_summary): Remove max_sum
1996         * gcov-io.h (gcov_summary, gcov_write_summary,
1997         gcov_read_summary): Kill max_sum.
1998         * libgcov.c (gcov_exit): Do one pass over the data.  Make error
1999         message more verbose.
2000
2001         * emit-rtl.c (subreg_hard_regno):  Check that register is
2002         representable.
2003
2004         * reload.c (reload_inner_reg_of_subreg):  When register is not
2005         representable, reload the whole thing.
2006         (find_reloads): Likewsie.
2007         * rtlanal.c (subreg_representable_p):  New function.
2008
2009         * profile.c (compute_branch_probabilities):  Cleanup sanity checking;
2010         allow negative probabilities for edges from the call to exit.
2011         (branch_prob): Do not add fake edges for functions that may return
2012         twice.
2013
2014 2003-04-17  DJ Delorie  <dj@redhat.com>
2015
2016         * toplev.c (target_options): Add value field.
2017         (set_target_switch): Handle target options with values.
2018         * doc/tm.texi: Document how fixed vs variable target
2019         options work.
2020         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
2021         config/c4x/c4x.h, config/cris/aout.h, config/cris/cris.h,
2022         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
2023         config/frv/frv.h, config/i386/i386.h, config/ia64/ia64.h,
2024         config/m32r/m32r.h, config/m68hc11/m68hc11.h,
2025         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
2026         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa.h,
2027         config/rs6000/rs6000.h, config/rs6000/sysv4.h,
2028         config/s390/s390.h, config/sparc/sparc.h, config/v850/v850.h:
2029         Add value initializer to target options.
2030
2031 2003-04-07  Loren James Rittle  <ljrittle@acm.org>
2032
2033         * cpppch.c (cpp_valid_state): Unconditionally initialize nl.
2034
2035 2003-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2036
2037         * reload1.c (move2add_last_cc0): New.
2038         (reload_cse_move2add): Detect implicit sets.
2039         (move2add_note_store): Notice a store into cc0.
2040
2041 2003-04-17  Roger Sayle  <roger@eyesopen.com>
2042
2043         PR c/10375
2044         * c-decl.c (duplicate_decls): Preserve "const" and "noreturn"
2045         function attributes.
2046
2047 2003-04-17  Janis Johnson  <janis187@us.ibm.com>
2048
2049         * doc/sourcebuild.texi (Test Suites): Document support for testing
2050         binary compatibility (moved from testsuite/README.compat).
2051
2052 2003-04-17  Richard Henderson  <rth@redhat.com>
2053
2054         * config/ia64/ia64.c (ia64_in_small_data_p): Disallow strings.
2055
2056 2003-04-17  Simon Law  <sfllaw@engmail.uwaterloo.ca>
2057
2058         * doc/include/gpl.texi: Fix double-spacing after "MA" to match
2059         the one provided by the FSF.
2060
2061 2003-04-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2062
2063         * doc/install.texi (Binaries): Update URL and list of platforms
2064         provided by ftp.thewrittenword.com.
2065
2066 2003-04-17  Richard Henderson  <rth@redhat.com>
2067
2068         * config/xtensa/xtensa.c (xtensa_encode_section_info): Remove.
2069         (call_insn_operand): Use SYMBOL_REF_LOCAL_P.
2070         * config/xtensa/xtensa.md (call, call_value): Likewise.
2071
2072 2003-04-17  Richard Henderson  <rth@redhat.com>
2073
2074         * config/v850/v850.c (print_operand): Use SYMBOL_REF_[ZST]DA.
2075         (print_operand_address): Likewise.
2076         (ep_memory_operand): Likewise.
2077         (special_symbolref_operand): Likewise.
2078         (v850_encode_data_area): Use SYMBOL_REF_FLAGS.
2079         (v850_encode_section_info): Call default_encode_section_info.
2080         (v850_strip_name_encoding): Remove.
2081         * config/v850/v850.h (EXTRA_CONSTRAINT): Use SYMBOL_REF_[ZST]DA.
2082         (ASM_OUTPUT_LABELREF): Remove.
2083         (ZDA_NAME_FLAG_CHAR, ZDA_NAME_P): Remove.
2084         (SDA_NAME_FLAG_CHAR, SDA_NAME_P): Remove.
2085         (TDA_NAME_FLAG_CHAR, TDA_NAME_P): Remove.
2086         (ENCODED_NAME_P): Remove.
2087         (SYMBOL_FLAG_ZDA, SYMBOL_REF_ZDA_P): New.
2088         (SYMBOL_FLAG_SDA, SYMBOL_REF_SDA_P): New.
2089         (SYMBOL_FLAG_TDA, SYMBOL_REF_TDA_P): New.
2090
2091 2003-04-17  Richard Henderson  <rth@redhat.com>
2092
2093         * config/stormy16/stormy16.c (xstormy16_encode_section_info): Kill.
2094         * config/stormy16/stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use
2095         SYMBOL_REF_FUNCTION_P.
2096
2097 2003-04-17  Richard Henderson  <rth@redhat.com>
2098
2099         * config/sparc/sparc.c (sparc_encode_section_info): Remove.
2100         (data_segment_operand): Use SYMBOL_REF_FUNCTION_P.
2101         (text_segment_operand): Likewise.
2102
2103 2003-04-17  Richard Henderson  <rth@redhat.com>
2104
2105         * config/sh/sh.c (gen_datalabel_ref): Don't add SH_DATALABEL_ENCODING.
2106         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
2107         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
2108         (sh_encode_section_info): Remove.
2109         (sh_strip_name_encoding): Remove.
2110         * config/sh/sh.h (SH_DATALABEL_ENCODING): Remove.
2111         (DATALABEL_SYMNAME_P, STRIP_DATALABEL_ENCODING): Remove.
2112         (SH_TLS_ENCODING, TLS_SYMNAME_P, STRIP_TLS_ENCODING): Remove.
2113         (ASM_OUTPUT_LABELREF): Remove.
2114         (ASM_OUTPUT_SYMBOL_REF): Use SYMBOL_REF_FUNCTION_P.
2115         * config/sh/sh.md (*): Use SYMBOL_REF_LOCAL_P.
2116
2117 2003-04-17  Richard Henderson  <rth@redhat.com>
2118
2119         * config/s390/s390.c (SYMBOL_FLAG_ALIGN1): New.
2120         (tls_model_chars): Remove.
2121         (larl_operand): Use SYMBOL_REF_FLAGS.
2122         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
2123         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
2124         (s390_output_mi_thunk): Likewise.
2125         (s390_emit_prologue): Set SYMBOL_FLAG_LOCAL as needed.
2126         (s390_function_profiler): Likewise.
2127         (s390_encode_section_info): Use default_encode_section_info
2128         and SYMBOL_FLAG_ALIGN1.
2129         (s390_strip_name_encoding): Remove.
2130         * config/s390/s390.h (ASM_OUTPUT_LABELREF): Remove.
2131         * config/s390/s390.md (call, call_value): Use SYMBOL_REF_LOCAL_P.
2132         (builtin_setjmp_receiver): Set SYMBOL_FLAG_LOCAL as needed.
2133
2134 2003-04-17  Richard Henderson  <rth@redhat.com>
2135
2136         * config/ns32k/ns32k.c (ns32k_encode_section_info): Remove.
2137         (global_symbolic_reference_mentioned_p): Use SYMBOL_REF_LOCAL_P.
2138         (print_operand_address): Likewise.
2139
2140         * config/ns32k/ns32k.h (CANNOT_CHANGE_MODE_CLASS): Add CLASS argument.
2141         * config/ns32k/ns32k.c (expand_block_move): Don't check
2142         flag_unroll_loops.
2143
2144 2003-04-17  Richard Henderson  <rth@redhat.com>
2145
2146         * config/mcore/mcore.c (mcore_encode_section_info): Don't set
2147         SYMBOL_REF_FLAG.
2148
2149 2003-04-17  Richard Henderson  <rth@redhat.com>
2150
2151         * rtl.h (SYMBOL_FLAG_MACH_DEP_SHIFT): New.
2152
2153         * config/m32r/m32r.c (SYMBOL_FLAG_MODEL_SHIFT): New.
2154         (SYMBOL_REF_MODEL): New.
2155         (LIT_NAME_P): Move from m32r.h.
2156         (m32r_select_section): Remove.
2157         (m32r_encode_section_info): Use SYMBOL_REF_FLAGS.
2158         (m32r_strip_name_encoding): Remove.
2159         (m32r_in_small_data_p): New.
2160         (small_data_operand): Use SYMBOL_REF_SMALL_P.
2161         (addr24_operand): Use SYMBOL_REF_MODEL.
2162         (call26_operand): Likewise.
2163         (addr32_operand): Tidy.
2164         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
2165         * config/m32r/m32r.h (RODATA_SECTION_ASM_OP): Remove.
2166         (SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Remove.
2167         (READONLY_DATA_SECTION_ASM_OP): Remove.
2168         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
2169         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Remove.
2170         (TARGET_ASM_SELECT_SECTION): Remove.
2171         (SDATA_FLAG_CHAR, MEDIUM_FLAG_CHAR, LARGE_FLAG_CHAR): Remove.
2172         (SDATA_NAME_P, SMALL_NAME_P, MEDIUM_NAME_P): Remove.
2173         (LARGE_NAME_P, ENCODED_NAME_P): Remove.
2174         (ASM_OUTPUT_LABELREF): Remove.
2175
2176 2003-04-17  Richard Henderson  <rth@redhat.com>
2177
2178         * config/ip2k/ip2k.c (is_regfile_address): Use SYMBOL_REF_FUNCTION_P.
2179         (encode_section_info): Remove.
2180         * config/ip2k/ip2k-protos.h: Update.
2181
2182 2003-04-17  Richard Henderson  <rth@redhat.com>
2183
2184         * varasm.c (default_encode_section_info): Don't set
2185         SYMBOL_FLAG_EXTERNAL if not TREE_PUBLIC.
2186         * config/i370/i370.c (i370_encode_section_info): Remove.
2187         * config/i370/i370.h (CONSTANT_ADDRESS_P): Use SYMBOL_REF_EXTERNAL_P.
2188         (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Likewise.
2189         * config/i370/i370.md (movsi): Likewise.
2190
2191         * config/i370/t-i370: Add missing backslash.
2192
2193 2003-04-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
2194
2195         * doc/invoke.texi (inline-limit): Fix pasto.
2196
2197 2003-04-17  Richard Henderson  <rth@redhat.com>
2198
2199         * config/h8300/h8300.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): New.
2200         (small_call_insn_operand): Use it.
2201         (SYMBOL_FLAG_EIGHTBIT_DATA): New.
2202         (h8300_eightbit_constant_address_p): Use it.
2203         (SYMBOL_FLAG_TINY_DATA): New.
2204         (h8300_tiny_constant_address_p): Use it.
2205         (h8300_encode_label, h8300_strip_name_encoding): Remove.
2206         (h8300_encode_section_info): Set SYMBOL_REF_FLAGS.
2207         * config/h8300/h8300.h (TINY_DATA_NAME_P): Remove.
2208         (ASM_OUTPUT_LABELREF): Remove.
2209
2210 2003-04-16  Richard Henderson  <rth@redhat.com>
2211
2212         * config/frv/frv.c (symbol_ref_small_data_p): Remove.  Replace
2213         all users with SYMBOL_REF_SMALL_P.
2214         (const_small_data_p): Use SYMBOL_REF_SMALL_P.
2215         (frv_encode_section_info): Remove.
2216         (frv_strip_name_encoding): Remove.
2217         (frv_in_small_data_p): Merge tests from encode_section_info.
2218         (frv_print_operand): Use '@' not SDATA_FLAG_CHAR.
2219         * config/frv/frv.h (SDATA_FLAG_CHAR): Remove.
2220         (SDATA_NAME_P): Remove.
2221         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use SIZE not SDATA_NAME_P.
2222         (ASM_OUTPUT_LABELREF): Remove.
2223         (PRINT_OPERAND_PUNCT_VALID_P): Use '@' not SDATA_FLAG_CHAR.
2224
2225         * config/frv/frv.c (frv_asm_out_constructor): New.
2226         (frv_asm_out_destructor): New.
2227         * config/frv/frv.h (CTORS_SECTION_ASM_OP): New.
2228         (DTORS_SECTION_ASM_OP): New.
2229         (ASM_OUTPUT_CONSTRUCTOR): Remove.
2230         (ASM_OUTPUT_DESTRUCTOR): Remove.
2231
2232 2003-04-16  Richard Henderson  <rth@redhat.com>
2233
2234         * config/cris/cris.c (cris_gotless_symbol, cris_got_symbol): Use
2235         SYMBOL_REF_LOCAL_P; abort if not pic.
2236         (cris_encode_section_info): Remove.
2237
2238 2003-04-16  Richard Henderson  <rth@redhat.com>
2239
2240         * config/c4x/c4x.c (c4x_encode_section_info): Remove.
2241         (c4x_T_constraint): Use SYMBOL_REF_FUNCTION_P.
2242
2243         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Declare
2244         flag_inline_trees.
2245
2246 2003-04-16  Richard Henderson  <rth@redhat.com>
2247
2248         * config/avr/avr.c (avr_encode_section_info): Remove.
2249         (avr_insert_attributes): New.
2250         (print_operand_address): Use SYMBOL_REF_FUNCTION_P.
2251         (avr_assemble_integer): Likewise.
2252
2253 2003-04-16  Richard Henderson  <rth@redhat.com>
2254
2255         * arc.c (arc_encode_section_info): Remove.
2256         (arc_assemble_integer): Use SYMBOL_REF_FUNCTION_P.
2257         (arc_print_operand, arc_print_operand_address): Likewise.
2258         * arc.h (EXTRA_CONSTRAINT): Likewise.
2259
2260 2003-04-16  Roger Sayle  <roger@eyesopen.com>
2261
2262         * c-semantics.c (find_reachable_label): New function to find a
2263         potentially reachable label in an expression.
2264         (expand_unreachable_if_stmt): Similar to expand_if_stmt but
2265         assumes the start of the IF_STMT is unreachable (dead) code.
2266         (expand_unreachable_stmt): Similar to expand_stmt but assumes
2267         the start of the statement list is unreachable (dead) code.
2268         (genrtl_if_stmt):  If the controlling expression of the IF
2269         is constant, use expand_unreachable_stmt for the THEN or ELSE
2270         clause as appropriate.
2271         (genrtl_switch_stmt):  Use expand_unreachable_stmt to expand
2272         the body of a SWITCH statement.
2273         (expand_stmt): The code immediately following a "return",
2274         "break", "continue" or "goto" is unreachable.
2275         * Makefile.in (c-semantics.o): Depend upon tree-inline.h.
2276
2277 2003-04-16  Richard Henderson  <rth@redhat.com>
2278
2279         * rtl.h (MEM_ALIAS_SET): Update documentation.
2280         * doc/rtl.texi (Special Accessors): New node.
2281         (SYMBOL_REF_FLAG): Note relationship with SYMBOL_REF_FLAGS.
2282
2283 2003-04-16  Alexandre Oliva  <aoliva@redhat.com>
2284
2285         * reload1.c (reload_cse_noop_set_p): Return false if mode of
2286         SET_DEST is not the same as that returned by...
2287         * cselib.h (cselib_reg_set_mode): ... new function.
2288         * cselib.c (cselib_reg_set_mode): Define it.
2289         (REG_VALUES): Document semantics of first element as set mode.
2290         (cselib_subst_to_values): Skip first element if ELT is NULL.
2291         (cselib_lookup): Likewise.  Insert past the first element.
2292         (cselib_invalidate_regno): NULLify first element.
2293         (cselib_record_set): Set first element.
2294
2295 2003-04-16  Olivier Hainque <hainque@act-europe.fr>
2296
2297         * tree.c (skip_simple_arithmetics_at, saved_expr_p): New functions.
2298         (save_expr): Replace loop by call to skip_simple_arithmetics_at.
2299         * tree.h: Add prototypes for the two new functions.
2300         * fold-const.c (fold_binary_op_with_conditional_arg): Replace test
2301         updates introduced in the previous revision by call to saved_expr_p.
2302         * stor-layout.c (put_pending_size): Use skip_simple_arithmetics_at.
2303
2304         * expr.c (store_field): Force usage of bitfield instructions when
2305         the field position requires it, whatever SLOW_UNALIGNED_ACCESS.
2306         (expand_expr, case BIT_FIELD_REF): likewise.
2307
2308 2003-04-16  Mark Mitchell  <mark@codesourcery.com>
2309
2310         PR middle-end/8866
2311         * cfgtrl.c (try_redirect_by_replacing_jump): Do not delete
2312         jumptables.
2313
2314 2003-04-16  Richard Henderson  <rth@redhat.com>
2315
2316         * config/ia64/ia64.c (sdata_symbolic_operand): Use
2317         SYMBOL_REF_SMALL_P and SYMBOL_REF_LOCAL_P.
2318         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
2319         (function_operand): Use SYMBOL_REF_FUNCTION_P.
2320         (ia64_expand_load_address): Likewise.
2321         (ia64_assemble_integer): Likewise.
2322         (ia64_encode_section_info): Remove.
2323         (ia64_strip_name_encoding): Remove.
2324         * config/ia64/ia64.h (ENCODE_SECTION_INFO_CHAR): Remove.
2325         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't strip it.
2326
2327 2003-04-16  Richard Henderson  <rth@redhat.com>
2328
2329         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): New.
2330         (samegp_function_operand): Use SYMBOL_FLAG_SAMEGP.
2331         (direct_call_operand): Use SYMBOL_FLAG_NEAR.
2332         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
2333         (small_symbolic_operand): Use SYMBOL_REF_SMALL_P.
2334         (global_symbolic_operand): Similarly.
2335         (tls_symbolic_operand_1): Use SYMBOL_REF_TLS_MODEL.
2336         (tls_symbolic_operand_type): Likewise.
2337         (alpha_encode_section_info): Use default_encode_section_info.
2338         (alpha_strip_name_encoding): Remove.
2339         (get_tls_get_addr): Split out from ...
2340         (alpha_legitimize_address): ... here.
2341         (alpha_emit_xfloating_libcall): Use init_one_libfunc.
2342         (get_some_local_dynamic_name_1): Use SYMBOL_REF_TLS_MODEL.
2343         (alpha_initialize_trampoline): Use init_one_libfunc.
2344         (alpha_setup_incoming_varargs): Mark unused parameters.
2345         (alpha_initial_elimination_offset): Likewise.
2346         (alpha_end_function): Use SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP.
2347         (unicosmk_unique_section): Use default_strip_name_encoding.
2348         (unicosmk_ssib_name, unicosmk_output_externs): Likewise.
2349
2350 2003-04-16  Aldy Hernandez  <aldyh@redhat.com>
2351
2352         * config.gcc: Add t-spe for eabispe.
2353
2354         * config/rs6000/t-spe: New.
2355
2356 2003-04-16  J"orn Rennecke <joern.rennecke@superh.com>
2357
2358         Re-apply this patch:
2359
2360         2002-05-16  Dale Johannesen  <dalej@apple.com>
2361           * combine.c (cant_combine_insn_p):  Reenable combinations
2362           involving hard regs unless CLASS_LIKELY_SPILLED_P.
2363
2364 2003-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2365
2366         PR/10271
2367         * pa-protos.h (function_arg): Remove last argument.
2368         * pa.c (function_arg): Likewise.  Use CUMULATIVE_ARGS struct instead.
2369         * pa.h (struct hppa_args): Add member incoming.
2370         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Initialize
2371         member incoming.
2372         (FUNCTION_ARG): Revise call to function_arg.
2373         (FUNCTION_INCOMING_ARG): Delete.
2374
2375 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
2376
2377         * configure.in: Unify the code which creates symlinks to a
2378         just-built as, ld, objdump, and nm with the code that detects
2379         their presence for purposes of feature tests.
2380         * configure: Regenerate.
2381
2382 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
2383
2384         * varasm.c (output_constant_def): Do not consult
2385         CONSTANT_AFTER_FUNCTION_P.  Remove all code predicated on it.
2386         (after_function_constants, output_after_function_constants): Delete.
2387         * doc/tm.texi: Delete documentation of CONSTANT_AFTER_FUNCTION_P.
2388         * config/mips/mips-protos.h, config/mips/mips.c
2389         (mips16_constant_after_function_p): Delete.
2390         * config/mips/mips.h: Delete #if-0-ed definition of
2391         CONSTANT_AFTER_FUNCTION_P.
2392         * config/d30v/d30v.h, config/stormy16/stormy16.h: Remove
2393         mention of CONSTANT_AFTER_FUNCTION_P in comment.
2394
2395 2003-04-15  Geoffrey Keating  <geoffk@apple.com>
2396
2397         * tree.c (next_decl_uid): Mark with GTY.
2398         (next_type_uid): Likewise.
2399
2400 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
2401
2402         PR target/9594:
2403         * sh.c (barrier_align): Also recognize stuff_delay_slot as
2404         an indicator that a barrier was created by branch splitting.
2405
2406 2003-04-15  Mark Mitchell  <mark@codesourcery.com>
2407
2408         * c-decl.c (implicitly_declare): Copy declarations that are going
2409         to be placed in a local scope.
2410
2411 2003-04-15  James A. Morrison  <ja2morri@uwaterloo.ca>
2412
2413         * invoke.texi (Spec Files): Wrap if-exists-else example.
2414         (MCore): Remove duplicate @itemx entries and @opindex entries.
2415
2416 2003-04-15  Ulrich Weigand  <uweigand@de.ibm.com>
2417
2418         * unwind.inc (_Unwind_Backtrace): New function.
2419         * unwind.h (_Unwind_Backtrace): Declare it.
2420         * libgcc-std.ver (_Unwind_Backtrace): Export it.
2421
2422 2003-04-14  Jason Merrill  <jason@redhat.com>
2423
2424         PR middle-end/10336, c++/10401
2425         * jump.c (never_reached_warning): Also stop looking if we reach the
2426         beginning of the function.
2427
2428 2003-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2429
2430         PR target/10338
2431         PR bootstrap/10198
2432         PR bootstrap/10140
2433         * fixinc/gnu-regex.c (regerror): Use mempcpy not __mempcpy.
2434
2435 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
2436
2437         * i386.md (abssf2_if+1): Make condition agree with abssf2_1 .
2438
2439 2003-04-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2440
2441         * optabs.c (expand_binop): In multi-word add cases, ensure
2442         XTARGET is copied to TARGET if they are different.
2443
2444 2003-04-15  Olivier Hainque <hainque@act-europe.fr>
2445
2446         * except.c (resolve_fixup_regions): Avoid dereferencing null pointer
2447         to region, possible after integration of function with unreachable
2448         regions that were optimized away.
2449
2450 2003-04-15  Jakub Jelinek  <jakub@redhat.com>
2451
2452         * config/rs6000/rs6000.h (EPILOGUE_USES): Use register 2,
2453         instead of TOC_REGISTER in epilogue in
2454         current_function_calls_eh_return functions.
2455
2456 2003-04-14  Mark Mitchell  <mark@codesourcery.com>
2457
2458         * doc/extend.texi (Empty Structures): Correct description of G++'s
2459         handling of these structures.
2460
2461         * c-decl.c (grokdeclarator): Reject extern redeclarations of
2462         static variables.
2463
2464 2003-04-14  Janis Johnson  <janis287@us.ibm.com>
2465
2466         * config/rs6000/rs6000.md (define_constants): Define constants for
2467         all UNSPEC usage, including new values for TLS support.
2468         (aux_truncdfsf2, fctiwz, movsi_got, movsi_got_internal,
2469         load_toc_aix_si, load_toc_aix_di, load_toc_v4_pic_si,
2470         load_toc_v4_PIC_1, load_toc_v4_PIC_1b, load_macho_picbase,
2471         macho_correct_pic, blockage, move_from_CR_ov_bit, movesi_from_cr,
2472         stack_tie, movsi_to_cr_one, movsi_to_cr, mtcrfsi, eh_set_lr_si,
2473         eh_set_lr_di): Use them.
2474         * rs6000.c: (mtcrf_operation, uses_TOC, rs6000_emit_prologue,
2475         rs6000_emit_epilogue) Use them.
2476
2477         * rtl.h (SYMBOL_REF_TLS_MODEL): Fix mask value.
2478
2479 2003-04-14  Neil Booth  <neil@daikokuya.co.uk>
2480
2481         * Makefile.in (c-opts.o): Use custom action.
2482
2483 2003-04-14  Douglas B Rupp  <rupp@gnat.com>
2484
2485         * ifcvt.c (noce_process_if_block): Fail on BLKmode move.
2486
2487 2003-04-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2488
2489         * stor-layout.c (layout_type, case ARRAY_TYPE): Add missing code to
2490         handle "superflat arrays" in Ada.
2491
2492         * integrate.c (expand_inline_function): Don't inline if would
2493         lose /u on a BLKmode TARGET.
2494
2495 2003-04-14  Joel Brobecker  <brobecker@gnat.com>
2496
2497         * dbxout.c (print_int_cst_bounds_in_octal_p): New function,
2498         extracted from dbxout_type.
2499         (dbxout_range_type): print large bounds in octal format.
2500         (dbxout_type): Replace extracted code by call to
2501         print_int_cst_bounds_in_octal_p.
2502
2503         * dwarf2out.c (gen_compile_unit_die): Emit DW_LANG_Ada95 instead
2504         of DW_LANG_Ada83 for Ada units.
2505
2506 2003-04-14  Olivier Hainque <hainque@act-europe.fr>
2507
2508         * explow.c (round_push): Use HOST_WIDE_INT instead of int for the
2509         temporary used to round CONST_INT sizes.
2510
2511         * tree.c (int_fits_type_p): Extract generic checks from the case
2512         of constant type bounds. Refine the checks against constant type
2513         bounds to allow for possible decisions against each of these bounds
2514         without requiring both bounds to be constant.
2515         (tree_int_cst_msb): Put back.
2516         * tree.h (tree_int_cst_msb): Likewise.
2517
2518         * global.c (global_conflicts): Prevent allocation of call clobbered
2519         hard regs to pseudos live across abnormal edges, as later passes are
2520         not ready to handle them.
2521
2522         * fold-const.c (fold): Reorder tests for conditional expressions.
2523
2524         * expr.c (highest_pow2_factor): Return unsigned.
2525         * expr.h (offset_address): Likewise.
2526         * emit-rtl.c (offset_address): POW2 argument now unsigned.
2527
2528 2003-04-14  Roger Sayle  <roger@eyesopen.com>
2529
2530         * builtins.c (expand_builtin_strlen):  Evaluate the lengths of
2531         string literals at compile-time.
2532
2533 2003-04-14  Roger Sayle  <roger@eyesopen.com>
2534
2535         * fold-const.c (fold):  Transform (c1 - x) cmp c2, where cmp is a
2536         comparison operation and c1/c2 are floating point constants into
2537         x swap(cmp) (c1 - c2).
2538
2539 2003-04-14  Vladimir Makarov  <vmakarov@redhat.com>
2540
2541         * genautomata.c (output_translate_vect): Fix a typo in loop
2542         condition.
2543
2544 2003-04-14  Hans-Peter Nilsson  <hp@axis.com>
2545
2546         PR target/10377
2547         * config/cris/cris.md ("*mov_sideqi", "*mov_sidehi")
2548         ("*mov_sidesi", "*mov_sideqi_mem", "*mov_sidehi_mem")
2549         ("*mov_sidesi_mem", "*clear_sidesi", "*clear_sidehi")
2550         ("*clear_sideqi", "*ext_sideqihi", "*ext_sideqisi")
2551         ("*ext_sidehisi", "*op_sideqi", "*op_sidehi", "*op_sidesi")
2552         ("*op_swap_sideqi", "*op_swap_sidehi", "*op_swap_sidesi")
2553         ("*extopqihi_side", "*extopqisi_side", "*extophisi_side")
2554         ("*extopqihi_swap_side", "*extopqisi_swap_side")
2555         ("*extophisi_swap_side", 8th, 9th, 10th, 11th, 14th peepholes):
2556         When next to constraint R, replace constraint i with n.
2557
2558 Mon Apr 14 16:18:37 CEST 2003  Jan Hubicka  <jh@suse.cz>
2559
2560         PR opt/10024
2561         * cfgrtl.c (force_nonfallthru_and_redirect): Use unchecked_make_edge.
2562
2563 2003-04-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2564
2565         * doc/contrib.texi (Contributors): Correct my entry.
2566
2567 2003-04-13  Roger Sayle  <roger@eyesopen.com>
2568
2569         * tree.h (DECL_BUILT_IN_NONANSI): Remove.
2570         * c-common.c (builtin_function_2): Don't set DECL_BUILT_IN_NONANSI.
2571         * c-decl.c (duplicate_decls): Use invariant DECL_BUILT_IN_NONANSI
2572         implies DECL_BUILT_IN to simplify logic.
2573         * print-tree.c (print_node): Don't dump DECL_BUILT_IN_NONANSI.
2574
2575 2003-04-13  Roger Sayle  <roger@eyesopen.com>
2576
2577         * builtin-types.def (BT_FN_STRING_CONST_STRING): New builtin type.
2578         (BT_FN_PTR_SIZE_SIZE): Likewise.
2579         * builtins.def (BUILT_IN_MALLOC, BUILT_IN_CALLOC, BUILT_IN_STRDUP):
2580         New built-in functions for malloc, calloc and strdup respectively.
2581         * calls.c (special_function_p): No need to handle malloc-like
2582         functions any longer.  ECF_MALLOC is set via built-in attributes.
2583
2584         * c-decl.c (duplicate_decls): Preserve pure and malloc attributes.
2585
2586         * doc/extend.texi: Document these new built-in functions.
2587
2588 2003-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2589
2590         * builtins.c (expand_builtin_memcpy): Add `endp' argument, use it.
2591         (expand_builtin_stpcpy): New.
2592         (expand_builtin): Add BUILT_IN_MEMPCPY & BUILT_IN_STPCPY.
2593         * builtins.def: Add mempcpy & stpcpy support.
2594         * doc/extend.texi (mempcpy, stpcpy): Document new builtins.
2595
2596 2003-04-13  Nick Clifton  <nickc@redhat.com>
2597
2598         * config/rs6000/rs6000.c: Replace occurrences of "GNU CC" with
2599         "GCC".
2600         * config/rs6000/40x.md, config/rs6000/603.md,
2601         config/rs6000/6xx.md, config/rs6000/7450.md, config/rs6000/7xx.md,
2602         config/rs6000/8540.md, config/rs6000/aix.h, config/rs6000/aix31.h,
2603         config/rs6000/aix3newas.h, config/rs6000/aix41.h,
2604         config/rs6000/aix43.h, config/rs6000/aix51.h,
2605         config/rs6000/aix52.h, config/rs6000/altivec-defs.h,
2606         config/rs6000/altivec.h, config/rs6000/altivec.md,
2607         config/rs6000/beos.h, config/rs6000/darwin.h,
2608         config/rs6000/eabi.h, config/rs6000/eabialtivec.h,
2609         config/rs6000/eabisim.h, config/rs6000/eabispe.h,
2610         config/rs6000/freebsd.h, config/rs6000/gnu.h,
2611         config/rs6000/host-darwin.c, config/rs6000/linux.h,
2612         config/rs6000/linux64.h, config/rs6000/linuxaltivec.h,
2613         config/rs6000/lynx.h, config/rs6000/mach.h, config/rs6000/mpc.md,
2614         config/rs6000/netbsd.h, config/rs6000/power4.md,
2615         config/rs6000/rios1.md, config/rs6000/rios2.md,
2616         config/rs6000/rs6000-c.c, config/rs6000/rs6000-modes.def,
2617         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
2618         config/rs6000/rs6000.h, config/rs6000/rs6000.md,
2619         config/rs6000/rs64.md, config/rs6000/rtems.h, config/rs6000/spe.h,
2620         config/rs6000/spe.md, config/rs6000/sysv4.h,
2621         config/rs6000/sysv4le.h, config/rs6000/vxworks.h,
2622         config/rs6000/windiss.h, config/rs6000/xcoff.h: Likewise.
2623
2624 2003-04-13  Nick Clifton  <nickc@redhat.com>
2625
2626         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Delete
2627         support for -mcall-aix switch.
2628         * config/rs6000/eabiaix.h: Delete.
2629         * config/rs6000/rs6000.h (rs6000_abi): Remove ABI_AIX_NODESC.
2630         (RS6000_REG_SAVE, RS6000_SAVE_AREA, FP_ARGS_MAX_REG,
2631         RETURN_ADDRESS_OFFSET): Remove use of ABI_AIX_NODESC.
2632         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Likewise.
2633         * config/rs6000/rs6000.c (print_operand, rs6000_stack_info,
2634         debug_stack_info, output_function_profiler,
2635         rs6000_trampoline_size, rs6000_initialise_trampoline): Likewise.
2636         * config/rs6000/rs6000.md (call, call_value, call_nonlocal_sysv,
2637         call_indirect_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
2638         call_value_nonlocal_sysv, sibcall_value_nonlocal_sysv,
2639         sibcall_nonlocal_sysv, sibcall_value_local64): Likewise.
2640         * config/rs6000/t-ppcgas (MULTILIB_OPTIONS): Remove mcall-aix
2641         multilibs.
2642         (MULTILIB_DIRNAMES): Remove mcall-aix directories.
2643         (MULTILIB_EXCEPTIONS): Delete.
2644         (MULTILIB_MATCHES): Remove mcall-aix matches.
2645
2646         * doc/fragments.texi: Replace -mcall-aix example with an ARM
2647         one.
2648         * doc/install.texi: Delete powerpc-*-eabiaix target.
2649         * doc/invoke.texi: Remove documentation of mcall-aix switch.
2650         * doc/tm.texi: Remove mcall-aix from example CPP_SPEC.
2651         * config.gcc: Delete powerpc-*-eabiaix target.
2652
2653 2003-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2654
2655         * doc/invoke.texi: Fix typos.
2656         * doc/tm.texi: Likewise.
2657
2658 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
2659
2660         * c-typeck.c (digest_init, push_init_level): Use CONSTRUCTOR_ELTS.
2661
2662 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
2663
2664         * tree.c (build_constructor): New function.
2665         * tree.h: Prototype it.
2666
2667         * c-typeck.c (build_c_cast, pop_init_level)
2668         * profile.c (build_function_info_value, build_gcov_info_value)
2669         (create_profiler):
2670         Use build_constructor.
2671
2672         * builtins.c (expand_builtin_args_info): Remove #if 0 blocks.
2673
2674         * objc/objc-act.c (build_constructor):
2675         Rename objc_build_constructor. Use build_constructor.
2676         (build_objc_string_object, objc_add_static_instance)
2677         (init_def_list, init_objc_symtab, init_module_descriptor)
2678         (generate_static_references, build_selector_translation_table)
2679         (build_descriptor_table_initializer, generate_descriptor_table)
2680         (build_protocol_initializer, build_ivar_list_initializer)
2681         (generate_ivars_list, build_dispatch_table_initializer)
2682         (generate_dispatch_table, generate_protocol_list)
2683         (build_category_initializer, build_shared_structure_initializer):
2684         Update to match.
2685
2686 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
2687
2688         * intl.h: #define gcc_gettext_width to strlen when !ENABLE_NLS.
2689
2690 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
2691
2692         * config/m68hc11/m68hc11-protos.h
2693         (m68hc11_eq_compare_operator): Declare
2694         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register new predicate.
2695         * config/m68hc11/m68hc11.c (m68hc11_eq_compare_operator): New predicate
2696         (d_register_operand): Check the operand mode.
2697         (hard_addr_reg_operand): Likewise.
2698
2699 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
2700
2701         * config/m68hc11/m68hc11.md ("decrement_and_branch_until_zero"): New
2702         pattern for dbcc/ibcc generation for 68HC12.
2703         ("doloop_end"): New pattern.
2704         ("m68hc12_dbcc_dec_hi"): New pattern for dbeq/dbne.
2705         ("m68hc12_dbcc_inc_hi"): New pattern for ibeq/ibne.
2706         ("m68hc12_dbcc_dec_qi"): New pattern.
2707         ("m68hc12_dbcc_inc_qi"): New pattern.
2708         (split): Add split for the above when we can't use dbcc/ibcc due to
2709         reloading.
2710         (peephole2): Add peephole2 to generate the above when possible.
2711
2712 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
2713
2714         * config/m68hc11/m68hc11.md ("bitcmpqi" split): No need to test the
2715         mode of operand 0.
2716         (peephole2 optimize const load): Likewise for operand 2.
2717         ("*rotlhi3_with_carry"): Change pattern to a const 1 rotate which
2718         clobbers CC_REGNUM.
2719         ("*rotrhi3_with_carry"): Likewise.
2720         (ashift:DI 1 split): Update pattern to create the above rotate.
2721         (lshiftrt:DI 1 split): Likewise.
2722
2723 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
2724
2725         * config/m68hc11/m68hc11.md (SOFT_Z_REGNUM): New constant.
2726         ("tstqi_z_used" split): Use it.
2727         ("cmphi_z_used"): Likewise.
2728         ("bitcmpqi_z_used"): Likewise; also use SP_REGNUM constant.
2729         ("cmpqi_z_used"): Likewise.
2730
2731 2003-04-12  Mark Mitchell  <mark@codesourcery.com>
2732
2733         PR c++/7910
2734         * config/i386/winnt.c (i386_pe_mark_dllimport): Fix thinko.
2735
2736 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
2737
2738         * configure.in: Check for wchar.h, mbstowcs, and wcswidth.
2739         * configure, config.in: Regenerate.
2740         * intl.c (gcc_gettext_width): New function.
2741         * intl.h: Prototype it.
2742
2743 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
2744
2745         * config/m68hc11/m68hc11.h (TARGET_SWITCHES): Fix -mnominmax option;
2746         recognize -mnorelax.
2747         (reg_class): Add Z_OR_S_REGS to represent soft registers with Z
2748         (REG_CLASS_NAMES): Add its name.
2749         (REG_CLASS_CONTENTS): Define its content.
2750
2751 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
2752
2753         * config/m68hc11/larith.asm (memcpy): Use ARG macro to access stack
2754         parameters so that offsets are valid for far definition.
2755         (__mulsi3): Likewise and use ret to return.
2756         (___adddi3, ___subdi3, ___notdi2, ): Don't use it to save the result.
2757
2758 2003-04-12  David Edelsohn  <edelsohn@gnu.org>
2759
2760         * config/rs6000/rs6000.c (rs6000_hash_constant): Skip '0' fields.
2761
2762 2003-04-12  Alexandre Oliva  <aoliva@redhat.com>
2763
2764         * mklibgcc.in (libgcc-stage-start): For every multilib  directory
2765         containing a libgcc.a, move lib* to the corresponding stage dir.
2766
2767         * Makefile.in (stage1-start, stage2-start, stage3-start,
2768         stage4-start): Move $(SPECS) to specs in stage dir.
2769         (unstage1 unstage2 unstage3 unstage4): Move specs in stage dir
2770         back as $(SPECS).
2771
2772         * mklibgcc.in (libgcc-stage-start): Move into the stage directory
2773         object files from the non-libgcc/ multilib directories as well.
2774
2775 2003-04-11  Geoffrey Keating  <geoffk@apple.com>
2776
2777         * profile.c (read_counts_file): Initialise 'checksum'.
2778
2779         * emit-rtl.c (gen_rtx): Really correct typo.
2780
2781         PR c++/9393
2782         * doc/invoke.texi (Debugging Options): Document -frandom-seed.
2783         * configure.in: Check for gettimeofday.
2784         * tree.c (flag_random_seed): Define.
2785         (default_flag_random_seed): New.
2786         (append_random_chars): Use flag_random_seed rather than trying
2787         to acquire randomness here.
2788         * tree.h (default_flag_random_seed): Declare.
2789         * toplev.c (display_help): Add -frandom-seed and -fstack-limit-*
2790         descriptions.
2791         (decode_f_option): Handle -frandom-seed.
2792         (print_switch_values): Call default_flag_random_seed.
2793         * flags.h (flag_random_seed): Declare.
2794         * configure: Regenerate.
2795         * config.in: Regenerate.
2796         * config/alpha/t-crtfm: Use -frandom-seed.
2797
2798         * doc/extend.texi (Empty Structures): New.
2799
2800         * c-pch.c: Include flags.h.  Add comments to routines.
2801         (struct c_pch_validity): New.
2802         (get_ident): Update PCH file version number.
2803         (pch_init): Output current debugging type.
2804         (c_common_valid_pch): Check debugging type.
2805         * Makefile.in (c-pch.o): Update dependencies.
2806         * flags.h (debug_type_names): Declare.
2807         * toplev.c (debug_type_names): Move out of decode_g_option.
2808
2809 2003-04-11  Eric Christopher  <echristo@redhat.com>
2810
2811         * emit-rtl.c (gen_rtx): Fix typos.
2812
2813 2003-04-11  Richard Henderson  <rth@redhat.com>
2814
2815         * emit-rtl.c (gen_rtx): Zero '0' fields.
2816
2817 2003-04-11  Richard Henderson  <rth@redhat.com>
2818
2819         PR c++/10202
2820         * expr.c (expand_expr): Use COMPLETE_OR_UNBOUND_ARRAY_TYPE_P
2821         not COMPLETE_TYPE_P for re-invoking layout_decl.
2822
2823 2003-04-11  Simon Law  <sfllaw@engmail.uwaterloo.ca>
2824
2825         * doc/bugreport.texi: Fix paragraph breaking between sections
2826         in preparation for TeXinfo's paragraph indentation fixes.
2827         * doc/extend.texi: Ditto.
2828         * doc/invoke.texi: Ditto.
2829         * doc/objc.texi: Ditto.
2830         * doc/gcov.texi: Wrap 'gcov' in @command{}.
2831         * doc/invoke.texi (Darwin Options): Add a preamble.
2832
2833 2003-04-11  Richard Henderson  <rth@redhat.com>
2834
2835         * config/i386/i386.c (tls_model_chars): Remove.
2836         (ix86_encode_section_info, ix86_strip_name_encoding): Remove.
2837         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
2838         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
2839         (tls_symbolic_operand_1): Likewise.
2840         (legitimate_pic_address_disp_p): Use SYMBOL_REF_LOCAL_P.
2841         * config/i386/i386.h (TARGET_ENCODE_SECTION_INFO): Remove.
2842         (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
2843         * config/i386/winnt.c (i386_pe_encode_section_info): Replace
2844         bits "copied from i386.h" with default_encode_section_info.
2845
2846 2003-04-11  Richard Henderson  <rth@redhat.com>
2847
2848         * rtl.def (SYMBOL_REF): Add two 0 fields.
2849         * gengtype.c (adjust_field_rtx_def): Handle them.
2850         * print-rtl.c (print_rtx): Print them.
2851         * rtl.h (SYMBOL_REF_DECL, SYMBOL_REF_FLAGS): New.
2852         (SYMBOL_FLAG_FUNCTION, SYMBOL_REF_FUNCTION_P): New.
2853         (SYMBOL_FLAG_LOCAL, SYMBOL_REF_LOCAL_P): New.
2854         (SYMBOL_FLAG_SMALL, SYMBOL_REF_SMALL_P): New.
2855         (SYMBOL_FLAG_TLS_SHIFT, SYMBOL_REF_TLS_MODEL): New.
2856         (SYMBOL_FLAG_EXTERNAL, SYMBOL_REF_EXTERNAL_P): New.
2857         (SYMBOL_FLAG_MACH_DEP): New.
2858         * optabs.c (init_one_libfunc): Zap fake SYMBOL_REF_DECL.
2859         * varasm.c (make_decl_rtl): Set SYMBOL_REF_DECL.
2860         (assemble_static_space): Set SYMBOL_REF_FLAGS.
2861         (assemble_trampoline_template): Likewise.
2862         (output_constant_def, force_const_mem): Likewise.
2863         (default_encode_section_info): New.
2864         * output.h: Declare it.
2865         * target-def.h (TARGET_ENCODE_SECTION_INFO): Use it.
2866
2867 2003-04-11  Richard Henderson  <rth@redhat.com>
2868
2869         * libfuncs.h (LTI_setbits, LTI_gcov_flush, LTI_gcov_init): New.
2870         (setbits_libfunc, gcov_flush_libfunc, gcov_init_libfunc): New.
2871         * optabs.c (init_optabs): Initialize them.
2872         (init_libfuncs): Use init_one_libfunc.
2873         * calls.c (expand_call): Use gcov_flush_libfunc.
2874         * expr.c (store_constructor): Use setbits_libfunc.
2875         * function.c (expand_main_function): Use init_one_libfunc.
2876         * profile.c (create_profiler): Use gcov_init_libfunc and DECL_RTL.
2877
2878 2003-04-11  Mark Mitchell  <mark@codesourcery.com>
2879
2880         * doc/c-tree.texi (Functions): Remove DECL_REAL_CONTEXT
2881         documentation; add DECL_FRIEND_CONTEXT.
2882
2883 2003-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2884
2885         * doc/install.texi (hppa): Update links for HP-UX patches.  Revise
2886         notes on linker selection and configuration for 64-bit HP-UX port.
2887         * doc/invoke.texi (hppa): Remove hppa text from description for
2888         -ffunction-sections and -fdata-sections.  Document -static, -nolibdld
2889         and -threads options.
2890
2891         * pa-hpux10.h (LIB_SPEC): Add link options to resolve dependency of
2892         libc.a on libdld.sl when -static is specified and -nolibdld is not
2893         specified.
2894         * pa64-hpux.h (LIB_SPEC): Likewise.
2895         * pa-hpux11.h (LIB_SPEC): Likewise.
2896         (LINK_SPEC): Add __gcc_plt_call as an undefined symbol when -shared
2897         is not specified.
2898
2899 2003-04-11  Zack Weinberg  <zack@codesourcery.com>
2900
2901         * config/darwin-c.c (darwin_pragma_unused): Use lookup_name,
2902         not IDENTIFIER_LOCAL_VALUE.
2903
2904 2003-04-11  Richard Henderson  <rth@redhat.com>
2905
2906         PR c/10201
2907         * expr.c (expand_expr): Move DECL_RTL frobbing ...
2908         * stor-layout.c (layout_decl): ... here.
2909
2910 2003-04-11  James A. Morrison <ja2morri@uwaterloo.ca>
2911
2912         * doc/invoke.texi: Eliminate extra white-space caused by
2913         @gccoptlist{ on its own line.
2914         * doc/invoke.texi: Ensured there are two spaces between each option.
2915         * doc/invoke.texi: Re-wrapped option lines that were too wide.
2916         Added @gol to options that didn't have them.
2917
2918 2003-04-11  Nathan Sidwell  <nathan@codesourcery.com>
2919
2920         * Makefile.in (loop-init.o): Do not depend on gcov-io.h,
2921         gcov-iov.h.
2922
2923         Simplify interface to gcov reading and writing.
2924         * gcov-io.h (gcov_file, gcov_position, gcov_length, gcov_buffer,
2925         gcov_alloc, gcov_modified, gcov_errored): Move into ...
2926         (struct gcov_var gcov_var): ... this static structure.
2927         (gcov_write_unsigned, gcov_write_counter, gcov_write_string):
2928         Return void.
2929         (gcov_read_unsigned, gcov_read_couter, gcov_read_string): Return
2930         read object.
2931         (gcov_read_bytes, gcov_write_bytes): Set error flag on error.
2932         (gcov_reserve_length): Remove.
2933         (gcov_write_tag): New.
2934         (gcov_write_length): Adjust.
2935         (gcov_read_summary, gcov_write_summary): Adjust.
2936         (gcov_eof, gcov_ok): Rename to ...
2937         (gcov_is_eof, gcov_is_error): ... here. Return error code.
2938         (gcov_save_position, gcov_resync): Rename to ...
2939         (gcov_position, gcov_seek): ... here.
2940         (gcov_skip, gcov_skip_string): Remove.
2941         (gcov_error): Remove.
2942         (gcov_open, gcov_close): Adjust.
2943         * gcov.c (find_source): Take const char *, copy it on allocation.
2944         (read_graph_file): Adjust.
2945         (read_count_file): Adjust.
2946         * libgcov.c (gcov_exit): Adjust.
2947         * gcov-dump.c (tag_function, tag_blocks, tag_arcs, tag_lines,
2948         tag_arc_counts, tag_summary): Return void. Adjust.
2949         (struct tag_format): Adjust proc member.
2950         (dump_file): Adjust gcov calls.
2951
2952 2003-04-11  Alexandre Oliva  <aoliva@redhat.com>
2953
2954         * Makefile.in (fixinc.sh): Pass BUILD_LIBERTY as LIBERTY to
2955         mkfixinc.sh.
2956         * fixinc/mkfixinc.sh (defs): Add LIBERTY.
2957         * configure.in (STMP_FIXINC, STMP_FIXPROTO): Don't disable on
2958         build != host sysrooted builds.
2959         * configure.in (SYSTEM_HEADER_DIR): Make sure it contains
2960         TARGET_SYSTEM_ROOT even on sysrooted natives.
2961         * configure: Rebuilt.
2962
2963 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
2964
2965         * c-decl.c (struct binding_level): Add shadowed_tags and
2966         function_body; remove this_block, tag_transparent, and
2967         subblocks_tag_transparent; update comments.
2968         (clear_binding_level, lookup_tag_reverse): Kill.
2969         (make_binding_level): Use ggc_alloc_cleared or memset.
2970         (lookup_tag): Remove struct binding_level* parameter.  All
2971         callers changed. Just look at IDENTIFIER_TAG_VALUE, and
2972         current_binding_level->tags if asked for thislevel_only or if
2973         we might have to diagnose "struct foo; union foo;"
2974         (pushlevel): Ignore argument.  Do not push another binding
2975         level on the transition from the parameters to the top level
2976         of the function body; just tweak the flags and proceed.
2977         (poplevel): Overhaul.  Clear IDENTIFIER_TAG_VALUEs; on exiting
2978         a function body, separate the parameter list from the
2979         top-level local variables.
2980         (set_block): Do nothing.
2981         (pushtag): Set IDENTIFIER_TAG_VALUE and add an entry to
2982         shadowed_tags if necessary.
2983         (warn_if_shadowing): Nuke the special case for local shadowing
2984         parameter.
2985         (pushdecl): Do not create a shadow entry if we are replacing
2986         an older decl in the same binding level.
2987         (pushdecl_function_level): Tweak for new way of indicating
2988         function scope.
2989         (shadow_tag_warned): Use TYPE_NAME, not lookup_tag_reverse.
2990         (start_function): Don't set subblocks_tag_transparent.
2991         (finish_function): Fix up the binding_level stack for totally
2992         empty functions.  Otherwise, don't call poplevel.
2993
2994         * c-common.c (shadow_warning): MANDATORY argument is no longer
2995         necessary.  Always use plain warning.
2996         * c-common.h: Update to match.
2997
2998         * cfglayout.c (scope_to_insns_initialize): Clear block when we
2999         hit the FUNCTION_DECL.
3000         * function.c: Do not create cyclic tree structure.
3001
3002 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
3003
3004         * c-tree.h (struct lang_identifier): Replace global_value,
3005         local_value members with symbol_value, tag_value.  Kill
3006         implicit_decl and limbo_value.
3007         (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_LOCAL_VALUE,
3008         IDENTIFIER_LIMBO_VALUE, IDENTIFIER_IMPLICIT_DECL,
3009         C_MISSING_PROTOTYPE_WARNED): Kill.
3010         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE,
3011         C_DECL_IMPLICIT, C_DECL_ISNT_PROTOTYPE): New.
3012         (C_DECL_ANTICIPATED): Rename to C_DECL_INVISIBLE.
3013         (implicit_decl_warning, lookup_name_current_level,
3014         record_function_scope_shadow): Don't prototype.
3015         (pushdecl_function_level): Prototype.
3016
3017         * c-decl.c (truly_local_externals): New variable.
3018         (struct binding_level): Adjust commentary.
3019         (get_function_binding_level, clear_limbo_values,
3020         record_function_scope_shadow): Kill.
3021         (lookup_name_current_level, implicit_decl_warning): Are now static.
3022         (any_external_decl, record_external_decl): New static functions.
3023         (clone_underlying type): Split out of pushdecl.
3024         (c_print_identifier): Update to match changes to struct
3025         lang_identifier.
3026         (poplevel): Delete #if 0 block.  Make externals invisible
3027         instead of clearing their IDENTIFIER_SYMBOL_VALUEs.  Don't
3028         call clear_limbo_values.  Refer to IDENTIFIER_SYMBOL_VALUE not
3029         IDENTIFIER_GLOBAL_VALUE or IDENTIFIER_LOCAL_VALUE.
3030         (duplicate-decls): For real parm decl after a forward decl,
3031         set TREE_ASM_WRITTEN here.  Allow void foo(...) followed by
3032         foo(...) { } with only a warning.  Say whether a previous
3033         declaration was implicit.
3034         (warn_if_shadowing): Now handles all shadowing, not just
3035         local-over-local.  Clarify comments.
3036         (pushdecl): Rewritten.  There is no longer a distinction
3037         between global and local symbol values; they're all
3038         IDENTIFIER_SYMBOL_VALUE.  Call record_external_decl on all
3039         DECL_EXTERNAL decls, and use any_external_decl to check
3040         against previous externals.  Kill #if 0 blocks.  Don't
3041         tolerate error_mark_node being NULL.
3042         (pushdecl_top_level): Handle only those cases which
3043         Objective C (the only user) needs.
3044         (pushdecl_function_level): New function.
3045         (implicitly_declare): Create ordinary decls with
3046         C_DECL_IMPLICIT set.  Recycle old decls, however they got
3047         created.
3048         (lookup_name): It's always IDENTIFIER_SYMBOL_VALUE. Return 0
3049         for C_DECL_INVISIBLE symbols.
3050         (lookup_name_current_level): Likewise.  Use chain_member.
3051         (c_make_fname_decl): Don't muck with DECL_CONTEXT.
3052         Use pushdecl_function_level.
3053         (builtin_function): Use C_DECL_INVISIBLE.
3054         (start_function): Don't muck with IDENTIFIER_IMPLICIT_DECL.
3055         Use C_DECL_ISNT_PROTOTYPE and C_DECL_IMPLICIT.
3056         (store_parm_decls): It's IDENTIFIER_SYMBOL_VALUE now.
3057         (identifier_global_value): Same.  Must scan
3058         global_binding_level in extremis.
3059
3060         * c-typeck.c (undeclared_variable): New static function, split
3061         from build_external_ref.
3062         (build_external_ref): Use DECL_CONTEXT, not
3063         IDENTIFIER_LOCAL_VALUE, to decide whether a local hides
3064         an instance variable.  Restructure for clarity.
3065         * objc/objc-act.c: Use identifier_global_value, not
3066         IDENTIFIER_GLOBAL_VALUE.
3067
3068 2003-04-08  Jonathan Wakely  <redi@gcc.gnu.org>
3069
3070         * doc/extend.texi (Template Instantiation): Refer to ISO standard,
3071         not Working Paper.
3072         * doc/invoke.texi (C++ Dialect Options): Same.
3073
3074 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
3075
3076         * tree.c (tree_operand_check_failed): New function.
3077         * tree.h (TREE_OPERAND_CHECK, TREE_OPERAND_CHECK_CODE,
3078         TREE_RTL_OPERAND_CHECK): New checking macros.
3079         (TREE_OPERAND, SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL,
3080         RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, WITH_CLEANUP_EXPR_RTL,
3081         CONSTRUCTOR_ELTS, LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
3082         EXIT_BLOCK_RETURN, LOOP_EXPR_BODY, EXPR_WFL_NODE,
3083         EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, TARGET_EXPR_SLOT,
3084         TARGET_EXPR_INITIAL, TARGET_EXPR_CLEANUP): Use the new
3085         checking macros.
3086
3087 Thu Apr 10 23:52:30 CEST 2003  Jan Hubicka  <jh@suse.cz>
3088
3089         PR inline-asm/8803
3090         * function.c (instantate_virtual_regs):  Verify that all ASM statements
3091         match after the virutal regs instantiation.
3092
3093 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
3094
3095         * ia64-protos.h (addp4_optimize_ok): New.
3096         * ia64.c (addp4_optimize_ok): New.
3097         * ia64.md (*ptr_extend_plus_1): Use addp4_optimize_ok.
3098         (*ptr_extend_plus_2): Ditto.
3099
3100 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
3101
3102         * expr.c (expand_assignment): Extend offset_rtx with convert_to_mode
3103         not with convert_memory_address.
3104         (store_constructor): Ditto, and same for copy_size_rtx.
3105         (expand_expr): Ditto.
3106
3107 2003-04-10  Douglas B Rupp  <rupp@gnat.com>
3108
3109         * config/i386/i386.c (ix86_ms_bitfield_layout_p): Fix formatting.
3110
3111 2003-04-10  Bob Wilson  <bob.wilson@acm.org>
3112
3113         * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Flush data cache
3114         even if it is configured to be write-through.
3115
3116 2003-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
3117
3118         * config/s390/s390.c (larl_operand): Do not allow symbols
3119         marked with '@'.
3120         (s390_encode_section_info): Mark symbols with forced 1-byte
3121         alignment with '@'.
3122         (s390_strip_name_encoding): Strip '@'.
3123         (legitimize_pic_address): Handle symbols that are not valid
3124         LARL operands in 64-bit mode.
3125
3126 2003-04-10  Andrew Haley  <aph@redhat.com>
3127
3128         * tree-inline.c (inlinable_function_p): Disable inlining for
3129         synchronized methods.
3130
3131 2003-04-09  Steven Bosscher  <steven@gcc.gnu.org>
3132
3133         * c-common.h (lang_statement_code_p): Remove declaration.
3134         (statement_code_p): Ditto.
3135         (c_common_stmt_codes): Define; list of c-common statement codes.
3136         (statement_code_p): New extern declaration.
3137         (STATEMENT_CODE_P): Define.
3138         (INIT_STATEMENT_CODES): Define.
3139         * c-common.c (statement_code_p): Kill the function, declare
3140         as an array of bools instead.
3141         (lang_statement_code_p): Remove.
3142         (walk_stmt_tree): Use STATEMENT_CODE_P not statement_code_p.
3143         (c_safe_from_p): Ditto.
3144         * c-objc-common.c (c_objc_common_init): Use INIT_STATEMENT_CODES
3145         to initialize the statement_code_p array.
3146         * tree-inline.c (walk_tree): Use STATEMENT_CODE_P instead of
3147         statement_code_p.
3148         (copy_tree_r): Ditto.
3149         * cp/cp-tree.h (cp_stmt_codes): Define; list of C++ specific
3150         statement tree codes.
3151         * cp/lex.c (cxx_init): Add missing print line break.  Use
3152         INIT_STATEMENT_CODES to initialize the statement_code_p array.
3153         * cp/parser.c (cp_parser_statement): Use STATEMENT_CODE_P
3154         instead of statement_code_p.
3155         * cp/pt.c (tsubst_expr): Ditto.
3156         * cp/tree.c (verify_stmt_tree_r): Ditto.
3157         (cp_statement_code_p): Remove.
3158         (init_tree): Don't set lang_statement_code_p, it's gone.
3159
3160 2003-04-09  Dan Nicolaescu  <dann@ics.uci.edu>
3161             Zack Weinberg  <zack@codesourcery.com>
3162
3163         * regrename.c (struct du_chain): Use a bitfield for reg_class.
3164         * cse.c (struct qty_table_elem, struct table_elt, struct set):
3165         Use bitfields for fields holding enum rtx_code or
3166         enum machine_mode values.  Add comments explaining size choices.
3167
3168 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
3169
3170         * config/fp-bit.c (unpack_d): Handle pair of doubles with
3171         different signs correctly.
3172
3173 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
3174
3175         * sched-deps.c (reg_pending_barrier_mode): New enumeration.
3176         (reg_pending_barrier): Make it of the enumeration type.
3177         (sched_analyze_2): Define the barrier as MOVE_BARRIER or
3178         TRUE_BARRIER.
3179         (sched_analyze): Ditto.
3180         (sched_analyze_insn): Ditto.  Use anti-dependencies for
3181         MOVE_BARRIER and true-dependencies as TRUE_BARRIER.
3182         (init_deps_global): Initialize the barrier as NO_BARRIER.
3183
3184 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
3185
3186         * config/ia64/ia64.c (issue_nops_and_insn): Add new parameter.
3187         Check that asm insn starts on a new cycle.  Add nops after asm
3188         insn to end bundle.
3189         (bundling): Move insn type evaluation from the loop.  Call
3190         issue_nops_and_insn with the new parameter.  Ignore changing
3191         position for nops after asm insn.
3192
3193 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
3194
3195         * optabs.c: Comment that gen_add2_insn and others may actually
3196         return emitted insns, if the gen functions turn out to return
3197         emitted insns.
3198         * reload1.c (reload_cse_move2add): Cope with emitted insns from
3199         gen_add2_insn.
3200
3201 2003-04-09  Richard Henderson  <rth@redhat.com>
3202
3203         * config/ia64/ia64.c (move_operand): Allow symbolic_operand,
3204         but not tls_symbolic_operand.
3205         (ia64_expand_load_address): Remove scratch operand.
3206         (ia64_expand_tls_address): Split out from ia64_expand_move.
3207         (ia64_expand_move): Split symbolics only after reload.
3208         (ia64_emit_cond_move): New.
3209         * config/ia64/ia64-protos.h: Update.
3210         * config/ia64/ia64.md (movsi_symbolic, movdi_symbolic): Remove.
3211         (symbolic splitter): Accept SImode operands too.
3212         (cmove splitter): Use ia64_emit_cond_move.
3213
3214 2003-04-09  Nick Clifton  <nickc@redhat.com>
3215
3216         * doc/install.texi: Note that ARM toolchains need binutils 2.13 or
3217         newer.
3218         * config/arm/elf.h (SUBTARGET_ASM_FLOAT_SPEC): Pass -mfpu=softfpa
3219         instead of -mno-fpu.
3220         * config/arm/semi.h (ASM_SPEC): Likewise.
3221         * config/arm/xscale-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise,
3222         but only if -msoft-float is specified pass.  Otherwise pass
3223         -mfpu=softvfp.
3224
3225 2003-04-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3226
3227         * function.c (purge_addressof): Use free_INSN_LIST_node instead of
3228         free_EXPR_LIST_node.
3229
3230 2003-04-08  Roger Sayle  <roger@eyesopen.com>
3231
3232         * fold-const.c (fold):  Use "fold" following build in more places.
3233         Optimize sqrt(x)*sqrt(x) as x, pow(x,y)*pow(z,y) as pow(x*z,y),
3234         pow(x,y)*pow(x,z) as pow(x,y+z) and x/pow(y,z) as x*pow(y,-z).
3235
3236 2003-04-08  Roger Sayle  <roger@eyesopen.com>
3237
3238         * builtins.c (fold_builtin):  Constant fold expressions as x*0.5
3239         instead of x/2.0.  Optimize sqrt(pow(x,y)) as pow(x,y*0.5),
3240         log(pow(x,y)) as y*log(x), pow(exp(x),y) as exp(x*y),
3241         pow(sqrt(x),y) as pow(x,y*0.5) and pow(pow(x,y),z) as pow(x,y*z).
3242         Delete function scope "fcode" variable to avoid shadowing.
3243
3244 2003-04-08  Kevin Buettner  <kevinb@redhat.com>
3245
3246         * dwarf2out.c (DWARF_ARANGES_HEADER_SIZE, DWARF_ARANGES_PAD_SIZE):
3247         Take into account DWARF_INITIAL_LENGTH_SIZE.
3248
3249 2003-04-08  Hans-Peter Nilsson  <hp@axis.com>
3250
3251         * reorg.c (fill_slots_from_thread): When considering changing the
3252         insn following a reg-to-reg copy insn to use the source reg of the
3253         copy, bail out if there's overlap between the registers.
3254
3255 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3256
3257         * function.c (postponed_insns): New.
3258         (purge_addressof_1): Postpone processing of insns if addressofs
3259         are not put into stack.
3260         (purge_addressof): Process postponed insns.
3261
3262 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
3263
3264         * sh.h (NORMAL_MODE): If interrupt handler and TARGET_FMOVD,
3265         this is FP_MODE_DOUBLE .
3266         * sh.c (ra.h): #include.
3267         (push_regs): Add second parameter.  Changed all callers.
3268         If necessary, set fpscr before saving floating point registers.
3269         (calc_live_regs): If interrupt handler and TARGET_FMOVD, always
3270         do saves / restores with SZ == 1.
3271         (sh_expand_prologue): If interrupt handler, don't use gen_toggle_sz.
3272         (sh_expand_epilogue): Likewise.  For TARGET_FMOVD, if floating point
3273         registers are being restored, restore FPSCR only after restoring them.
3274
3275 2003-04-08  Aldy Hernandez  <aldyh@redhat.com>
3276
3277         * config/rs6000/rs6000.c (rs6000_init_builtins): Set opaque types
3278         regardless of architecture.
3279         (spe_init_builtins): Change V2SI and V2SF types to opaque types.
3280
3281 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
3282
3283         * sh.c (push_regs, calc_live_regs): Return int.  Take single
3284         HARD_REG_SET * parameter.  Changed all callers.
3285
3286 Tue Apr  8 11:12:07 CEST 2003  Jan Hubicka  <jh@suse.cz>
3287
3288         * i386.c (legitimate_pic_address_disp_p): Do not accept PLUS in the
3289         GOTOFF operand.
3290         (legitimize_pic_address): Move plus outside the unspec.
3291         * i386.c (legitimate_constant_p):  Check (CONST (PLUS (UNSPEC ...
3292         for validity.
3293
3294 2003-04-08  Nathan Sidwell  <nathan@codesourcery.com>
3295
3296         * gcov-io.h (gcov_save_position): Remove __inline__ from
3297         declaration.
3298
3299 2003-04-07  Matt Kraai  <kraai@alumni.cmu.edu>
3300
3301         * doc/install.texi: Use @command and @samp for single- and
3302         multi-word commands respectively.
3303         * doc/makefile.texi: Likewise.
3304         * doc/sourcebuild.texi: Likewise.
3305
3306 2003-04-07  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
3307             Richard Henderson  <rth@redhat.com>
3308
3309         PR c/9516
3310         * expr.c (safe_from_p): Rearrange to avoid deep recursion in
3311         favour of looping and tail recursion for TREE_LIST and binops.
3312
3313 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3314
3315         * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Provide defaults
3316         for insns without luid.
3317
3318 2003-04-07  Glen Nakamura  <glen@imodulo.com>
3319
3320         PR opt/8634
3321         * explow.c (maybe_set_unchanging): Don't flag non-static const
3322         aggregate type initializers with RTX_UNCHANGING_P.
3323
3324 2003-04-07  Richard Henderson  <rth@redhat.com>
3325
3326         PR opt/8634
3327         * function.c (purge_addressof_1): Don't try arithmetics for
3328         unchanging memories.
3329
3330 2003-04-07  Janis Johnson  <janis187@us.ibm.com>
3331
3332         * doc/sourcebuild.texi (Test Suites): Document testing support for
3333         gcov and profile-directed optimizations; describe gcc.misc-tests.
3334
3335 Mon Apr  7 22:19:59 CEST 2003  Jan Hubicka  <jh@suse.cz>
3336
3337         PR target/10077
3338         * i386.md (movsi_1, movsi_nointerunit_1):  Fix SSEMOV alternative.
3339
3340 2003-04-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3341
3342         * doc/rtl.texi (Comparison operations): Update to
3343         record the allowed comparison modes.
3344
3345 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
3346
3347         * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all
3348         V2SI_type_node to opaque_V2SI_type_node.  Rename all
3349         V2SF_type_node to opaque_V2SF_type_node.
3350         (rs6000_init_builtins): Define opaque_V2SI_type_node and
3351         opaque_V2SF_type_node.
3352         (is_ev64_opaque_type): The types opaque_V2SI_type_node and
3353         opaque_V2SF_type_node are opaque types.
3354
3355 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
3356
3357         * gcse.c (replace_store_insn): Use single_set.
3358
3359 2003-04-07  Nathan Sidwell  <nathan@codesourcery.com>
3360
3361         Change gcov file interface to single file at a time.
3362         * gcov-io.h: Replace IN_LIBGCC1 with IN_LIBGCOV. Use IN_GCOV.
3363         Convert to C89 prototypes.
3364         (gcov_file, gcov_length, gcov_position, gcov_buffer, gcov_alloc,
3365         gcov_error, gcov_modified): New static variables.
3366         (gcov_open, gcov_close, gcov_read_bytes, gcov_write_bytes): New
3367         functions.
3368         (gcov_write_unsigned, gcov_write_counter, gcov_write_string,
3369         gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust.
3370         (gcov_read_summary, gcov_write_summary): Adjust.
3371         (gcov_save_position, gcov_reserve_length, gcov_write_length):
3372         Adjust.
3373         (gcov_resync, gcov_skip, gcov_skip_string): Adjust.
3374         (da_file_open, da_file_close, da_file_eof, da_file_error): Remove.
3375         (da_file_position, da_file_seek, da_file_write, da_file_read):
3376         Remove.
3377         (gcov_error, gcov_eof, gcov_ok, gcov_time): New functions.
3378         * gcov.c (gcov_type): Don't typedef here.
3379         (IN_GCOV): #define
3380         (read_graph_file, read_count_file): Adjust.
3381         * gcov-dump.c (gcov_type): Don't typedef here.
3382         (IN_GCOV): #define.
3383         (tag_function, tag_blocks, tag_arcs, tag_lines, tag_arc_counts):
3384         Remove FILE parameter, adjust.
3385         (struct tag_format): Adjust proc member.
3386         (dump_file): Adjust.
3387         * libgcov.c (IN_LIBGCOV): #define.
3388         (gcov_exit): Adjust.
3389         * loop-init.c: Don't #include gcov-io.h
3390         * profile.c (struct counts_entry): New structure to hold counter
3391         values.
3392         (struct section_reference, struct da_index_entry): Remove.
3393         (bbg_file, da_file): Remove.
3394         (htab_counts_index_hash, htab_counts_index_eq,
3395         htab_counts_index_del): Replace with ...
3396         (htab_counts_entry_hash, htab_counts_entry_eq,
3397         htab_counts_entry_del): ... these.
3398         (cleanup_counts_index, index_counts_file): Remove.
3399         (read_counts_file): New function.
3400         (get_exec_counts): Adjust.
3401         (compute_branch_probabilities): Don't free the exec counts here.
3402         (branch_prob): Adjust.
3403         (init_branch_prob): Adjust.
3404         (end_branch_prob): Adjust.
3405
3406 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
3407
3408         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3409         -mfloat-gprs.
3410
3411         * config/rs6000/rs6000.c: Delete rs6000_fprs.
3412         Declare rs6000_float_gprs.
3413         Declare rs6000_float_gprs_string.
3414         (rs6000_parse_float_gprs_option): New.
3415         (rs6000_override_options): Genericize rs6000_parse_* calls to use
3416         rs6000_parse_yes_no_option.
3417         Change check for cpu=8540, to use TARGET_E500.
3418         (rs6000_parse_isel_option): Delete.
3419         (rs6000_parse_spe_option): Delete.
3420         (rs6000_parse_vrsave_option): Delete.
3421
3422         * config/rs6000/rs6000.h: Rename rs6000_fprs to rs6000_float_gprs.
3423         Define rs6000_float_gprs_string.
3424         (TARGET_OPTIONS): Add rs6000_float_gprs option.
3425
3426         * config/rs6000/eabi.h (TARGET_FPRS): Change to use rs6000_float_gprs.
3427
3428         * config/rs6000/eabispe.h: Set rs6000_float_gprs.
3429
3430 Mon Apr  7 14:36:24 CEST 2003  Jan Hubicka  <jh@suse.cz>
3431
3432         PR opt/10024
3433         * cfglayout.c (cfg_layout_redirect_edge):
3434         Redirect any branch edges unified with the fallthru one.
3435         * cfgrtl.c (force_nonfallthru_and_redirect):  Do not special
3436         case fallthru edges when called via cfglayout.c
3437
3438 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
3439
3440         * c-typeck.c (output_init_element): Check for type == error_mark_node.
3441
3442 2003-04-07  Kazu Hirata  <kazu@cs.umass.edu>
3443
3444         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Always
3445         split.
3446         (a splitter): Do zero-extension via HImode.
3447
3448 2003-04-07  James A. Morrison <ja2morri@uwaterloo.ca>
3449
3450         * doc/invoke.texi: Eliminate extra white-space caused by
3451         @gccoptlist{ on its own line.
3452         * doc/invoke.texi: Ensured there are two spaces between each option.
3453         * doc/invoke.texi: Re-wrapped option lines that were too wide.
3454         Added @gol to options that didn't have them.
3455
3456 2003-04-07  James A Morrison <ja2morri@student.math.uwaterloo.ca>
3457
3458         * doc/extend.texi (Darwin Pragmas): Fix spelling of Mac OS.
3459
3460 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
3461
3462         * tree.c (tree_size): For all 'c' and 'x' nodes, look directly
3463         at the sizes of the relevant structures, rather than relying
3464         on TREE_CODE_LENGTH.  Call lang_hooks.tree_size to get the
3465         sizes of any such we don't know about.  Use
3466         lang_hooks.identifier_size for IDENTIFIER_NODE.
3467
3468         (initializer_zerop): Use CONSTRUCTOR_ELTS.
3469         * tree.def: Update commentary.  Make fourth element of
3470         the definition for all 'c' and 'x' nodes zero.
3471
3472         * langhooks.h: New hook, tree_size / LANG_HOOKS_TREE_SIZE.
3473         * langhooks-def.h: Update to match.
3474         * langhooks.c: New default, lhd_tree_size.
3475
3476         * c-common.def (SRCLOC): Kill.
3477         * c-pretty-print.c (pp_c_postfix_expression [case SRCLOC]):
3478         Remove entirely - was already #if-ed out.
3479
3480
3481 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
3482
3483         * mklibgcc.in: Use a here document to avoid running afoul of
3484         shells that generate control-A from "echo \1".
3485
3486 2003-04-06  Aldy Hernandez  <aldyh@redhat.com>
3487
3488         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mspe
3489         option.
3490
3491         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
3492         rs6000_spe.
3493
3494         * config/rs6000/eabi.h (TARGET_E500): Define.
3495
3496         * config/rs6000/rs6000.h (TARGET_E500): Define.
3497         (TARGET_OPTIONS): Add spe= option.
3498         Declare rs6000_spe and rs6000_spe_string extern.
3499
3500         * config/rs6000/rs6000.c (branch_positive_comparison_operator):
3501         Change TARGET_SPE to TARGET_E500.
3502         (ccr_bit): Change TARGET_SPE to TARGET_E500.  Check for
3503         !TARGET_FPRS.
3504         (print_operand): Same.
3505         (rs6000_generate_compare): Same.
3506         (output_cbranch): Same.
3507         (rs6000_spe): Declare.
3508         (rs6000_spe_string): Declare.
3509         (rs6000_override_options): Call rs6000_parse_spe_option.
3510         (rs6000_parse_spe_option): New.
3511
3512 2003-04-06  Steven Bosscher  <steven@gcc.gnu.org>
3513
3514         * hashtable.c (gcc_obstack_init): Delete this function
3515         and everything related to it.
3516         * hashtable.h: Remove prototype.
3517         * bitmap.c (bitmap_element_allocate): Cleanup redundant
3518         defines.  Cleanup some unnecessary whitespace.
3519         * defaults.h (obstack_chunk_alloc): Redefine with
3520         appropriate casts for libiberty obstacks.
3521         (obstack_chunk_free): Ditto.
3522         (OBSTACK_CHUNK_SIZE): Define, default to 0.
3523         (gcc_obstack_init): Define as a call to _obstack_begin.
3524         * tree.c (print_obstack_statistics): Delete this unused
3525         function.
3526         * tree.h (obstack): Don't forward-declare.
3527         (print_obstack_statistics): Delete prototype.
3528         (print_obstack_name): Ditto.
3529         (gcc_obstack_init): Ditto.
3530         * rtl.h (gcc_obstack_init): Ditto.
3531         * java/jv-scan.c (gcc_obstack_init): Delete this
3532         function, its prototype and related defines.
3533         * java/jvgenmain.c (gcc_obstack_init): Delete this
3534         function, and related defines.
3535         * java/parse-scan.y (obstack_chunk_alloc): Don't define.
3536         (obstack_chunk_free): Ditto
3537
3538 2003-04-06  Geoffrey Keating  <geoffk@apple.com>
3539
3540         * dbxout.c (dbxout_handle_pch): Move prototype out from
3541         #if defined DBX_DEBUGGING_INFO.
3542
3543 2003-04-05  Nathan Sidwell  <nathan@codesourcery.com>
3544
3545         * gcov.c (struct arc_info): Replace local_span with cycle.
3546         (struct block_info): Replace u.span with u.cycle. Add is_call_return.
3547         (solve_flow_graph): Set is_call_return.
3548         (add_line_counts): Adjust. In block mode, blocks attach to last line.
3549         (accumulate_line_counts): Find graph cycles, not spanning tree.
3550         (output_branch_count): Adjust.
3551         (output_lines): Adjust.
3552         * doc/gcov.texi: Update.
3553
3554 2003-04-06  Kazu Hirata  <kazu@cs.umass.edu>
3555
3556         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Change
3557         the second alternative to "#".
3558
3559 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
3560
3561         * config/h8300/h8300.c (single_one_operand): Use GET_MODE_MASK.
3562         (single_zero_operand): Likewise.
3563
3564 2003-04-05  Daniel Berlin  <dberlin@dberlin.org>
3565
3566         * Makefile.in (df.o):  Depend on alloc-pool.h, not obstack.h.
3567         * df.c: Include alloc-pool.h, not obstack.h.
3568         (df_ref_obstack): Remove.
3569         (df_ref_pool, df_link_pool): Add pools.
3570         (df_alloc): Init the new pools.
3571         (df_free): And free them.
3572         (df_link_create): Use the pools.
3573         (df_ref_create): Ditto.
3574
3575 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
3576
3577         * simplify-rtx.c: Fix formatting.
3578
3579 2003-04-05  Andrew Pinski  <apinski@apple.com>
3580
3581         * config/rs6000/rs6000.c (addrs_ok_for_quad_peep): Allow addr2
3582         reg with reg1 == reg2 and offset1 = -8.
3583
3584 2003-04-05  David Edelsohn  <edelsohn@gnu.org>
3585
3586         * config/rs6000/rs6000.c (rs6000_rtx_costs): Halve Power4
3587         multiply costs.  Correct Power4 divide costs.
3588         * config/rs6000/power4.md: Restore multiply and FP latency.
3589
3590 2003-04-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3591
3592         * alias.c (find_base_term): Export.
3593         * rtl.h (find_base_term): Declare.
3594         * gcse.c (find_moveable_store): Test for flag_non_call_exceptions
3595         instead of flag_exceptions.  Move test for parameter passing ...
3596         (store_killed_in_insn): ... here.
3597
3598 2003-04-05  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3599
3600         PR bootstrap/10267
3601         * doc/install.texi (*-*-solaris2): /bin/ksh is not just recommended
3602         for configuring.
3603
3604 2003-04-04  Geoffrey Keating  <geoffk@apple.com>
3605
3606         * dbxout.c (scope_labelno): Add GTY.
3607         (have_used_extensions): Add GTY.
3608         (source_label_number): Add GTY.
3609         (lastfile): Add GTY.
3610         (lastfile_is_base): New.
3611         (base_input_file): New.
3612         (dbxout_handle_pch): New.
3613         (dbx_debug_hooks): Add handle_pch.
3614         (xcoff_debug_hooks): Likewise.
3615         (dbxout_function_end): Remove scope_labelno.
3616         (dbxout_init): Set base_input_file.
3617         (dbxout_handle_pch): New.
3618         (dbxout_source_file): Honour lastfile_is_base.
3619         * dwarfout.c (dwarf_debug_hooks): Add dummy handle_pch.
3620         * sdbout.c (sdb_debug_hooks): Add dummy handle_pch.
3621         * vmsdbgout.c (vmsdbg_debug_hooks): Add dummy handle_pch.
3622         * dwarf2out.c (dwarf2_debug_hooks): Add dummy handle_pch.
3623         * debug.c (do_nothing_debug_hooks): Add dummy handle_pch.
3624         * debug.h (struct gcc_debug_hooks): Add handle_pch.
3625         * c-pch.c (pch_init): Don't call start_source_file, but do call
3626         handle_pch.
3627         (c_common_write_pch): Call handle_pch.
3628         (c_common_read_pch): Don't call start_source_file,
3629         or end_source_file.
3630
3631 Fri Apr  4 17:43:52 2003  Olivier Hainque <hainque@act-europe.fr>
3632
3633         * emit-rtl.c (get_mem_attrs): Adjust alignment tests determining
3634         use of default attributes to agree MEM_ALIGN macro.
3635
3636 Fri Apr  4 17:33:24 2003  Joel Brobecker  <brobecker@gnat.com>
3637
3638         * dbxout.c (dbxout_type): When printing type index of range type
3639         whose bounds are printed in octal format, print type of parent type if
3640         it exists so enumerated type descriptions are not transformed
3641         into unsigned types.
3642
3643 2003-04-04  Kazu Hirata  <kazu@cs.umass.edu>
3644
3645         * config/h8300/h8300-protos.h: Add a prototype for
3646         compute_a_shift_cc.
3647         * config/h8300/h8300.c (shift_one): Update the CC status.
3648         (shift_two): Likewise.
3649         (output_a_shift_cc): Set cc_inline and cc_special.
3650         (compute_a_shift_cc): New.
3651         * config/h8300/h8300.md (shift insns): Use compute_a_shift_cc.
3652
3653 2003-04-04  Richard Henderson  <rth@redhat.com>
3654
3655         * cse.c (fold_rtx): Fix 03-30 change; do check insn non-null.
3656
3657 2003-04-04  Loren James Rittle  <ljrittle@acm.org>
3658
3659         * fixinc/inclhack.def (bsd_stdio_attrs_conflict): New.
3660         * fixinc/fixincl.x: Rebuilt.
3661         * fixinc/tests/base/stdio.h: Regenerated.
3662
3663 2003-04-04  Nathan Sidwell  <nathan@codesourcery.com>
3664
3665         * gcov.c (accumulate_line_counts): Fix span tree merge bug.
3666
3667 Fri Apr  4 15:58:52 2003  J"orn Rennecke <joern.rennecke@superh.com>
3668
3669         * sh.h (ACTUAL_NORMAL_MODE): New macro, broken out of
3670         (NORMAL_MODE).
3671         * sh.c (fpscr_set_from_mem): Use ACTUAL_NORMAL_MODE.
3672
3673 2003-04-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3674
3675         * doc/contrib.texi (Contributors): Add entries for Wolfgang
3676         Bangerth, DJ Delorie, Christian Ehrhardt, Christopher Faylor,
3677         Nathanael Nerode, Diego Novillo, Hartmut Penner, Volker Reichelt,
3678         Danny Smith, and Ulrich Weigand.
3679         Update Kriang Lerdsuwanakij and fix a typo in Janis Johnson's
3680         entry.
3681
3682 2003-04-04  Nick Clifton  <nickc@redhat.com>
3683
3684         * config/sparc/sol2-bi.h: Revert previous delta.
3685         * config/sparc/sol2-gas-bi.h (AS_SPARC64_FLAG): Prepend -TSO
3686
3687 2003-04-04  Nick Clifton  <nickc@redhat.com>
3688
3689         * config/v850/v850.c (expand_prologue): Only use register save
3690         helper functions if long calls are not being used.
3691         Add a clobber of r11 id using long calls.
3692         (pattern_is_ok_for_prologue): Account for the extra clobber.
3693         (construct_save_jarl): Likewise.
3694         * config/v850/v850.md (prolog pattern): Do not use this pattern
3695         for v850e's.
3696
3697 2003-04-04  Andreas Schwab  <schwab@suse.de>
3698
3699         * stor-layout.c (layout_decl): Avoid syntax error in last change
3700         when PCC_BITFIELD_TYPE_MATTERS is defined but not
3701         EMPTY_FIELD_BOUNDARY.
3702
3703 2003-04-03  Jason Merrill  <jason@redhat.com>
3704
3705         PR c/10175
3706         * jump.c (never_reached_warning): Revert patch of 2002-11-02.
3707         Look backwards for a line note.
3708
3709 2003-04-03  Neil Booth  <neil@daikokuya.co.uk>
3710
3711         * fix-header.c (read_scan_file): Defer switch processing.
3712
3713 2003-04-03  Matt Austern  <austern@apple.com>
3714
3715         * cpppch.c (reset_ht): Remove.
3716         (cpp_read_state): Remove loop to reset hashtable identifiers.
3717         * ggc-common.c (gt_pch_save): Add call to gt_pch_fixup_stringpool
3718         after pch file is written.
3719         * ggc.h (gt_pch_fixup_stringpool): Declare.
3720         * stringpool.c (ht_copy_and_clear): Define.  Callback.  Copy
3721         hashnode's value to another hashtable, then clear the original.
3722         (saved_ident_hash): Define.
3723         (gt_pch_save_stringpool): Create saved_ident_hash, use it to
3724         store definitions in ident_hash, and clear ident_hash.
3725         (gt_pch_fixup_stringpool): Define.  Restore definitions from
3726         saved_ident_hash to ident_hash, then destroy saved_ident_hash.
3727
3728 Thu Apr  3 22:27:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
3729
3730         * cfgrtl.c (update_bb_for_insn): Do not set block for barriers.
3731
3732 2003-04-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3733
3734         PR optimization/10157
3735         * gcse.c (can_copy_p): Rename it to can_copy.
3736         (can_copy_init_p): Remove.
3737         (compute_can_copy): Use can_copy instead of can_copy_p.
3738         (can_copy_p): New exported function. Call compute_can_copy.
3739         (hash_scan_set): Use it.
3740         (gcse_main): Don't call compute_can_copy.
3741         (bypass_jumps): Don't call compute_can_copy.
3742         * rtl.h (can_copy_p): Declare.
3743         * loop.c (scan_loop): Don't move the source and add a reg-to-reg
3744         copy if the mode doesn't support copy operations.
3745
3746 2003-04-03  Jason Merrill  <jason@redhat.com>
3747
3748         * Makefile.in (unstrap): Also remove stage_last.
3749
3750         * dwarf2out.c (lookup_filename): Don't check for "<internal>".
3751         (dwarf2out_source_line): Don't do anything if line==0.
3752
3753         * stor-layout.c (do_type_align): New fn, split out from...
3754         (layout_decl): ...here.  Do all alignment calculations for
3755         FIELD_DECLs here.
3756         (update_alignment_for_field): Not here.
3757         (start_record_layout, debug_rli): Remove unpadded_align.
3758         * tree.h (struct record_layout_info_s): Remove unpadded_align.
3759         * c-decl.c (finish_enum): Don't set DECL_SIZE, DECL_ALIGN
3760         or DECL_MODE on the CONST_DECLs.
3761         (finish_struct): Don't mess with DECL_ALIGN.
3762
3763 Thu Apr  3 18:57:19 CEST 2003  Jan Hubicka  <jh@suse.cz>
3764
3765         * i386.c (print_operand): Do not bypass output_addr_const at flag_pic.
3766
3767 Thu Apr  3 17:08:09 2003  J"orn Rennecke <joern.rennecke@superh.com>
3768
3769         * sh.c (sh_function_ok_for_sibcall): Return 0 if the current
3770         function is an interrupt handler.
3771
3772         * sh.c (sh_expand_epilogue): Avoid clash of temp register for
3773         restoring target registers with EH_RETURN_STACKADJ_RTX; use
3774         multiple registers in round-robin fashion.
3775
3776 2003-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3777
3778         * gengtype-lex.l (IWORD): Add CHAR_BITFIELD.
3779         * system.h (CHAR_BITFIELD): New.
3780
3781 2003-04-03  Kazu Hirata  <kazu@cs.umass.edu>
3782
3783         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
3784         and LE.
3785         (another peephole2): Likewise.
3786
3787 2003-04-03  Nick Clifton  <nickc@redhat.com>
3788
3789         * config/sparc/sol2-bi.h (ASM_CPU64_DEFAULT_SPEC): Add -TSO.
3790         (DEF_ARCH64_SPEC): Likewise.
3791
3792 Thu Apr  3 09:53:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
3793
3794         * i386.c (constant_address_p): Use legitimate_constant_p.
3795         (legitimate_address_p): Do not use CONSTANT_ADDRESS_P.
3796
3797 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
3798
3799         * config/h8300/h8300-protos.h: Add a prototype for
3800         gtle_operator.
3801         * config/h8300/h8300.c (gtle_operator): New.
3802         * config/h8300/h8300.h (PREDICATE_CODES): Add an entry for
3803         gtle_operator.
3804         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
3805         and LE.
3806
3807 2003-04-02  Richard Henderson  <rth@redhat.com>
3808
3809         * libgcc-std.ver (_Unwind_GetCFA): New.
3810         * unwind-dw2.c (_Unwind_GetCFA): New.
3811         * unwind-libunwind.c (_Unwind_GetCFA): New.
3812         * unwind-sjlj.c (_Unwind_GetCFA): New.
3813         * unwind.h: Declare it.
3814
3815 Thu Apr  3 00:31:21 CEST 2003  Jan Hubicka  <jh@suse.cz>
3816
3817         PR inline-asm/8088
3818         * i386.c (ix86_hard_regno_mode_ok):  Return 0 for MMX/SSE registers
3819         when MMX/SSE is not available.
3820
3821 2003-04-02  Mike Stump  <mrs@apple.com>
3822
3823         * doc/install.texi (Specific): Update pointers to apple.com.
3824
3825 Thu Apr  3 00:18:49 CEST 2003  Jan Hubicka  <jh@suse.cz>
3826
3827         * i386.c (override_options):  Disable red zone by default on i386.
3828         (compute_frame_layout, ix86_force_to_memory, ix86_free_from_memory):
3829         Do not test TARGET_64BIT together with TARGET_RED_ZONE
3830
3831 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
3832
3833         * config/h8300/h8300.md (a peephole2): Tighten the condition.
3834
3835 2003-04-02  Richard Henderson  <rth@redhat.com>
3836
3837         * longlong.h (umul_ppmm) [alpha]: Use __builtin_alpha_umulh.
3838
3839 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
3840
3841         * config/h8300/h8300.md (a peephole2): New.
3842
3843 2003-04-02  Richard Henderson  <rth@redhat.com>
3844
3845         * except.c (sjlj_find_directly_reachable_regions): Recognize when
3846         must-not-throw region has been deleted.
3847
3848 2003-04-02  Richard Henderson  <rth@redhat.com>
3849
3850         * dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an
3851         optimization when flag_exceptions not enabled.
3852
3853 2003-04-02  Vladimir Makarov  <vmakarov@redhat.com>
3854
3855         * config/rs6000/rs6000.c
3856         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Redefine the
3857         macros.
3858         (rs6000_issue_rate): Add case for 8540.
3859         (rs6000_use_sched_lookahead): New function.
3860
3861         * config/rs6000/8540.md: Rename SIU units into SU ones and MIU
3862         units into MU ones.
3863         (ppc8540_branch, ppc8540_cr_logical): Add one cycle in the
3864         reservation before retirement.
3865         (ppc8540_multiply, ppc8540_load, ppc8540_store,
3866         ppc8540_simple_float, ppc8540_vector_load, ppc8540_vector_store):
3867         Remove additional cycle in the reservation before retirement.
3868         (ppc8540_mfcr, ppc8540_mtcrf, ppc8540_mtjmpr): Add missed
3869         reservation of ppc8540_issue.
3870
3871 2003-04-02  Andreas Schwab  <schwab@suse.de>
3872
3873         * real.c (decode_ieee_single): Fix decoding of SNaN bit.
3874
3875 2003-04-01  Richard Henderson  <rth@redhat.com>
3876
3877         * except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION
3878         notes for nothrow calls if flag_forced_unwind_exceptions.
3879         (build_post_landing_pads): Mind flag_forced_unwind_exceptions.
3880         (sjlj_find_directly_reachable_regions): Likewise.
3881         (reachable_handlers): Likewise.
3882         (can_throw_external): Likewise.
3883         (collect_one_action_chain): Record cleanups after catch-all and
3884         must-not-throw if flag_forced_unwind_exceptions.
3885         * flags.h (flag_forced_unwind_exceptions): Declare.
3886         * toplev.c (flag_forced_unwind_exceptions): New.
3887         (lang_independent_options): Add it.
3888         * doc/invoke.text: Add it.
3889
3890 2003-04-01  David Mosberger <davidm@hpl.hp.com>
3891
3892         * config/ia64/crti.asm: Clean up trailing whitespace.
3893         Remove trailing hashes (#) from identifiers.
3894
3895         * config/ia64/crtn.asm: Ditto.
3896
3897         * config/ia64/crtend.asm: Remove trailing hashes (#) from
3898         identifiers.
3899         (__do_global_ctors_aux): Align to 32-byte boundary.  Add unwind
3900         directives.  Drop explicit bundling---it just makes the code
3901         harder to read.  Don't save/restore gp needlessly.
3902
3903         * config/ia64/crtbegin.asm: Remove trailing hashes (#) from
3904         identifiers (they're only needed if the identifier would clash
3905         with a register name otherwise).
3906         (__do_global_dtors_aux): Align to 32-byte boundary. Add unwind
3907         directives.  Drop explicit bundling---it just makes the code
3908         harder to read.
3909         (__do_jv_register_classes): Ditto.
3910         (.fini_array): Remove "progbits" (newer
3911         assemblers don't like wrong section-types).
3912         (.init_array): Ditto.
3913
3914 2003-04-01  Roger Sayle  <roger@eyesopen.com>
3915
3916         PR fortran/9974
3917         * gcse.c (reg_killed_on_edge): New function to test whether the
3918         given reg is overwritten by any instruction queued on an edge.
3919         (bypass_block): Ignore substitutions killed on incoming edges.
3920         Don't bypass outgoing edges that have queued instructions.
3921
3922 2003-04-01  Alexandre Oliva  <aoliva@redhat.com>
3923
3924         * real.h (EXP_BITS): Make room for...
3925         (struct real_value): ... added canonical bit.
3926         (struct real_format): Added pnan.
3927         (mips_single_format, mips_double_format, mips_extended_format,
3928         mips_quad_format): New.
3929         * real.c: Copy p to pnan in all formats.
3930         (get_canonical_qnan, get_canonical_snan): Set canonical bit.
3931         (real_nan): Use pnan to compute significand's shift.
3932         (real_identical): Disregard significand in canonical
3933         NaNs.
3934         (real_hash): Likewise.  Take signalling into account.
3935         (encode_ieee_single, encode_ieee_double, encode_ieee_quad):
3936         Disregard significand bits in canonical NaNs.  Set all bits of
3937         canonical NaN if !qnan_msb_set.
3938         (encode_ibm_extended, decode_ibm_extended): Likewise.  Use
3939         qnan_msb_set to tell the base double format.
3940         (ibm_extended_format): Use 53 as pnan.
3941         (mips_single_format, mips_double_format, mips_extended_format,
3942         mips_quad_format): Copied from the corresponding ieee/ibm
3943         formats, with qnan_msb_set false.
3944         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Use mips_extended_format.
3945         * config/mips/linux64.h (MIPS_TFMODE_FORMAT): Use mips_quad_format.
3946         * config/mips/mips.c (override_options): Use mips_single_format
3947         and mips_double_format.  Default TFmode to mips_quad_format.
3948         * config/mips/t-linux64 (tp-bit.c): Define QUIET_NAN_NEGATED.
3949         * config/mips/t-irix6: Likewise.
3950         * config/mips/t-mips (fp-bit.c, dp-bit.c): Likewise.
3951         * config/fp-bit.c (pack_d, unpack_d): Obey it.
3952
3953 2003-04-01  Geoffrey Keating  <geoffk@apple.com>
3954
3955         * unwind-dw2-fde-darwin.c (DESTRUCTOR_MAY_BE_CALLED_LIVE): New.
3956         (live_image_destructor): Reset image to initial state.
3957         (examine_objects): Set DESTRUCTOR_MAY_BE_CALLED_LIVE.
3958
3959 2003-04-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
3960
3961         * config/sparc/sparc.c (input_operand): Accept bare
3962         CONSTANT_P_RTX operands.
3963
3964 2003-04-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3965
3966         * gcse.c (struct ls_expr): Added pattern_regs field.
3967         (ldst_entry): Initialize it.
3968         (extract_mentioned_regs, extract_mentioned_regs_helper): New.
3969         (store_ops_ok): Use regs precomputed by them.
3970         (find_loads, store_killed_in_insn, load_kills_store): Change return
3971         type to bool.
3972         (store_killed_before, store_killed_after): Take position of register
3973         set in account.
3974         (reg_set_info): Store position of the setter.
3975         (gcse_main): Enable store motion.
3976         (mems_conflict_for_gcse_p): Enable load motion of non-symbol mems.
3977         (pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent rtl
3978         sharing.
3979         (simple_mem): Enable store motion of non-symbol mems.
3980         (regvec): Type changed.
3981         (LAST_AVAIL_CHECK_FAILURE): New.
3982         (compute_store_table_current_insn): New.
3983         (build_store_vectors): Computation of availability and anticipatability
3984         moved ...
3985         (compute_store_table, find_moveable_store): ... here.
3986         (delete_store): Remove senseless comment.
3987         (store_motion): Reorganize.
3988
3989 2003-04-01  Kevin Buettner  <kevinb@redhat.com>
3990
3991         * config/mips/mips.c (override_options): Provide mappings for
3992         HI_REGNUM and LO_REGNUM.
3993         * config/mips/mips.h (MD_DBX_FIRST): Define.
3994
3995 2003-04-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3996
3997         * combine.c (merge_outer_ops): Fix typo.
3998
3999         * varasm.c (make_decl_one_only): Revert 2003-03-09 patch.
4000
4001 2003-04-01  David Edelsohn  <edelsohn@gnu.org>
4002
4003         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
4004         power4.md,rios1.md,rios2.md,rs64.md}: Change mult_compare to
4005         imul_compare.  Add lmul_compare.
4006         * config/rs6000/power4.md: Bump some latencies.  Model extra cycle
4007         in second pair of dispatch slots.  Model stores more accurately.
4008         Tweak multiply model.  Add bypasses for CR instructions dependent
4009         on complicated compares.
4010         * config/rs6000/rs6000.md (mulsi3): Name imul_compare patterns.
4011         (muldi3): Add lmul_compare patterns.
4012         * config/rs6000/rs6000.c (rs6000_variable_issue): Move FPLOAD_UX
4013         and FPSTORE_UX to split instructions and add COMPARE,
4014         DELAYED_COMPARE, IMUL_COMPARE, LMUL_COMPARE, IDIV, LDIV.
4015         (rs6000_adjust_cost): Add IMUL_COMPARE and LMUL_COMPARE.
4016         (rs6000_rtx_costs): Separate POWER4 multiply case.
4017
4018 2003-04-01  Ulrich Weigand  <uweigand@de.ibm.com>
4019
4020         * config/s390/s390.c (s390_fixup_clobbered_return_reg):
4021         Do nothing if __builtin_return_address was not used.
4022
4023 Tue Apr  1 18:18:23 CEST 2003  Jan Hubicka  <jh@suse.cz>
4024
4025         * i386.md (test patterns):  Allow memory operand in operand1.
4026
4027 2003-02-31  Aldy Hernandez  <aldyh@redhat.com>
4028
4029         * testsuite/gcc.c-torture/execute/simd-3.c: New.
4030
4031         * expr.c (expand_expr): Handle VECTOR_CST.
4032         (const_vector_from_tree): New.
4033
4034         * varasm.c (output_constant): Handle VECTOR_CST.
4035
4036         * c-typeck.c (digest_init): Build a vector constant from a
4037         VECTOR_TYPE.
4038
4039         * config/rs6000/rs6000.c: Remove prototype for
4040         easy_vector_constant.
4041         (easy_vector_constant): Add mode parameter.  Rewrite to handle
4042         more easy constants.
4043         (rs6000_emit_move): Pass mode to easy_vector_constant.
4044         Call emit_easy_vector_insn for SPE V2SI vector constant moves.
4045         (emit_easy_vector_insn): New.
4046         (easy_vector_same): New.
4047         (EASY_VECTOR_15): New macro.
4048         (EASY_VECTOR_15_ADD_SELF): New macro.
4049         (bdesc_2arg): Rename to xorv2si3.
4050         (easy_vector_constant_add_self): New.
4051         (input_operand): Allow vector constants.
4052
4053         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
4054         easy_vector_constant, easy_vector_constant_add_self.
4055         (EXTRA_CONSTRAINT): Add 'W'.
4056
4057         * config/rs6000/rs6000-protos.h: Add prototype for
4058         easy_vector_constant, emit_easy_vector_insn.
4059
4060         * config/rs6000/altivec.md (xorv8hi3): New.
4061         (xorv16qi3): New.
4062         Remove all _const0 patterns.
4063         (movv4si_internal): Rewrite to use code.  Add vector constant to
4064         vector alternative.  Add splitter.
4065         (movv8hi_internal): Same.
4066         (movv16qi_internal): Same.
4067         (movv4sf_internal): Same.
4068         Change the unspecs for vspltis* to use constants.
4069
4070         * config/rs6000/spe.md ("xorv4hi3"): New.
4071         ("spe_evxor"): Rename to xorv2si3.
4072         ("xorv1di3"): New.
4073         Remove all _const0 patterns.
4074         (movv2si_internal): Rewrite to use code.  Add vector constant to
4075         alternatives.  Add splitter.
4076         (movv4hi_internal): Add vector constant to alternatives.
4077         (movv1di_internal): Same.
4078         (movv2sf_internal): Same.
4079
4080 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
4081
4082         PR c/9936
4083         * c-decl.c (grokdeclarator): Clear SAVE_EXPR_CONTEXT for
4084         variably-sized arrays in parameters.
4085         (set_save_expr_context): New function.
4086         (c_expand_body): Use it, via walk_tree.
4087
4088 2003-03-31  Eric Christopher  <echristo@redhat.com>
4089
4090         * combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART.
4091         (combinable_i3pat): Remove call to expand_field_assignment and
4092         #if 0'd code.
4093
4094 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
4095
4096         PR c++/10278
4097         * c-common.c (finish_label_address_expr): Handle the
4098         error_mark_node.
4099
4100 2003-03-31  Richard Henderson  <rth@redhat.com>
4101
4102         * real.c (real_identical): Reorg so as to not compare
4103         signalling for normals.
4104
4105 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
4106
4107         * config/m68hc11/m68hc11.c (hard_reg_operand): Check the mode.
4108
4109 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
4110
4111         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0
4112         notes as they are boggus.
4113         (m68hc11_gen_movqi): Likewise.
4114
4115 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
4116
4117         * config/m68hc11/m68hc11.c (expand_prologue): For an interrupt handler
4118         save the soft registers after the frame pointer so that gdb can unwind
4119         the frame more easily.
4120         (expand_epilogue): Likewise in opposite order; allow to use X register
4121         as scratch if the return value is by reference.
4122
4123 2003-03-31  Jason Merrill  <jason@redhat.com>
4124
4125         PR java/10145
4126         * stor-layout.c (update_alignment_for_field): Respect
4127         DECL_USER_ALIGN for zero-length bitfields, too.
4128         * c-decl.c (finish_struct): Don't set DECL_ALIGN for normal
4129         fields.
4130
4131 2003-03-31  Matt Austern  <austern@apple.com>
4132
4133         * cpppch.c (struct cpp_savedstate): Add defs and n_defs members.
4134         (count_defs): Keep track of number of defs as well as total size.
4135         (write_defs): Put every definition in cpp_savedstate's defs array.
4136         (comp_hashnode): Define.  Comparison function for qsort.
4137         (cpp_write_pch_deps): Sort definitions before writing them.
4138         (struct ht_node_list): Define. Like cpp_savedstate but simpler.
4139         (collect_ht_nodes): Define.
4140         (cpp_valid_state): When verifying that undefined identifiers in
4141         the pch file are still undefined, read a sorted list of undefined
4142         identifiers, collect all defined identifiers into a sorted list,
4143         and walk through both lists to make sure there's no match.
4144
4145 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
4146
4147         * config/h8300/h8300.md (a peephole2): New.
4148
4149 2003-03-31  Michael Matz  <matz@suse.de>
4150
4151         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Change 1 into 0.
4152
4153 2003-03-31  Segher Boessenkool  <segher@koffie.nl>
4154
4155         PR target/10177
4156         * config/rs6000/rs6000.h (HARD_REGNO_RENAME_OK): New.
4157         * config/rs6000/rs6000.c (compute_vrsave_mask): Don't mark
4158         all call-clobbered registers as used.
4159
4160 2003-03-31  Michael Matz  <matz@suse.de>
4161
4162         * cppexp.c (cpp_classify_number): Accept '.' after "0x".
4163         * testsuite/gcc.dg/cpp/c99-hexfloat-3.c: New file.
4164
4165 2003-03-31  Nathan Sidwell  <nathan@codesourcery.com>
4166
4167         * gcov.c: Add -a & -u options.
4168         (struct arc_info): Add local_span, is_call_non_return,
4169         is_nonlocal_return, is_unconditional flags, remove is_call flag.
4170         (struct block_info): Add flags, is_call_site, is_nonlocal_return
4171         members. Make encodings a union with span member.
4172         (struct function_info): Add blocks_executed, line, src, line_next
4173         members.
4174         (struct coverage_info): Make branches a union with blocks member.
4175         (struct source_info): Add functions member.
4176         (object_summary, program_count): New global variables.
4177         (flag_all_blocks, flag_unconditional): New flags.
4178         (find_source, output_branch_count): New functions.
4179         (print_usage): Adjust.
4180         (options): Adjust.
4181         (process_args): Adjust.
4182         (read_graph_file) <GCOV_TAG_FUNCTION>: Adjust.
4183         <GCOV_TAG_BLOCKS>: Read flags.
4184         <GCOV_TAG_LINES>: Adjust.
4185         (read_count_file): Process SUMMARY tags.
4186         (solve_flow_graph): Set is_unconditional and clear is_call_site
4187         appropriately.
4188         (add_branch_counts): Adjust. Don't count unconditional branches.
4189         (add_line_counts): Deal with all-blocks mode, accumulate block
4190         coverage.
4191         (accumulate_line_counts): Adjust, generate local spanning tree for
4192         all-blocks mode.
4193         (output_lines): Adjust.
4194         * profile.c (branch_prob): Alter GCOV_FUNCTION_TAG record.
4195         * doc/gcov.texi: Document.
4196
4197 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
4198
4199         * config/h8300/h8300.md: Organize peephole2's that transform
4200         (compare (reg:HI) (const_int)).
4201
4202 2003-03-31  Roger Sayle  <roger@eyesopen.com>
4203
4204         * emit-rtl.c (dconstm2, dconsthalf): New real constants.
4205         (init_emit_once): Initialize dconstm2 and dconsthalf here.
4206         * real.h (dconstm2, dconsthalf): Add prototypes here.
4207         * real.c (real_sqrt): Use dconsthalf rather than local copy.
4208         * builtins.c (fold_builtin): When optimizing sqrt(exp(x)) as
4209         exp(x/2.0) remember to fold the division if possible.
4210         Fold sin(0.0) as 0.0, cos(0.0) as 1.0, pow(x,1.0) as x,
4211         pow(x,-1.0) as 1.0/x, pow(x,2.0) as x*x, pow(x,-2.0) as
4212         1.0/(x*x) and pow(x,0.5) as sqrt(x).
4213
4214 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
4215
4216         * config/h8300/h8300.md (a new peephole2): New.
4217
4218 2003-03-31  Richard Sandiford  <rsandifo@redhat.com>
4219
4220         * gcse.c (simple_mem): Return false for floating-point accesses
4221         if flag_float_store is true.
4222
4223 2003-03-30  Roger Sayle  <roger@eyesopen.com>
4224
4225         * gcse.c (gcse_constant_p): New function to identify constants
4226         suitable for constant propagation, including COMPARE with two
4227         integer constant arguments.
4228         (hash_scan_set): Use gcse_constant_p.
4229         (find_avail_set): Likewise.
4230         (cprop_insn): Likewise.
4231         (do_local_cprop): Likewise.
4232         (find_implicit_sets): Likewise.
4233         (find_bypass_set): Likewise.
4234
4235 2003-03-30  Matt Kraai  <kraai@alumni.cmu.edu>
4236
4237         * except.h: Remove definition of varray_type.
4238
4239 2003-03-30  Richard Henderson  <rth@redhat.com>
4240
4241         PR opt/10011, opt/10252:
4242         * toplev.c (rest_of_compilation): Run purge_builtin_constant_p
4243         before post-gcse cse pass.
4244
4245 2003-03-30  Roger Sayle  <roger@eyesopen.com>
4246
4247         * dojump.c (do_jump): Copy SUBREGs into a pseudo for comparison.
4248
4249 2003-03-30  DJ Delorie  <dj@redhat.com>
4250
4251         * profile.c (instrument_edges): Make sure any newly created
4252         jump insns have correct jump label info.
4253
4254 2003-03-30  Richard Henderson  <rth@redhat.com>
4255
4256         * cfgbuild.c (make_edges): Use tablejump_p.
4257         * cfgcleanup.c (label_is_jump_target_p): Likewise.
4258         * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
4259         * cfgrtl.c (flow_delete_block_noexpunge): Likewise.
4260         (try_redirect_by_replacing_jump): Likewise.
4261         (redirect_edge_and_branch): Likewise.
4262         * cse.c (fold_rtx): Likewise.
4263         * jump.c (delete_related_insns): Likewise.
4264         * rtlanal.c (get_jump_table_offset): Likewise.
4265         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): Likewise.
4266
4267 2003-03-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4268
4269         * Makefile.in (STRICT_WARN): Don't warn for ISO C constructs.
4270         (STRICT2_WARN): Likewise.
4271
4272 2003-03-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4273
4274         PR other/6955
4275         * collect2.c (collect_wait): Use WCOREDUMP and fix output message.
4276         * system.h (WCOREDUMP, WCOREFLG): Define if necessary.
4277
4278 2003-03-30  Richard Henderson  <rth@redhat.com>
4279
4280         PR c/10083
4281         * config/alpha/alpha.md (umuldi3_highpart): Change to expander;
4282         don't zero_extend const inputs.
4283
4284 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
4285
4286         * reload1.c (reload_cse_move2add): Fix a comment typo.
4287
4288 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
4289
4290         * config/h8300/h8300.md (a peephole2): Remove useless code.
4291
4292 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
4293
4294         * config/h8300/h8300.md (*iorsi3_and_ashift): New.
4295         (*iorsi3_and_lshiftrt): Likewise.
4296         (*iorsi3_zero_extract): Likewise.
4297
4298 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
4299
4300         * config/h8300/h8300.md (*insv_si_8_8): New.
4301         (*insv_si_8_8_lshiftrt_8): Likewise.
4302         (a peephole2): Likewise.
4303
4304 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4305
4306         * doc/contrib.texi: Add Eric Botcazou and Roger Sayle.
4307         Uniformly use bugfix instead of bug fix.
4308
4309 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4310
4311         PR doc/895
4312         * ONEWS: Remove those items that already appear in the EGCS
4313         release notes on our web pages.
4314
4315 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
4316
4317         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Respect
4318         TARGET_HARD_FLOAT.  Reformat.
4319         (FUNCTION_ARG_REGNO_P): Likewise, and remove unneeded casts.
4320
4321 2003-03-28  Albert Chin-A-Young  <china@thewrittenword.com>
4322
4323         * gcc/fixinc/inclhack.def: Update solaris_mutex_init_1 to
4324         work on Solaris 2.5.1.
4325
4326 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>
4327
4328         * config/h8300/h8300.md (*addsi3_and_r_1): Put under plus:SI
4329         section of h8300.md
4330         (*addsi3_and_nor_r_1): Likewise.
4331
4332 2003-03-29  Ulrich Weigand  <uweigand@de.ibm.com>
4333
4334         * config/s390/s390.c (s390_emit_prologoue): Make sure backchain is
4335         set up before any trapping memory access if flag_non_call_exceptions.
4336
4337 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
4338
4339         * reload1.c (reload_as_needed): Allow a USE in asm reloads.
4340
4341         * loop.c: (find_mem_in_note_1, find_mem_in_note): Comment.
4342
4343 2003-03-28  Nathanael Nerode  <neroden@gcc.gnu.org>
4344
4345         * configure.in: Clarify comments.
4346         * configure: Regenerate.
4347
4348 2003-03-28  Ulrich Weigand  <uweigand@de.ibm.com>
4349
4350         * config/s390/s390.md ("literal_pool_31"): Output pool anchor
4351         label even if pool empty when generating PIC.
4352         ("literal_pool_31", "literal_pool_64"): Coding style cleanup.
4353
4354 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>,
4355             Dhananjay Deshpande  <dhananjayd@kpit.com>
4356
4357         PR target/10205
4358         * config/h8300/h8300.c (h8300_initial_elimination_offset):
4359         Correct the offset computation when TARGET_NORMAL.
4360
4361 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
4362
4363         PR target/10067
4364         * config/sparc/sparc.md (jump pattern): Correct order
4365         when issuing the annuling marker.
4366
4367 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
4368
4369         PR c/8281
4370         * config/sparc/sparc.md (movdi_insn_sp32_v9): Remove 'f-f' alternative.
4371         (movdi reg/reg split): Match only on sparc32, and v9 when int regs.
4372
4373 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
4374
4375         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
4376         globalize_label.
4377         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4378         * config/i960/i960.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4379         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4380         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4381         * config/mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4382         * config/sparc/sparc.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4383         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
4384
4385 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
4386
4387         * loop.c: (find_mem_in_note_1, find_mem_in_note): New functions.
4388         (replace_loop_mems): Add "written" param.  Remove invalid REG_EQUAL
4389         notes after hoisting.
4390         (load_mems): Adjust replace_loop_mems call.
4391
4392 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
4393             Richard Henderson  <rth@redhat.com>
4394
4395         PR target/10114 and PR target/10084
4396         * dwarf2out.c (mem_loc_descriptor): Handle LO_SUM.
4397
4398 2003-03-27  Richard Henderson  <rth@redhat.com>
4399
4400         * config/alpha/alpha.md (adddi_er_high_l): Valid only after reload.
4401
4402 2003-03-27  Roger Sayle  <roger@eyesopen.com>
4403
4404         * fold-const.c (fold_inf_compare):  New function to simplify FP
4405         comparisons against +Infinity or -Infinity.
4406         (fold):  Optimize floating point comparisons against Infs and NaNs.
4407
4408 2003-03-27  Janis Johnson  <janis187@us.ibm.com>
4409
4410         * libgcov.c: Provide only dummy functions if libc is not available.
4411
4412 2003-03-27  Richard Henderson  <rth@redhat.com>
4413
4414         * real.h (struct real_value): Add signalling.
4415         (EXP_BITS): Decrement.
4416         * real.c (get_canonical_qnan): Don't set MSB-1.
4417         (get_canonical_snan): Likewise.  Set signalling.
4418         (real_identical): Compare signalling.
4419         (round_for_format): Remove force-one-bit on code.
4420         (real_nan): Likewise.  Set signalling.
4421         (encode_ieee_single): Add force-one-bit code; honor signalling.
4422         (encode_ieee_double, encode_ieee_extended, encode_ieee_quad): Likewise.
4423         (decode_ieee_single): Set signalling.
4424         (decode_ieee_double, decode_ieee_extended, decode_ieee_quad): Likewise.
4425
4426 2003-03-27  Olivier Hainque  <hainque@act-europe.fr>
4427
4428         PR ada/9953
4429         * ada/Makefile.in (gnatlib configuration for HPUX): Split
4430         the general section for HPUX into specific sections for
4431         HPUX 10 and HPUX 11. Fix the setting of TGT_LIB in the HPUX
4432         11 case.
4433
4434 2003-03-27  Glen Nakamura  <glen@imodulo.com>
4435
4436         PR opt/10087
4437         * loop.c (loop_givs_reduce): Skip bivs with duplicate locations
4438         while incrementing giv.
4439         (record_biv): Check for duplicate biv locations and
4440         set (struct induction *) v->same if found.
4441
4442 2003-03-27  David Mosberger  <davidm@hpl.hp.com>
4443
4444         * unwind-libunwind.c (uw_frame_state_for): Adjust for libunwind
4445         v0.9 API change: replace read of UNW_REG_HANDLER with
4446         unw_get_proc_info().
4447         (_Unwind_GetLanguageSpecificData): Replace read of UNW_REG_LSDA
4448         with unw_get_proc_info().
4449         (_Unwind_GetRegionStart): Replace UNW_REG_PROC_START with
4450         unw_get_proc_info().
4451
4452 2003-03-27  Vladimir Makarov  <vmakarov@redhat.com>
4453
4454         * config/rs6000/8540.md: Use presence_set instead of absence_set.
4455
4456 2003-03-26  Richard Henderson  <rth@redhat.com>
4457
4458         * c-decl.c (finish_function): Always defer if DECL_DECLARED_INLINE_P.
4459
4460 2003-03-26  Roger Sayle  <roger@eyesopen.com>
4461
4462         PR bootstrap/10051, PR bootstrap/10169.
4463         * mips-tfile.c (init_file): Don't provide a static initializer.
4464         (initialize_init_file): Initialize the contents of init_file.
4465         (add_file): Call initialize_init_file if not already initialized.
4466
4467 2003-03-26  Ulrich Weigand  <uweigand@de.ibm.com>
4468
4469         * config/s390/s390.c (s390_optimize_prolog): Do not save/restore
4470         registers used for global asm variables.
4471         (s390_frame_info, s390_arg_frame_offset): Likewise.
4472         (s390_emit_prologue, s390_emit_epilogue): Likewise.
4473
4474 2003-03-26  Vladimir Makarov  <vmakarov@redhat.com>
4475
4476         * config/rs6000/8540.md: New file.
4477
4478         * config/rs6000/{40x.md, 603.md, 6xx.md, 7450.md, 7xx.md, mpc.md,
4479         power4.md, rios1.md, rios2.md, rs64.md}: Add mult_compare to
4480         reservations for imul.
4481
4482         * config/rs6000/rs6000.md: Include 8540.md.  Change
4483         delayed_compare onto mult_compare for insns generating
4484         multiplication.
4485         (mult_compare, fpsimple, brinc, vecdiv, veccmpsimple, vecfdiv):
4486         New type attribute values.
4487
4488         * config/rs6000/spe.md (*negsf2_gp, *abssf2_gpr): Use type
4489         fpsimple instead of fp.
4490         (*divsf3_gpr): Use type vecfdiv instead of fp.
4491         (spe_evfsabs, spe_evfsnabs, spe_evfsneg): Use type vecsimple
4492         instead of vecfloat.
4493         (spe_evfsdive): Use type vecfdiv instead of vecfloat.
4494         (spe_brinc): Use type brinc instead of veccomplex.
4495         (spe_evaddw, spe_evaddiw): Use type vecsimple instead of
4496         veccomplex.
4497         (spe_evdivws, spe_evdivwu): Use type vecdiv instead of veccomplex.
4498         (*movv2si_internal, *movv1di_internal, *movv4hi_internal,
4499         *movv2sf_internal): Define type attribute values for all
4500         alternatives.
4501         (cmpsfeq_gpr, cmpsfgt_gpr, cmpsflt_gpr): Use type veccmp instead
4502         of fpcompare.
4503         (tstsfeq_gpr, tstsfgt_gpr, tstsflt_gpr): Use type veccmpsimple
4504         instead of fpcompare.
4505
4506 2003-03-26  David Edelsohn  <edelsohn@gnu.org>
4507
4508         * config/rs6000/power4.md: Allow delay between dispatch and
4509         function units for simple instructions.  Correct store units.
4510         Allow branch to occupy as many dispatch slots as necessary.
4511
4512 2003-03-26  Jakub Jelinek  <jakub@redhat.com>
4513
4514         * config/ia64/ia64.c (ia64_expand_op_and_fetch): Fix comment.
4515         (ia64_expand_compare_and_swap): Use always DImode ar.ccv,
4516         zero extend old to it.
4517         * config/ia64/ia64.md (cmpxchg_acq_si): Remove mode from ccv
4518         operand.
4519
4520 2003-03-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
4521
4522         PR target/7784
4523         * reload.c (find_reloads_address): Handle
4524         (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for
4525         all base registers.
4526
4527 2003-03-25  Marcelo Abreu  <mmabreu@inf.ufrgs.br>
4528
4529         PR other/10203
4530         * version.c: Reference the GCC web site in the URL.
4531
4532 2003-03-26  Alan Modra  <amodra@bigpond.net.au>
4533
4534         * c-incpath.c (add_standard_paths): Add both "translated" and
4535         non-translated header paths.
4536
4537 2003-03-25  Loren James Rittle  <ljrittle@acm.org>
4538
4539         * doc/install.texi (*-*-freebsd*): Update with known status.
4540
4541 2003-03-21  Jason Merrill  <jason@redhat.com>
4542
4543         PR optimization/10171
4544         * unroll.c (unroll_loop): Don't delete the jump at the end unless
4545         we also delete a jump at the beginning.
4546
4547 2003-03-25  Stephane Carrez  <stcarrez@nerim.fr>
4548
4549         * doc/contrib.texi (Contributors): Mention self as 68HC11/68HC12
4550         contributor.
4551
4552 Tue Mar 25 20:35:51 CET 2003  Jan Hubicka  <jh@suse.cz>
4553
4554         * i386.c (ix86_rtx_costs): For -fpic and x86-64 local symbolic
4555         constants are not expensive.
4556
4557 Mon Mar 24 20:03:03 CET 2003  Jan Hubicka  <jh@suse.cz>
4558
4559         PR opt/10056
4560         * cfglayout.c (fixup_reorder_chain):  Fix dealing with the conditional
4561         jump jumping to the next instruction.
4562         * cfgrtl.c (force_nonfallthru_and_redirect):  Likewise.
4563
4564 2003-03-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4565
4566         * doc/passes.texi (Passes): Properly document that we do not
4567         perform jump2 any longer; remove command-line option -dJ.
4568
4569 2003-03-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4570
4571         PR optimization/8746
4572         * config/i386/i386.md (and promoting splitters): Disable HImode to
4573         SImode promoting when the sign bit matters and is not preserved, or
4574         when TARGET_FAST_PREFIX is true. Disable promoting when optimizing
4575         for size.
4576
4577 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
4578
4579         * config/h8300/h8300.md (a peephole2): Extend to support loads
4580         in QImode and HImode.
4581
4582 2003-03-24  Stephane Carrez  <stcarrez@nerim.fr>
4583
4584         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Add _call_far and
4585         _return_far
4586         (MULTILIB_OPTIONS): Don't multilib on -mlong-calls.
4587         (MULTILIB_EXCEPTIONS): Likewise.
4588         * config/m68hc11/m68hc11.md ("call"): Support far calls for 68HC11
4589         by calling some board support routine.
4590         ("call_value"): Likewise.
4591         ("*return_void"): Likewise for return.
4592         ("*return_16bit"): Likewise.
4593         ("*return_32bit"): Likewise.
4594         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Generate .far
4595         for 68HC11 too.
4596         (DWARF2_ADDR_SIZE): Use 4 so that addresses can
4597         * config/m68hc11/m68hc11.c (m68hc11_override_options): Accept
4598         -mlong-calls for 68HC11.
4599         * config/m68hc11/larith.asm (declare_near): New macro.
4600         (__premain, ___negsi2, ___one_cmplsi2, ___ashlsi3): Use it.
4601         (___ashrsi3, ___lshrsi3, ___lshrhi3, ___lshlhi3): Likewise.
4602         (___rotrhi3, ___rotlhi3, ___ashrhi3, ___ashrqi3): Likewise.
4603         (___lshlqi3, __divmodhi4, ___mulqi3, ___mulhi3): Likewise.
4604         (__mulhi32): Likewise.
4605         (ret): Update macro for 68HC11.
4606         (__far_trampoline): Implement for 68HC11.
4607         (__call_a16, __call_a32, __return_void, __return_16): New support
4608         routines for 68HC11 memory bank switching calling support.
4609         (__return_32): Likewise.
4610
4611 2003-03-24  Neil Booth  <neil@daikokuya.co.uk>
4612
4613         * toplev.c (independent_decode_option): Don't skip a 'Y' prefix.
4614
4615 2003-03-24  Janis Johnson  <janis187@us.ibm.com>
4616
4617         * doc/install.texi (Testing): Mention test result links from build
4618         status pages.
4619
4620 2003-03-24  Mark Mitchell  <mark@codesourcery.com>
4621
4622         * function.c (put_var_into_stack): Change bool parameter to int.
4623         (gen_mem_addressof): Likewise.
4624         * rtl.h (gen_mem_addressof): Likewise.
4625         * tree.h (put_var_into_stack): Likewise.
4626         * config/alpha/alpha.c (alpha_gp_save_rtx): Adjust call to
4627         gen_mem_addressof or put_var_into_stack.
4628         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
4629         * config/ia64/ia64.c (spill_tfmode_operand): Likewise.
4630
4631 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
4632
4633         * config/h8300/h8300.md (a peephole2): New.
4634
4635 2003-03-24  Jakub Jelinek  <jakub@redhat.com>
4636
4637         * dojump.c (do_jump): Handle UNSAVE_EXPR specially.
4638
4639 2003-03-24  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4640
4641         * doc/contrib.texi (Contributors): Update Janis Johnson.
4642
4643 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
4644
4645         PR target/10072
4646         * combine.c (simplify_if_then_else): Check that the mode
4647         has MODE_INT class before applying the (OP Z (mult COND C2))
4648         transformation.
4649
4650 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
4651
4652         PR optimization/9414
4653         * config/sparc/sparc.md (widening peepholes): Use
4654         widen_memory_access instead of change_address.
4655
4656 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
4657
4658         PR c++/7086
4659         * c-typeck.c (c_mark_addressable): Adjust calls to
4660         put_var_into_stack.
4661         * expr.c (expand_expr): Likewise.
4662         * function.c (put_var_into_stack): Add rescan parameter.  Do not
4663         call fixup_var_refs when rescan is false.
4664         (gen_mem_addressof): Likewise.
4665         (assign_parms): Adjust calls to put_var_into_stack.
4666         (setjmp_protect): Likewise.
4667         (setjmp_protect_args): Likewise.
4668         * rtl.h (gen_mem_addressof): Change prototype.
4669         * stmt.c (expand_decl): Adjust calls to put_var_into_stack.
4670         * tree.h (put_var_into_stack): Change prototype.
4671
4672 2003-03-23  Arpad Beszedes <beszedes@cc.u-szeged.hu>
4673
4674         PR middle-end/9967
4675         * builtins.c (expand_builtin_fputs): When optimizing for size,
4676         don't transform fputs into fwrite.
4677
4678 2003-03-23  Glen Nakamura <glen@imodulo.com>
4679
4680         PR c/8224
4681         * fold-const.c (extract_muldiv_1): Don't pass through type conversions
4682         when signedness changes for division or modulus.
4683
4684 2003-03-24  Alan Modra  <amodra@bigpond.net.au>
4685
4686         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
4687         globalize_label.
4688
4689 2003-03-23  Roger Sayle  <roger@eyesopen.com>
4690
4691         PR c/10178
4692         * stmt.c (expand_end_case_type): Check for overflow in range when
4693         determining whether to use a bit-test implementation.
4694
4695 2003-03-23  Richard Henderson  <rth@redhat.com>
4696
4697         * cfgcleanup.c (try_optimize_cfg): Allow merging of tablejumps
4698         before flow2.
4699         * cfgrtl.c (try_redirect_by_replacing_jump): Similarly.
4700
4701 2003-03-23  Richard Henderson  <rth@redhat.com>
4702
4703         PR opt/10116
4704         * ifcvt.c (find_if_block): Disallow tablejump insns outgoing
4705         from then_bb or else_bb after flow2.
4706
4707 2003-03-23  Zack Weinberg  <zack@codesourcery.com>
4708
4709         * configure.in: Check whether it is necessary to link against
4710         libm to use ldexp.
4711         * configure: Regenerate.
4712         * Makefile.in: Add LDEXP_LIB substitution variable.
4713
4714 2003-03-23  Kazu Hirata  <kazu@cs.umass.edu>
4715
4716         * config/h8300/h8300.md: Fix comment typos.
4717
4718 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4719
4720         * pa.c (output_cbranch): Fix typo in comment.
4721
4722 2003-03-22  Richard Henderson <rth@redhat.com>
4723
4724         * cfgcleanup.c (insns_match_p): Do not do EQUIV substitution
4725         after reload.
4726
4727 2003-03-22  DJ Delorie  <dj at redhat dot com>,
4728         Bruce Korb  <bkorb at gnu dot org>
4729
4730         * fixinc/inclhack.def (solaris_mutex_init_1): New; Fix
4731         buggy Solaris 2.6 mutex/cond initializers.
4732         (solaris_mutex_init): Rename to solaris_mutex_init_2.
4733         * fixinc/fixincl.x: Regenerate.
4734         * fixinc/tests/base/pthread.h: Update.
4735         * fixinc/fixincl.c(initialize): be explicit about the default case
4736         and indicate verbose level when being very, very verbose.
4737         * fixinc/check.tpl(VERBOSE): provide a means for passing the value in
4738
4739 2003-03-22  Andreas Jaeger  <aj@suse.de>
4740
4741         * config/i386/i386.c (ix86_init_machine_status): Return value.
4742
4743 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4744
4745         * pa.c (output_cbranch, output_bb, output_bvb): Output nop for
4746         conditional branch to the following instruction.  Use next_real_insn
4747         instead of next_active_insn.
4748         (output_dbra, output_movb, jump_in_call_delay): Use next_real_insn
4749         instead of next_active_insn.
4750
4751 2003-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
4752
4753         * config/s390/s390.md ("movti", "*movdi_31", "*movdf_31"): Use 'o'
4754         instead of 'm' constraint in forced-split alternatives.
4755         ("*adddi3_31", "*subdi3_31"): Likewise.  Also, pass 0 instead of 1 as
4756         VALIDATE_ADDRESS parameter to operand_subword.
4757
4758 2003-03-22  Kazu Hirata  <kazu@cs.umass.edu>
4759
4760         * config/h8300/h8300.c (notice_update_cc): Correctly handle
4761         the case where the set destination is STRICT_LOW_PART.
4762
4763 2003-03-22  Svein E. Seldal  <Svein.Seldal@solidas.com>
4764
4765         * config/c4x/t-c4x (INSTALL_LIBGCC): Make gcc recognize a c33 as a
4766         c30 instead of a c40 processor.
4767
4768 2003-03-22  Alan Modra  <amodra@bigpond.net.au>
4769
4770         * combine.c (simplify_comparison <AND>): Use gen_int_mode.  Tidy.
4771
4772 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
4773
4774         * c-common.c: Include intl.h.
4775         (shadow_warning): Rewrite to allow better diagnostic translations.
4776         * c-common.h: Update prototype of shadow_warning.  Declare sw_kind enum.
4777         * c-decl.c (warn_if_shadowing): Update calls to shadow_warning;
4778         use it throughout.
4779         * Makefile.in (c-common.o): Add intl.h.
4780
4781 2003-03-21  Nathanael Nerode  <neroden@gcc.gnu.org>
4782
4783         * config.gcc: Remove 'float_format'.
4784
4785         * fixproto: Define NULL and size_t in generated stdlib.h and
4786         unistd.h.  Kill unused required_stdlib_h, required_unistd_h.
4787         Rearrange file generation loop for readability.  Generate time.h,
4788         string.h if missing.
4789         * tsystem.h: Include <string.h>, <time.h> unconditionally.
4790         * config.gcc: Blow away POSIX defines.
4791
4792 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
4793
4794         * config/m68hc11/m68hc11.md ("call_value"): Fix trap check.
4795
4796 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
4797
4798         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Fix typo in
4799         writing .interrupt command.
4800         * config/m68hc11/m68hc11.md ("call"): Look at the symbol to see
4801         if it's a far or near function.
4802         ("call_value"): Likewise.
4803         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Add far and
4804         near attributes.
4805         (m68hc11_handle_fntype_attribute): Accept attributes on methods.
4806         (m68hc11_override_options): Ignore -mlong-calls for 68HC11.
4807         (m68hc11_initial_elimination_offset): Set current_function_far
4808         according to attributes.
4809         (expand_prologue): Likewise.
4810         (trap_handler_symbol): New global to keep track of trap handlers.
4811         (m68hc11_encode_section_info): Mark symbol as far if needed; set
4812         trap symbol.
4813         (m68hc11_is_far_symbol): New function.
4814         (m68hc11_is_trap_symbol): New function.
4815         * config/m68hc11/m68hc11-protos.h (m68hc11_is_far_symbol): Declare.
4816         (m68hc11_is_trap_symbol): Declare.
4817
4818 2003-03-21  Jan Hubicka  <jh@suse.cz>
4819
4820         * i386.c (ix86_compute_frame_layout): Recompute fast prologues
4821         only when amount of saved regs changed.
4822         (ix86_init_machine_status): Initialize use_fast_prologue_epilgoue_nregs.
4823         * i386.h (machine_function): New fields use_fast_prologue_epilgoue_nregs.
4824
4825 2003-03-21  Jan Hubicka  <jh@suse.cz>
4826
4827         PR inline-asm/7916
4828         * function.c (instantiate_virtual_regs_lossage): New function.
4829         (instantiate_virtual_regs_1): Use it.
4830         (instantiate_virtual_regs): Do not continue in substition when insn has
4831         been deleted.
4832
4833 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
4834
4835         * combine.c (make_field_assignment): Fix a warning.
4836
4837 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
4838
4839         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt_16): New.
4840
4841 2003-03-21  Dale Johannesen  <dalej@apple.com>
4842
4843         * config/rs6000/rs6000.h (REG_ALLOC_ORDER):  Increase
4844         priority for R2 on Darwin.
4845         (HARD_REGNO_MODE_OK):  Don't accept R31 for DFmode.
4846
4847 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
4848
4849         * combine.c (make_field_assignment): Remove unnecessary AND
4850         when storing into zero_extract.
4851
4852 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
4853
4854         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT, gcc_AC_C_FLOAT_FORMAT): Delete.
4855         * configure.in: Don't call gcc_AC_C_FLOAT_FORMAT.
4856         * defaults.h: Remove reference to HOST_FLOAT_WORDS_BIG_ENDIAN
4857         in comment.
4858
4859 2003-03-21  DJ Delorie  <dj@redhat.com>
4860
4861         * optabs.c (init_integral_libfuncs): Make sure we init at least up
4862         to "long long" size words.
4863
4864 2003-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
4865
4866         * config/s390/s390.h: Do not include fixdfdi.h on s390x.
4867         (TARGET_64BIT): Define as compile-time constant when IN_LIBGCC2.
4868         (MIN_UNITS_PER_WORD): Do not define when IN_LIBGCC2.
4869
4870 2003-03-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4871
4872         PR doc-bug/9813
4873         * doc/extend.texi: Move misplaced paragraph about underscores in
4874         variables in macros.
4875
4876 2003-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
4877             Richard Henderson  <rth@redhat.com>
4878
4879         PR optimization/8366
4880         * config/sparc/sparc.h: (SYMBOLIC_CONST): New macro.
4881         (GO_IF_LEGITIMATE_ADDRESS): Use it. Reject the form
4882         PIC+SYMBOLIC_CONST in other modes than Pmode.
4883         (GO_IF_MODE_DEPENDENT_ADDRESS): Use it. Mark
4884         the form PIC+SYMBOLIC_CONST as mode dependent.
4885
4886 2003-03-21  DJ Delorie  <dj@redhat.com>
4887
4888         * config/stormy16/stormy16.c (xstormy16_expand_arith): Make
4889         sure we always emit at least one insn.
4890
4891 2003-03-21  Christopher Faylor  <cgf@redhat.com>
4892
4893         * config.gcc (i[34567]86-*-cygwin*): Use new common makefile
4894         stub t-cygming. Use common target header cygming.h. Add extra
4895         c_target_obj and cxx_target_obj file. Default cygwin to posix
4896         threading. Enforce i386 as float format.
4897         (i[34567]86-*-mingw*): Use new common makefile stub t-cygming.
4898         Remove cygwin.h as target header. Use common target header
4899         cygming.h  Enforce i386 as float format. Correct typo.
4900         * config/i386/cygming.h: New file, containing definitions
4901         common to mingw32 and cygwin.
4902         * config/i386/cygwin.h: Remove definitions common to cygwin and
4903         mingw.  Simplify special spec logic.  Define "wrappers" around
4904         certain include path defines to accommodate -mno-cygwin.
4905         Remove some #if 0'ed code.
4906         (STANDARD_INCLUDE_DIR) Always define when not cross-compiling.
4907         (LINK_SPEC): Don't use cyg search prefix when -mno-cygwin.
4908         (GCC_DRIVER_HOST_INITIALIZATION): Define as call to mingw_scan.
4909         * config/i386/mingw32.h: Remove definitions common to cygwin and
4910         mingw.
4911         (EXTRA_OS_CPP_BUILTINS): Adjust.
4912         (TARGET_VERSION): Define.
4913         * config/i386/crtdll.h (EXTRA_OS_CPP_BUILTINS): Override
4914         mingw32.h definitions.
4915         (LIBGCC_SPEC): Add libmingwex.a as in mingw32.h.
4916         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Define as cygwin1.o.
4917         Add compilation rules for cygwin1.o cygwin2.o.
4918         * config/i386/cygwin1.c: New file.
4919         * config/i386/cygwin2.c: New file.
4920         * config/i386/t-cygming: New makefile stub.
4921
4922 2003-03-20  Richard Henderson  <rth@redhat.com>
4923
4924         * fold-const.c (extract_muldiv_1): Revert changing order of
4925         operands in case MULT_EXPR of 2003-02-16 patch.
4926
4927 2003-03-20  Daniel Berlin  <dberlin@dberlin.org>
4928         Merge changes from new-regalloc-branch
4929
4930         From Michael Matz  <matz@suse.de>
4931         * df.c (df_ref_record_1): Move init of loc to safe point.
4932         Only recurse on interesting things in parallels.
4933         Handle CLASS_CANNOT_CHANGE_MODE smarter.
4934         (df_uses_record): Ditto.
4935
4936         * df.h (DF_REF_MEM_OK): New enum member, used to mark ref's which
4937         it's already okay to use memory operands in (IE doesn't require
4938         adding another insn or anything).
4939
4940 2003-03-20  Richard Henderson  <rth@redhat.com>
4941
4942         PR middle-end/6348
4943         * explow.c (allocate_dynamic_stack_space): Handle STACK_SIZE_MODE
4944         different from word_mode.
4945
4946 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4947
4948         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt): Restrict the
4949         source operand to those that can be extracted with bld.
4950
4951 2003-03-20  Richard Earnshaw  <rearnsha@arm.com>
4952
4953         PR 10066
4954         * arm.md (UNSPEC_PIC_BASE): New constant.
4955         (pic_add_dot_plus_four): Wrap with unspec.
4956         (pic_add_dot_plus_eight): Likewise.
4957
4958 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4959
4960         * config/h8300/h8300.md (*insv_si_1_n): New.
4961         (*insv_si_1_n_lshiftrt): Likewise.
4962
4963 2003-03-20  Roger Sayle  <roger@eyesopen.com>
4964
4965         * fold-const.c (fold_mathfn_compare): New function to simplify
4966         comparisons against built-in math functions.  Fold comparisons
4967         of sqrt against constants.
4968         (fold): Call fold_mathfn_compare when appropriate.
4969
4970 2003-03-20 Richard Earnshaw  <rearnsha@arm.com>
4971
4972         * ifcvt.c (find_if_case_1): If we add a new bb, update the dominance
4973         information.
4974
4975 2003-03-20  Per Bothner  <pbothner@apple.com>
4976
4977         Various cleanups to help compile server.
4978
4979         * cppinit.c (cpp_create_reader):  Take extra hash_table* argument,
4980         and pass that to _cpp_init_hashtable.
4981         (cpp_read_main_file):  Drop hash_table* argument; don't call
4982         _cpp_init_hashtable.
4983         * cpplib.h:  Update declarations to match.
4984         * c-opts.c (c_common_init_options):  Pass ident_hash to
4985         cpp_create_reader.
4986         (c_common_post_options):  Don't pass ident_hash to cpp_read_main_file.
4987         * fix-header.c (read_scan_file):  Likewise pass NULL table to
4988         cpp_create_reader rather than cpp_read_main_file.
4989
4990         * cppfiles.c (cpp_rename_file):  Generalized and renamed
4991         to cpp_change_file.
4992         * cpplib.h:  Update declaration to match.
4993         * c-opts.c (push_command_line_line, finish_options):  Change
4994         cpp_rename_file calls to cpp_change_file.
4995
4996         * line-map.c (add_line_map):  Allow leaving the outermost file.
4997         Allowing entering an outermost-file after the initial time.
4998
4999         * toplev.c (pop_srcloc):  Allow popping from initial file.
5000
5001 2003-03-20  Kazu Hirata  <kazu at cs dot umass dot edu>
5002
5003         * fold-const.c (fold): Fold A - (A & B) into ~B & A.
5004
5005 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5006
5007         * config/h8300/h8300.md (a peephole2): New.
5008
5009 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5010
5011         * config/h8300/h8300.md (*addsi3_and_r_1): New.
5012         (*addsi3_and_not_r_1): Likewise.
5013
5014 2003-03-19  Loren James Rittle  <ljrittle@acm.org>
5015
5016         * Makefile.in (STRICT2_WARN): Add @WERROR@.
5017         (GCC_WARN_CFLAGS): Remove $(WERROR).
5018         (fixinc.sh-warn): New.
5019         * ada/Make-lang.in (ada-warn): Add $(WERROR).
5020         * cp/Make-lang.in (cp-warn): Add $(WERROR).
5021         * f/Make-lang.in (f-warn): Add $(WERROR).
5022         * java/Make-lang.in (java-warn): Add $(WERROR).
5023         * treelang/Make-lang.in (treelang-warn): Add $(WERROR).
5024
5025 2003-03-19  Nathanael Nerode  <neroden@gcc.gnu.org>
5026
5027         * c-common.h (c_dump_tree), c-dump.c (c_dump_tree),
5028         langhooks-def.h (lhd_tree_dump_dump_tree),
5029         langhooks.c (lhd_tree_dump_dump_tree), langhooks.h (*dump_tree):
5030         Change return type from 'int' to 'bool'.  Replace 0 and 1 with
5031         true and false in return statements.
5032
5033 2003-03-19  Kevin Buettner  <kevinb@redhat.com>
5034
5035         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE): Define.
5036         (DWARF_COMPILE_UNIT_HEADER_SIZE): Take into account
5037         DWARF_INITIAL_LENGTH_SIZE.
5038         (output_compilation_unit_header, output_pubnames, output_aranges)
5039         (output_line_info): Output 0xffffffff escape value for 64-bit
5040         DWARF extension.
5041         * config/mips/iris6.h (DWARF_INITIAL_LENGTH_SIZE): Define.
5042
5043 2003-03-19  Ulrich Weigand  <uweigand@de.ibm.com>
5044
5045         * config/s390/s390.c (s390_preferred_reload_class): Do not
5046         force constants to the pool unless necessary.
5047         (s390_decompose_address): Prefer to use pointer as base,
5048         not index register.
5049         * config/s390/s390.md ("*tsthiCCT_only"): Remove '?' from
5050         Q alternative.
5051         ("*movdi_64", "*movsi", "movhi", "movqi_64", "movqi",
5052         "*movdf_64", "*movsf"): Add '?' to Q->Q alternatives.
5053         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
5054         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
5055         "*adddi3_31", "*subdi3_31"): Do not set "type" attribute.
5056
5057 2003-03-19  Jan Hubicka  <jh@suse.cz>
5058
5059         * i386.h (machine_function): New fields use_fast_prologue_epilogue.
5060         * i386.c (use_fast_prologue_epilogue): Remove.
5061         (ix86_frame): New field save_regs-using_mov;
5062         (ix86_compute_frame_layout):  Decide on fast prologues;
5063         allocate saved registers in red zone.
5064         (ix86_expand_epilogue, ix86_expand_prolgoues): Obey new parameters.
5065
5066 2003-03-19  Nick Clifton  <nickc@redhat.com>
5067
5068         * config/mcore/mcore.h (CPP_SPEC): Remove trailing semi-colon.
5069
5070 2003-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5071
5072         PR 10062
5073         * config/pa/pa-hpux.h (TARGET_HPUX_UNWIND_LIBRARY): Redefine.
5074         * pa-protos.h (output_lbranch): New prototype.
5075         * pa.c (compute_frame_size): Change size of the frame marker on the
5076         64-bit ports to 48 bytes.
5077         (pa_output_function_prologue): Document why SAVE_SP is set.
5078         (hppa_expand_prologue): Save previous stack pointer into frame marker
5079         on targets which use the hpux unwind library.
5080         (output_cbranch): Use output_lbranch.
5081         (output_lbranch): New function to output long unconditional branches.
5082         * pa.h (TARGET_HPUX_UNWIND_LIBRARY): Define.
5083         (STACK_POINTER_OFFSET): Update offset for 48-byte frame marker on
5084         64-bit ports.
5085         * pa.md (jump): Use output_lbranch.
5086         (allocate_stack): New expander for dynamic stack allocation.
5087
5088 2003-03-19  Alan Modra  <amodra@bigpond.net.au>
5089
5090         * config/rs6000/rs6000.c (rs6000_stack_info): Only require a frame
5091         when debugging on XCOFF targets.  Delete "abi" temp.
5092
5093         PR target/10073
5094         * combine.c (force_to_mode <NOT>): Use gen_int_mode.
5095
5096 2003-03-18  Jakub Jelinek  <jakub@redhat.com>
5097
5098         * config/s390/s390.c (s390_output_dwarf_dtprel): New.
5099         * config/s390/s390-protos.h (s390_output_dwarf_dtprel): New proto.
5100         * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Define.
5101
5102         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): New.
5103         * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): New proto.
5104         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Define.
5105
5106 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
5107
5108         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't clone
5109         the result of machopic_function_base_name.
5110         * config/darwin.c (machopic_function_base_name): Use a gc-allocated
5111         string rather than a static array.
5112
5113         * Makefile.in (emit-rtl.o): Add gt-emit-rtl.h to dependencies.
5114
5115         * gengtype.c: Include rtl.h.
5116         (enum rtx_code): Don't define.
5117         (rtx_format): Make declaration match rtl.h.
5118         (rtx_next_new): Rename from rtx_next to avoid conflict.  Change all
5119         users.
5120         (adjust_field_rtx_def): Describe strings in NOTE_LINE_NUMBER notes.
5121         * Makefile.in (gengtype.o): Update dependencies.
5122
5123 2003-03-18  Andreas Schwab  <schwab@suse.de>
5124
5125         * config/m68k/m68k.md (iordi3): Fix setting low half to -1.  From
5126         martin@blom.org.
5127
5128 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
5129
5130         * function.c (next_block_index): Mark with GTY.
5131
5132         * config/rs6000/rs6000.md (macho_correct_pic): Correct pattern.
5133
5134 2003-03-18  Richard Henderson  <rth@redhat.com>
5135
5136         * config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New.
5137         (builtin_setjmp_receiver): Delay call to ia64_reload_gp
5138         until after reload.
5139
5140 2003-03-18  Richard Henderson  <rth@redhat.com>
5141
5142         * builtins.c (expand_builtin_unop): New target_mode operand;
5143         use it to convert the result to the correct mode.
5144         (expand_builtin): Update all callers.
5145
5146 2003-03-18  Ulrich Weigand  <uweigand@de.ibm.com>
5147
5148         * config/s390/s390.md ("movti", "movhi", "movqi"): Add "type" attribute.
5149
5150 2003-03-18  Jan Hubicka  <jh@suse.cz>
5151
5152         * i386.md:  Fix previous commit that mistakely applied the patch
5153         twice.
5154
5155         * alias.c (rtx_equal_for_memref_p): Assume that X and Y has been
5156         canonicalized.
5157         (memrefs_conflict_p): Likewise.
5158         (addr_side_effect_eval): Canonicalize the constructed address.
5159
5160 2003-03-18  Jan Hubicka  <jh@suse.cz>
5161
5162         * i386.md (cvtts?2si peep2): New.
5163
5164 2003-03-18  Kazu Hirata  <kazu@cs.umass.edu>
5165
5166         * config/h8300/h8300.md (*iorsi3_two_qi_zext): New.
5167
5168 2003-03-18  Andreas Schwab  <schwab@suse.de>
5169
5170         * dwarf2out.c (output_file_names): Cast size_t to unsigned long
5171         for format.
5172
5173 2003-03-17  Jason Merrill  <jason@redhat.com>
5174
5175         PR c++/10091
5176         * expr.c (expand_expr) [ADDR_EXPR]: Disallow taking the address of
5177         an unaligned member of TREE_ADDRESSABLE type.
5178
5179 2003-03-18  Alan Modra  <amodra@bigpond.net.au>
5180
5181         * config/rs6000/linux64.h (MASK_PROFILE_KERNEL): Define.
5182         (TARGET_PROFILE_KERNEL): Define.
5183         (SUBTARGET_SWITCHES): Handle -mprofile-kernel.
5184         (PROFILE_BEFORE_PROLOGUE): Don't define.
5185         (PROFILE_KERNEL): Remove hacks.
5186         * config/rs6000/rs6000.c (TARGET_PROFILE_KERNEL): Define default.
5187         (rs6000_stack_info): No need to save lr if just for profiling when
5188         TARGET_PROFILE_KERNEL.
5189         (output_profile_hook): Output nothing when TARGET_PROFILE_KERNEL.
5190         (output_function_profiler): Localize label generation.  Emit code
5191         for kernel profiling.
5192
5193 2003-03-17  Kazu Hirata  <kazu@cs.umass.edu>
5194
5195         * config/h8300/h8300-protos.h: Add a prototype for
5196         byte_accesses_mergeable_p.
5197         * config/h8300/h8300.c (byte_accesses_mergeable_p): New.
5198         * config/h8300/h8300.md (*iorhi3_two_qi_mem): Likewise.
5199         (a splitter): Likewise.
5200         (*iorsi3_ashift_16_ashift_24): Likewise.
5201         (*iorsi3_ashift_16_ashift_24_mem): Likewise.
5202
5203 2003-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5204
5205         * dwarf2asm.h: Delete obsolete comment.
5206         (dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset,
5207         dw2_asm_output_pcrel, dw2_asm_output_addr,
5208         dw2_asm_output_addr_rtx, dw2_asm_output_encoded_addr_rtx,
5209         dw2_asm_output_nstring, dw2_asm_output_data_uleb128,
5210         dw2_asm_output_data_sleb128, dw2_asm_output_delta_uleb128,
5211         dw2_asm_output_delta_sleb128): Add ATTRIBUTE_NULL_PRINTF.
5212
5213 2003-03-17  Zack Weinberg <zack@codesourcery.com>
5214
5215         * c-tree.h (struct lang_identifier): Remove error_locus field.
5216         (IDENTIFIER_ERROR_LOCUS): Kill.
5217         (record_function_scope_shadow): New prototype.
5218         * c-typeck.c (build_external_ref): Don't complain if
5219         decl is error_mark_node.  When not at file scope, bind the
5220         decl's local value to error_mark_node to suppress further
5221         warnings, instead of setting IDENTIFIER_ERROR_LOCUS.
5222
5223         * c-decl.c (get_function_binding_level): New static function.
5224         (record_function_scope_shadow): New exported function.
5225         (c_make_fname_decl): Use get_function_binding_level.
5226
5227 2003-03-17  Steve Ellcey  <sje@cup.hp.com>
5228
5229         * stmt.c (tail_recursion_args): Call promote_mode to set
5230         unsignedp flag correctly before calling convert_move.
5231
5232 2003-03-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5233
5234         * loop-unroll.c (decide_peel_completely,
5235         decide_unroll_constant_iterations, decide_unroll_stupid,
5236         decide_unroll_runtime_iterations, decide_peel_simple): Set
5237         loop->has_desc.
5238
5239 2003-03-17  Jan Hubicka  <jh@suse.cz>
5240
5241         * ggc-common.c (ggc_mark_roots): Use htab_traverse_noresize.
5242
5243 2003-03-17  Olivier Hainque  <hainque@act-europe.fr>
5244
5245         * function.c (assign_parms): For a struct value address passed as
5246         first argument, delay the function's result RTL setup code until
5247         after the emission of parameter conversions.
5248
5249 2003-03-17  Dave Love  <fx@gnu.org>
5250             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5251
5252         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define __digital__,
5253         __arch64__ to match Compaq cc.
5254
5255 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
5256
5257         * c-opts.c: Default TARGET_EBCDIC to 0 if not defined.
5258         (c_common_init): Set EBCDIC in cpp options.
5259         * cpplex.c (maybe_read_ucs, cpp_parse_escape): Use EBCDIC option,
5260         not conditional compilation.
5261         * cpplib.h (struct cpp_options): New entry EBCDIC.
5262
5263 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
5264
5265         * fix-header.c (read_scan_file): Need to malloc arguments to add_path.
5266
5267 2003-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5268
5269         * function.c (thread_prologue_and_epilogue_insns): Set delete_unused
5270         argument to 0 for redirect_jump.
5271
5272 2003-03-16  Mark Mitchell  <mark@codesourcery.com>
5273
5274         PR c++/8805
5275         * except.c (eh_region_u_cleanup): Add prev_try.
5276         (expand_eh_region_end_cleanup): Set it.
5277         (reachable_handlers): Use it to skip over cleanup blocks.
5278
5279 2003-03-17  Andreas Jaeger  <aj@suse.de>
5280
5281         * Makefile.in (TAGS): Remove obsolete handling of =*.[chy].
5282
5283 2003-03-17  Alan Modra  <amodra@bigpond.net.au>
5284
5285         * config/rs6000/linux64.h (TARGET_64BIT): Redefine.
5286         (TARGET_RELOCATABLE, TARGET_EABI, TARGET_PROTOTYPE): Likewise.
5287         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Likewise.
5288         (SUBTARGET_OVERRIDE_OPTIONS, CPP_SYSV_SPEC): Likewise.
5289
5290 2003-03-16  Richard Henderson  <rth@redhat.com>
5291
5292         * simplify-rtx (simplify_binary_operation): Don't abort for
5293         SS_PLUS, US_PLUS, SS_MINUS, US_MINUS.
5294
5295 2003-03-16  Richard Henderson  <rth@redhat.com>
5296
5297         * config/i386/i386.md (movstrictqi, movstrictqi_1): Check
5298         optimize_size as well.
5299
5300 2003-03-16  Stephane Carrez  <stcarrez@nerim.fr>
5301
5302         * config/m68hc11/m68hc11.c (print_operand): Handle 'b' modifier
5303         for D register to specify the low part of it, aka B.
5304         (m68hc11_gen_movhi): Use REG_WAS_0 note and increment or decrement
5305         the register if we are loading 1 or -1 to it; avoid using temp
5306         register when moving X/Y to Y/X.
5307         (m68hc11_gen_movqi): Likewise.
5308         (m68hc11_check_z_replacement): Fix last insn setting for compare case.
5309
5310 2003-03-14  Mark Mitchell  <mark@codesourcery.com>
5311
5312         PR optimization/9016
5313         * config/i386/i386.c (ix86_expand_move): Force more CONST_DOUBLEs
5314         into the constant pool.
5315
5316 2003-03-16  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
5317
5318         PR target/9164
5319         * tree.c (get_narrower): For extensions with unchanged bit number,
5320         return the unsignedness of the outer mode.
5321
5322 2003-03-16  Roger Sayle  <roger@eyesopen.com>
5323
5324         * c-typeck.c (build_component_ref):  Turn "for" into "do .. while"
5325         to avoid "may be used uninitialized" warning on ia64-hpux.
5326         * config/ia64/ia64-c.c: Include "tm_p.h" for function prototypes.
5327
5328 2003-03-16  Andreas Jaeger  <aj@suse.de>
5329
5330         * configure.in: Improve check for memcheck.h.
5331         * configure: Regenerated.
5332
5333 2003-03-16  Neil Booth  <neil@daikokuya.co.uk>
5334
5335         * doc/cppopts.texi: Remove documentation of -A-.
5336
5337 2003-03-15  Zack Weinberg  <zack@codesourcery.com>
5338
5339         * doc/libgcc.texi: Remove @tie.
5340
5341 2003-03-15  Josef Zlomek  <zlomekj@suse.cz>
5342
5343         * rtl.h (subrtx_p): Renamed to rtx_referenced_p.
5344         (rtx_pair): Added new element update_label_nuses, renamed to
5345         replace_label_data.
5346         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge): Use
5347         replace_label_data instead of rtx_pair.
5348         * loop.c (load_mems): Likewise.
5349         * rtlanal.c (replace_label): Replace label in pool constants and in
5350         INSN_LIST (in REG_LABEL note).
5351         (subrtx_p): Renamed to rtx_referenced_p.
5352         (subrtx_p_1): Renamed to rtx_referenced_p_1, compare the interior of
5353         LABEL_REF with CODE_LABEL, traverse constants from pool.
5354
5355 2003-03-15  Aldy Hernandez <aldyh@redhat.com>
5356             Zack Weinberg  <zack@codesourcery.com>
5357
5358         * Makefile.in (TEXI_GCCINT_FILES): Add libgcc.texi.
5359         * doc/libgcc.texi: New file.
5360         * doc/interface.texi: Delete paragraph about libgcc interface.
5361         * doc/gccint.texi: Add libgcc menu entry and @include libgcc.texi.
5362
5363 2003-03-15  Jason Merrill  <jason@redhat.com>
5364
5365         PR debug/9039
5366         * dwarf2out.c (gen_decl_die): Ignore frontend tree codes.
5367
5368         PR debug/6387
5369         * dwarf2out.c (dwarf2out_decl): If we're at -g1, just stick nested
5370         function DIEs at toplevel.
5371         (decls_for_scope): At -g1, don't descend into subblocks.
5372
5373 2003-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
5374
5375         * varasm.c (struct rtx_const): Change type of un.addr member
5376         to struct holding an additional 'symbol' member.
5377         (decode_rtx_const): Re-enable optimization to count SYMBOL_REFs
5378         with equal string addresses as equal.
5379         (simplify_subtraction): Adapt to struct rtx_const change.
5380
5381 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
5382
5383         * fix-header.c (read_scan_file): Read main file before handling -D.
5384
5385 2003-03-15  Roger Sayle  <roger@eyesopen.com>
5386
5387         * c-cppbuiltin.c (builtin_define_with_value_n): Fix whitespace.
5388         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
5389         * cfgbuild.c (find_many_sub_basic_blocks): Likewise.
5390         (find_sub_basic_blocks): Likewise.
5391         * cgraphunit.c (cgraph_expand_functions): Likewise.
5392         * dwarf2out.c (prune_unused_types): Likewise.
5393         * expr.c (store_field): Likewise.
5394         * genextract.c (print_path): Likewise.
5395         * haifa-sched.c (schedule_insn): Likewise.
5396         * lcm.c (compute_antinout_edge): Likewise.
5397         * loop-unroll.c (decide_peel_once_rolling): Likewise.
5398         * ra-colorize.c (ra_colorize_free_all): Likewise.
5399         * ra-debug.c (dump_igraph): Likewise.
5400         (debug_hard_reg_set): Likewise.
5401         * reg-stack.c (reg_to_stack): Likewise.
5402         * rtlanal.c (refers_to_regno_p): Likewise.
5403         * tracer.c (layout_superblocks): Likewise.
5404
5405 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
5406
5407         * fix-header.c (read_scan_file): Fix thinko.
5408
5409 2003-03-15  Glen Nakamura  <glen@imodulo.com>
5410
5411         * reload1.c (choose_reload_regs): Use && instead of ||
5412         with REG_CANNOT_CHANGE_MODE_P condition.
5413
5414 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
5415
5416         * Makefile.in: Update.
5417         * c-common.h (cb_register_builtins): Rename c_cpp_builtins.
5418         * c-lex.c (init_c_lex): Register builtins hook is dead.
5419         * c-opts.c (COMMAND_LINE_OPTIONS, missing_arg): Handle -A, -D and -U.
5420         (c_common_decode_option): Don't call cpp_handle_option.
5421         Handle -A, -D and -U.
5422         (handle_deferred_opts): Simplify.
5423         (finish_options): Define builtins and command line macros.
5424         * c-ppoutput.c (init_pp_output): Register builtins hook is dead.
5425         * cppinit.c: Don't include intl.h.
5426         (init_builtins): Rename cpp_init_builtins.  No hook to call.
5427         (init_library): Don't need to sort options.
5428         (cpp_create_reader): Don't set pending.
5429         (cpp_destroy): Don't free pending.
5430         (struct pending_option, cl_directive_handler, struct cpp_pending,
5431         APPEND, free_chain, new_pending_directive, parse_option, opt_comp,
5432         cpp_finish_options, COMMAND_LINE_OPTIONS, DEF_OPT, struct cl_option,
5433         cl_options, cpp_handle_option): Remove.
5434         * cpplib.h (struct cpp_pending, register_builtins, cpp_handle_option,
5435         cpp_finish_options): Remove.
5436         (cpp_init_builtins): New.
5437         * fix-header.c (read_scan_file): Update to handle -D.  Fix
5438         handling of -I.  Replace call to cpp_finish_options.
5439
5440 2003-03-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5441
5442         PR optimization/9387
5443         * function.c (thread_prologue_and_epilogue_insns): Use redirect_jump
5444         for conditional returns.
5445
5446 2003-03-14  Jason Merrill  <jason@redhat.com>
5447
5448         PR optimization/6871
5449         * varasm.c (assemble_variable): Leave constant zeroes in .rodata.
5450
5451 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
5452
5453         * c-opts.c (finish_options): New.
5454         (COMMAND_LINE_OPTIONS, c_common_decode_option): Add -imacros.
5455         (missing_arg): Handle OPT_include and OPT_imacros.
5456         (c_common_init, c_common_parse_file): Use finish_options.
5457         (handle_deferred_opts): Update.
5458         * cppinit.c (struct cpp_pending): Remove imacros_head and imacros_tail.
5459         (cpp_finish_options): Don't handle -imacros here.
5460         (no_fil): Remove.
5461         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -imacros.
5462
5463 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
5464
5465         * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Don't call
5466         rs6000_maybe_dead if !fromprolog.
5467
5468 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
5469
5470         * Makefile.in: Update.
5471         * c-common.h (fe_file_change, pp_file_change): New.
5472         * c-lex.c (init_c_lex): Don't set cb_file_change.
5473         (c_common_parse_file): Move to c-opts.c.
5474         (cb_file_change): Rename fe_file_change.
5475         * c-opts.c: Include debug.h.
5476         (warn_unused_macros, include_cursor): New.
5477         (push_command_line_include, cb_file_change): New.
5478         (COMMAND_LINE_OPTIONS): Handle -include.
5479         (c_common_decode_option): Use local warn_unused_macros.
5480         Handle OPT_include.
5481         (c_common_post_options): Set file change callback.
5482         (handle_deferred_opts): Skip -include.  Don't free the array.
5483         (c_common_init): Call cpp_finish_options here, and push an
5484         initial -include file.
5485         * c-ppoutput.c (cb_file_change): Rename pp_file_change.
5486         (preprocess_file): Don't call cpp_finish_options.
5487         (init_pp_output): Don't set the file change callback.
5488         (pp_file_change): Return if no line commands or no output.
5489         * cpphash.h (next_include_file, first_unused_line): Remove.
5490         * cppinit.c (include_head, include_tail): Remove.
5491         (cpp_destroy): Don't free -include chain.
5492         (cpp_finish_options): Don't handle -include, or worry about
5493         -Wunused-macros.
5494         (_cpp_maybe_push_include_file): Remove.
5495         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -include.
5496         * cpplib.c (_cpp_pop_buffer): Don't handle -include.
5497         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_create_definition):
5498         Used flag is set based upon the state of the warn_unused_macros
5499         flag, and so use of first_unused_line is unnecessary.
5500
5501 2003-03-13  Jan Hubicka  <jh@suse.cz>
5502
5503         * cselib.c (clear_table): Do not take argument; always clear just
5504         used slots.
5505         (cselib_process_insn):  Update call of clear_table
5506         (cselib_init): Do not call clear_table.
5507         (cselib_finish): Clear table.
5508
5509         * cse.c (count_reg_usage): Do not check side_effects_p.
5510         * rtlanal.c (set_noop_p): Check side_effects_p only when set looks
5511         like noop.
5512         (find_reg_equal_equiv_note): Do not use find_reg_note.
5513
5514 2003-03-14  Richard Henderson  <rth@redhat.com>
5515
5516         PR target/9700
5517         * config/alpha/alpha.c (alpha_va_start): Account for
5518         current_function_pretend_args_size in the AP offset.
5519
5520         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Move out of line.
5521         (INITIAL_ELIMINATION_OFFSET): Move out of line.
5522         * config/alpha/alpha.c (alpha_setup_incoming_varargs): New.
5523         (alpha_initial_elimination_offset) New.
5524         * config/alpha/alpha-protos.h: Update.
5525
5526 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
5527
5528         * stmt.c (expand_start_case): Call emit_queue ().
5529
5530 2003-03-14  Chris Demetriou  <cgd@broadcom.com>
5531             Alexandre Oliva  <aoliva@redhat.com>
5532
5533         * config/mips/mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2
5534         words in new abis.
5535
5536 2003-03-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
5537
5538         PR optimization/8396
5539         * tree-inline.c (initialize_inlined_parameters): Make sure the value
5540         of read-only constant arguments is passed with the right type.
5541
5542 2003-03-14  Steven Bosscher  <steven@gcc.gnu.org>
5543
5544         * doc/extend.texi (Function Names): Make the example compilable.
5545
5546 2003-03-13  David Edelsohn  <edelsohn@gnu.org>
5547
5548         * config/rs6000/rs6000.c (processor_target_table): Really allow
5549         GP optional instructions on Power4.
5550
5551 2003-03-13  Roger Sayle  <roger@eyesopen.com>
5552
5553         * calls.c (flags_from_decl_or_type): Factor and remove redundant
5554         conditional tests.
5555
5556 2003-03-13  Mike Stump  <mrs@apple.com>
5557
5558         * ggc-page.c (struct page_entry): Remove varray.h header.
5559         Add index_by_depth field.
5560         Remove save_in_use_p field.
5561         (struct globals): Add depth_in_use, depth_max, by_depth_in_use,
5562         by_depth_max, by_depth, and save_in_use fields.
5563         (INITIAL_PTE_COUNT): Add.
5564         (save_in_use_p_i): Add.
5565         (save_in_use_p): Add.
5566         (adjust_depth): Add.
5567         (move_ptes_to_front): Add.
5568         (push_depth): Add.
5569         (push_by_depth): Add.
5570         (prefetch): Add.
5571         (free_page): Add support for and use faster data structures.
5572         (ggc_alloc): Likewise.
5573         (init_ggc): Likewise.
5574         (ggc_recalculate_in_use_p): Likewise.
5575         (ggc_pop_context): Likewise.
5576         (clear_marks): Likewise.
5577         (ggc_pch_read): Likewise.
5578         * Makefile.in (ggc-page.o): Remove varray.h.
5579
5580 2003-03-13  Nathanael Nerode  <neroden@gcc.gnu.org>
5581
5582         * ChangeLog: Rotated last year's entries to...
5583         * ChangeLog.8: New.
5584
5585         * config/ia64/fde-glibc.c, config/ia64/freebsd.h,
5586         config/ia64/hpux.h, config/ia64/hpux_longdouble.h,
5587         config/ia64/ia64-c.c, config/ia64/ia64-modes.def,
5588         config/ia64/ia64-protos.h, config/ia64/ia64.c,
5589         config/ia64/ia64.h, config/ia64/ia64.md,
5590         config/ia64/itanium1.md, config/ia64/itanium2.md,
5591         config/ia64/quadlib.c, config/ia64/unwind-ia64.c,
5592         config/ia64/unwind-ia64.h: It's GCC, not GNU CC.
5593
5594 2003-03-13  Aldy Hernandez  <aldyh@redhat.com>
5595
5596         * config/rs6000/rs6000.c (rs6000_dwarf_register_span):
5597         Differentiate endianness.
5598         (s6000_override_options): Use cpu type instead of TARGET_SPE.
5599
5600 2003-03-13  Nick Clifton  <nickc@redhat.com>
5601
5602         * config/arm/arm.c (print_multi_reg): Do not generate a type 2
5603         LDM instructions with writeback enabled.
5604         (output_return_instruction): Likewise.
5605
5606         * config/arm/pe.h (FIXED_REGISTERS): Remove definition.
5607         (CALL_USED_REGISTERS): Remove definition.
5608         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define.
5609
5610 2003-03-13  Alan Modra  <amodra@bigpond.net.au>
5611
5612         * config/rs6000/rs6000.c (rs6000_flag_pic): Delete.
5613         (rs6000_xcoff_encode_section_info): #ifdef TARGET_XCOFF.
5614         (rs6000_binds_local_p, TARGET_BINDS_LOCAL_P): #if TARGET_MACHO.
5615         (rs6000_override_options): Don't clear flag_pic for ABI_AIX.
5616         (rs6000_legitimize_address): Formatting.
5617         (rs6000_emit_move): Likewise.
5618         (rs6000_return_addr): Test ABI_AIX as well as flag_pic.
5619         (rs6000_emit_prologue <save_LR_around_toc_setup>): Likewise.
5620         (rs6000_elf_select_section): Comment reason for shlib being
5621         set for ABI_AIX.
5622         (rs6000_elf_unique_section): Likewise.
5623         (rs6000_elf_encode_section_info): Test !TARGET_AIX as well as ABI_AIX.
5624         * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Test ABI_AIX
5625         as well as flag_pic.
5626         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
5627         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
5628         * config/rs6000/linux64.h (TARGET_ENCODE_SECTION_INFO): Don't define.
5629
5630 2003-03-13  Richard Henderson  <rth@redhat.com>
5631
5632         * emit-rtl.c (try_split): Handle 1-1 splits of call insns properly.
5633
5634         * config/ia64/ia64.c (TARGET_FUNCTION_OK_FOR_SIBCALL): New.
5635         (ia64_gp_save_reg): Remove.
5636         (struct ia64_frame_info): Move to the beginning of the file;
5637         add reg_save_gp.
5638         (ia64_expand_call): Rearrange for new call patterns.
5639         (ia64_reload_gp): New.
5640         (ia64_split_call): New.
5641         (ia64_compute_frame_size): Allocate reg_save_gp.
5642         (ia64_expand_prologue): Save reg_save_gp.
5643         (ia64_expand_epilogue): Don't restore gp.
5644         (ia64_hard_regno_rename_ok): Remove R4 hack.
5645         (ia64_function_ok_for_sibcall): New.
5646         (ia64_output_mi_thunk): Set reload_completed, no_new_pseudos;
5647         call try_split on sibcall pattern.
5648         * config/ia64/ia64-protos.h: Update.
5649         * config/ia64/ia64.md (call_nogp, call_value_nogp, sibcall_nogp):
5650         Rename from nopic versions.  Confiscate 2nd argument to call as
5651         a marker.
5652         (call_pic, call_value_pic, sibcall_pic): Remove.
5653         (call_gp, call_value_gp, sibcall_gp): New.
5654         (builtin_setjmp_setup): Remove.
5655         (builtin_setjmp_receiver): Call ia64_reload_gp.
5656
5657 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
5658
5659         * config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
5660         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md: Replace
5661         "GNU CC" with "GCC".
5662
5663         * config/c4x/c4x-c.c, config/c4x/c4x-modes.def,
5664         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
5665         config/c4x/c4x.md, config/c4x/libgcc.S, config/c4x/rtems.h:
5666         GCC, not GNU CC.
5667
5668         * genattrtab.h, hosthooks-def.h, hosthooks.h, langhooks-def.h,
5669         langhooks.h, tree-inline.h: Replace "GNU CC" with "GCC".
5670
5671         * c-pch.c, dummy-conditions.c, genautomata.c, genconditions.c,
5672         langhooks.c, tree-inline.c, unwind-dw2-fde-darwin.c,
5673         unwind-dw2-fde-glibc.c, unwind-libunwind.c, vmsdbgout.c: Replace
5674         "GNU CC" with "GCC".
5675
5676         * config/v850/lib1funcs.asm, config/v850/rtems.h,
5677         config/v850/v850-c.c, config/v850/v850-protos.h,
5678         config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
5679         GCC, not GNU CC.
5680
5681         * config/vax/bsd.h, config/vax/elf.h, config/vax/netbsd-elf.h,
5682         config/vax/netbsd.h, config/vax/openbsd.h, config/vax/openbsd1.h,
5683         config/vax/ultrix.h, config/vax/vax-protos.h, config/vax/vax.c,
5684         config/vax/vax.h, config/vax/vax.md, config/vax/vaxv.h: GCC, not
5685         GNU CC.
5686
5687 2003-03-12  Benjamin Kosnik  <bkoz@redhat.com>
5688
5689         * cpppch.c (cpp_valid_state): Use DL_WARNING_SYSHDR, not DL_WARNING.
5690
5691 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
5692
5693         * fixinc/fixinc.interix: Remove dead code (most of it).
5694         * fixinc/fixinc.dgux: Remove.
5695
5696         * ginclude/float.h, ginclude/iso646.h, ginclude/stdarg.h,
5697         ginclude/stdbool.h, ginclude/stddef.h: GCC, not GNU CC.
5698
5699 2003-03-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5700
5701         * pa.c (pa_init_builtins): Fix warning.
5702
5703 2003-03-12  Steve Ellcey  <sje@cup.hp.com>
5704
5705         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR): Remove.
5706         (ASM_OUTPUT_XDATA_SHORT): Remove.
5707         (ASM_OUTPUT_XDATA_INT): Remove.
5708         (ASM_OUTPUT_XDATA_DOUBLE_INT): Remove.
5709         (ASM_OUTPUT_ADDR_DIFF_ELT): Handled 32 bit address diffs.
5710         (ASM_PREFERRED_EH_DATA_FORMAT): Handle 32 bit EH pointers.
5711         (CASE_VECTOR_MODE): Handle 32 bit pointers in case statement.
5712
5713 2003-03-12  Andrew Lewycky  <andrew@mxc.ca>
5714
5715         PR c++/7050
5716         * expr.c (store_expr): Don't attempt to store void-typed trees,
5717         just evaluate them for side effects.
5718
5719 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
5720
5721         * cppfiles.c (cpp_rename_file, cpp_push_include): New.
5722         * cppinit.c (push_include): Move with changes to cppfiles.c.
5723         (cpp_read_main_file): Mark named operators here...
5724         (cpp_finish_options): ...not here.  Update.
5725         (_cpp_maybe_push_include_file): Update.
5726         * cpplib.h (cpp_push_include, cpp_rename_file): New.
5727
5728 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
5729
5730         * aclocal.m4: Introduce gcc_GAS_VERSION_GTE_IFELSE,
5731         _gcc_COMPUTE_GAS_VERSION.
5732         * configure.in: Use them.
5733         * configure: Regenerate.
5734
5735 2003-03-12  Bob Wilson  <bob.wilson@acm.org>
5736
5737         * config/xtensa/xtensa.md (adddi3): Don't clobber source operand used
5738         to detect carry.
5739         (subdi3): Reorder emitted instructions.
5740
5741 2003-03-12  Andreas Jaeger  <aj@suse.de>
5742
5743         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Remove call to
5744         NETBSD_OS_CPP_BUILTINS_LP64.
5745
5746 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
5747
5748         * Makefile.in: Eliminate all.indirect.  Update and clean up comments.
5749         Rearrange.  Reorganize.
5750         * configure.in: Rearrange.
5751         * configure: Regenerate.
5752
5753 2003-03-12  Andreas Jaeger  <aj@suse.de>
5754
5755         * c-cppbuiltin.c (cb_register_builtins): Define LP64 builtins for
5756         LP64 targets.
5757
5758         * doc/cpp.texi (Common Predefined Macros): Document __LP64__ and
5759         _LP64.
5760
5761         * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Do not define
5762         _LP64 macros here.
5763         * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Likewise.
5764
5765         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove call to
5766         NETBSD_OS_CPP_BUILTINS_LP64.
5767         * config/sh/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
5768         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
5769
5770         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_LP64): Remove.
5771
5772 2003-03-12  Jan Hubicka  <jh@suse.cz>
5773
5774         * i386.c (ix86_setup_incoming_varargs): Set stack_alignment_needed to 128.
5775
5776 2003-03-12  Daniel Jacobowitz  <drow@mvista.com>
5777
5778         Fix PR target/9797 and PR c/9853.
5779         * stmt.c (expand_decl_init): Call push_temp_slots () and
5780         pop_temp_slots ().
5781
5782 2003-03-12  J"orn Rennecke <joern.rennecke@superh.com>
5783
5784         * sh.c: Include basic-block.h.
5785         (sh_output_mi_thunk, emit_load_ptr): New functions.
5786         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine.
5787
5788 2003-03-12  Nick Clifton  <nickc@redhat.com>
5789
5790         * config/arm/pe.h (FIXED_REGISTERS): Add Maverick registers.
5791         (CALL_USED_REGISTERS): Likewise.
5792         * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Update comment
5793         describing how this value is calculated.
5794
5795 2003-03-12  Hans-Peter Nilsson  <hp@bitrange.com>
5796
5797         * configure.in (rlim_t): Define to long if no valid definition
5798         found in sys/resource.h.
5799         * config.in, configure: Regenerate.
5800
5801 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
5802
5803         * config/mcore/mcore-elf.h (CPP_PREDEFINES): Replace with
5804         TARGET_OS_CPP_BUILTINS.
5805         * config/mcore/mcore-pe.h: Similarly.
5806         * config/mcore/mcore.h: Replace CPP_PREDEFINES and part of
5807         CPP_SPEC with TARGET_CPU_CPP_BUILTINS.
5808
5809 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5810
5811         PR c/9928
5812         * c-decl.c (duplicate_decls): Discard the initializer of the new decl
5813         only if it is a VAR_DECL.
5814
5815 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5816
5817         PR optimization/9888
5818         * config/i386/i386.md (jcc_1): Fix range.
5819         (jcc_2): Likewise.
5820         (jump): LIkewise.
5821         (doloop_end_internal): Likewise.
5822
5823 2003-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
5824
5825         * config/i386/winnt.c (DLL_IMPORT_PREFIX): New define.
5826         Use throughout instead of DLL_IMPORT_EXPORT_PREFIX and "e."
5827         (DLL_EXPORT_PREFIX): New define. Use throughout instead of
5828         DLL_IMPORT_EXPORT_PREFIX and "i."
5829         (i386_pe_dllexport_name_p): Here.
5830         (i386_pe_dllimport_name_p): Here.
5831         (i386_pe_mark_dllexport): Here. Remove DLL_IMPORT_PREFIX,
5832         not 9 chars when getting identifier name.
5833         (i386_pe_mark_dllimport): Here.
5834         (i386_pe_encode_section_info): Here. Remove DLL_IMPORT_PREFIX,
5835         not 9 chars when getting identifier name. Correct comment.
5836         (i386_pe_strip_name_encoding): Here. Add comments for different
5837         cases.
5838         (gen_fastcall_suffix): Break down xmalloc() argument to
5839         components.
5840         (gen_stdcall_suffix): Likewise.
5841         Update copyright year.
5842
5843 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5844
5845         PR optimization/9888
5846         * config/i386/i386.md (movsi_1): Remove special alternatives
5847         for %eax register.
5848         (movsi_1_nointernunit): Likewise.
5849         (movhi_1): Likewise.
5850         * config/i386/i386.c (memory_address_length): Do not use
5851         short displacement when there is no base.
5852         (ix86_attr_length_address_default): Handle LEA instructions.
5853
5854 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
5855
5856         * c-cppbuiltin.c (builtin_define_std): Make non-static.
5857
5858 2003-03-11  Loren James Rittle  <ljrittle@acm.org>
5859
5860         * config/freebsd-spec.h (FBSD_CPP_PREDEFINES): Remove.
5861         (FBSD_TARGET_OS_CPP_BUILTINS): New port-specific macro.
5862         (FBSD_TARGET_CPU_CPP_BUILTINS): New port-specific macro.
5863         * config/freebsd.h (CPP_PREDEFINES): Remove.
5864         (TARGET_OS_CPP_BUILTINS): New.
5865         * config/alpha/freebsd.h: Use overridden FBSD_TARGET_CPU_CPP_BUILTINS
5866         instead of TARGET_OS_CPP_BUILTINS.
5867         * config/sparc/freebsd.h (CPP_PREDEFINES): Remove.
5868
5869 2003-03-11  Geoffrey Keating  <geoffk@apple.com>
5870
5871         * c-cppbuiltin.c (builtin_define_std): Add ATTRIBUTE_UNUSED.
5872
5873 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
5874
5875         * config/rs6000/rs6000.c (rs6000_stack_info): Remove
5876         insn_chain_scanned.  Use insn_chain_scanned_p in machine_function.
5877
5878         * config/rs6000/rs6000.h (machine_function): Add insn_chain_scanned_p.
5879
5880 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
5881
5882         * toplev.c (independent_decode_option): Return success for --help,
5883         --target-help and --version.
5884
5885 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
5886
5887         * config/mips/linux64.h (DRIVER_SELF_SPECS): Add endian_spec.
5888         Default to -mips3 on -mabi=64.  Don't add -mips* flag if -march is
5889         specified.
5890         (SUBTARGET_ASM_SPEC): Remove -mips*-adding code obviated by
5891         DRIVER_SELF_SPECS.
5892         (LINK_SPEC): Let endian options affect the linker emulation name.
5893
5894 2003-03-11  J"orn Rennecke <joern.rennecke@superh.com>
5895
5896         * sh.md (reload_inqi): Fix mode for source in second set.
5897
5898 2003-03-11  Jan Hubicka  <jh@suse.cz>
5899
5900         * cselib.c (cselib_invalidate_mem_1): Move too ...
5901         (cselib_invalidate_mem): ... here; use new list
5902         (dummy_val, first_containing_mem): New static variables.
5903         (clear_table): Initialize first_containing_mem.
5904         (discard_useless_values):  Compact the containing_mem list.
5905         (add_mem_for_addr): Add to the list.
5906         * cselib.h (cselib_val): Add next_containing_mem.
5907
5908 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
5909
5910         * config/rs6000/rs6000.c (rs6000_override_options): Disable string
5911         instructions for e500.
5912
5913 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
5914
5915         * Makefile.in: Update.
5916         * c-cppbuiltin.c: Include tm_p.h.
5917
5918 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
5919
5920         * doc/tm.texi (Frame Registers): Document DWARF_REG_TO_UNWIND_COLUMN.
5921
5922         * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Define.
5923         (_Unwind_GetGR): Use DWARF_REG_TO_UNWIND_COLUMN.
5924         (_Unwind_SetGR): Same.
5925         (_Unwind_GetGRPtr): New.
5926         (_Unwind_SetGRPtr): New.
5927         (uw_update_context_1): Use accesor functions instead of accessing
5928         context->reg[] directly.
5929         (uw_install_context_1): Same.
5930         (execute_cfa_program): Same.
5931         (__frame_state_for): Same.
5932
5933         * config/rs6000/rs6000.c (spe_synthesize_frame_save): Use 1200 as
5934         the synthetic register offset.
5935
5936         * config/rs6000/rs6000.h (DWARF_REG_TO_UNWIND_COLUMN): New.
5937
5938 2003-03-11  Hans-Peter Nilsson  <hp@axis.com>
5939
5940         * config/cris/cris.md: Remove lingering EGCS reference.
5941         ("*extopqihi_side_biap"): For HI operation, match
5942         cris_additive_operand_extend_operator, not
5943         cris_operand_extend_operator.  Adjust condition.
5944         ("*extopqihi_side", "*extopqihi"): Ditto.
5945         ("*extopqisi_side_biap"): Correct operand numbers in condition.
5946         ("*extophisi_side_biap", "*extopqisi_swap_side_biap"): Ditto.
5947         ("*extophisi_swap_side_biap", "*extopqisi_swap"): Ditto.
5948         ("*extophisi_swap"): Ditto.
5949         ("*extopqihi_swap_side_biap"): For HI operation, match a simple
5950         PLUS, not cris_operand_extend_operator.  Adjust condition and
5951         output template.
5952         ("*extopqihi_swap_side", "*extopqihi_swap"): Ditto.
5953         * config/cris/cris.h (PREDICATE_CODES): Add
5954         cris_additive_operand_extend_operator.
5955         * config/cris/cris.c (cris_additive_operand_extend_operator):
5956         New predicate.
5957
5958 2003-03-11  Hartmut Penner  <hpenner@de.ibm.com>
5959
5960         * df.c (read_modify_subreg_p): Change from static to global.
5961         * df.h (read_modify_subreg_p): Add prototype.
5962         * sched-deps.c (sched_analyze_1): Generate true dependency for
5963         strict_low_part, certain subregs and zero/sign_extract.
5964
5965 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
5966
5967         * Makefile.in: Update.
5968         * c-common.c: Don't include real.h or except.h.
5969         (REGISTER_PREFIX): Remove.
5970         (builtin_define_std, builtin_define_with_value,
5971         builtin_define_with_int_value, builtin_define_with_hex_fp_value,
5972         builtin_define_type_max, builtin_define_type_precision,
5973         builtin_define_float_constants): Move to c-cppbuiltin.c.
5974         (c_stddef_cpp_builtins): New.
5975         * c-common.h (builtin_define_with_value, c_stddef_cpp_builtins): New.
5976         * c-cppbuiltin.c: New, extracted from c-common.c.
5977         (define__GNUC__): New.
5978         * cppspec.c (lang_specific_driver): Remove support of -no-gcc.
5979         * gcc.c: Remove support of %v1, %v2 and %v3 specs.
5980         (cpp_unique_options): Don't support no-gcc.
5981         (do_spec_1): Remove support of version specs.
5982         * doc/invoke.texi: Remove documentation of %v1, %v2 and %v3.
5983         * doc/passes.texi: Update.
5984         * doc/tm.texi: Update.
5985
5986 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
5987
5988         * dwarf2out.c (multiple_reg_loc_descriptor): Fix thinko.
5989
5990 2003-03-10  Andrew Pinski  <apinski@apple.com>
5991
5992         * config/darwin.c (machopic_function_base_name): If dynamic-no-pic
5993         is on should not get here.
5994         (machopic_indirect_data_reference): If dynamic-no-pic is on just
5995         generate high/low parts of the address.
5996         (machopic_legitimize_pic_address): Change MACHOPIC_PURE to
5997         MACHOPIC_INDIRECT. Dynamic-no-pic uses 0 as the pic base. Generate
5998         symbol and labels with a new reg.  Dynamic-no-pic does not have a
5999         pic_offset_table_rtx.
6000         (machopic_select_section): Change references of flag_pic to
6001         MACHOPIC_INDIRECT.
6002         (machopic_asm_out_destructor): Likewise.
6003         * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Change
6004         reference of flag_pic to MACHOPIC_INDIRECT.
6005         (MACHO_DYNAMIC_NO_PIC_P): Define as TARGET_DYNAMIC_NO_PIC.
6006         (MACHOPIC_INDIRECT): Is also true when dynamic-no-pic is on.
6007         (MACHOPIC_JUST_INDIRECT): Is also true when dynamic-no-pic is on.
6008         (MACHOPIC_PURE): Is not pure when dynamic-no-pic is on.
6009         * config/i386/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define as
6010         0 for right now as dynamic-no-pic is not implemented on Darwin/ia32.
6011         * config/rs6000/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define.
6012         (TARGET_DYNAMIC_NO_PIC): Define.
6013         (SUBTARGET_SWITCHES): Define, have sub-target switches for
6014         dynamic-no-pic.
6015         (SUBTARGET_OVERRIDE_OPTIONS): Move check for -fpic from
6016         rs6000_override_options to here. Dynamic-no-pic overrides
6017         pic.
6018         (CC1_SPEC): Change from not static then pic to not static and not
6019         dynamic-no-pic then pic.
6020         * config/rs6000/rs6000.c (rs6000_override_options): Move the
6021         check for -fpic and DARWIN_ABI to config/rs6000/darwin.h
6022         (rs6000_legitimize_reload_address): Add case for loading floating in
6023         dynamic-no-pic.
6024         (rs6000_emit_move): Add case for dynamic-no-pic.  Change reference
6025         of flag_pic to MACHOPIC_INDIRECT.
6026         (secondary_reload_class): Conditional change the reference of
6027         flag_pic to MACHOPIC_INDIRECT.
6028         (rs6000_output_mi_thunk): Change reference of flag_pic to
6029         MACHOPIC_INDIRECT.
6030         (output_profile_hook): Likewise.
6031         (machopic_output_stub): Non-pure (dynamic-no-pic) is now supported.
6032         * config/rs6000/rs6000.md (movdf_low): Add the case for
6033         MACHO_DYNAMIC_NO_PIC_P.
6034         (call): Change references for flag_pic in TARGET_MACHO to
6035         MACHOPIC_INDIRECT.
6036         (SUBTARGET_OVERRIDE_OPTIONS): Add case where -fpic is on and
6037         -mdynamic-no-pic is on.  Also move case for -fpic from rs6000.c.
6038         * doc/invoke.texi (-mdynamic-no-pic): Document.
6039
6040 2003-03-10  Devang Patel  <dpatel@apple.com>
6041
6042         PR c++/9394
6043         * gcc.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
6044         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
6045         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Add.
6046         (DEFAULT_WORD_SWITCH_TAKES_ARG): Add.
6047         * cppspec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
6048         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
6049
6050 2003-03-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6051
6052         PR optimization/7189
6053         * toplev.c (rest_of_compilation):  Move
6054         check_function_return_warnings up to just after
6055         delete_unreachable_blocks.
6056
6057 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
6058
6059         * config/m68hc11/m68hc11.h (HARD_REGNO_RENAME_OK): Define.
6060         * config/m68hc11/m68hc11-protos.h (m68hc11_hard_regno_rename_ok):
6061         Declare.
6062         * config/m68hc11/m68hc11.c (m68hc11_hard_regno_rename_ok): New function
6063         for reg rename optimization to avoid using Z and Y registers.
6064
6065 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
6066
6067         * config/m68hc11/m68hc11.md ("*addhi3_68hc12"): Accept any constant
6068         when adding to X and Y since leax/leay are fast.
6069         ("*addhi3"): Accept 'I' constraint when adding to address register.
6070         ("rotlhi3"): Operand 1 must be a register_operand.
6071         (peephole2): New peephole to optimize some adds.
6072         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_P): Use 'I' constraint
6073         to represent -2 .. 2 small integer range.
6074
6075 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
6076
6077         * config/m68hc11/m68hc11.c (m68hc11_gen_rotate): Set carry before
6078         each 16-bit rotation.
6079
6080 2003-03-10  Zack Weinberg  <zack@codesourcery.com>
6081
6082         * c-opts.c (add_prefixed_path): Don't use concat.  When
6083         prefixing with cpp_GCC_INCLUDE_DIR, copy only the first
6084         cpp_GCC_INCLUDE_DIR_len characters.
6085
6086 2003-03-10  Segher Boessenkool  <segher@koffie.nl>
6087
6088         * testsuite/gcc.dg/altivec-9.c: New file.
6089
6090         * config/rs6000/rs6000.c (altivec_frame_fixup): Remove.
6091         (rs6000_emit_prologue): Use rs6000_frame_related instead.
6092
6093 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
6094
6095         * config/rs6000/spe.h: Define __ev64_*64__ to use single element
6096         vectors.
6097         (__ev_convert_u64): Remove macro.  Define as inline.
6098         (__ev_convert_s64): Same.
6099
6100 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
6101
6102         * config/rs6000/rs6000.h (DWARF_FRAME_REGISTERS): Define.
6103         (rs6000_stack_t): Add spe_64bit_regs_used.
6104
6105         * config/rs6000/rs6000.c (rs6000_stack_info): Calculate
6106         spe_64bit_regs_used, and use it to determine the size of the
6107         frame.
6108         (spe_func_has_64bit_regs_p): New.
6109         (spe_synthesize_frame_save): New.
6110         (rs6000_frame_related): Handle SPE synthetic registers.
6111         (rs6000_emit_prologue): Only save in 64-bits if the function used
6112         any registers in 64-bit mode.
6113         (rs6000_emit_epilogue): Same, but for restore.
6114
6115 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
6116
6117         * arm.h (enum floating_point_type): Delete.  Replace with...
6118         (enum fputype): ... new.
6119         (FPUTYPE_DEFAULT): Renamed from FP_DEFAULT.  Values reworked.
6120         * linux-elf.h (FPUTYPE_DEFAULT): Likewise.
6121         * arm.md (attr fpu): Reworked for new underlying enum values.
6122         * arm.c (arm_fpu_arch): Now enum fputype.
6123         (arm_fpu_tune): Renamed from arm_fpu.  Now enum fputype.
6124         (arm_override_options, arm_output_epilogue, arm_expand_prologue):
6125         Update uses of arm_fpu_arch and arm_fpu_tune.
6126
6127 2003-03-10  Josef Zlomek  <zlomekj@suse.cz>
6128
6129         * cfgcleanup.c (outgoing_edges_match): Compare the jump tables.
6130         (try_crossjump_to_edge): Replace refereces to one jump table by
6131         references to identical jump table.
6132         * loop.c (load_mems): Moved setting the JUMP_LABEL to replace_label.
6133         (replace_label): Moved to rtlanal.c.
6134         (struct rtx_pair): Moved to rtl.h.
6135         * rtl.h (struct rtx_pair): Moved from loop.c.
6136         (replace_label): New extern function.
6137         (subrtx_p): New extern function.
6138         (tablejump_p): New extern function.
6139         * rtlanal.c (replace_label): Moved from loop.c.
6140         (subrtx_p_1): New static function.
6141         (subrtx_p): New function.
6142         (tablejump_p): New function.
6143
6144 2003-03-10  Jan Hubicka  <jh@suse.cz>
6145
6146         * cfgcleanup.c (try_optimize_cfg): Fix thinko in previous patch.
6147
6148         * cfgcleanup.c (merge_blocks): Return where to iterate next.
6149         (try_optimize_cfg): Use return value of merge_blocks
6150
6151 2003-03-10  Michael Matz  <matz@suse.de>
6152
6153         * cfg.c (unchecked_make_edge): New.
6154         (cached_make_edge): Use it.
6155         * basic-block.h (unchecked_make_edge): Declare.
6156         * cfglayout.c (cfg_layout_duplicate_bb): Use it.
6157
6158 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
6159
6160         * fpa.md: New file.  Move all patterns relating to FPA co-processor
6161         to here...
6162         * arm.md: ... from here.
6163         (cirrus.md, fpa.md): Include at end of description.
6164         (divsf3, divdf3, modsf3, movdf3, sqrtsf2, sqrtdf2): New expands.
6165         (pic_load_addr_based): Remove register constraint from expander.
6166         (seq, sne, sgt, sle, slt, sge, sgeu, sleu, sgtu, sltu, sunordered)
6167         (sordered, sungt, sunle, sunge, sunlt): Likewise.
6168         (eh_epilogue, tablejump): Likewise.
6169
6170 2003-03-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6171
6172         * tree.c (substitute_in_expr, case 'e'): Only make recursive call
6173         on operands if it has a PLACEHOLDER_EXPR.
6174
6175 2003-03-09  David Edelsohn  <edelsohn@gnu.org>
6176             Mostafa Hagog
6177
6178         * config/rs6000/rs6000.md (movsi_update1): Add TARGET_UPDATE final
6179         condition.
6180
6181 2003-03-09  Neil Booth  <neil@daikokuya.co.uk>
6182
6183         * config/frv/frv.h: Use TARGET_CPU_CPP_BUILTINS, not CPP_PREDEFINES.
6184         * config/ip2k/ip2k.h: Similarly.
6185         * config/m32r/m32r.h: Similarly.
6186         * config/m68hc11/m68hc11.h: Similarly.
6187         * config/mn10200/mn10200.h: Similarly.
6188         * config/mn10300/mn10300.h: Similarly.
6189         * config/pdp11/pdp11.h: Similarly.
6190         * config/v850/v850.h: Similarly.
6191         * config/rs6000/vxworks.h: Similarly for TARGET_OS_CPP_BUILTINS.
6192         * config/v850/retms.h: Similarly for TARGET_OS_CPP_BUILTINS.
6193         * config/mips/iris3.h: Remove #if 0 block.
6194
6195 2003-03-09  Roger Sayle  <roger@eyesopen.com>
6196             Joern Rennecke <joern.rennecke@superh.com>
6197
6198         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
6199         pending argument upon return from handle_braces here.
6200         (do_spec_2): Instead handle it upon return from do_spec_1 here.
6201
6202 2003-03-09  Roger Sayle  <roger@eyesopen.com>
6203             Joern Rennecke <joern.rennecke@superh.com>
6204
6205         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
6206         pending argument upon return from handle_braces here.
6207         (do_spec_2): Instead handle it upon return from do_spec_1 here.
6208
6209 2003-03-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6210
6211         * varasm.c (make_decl_one_only): Use declare_weak().
6212
6213 2003-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6214
6215         PR middle-end/9986
6216         * c-common.c (c_common_nodes_and_builtins): Initialize target builtins
6217         after the common builtins.
6218         * pa-hpux.h (DONT_HAVE_FPUTC_UNLOCKED): Define.
6219         * pa.c (TARGET_INIT_BUILTINS): Define.
6220         (pa_init_builtins): New function.
6221
6222         * pa.md (call, call_value, sibcall, sibcall_value): When sufficient
6223         space has been allocated for the outgoing arguments, set the arg
6224         pointer for a call emitted after virtuals have been instantiated
6225         using the stack pointer offset, otherwise abort.
6226
6227 2003-03-09  DJ Delorie  <dj@redhat.com>
6228
6229         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH): Revert.
6230
6231 2003-03-09  Richard Earnshaw  <rearnsha@arm.com>
6232
6233         * arm.md (fix_truncsfsi2, fix_truncdfsi2, arm_fix_truncsfsi2)
6234         (arm_fix_truncdfsi2): Add missing fix in floating point mode before
6235         conversion to integer.
6236         * cirrus.md (cirrus_truncsfsi2, cirrus_truncdfsi2): Likewise.
6237
6238 2003-03-09  Roger Sayle  <roger@eyesopen.com>
6239
6240         * builtins.def: Fix typo and improve grammar.
6241         * loop-unroll.c (decide_peel_completely): Tidy log message.
6242
6243 2003-03-09  Kazu Hirata  <kazu@cs.umass.edu>
6244
6245         * config/h8300/h8300.md (*tstsi_upper_bit): New.
6246         (*iorsi3_e2f): Likewise.
6247
6248 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
6249
6250         * config/h8300/h8300.c (h8300_and_costs): Return the number of
6251         assembly instructions needed.
6252         (h8300_shift_costs): Likewise.
6253
6254 2003-03-09  Hans-Peter Nilsson  <hp@bitrange.com>
6255
6256         * config/cris/aout.h (ENDFILE_SPEC): Undef.
6257
6258         * optabs.c (gen_move_insn): Move logic for synthesizing MODE_CC
6259         moves from here ...
6260         * expr.c (emit_move_insn_1): ... to here.
6261
6262         * config/cris/aout.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__AOUT__ to...
6263         (TARGET_OS_CPP_BUILTINS): New macro.
6264         * config/cris/cris.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__ELF__ to...
6265         (TARGET_OS_CPP_BUILTINS): New macro.
6266         (CPP_PREDEFINES): Don't define.  Move old definitions and...
6267         (CPP_SPEC): ...move -D__CRIS_ABI_version=2 to...
6268         (TARGET_CPU_CPP_BUILTINS): New macro.
6269         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Move constant
6270         definitions and the optional __PIC__, __pic__ and
6271         __NO_UNDERSCORES__ definitions to...
6272         (TARGET_OS_CPP_BUILTINS): New macro.
6273
6274         * flags.h (flag_leading_underscore): Declare.
6275
6276         * c-opts.c (c_common_post_options): On fopen failure, return
6277         false, not NULL.
6278
6279 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
6280
6281         * config/cris/cris_abi_symbol.c: #include tconfig.h and tm.h, not
6282         config.h.
6283         * config/cris/cris.h (HAVE_GAS_HIDDEN): Don't define here.
6284         * config/cris/aout.h (HAVE_GAS_HIDDEN): Undef.
6285
6286 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
6287
6288         * config/sh/rtemself.h (TARGET_OS_CPP_BUILTINS): Use instead of
6289         CPP_PREDEFINES.
6290         * config/sh/rtems.h (TARGET_OS_CPP_BUILTINS): Use instead of
6291         CPP_PREDEFINES.
6292
6293 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
6294
6295         * c-common.h (c_common_init, c_common_post_options): Update.
6296         * c-objc-common.c (c_objc_common_init): Update for new prototype.
6297         * c-opts.c (saved_lineno): New.
6298         (c_common_post_options, c_common_init): Update prototypes,
6299         move call to cpp_read_main_file from latter to former.
6300         * c-tree.h (c_ojbc_common_init): Update.
6301         * langhooks-def.h (lhd_post_options): New.
6302         (LANG_HOOKS_INIT, LANG_HOOKS_POST_OPTIONS): Update.
6303         * langhooks.c (lhd_post_options): New.
6304         * langhooks.h (struct lang_hooks): Update post_options and init hooks.
6305         * toplev.c (no_backend): New.
6306         (process_options): Call post_options hook and set main_input_filename
6307         and input_filename here.
6308         (lang_dependent_init, do_compile): post_options hook moved to
6309         process_options.
6310         * objc/objc-act.c (objc_init): Update prototype.
6311         * objc/objc-act.h (objc_init): Update prototype.
6312
6313 2003-03-08  Roger Sayle  <roger@eyesopen.com>
6314
6315         * emit-rtl.c (gen_lowpart): Don't attempt to load a part of
6316         a complex or vector type, using a load in the original mode.
6317
6318 2003-03-08  Jan Hubicka  <jh@suse.cz>
6319
6320         * Makefile.in (cgraph.o): Depend on gt-cgraph.h and varray.h.
6321         * gt-cgraph.h: New GC file.
6322         * cgraph.c (known_fns): New static variable.
6323         (cgraph_node): Add the decl into varray.
6324
6325 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
6326
6327         * config/mmix/mmix.md ("*movcc_expanded"): Add missing alternatives.
6328
6329 2003-03-08  Richard Earnshaw  <rearnsha@arm.com>
6330
6331         * arm.c (fpa_rhs_operand, fpa_add_operand, const_double_rtx_ok_for_fpa)
6332         (neg_const_double_ok_for_fpa, output_mov_long_double_fpa_from_arm)
6333         (output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm)
6334         (output_mov_double_arm_from_fpa): Renamed to use fpa instead of fpu.
6335         All callers changed.
6336         * arm.md, arm.h, arm-protos.h: Updated.
6337
6338         * arm.h (enum reg_class FPA_REGS): Renamed from FPU_REGS.
6339         (CLASS_MAX_NREGS, REGISTER_MOVE_COST, REG_CLASS_FROM_LETTER): Updated.
6340         * arm.c (arm_regno_class, f_register_operand): Updated.
6341
6342 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
6343
6344         * config/cris/cris.h: Remove EGCS references.
6345         (CPP_SPEC): Remove "-$".
6346         (INIT_CUMULATIVE_ARGS): Adjust parameter name to FNDECL.
6347
6348 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
6349
6350         * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Use in
6351         preference to CPP_PREDEFINES.
6352
6353 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
6354
6355         * cppinit.c (cpp_finish_options): Set first_unused_line to -1.
6356
6357 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
6358
6359         * config/h8300/h8300.md (*extzv_16_8): New.
6360
6361 2003-03-08  Jan Hubicka  <jh@suse.cz>
6362
6363         * c-decl.c: (finish_function): Update call of tree_inlinable_function_p.
6364         * cgraph.h: (cgraph_local_info): Add can_inline_once
6365         (cgraph_global_info): Add inline_once.
6366         (cgraph_node): Add previous.
6367         (cgraph_remove_node): New.
6368         * cgraphunit.c (cgraph_mark_functions_to_inline_once): New static
6369         function.
6370         (cgraph_optimize): Call it.
6371         (cgraph_finalize_function):  Set inlinable flags.
6372         (cgraph_finalize_compilation_unit):  Actually remove the reclaimed nodes.
6373         (cgraph_mark_functions_to_output):  Use new inlining heuristics flags.
6374         (cgraph_expand_function): Likewise.
6375         * cgraph.c
6376         (cgraph_node): Put nodes into doubly linked chain.
6377         (cgraph_remove_node): New function.
6378         * flags.h (flag_inline_functions_called_once): Declare.
6379         * tree-inline.c: Include cgraph.h
6380         (inlinable_functions_p): Add extra argument to bypass limits.
6381         (expand_call_inline):  Obey cgraph flag.
6382         * tree-inline.h (tree_inlinable_function_p): Update prototype.
6383
6384 2003-03-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6385
6386         * gcse.c (bypass_block, bypass_conditional_jumps): Do not create
6387         irreducible loops.
6388
6389         * loop-unroll.c (unroll_loop_runtime_iterations): Update irreducible
6390         loops info correctly.
6391
6392 2003-03-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
6393
6394         PR middle-end/7796
6395         * unroll.c (calculate_giv_inc): Handle constants being
6396         loaded with LSHIFTRT.
6397
6398 2003-03-07  David Edelsohn  <edelsohn@gnu.org>
6399
6400         * config/rs6000/rs6000.c (processor_target_table): Do not disable
6401         GP optional instructions on Power3, Power4, 620, and 630.
6402
6403 2003-03-07  Kazu Hirata  <kazu@cs.umass.edu>
6404
6405         * calls.c: Fix comment formatting.
6406         * cfgloopanal.c: Likewise.
6407         * cfgloopmanip.c: Likewise.
6408         * combine.c: Likewise.
6409         * dwarf2out.c: Likewise.
6410         * ggc-common.c: Likewise.
6411         * langhooks.c: Likewise.
6412         * loop-unroll.c: Likewise.
6413         * loop.c: Likewise.
6414         * ra-build.c: Likewise.
6415         * sbitmap.c: Likewise.
6416         * toplev.c: Likewise.
6417
6418 2003-03-07  James E Wilson  <wilson@tuliptree.org>
6419
6420         * config/sh/sh.h (HARD_REGNO_NREGS): Round up the XD register count.
6421
6422 2003-03-07  Geoffrey Keating  <geoffk@apple.com>
6423
6424         * objc/lang-specs.h (objective-c-header): Use .gch not .pch;
6425         support -no-integrated-cpp.
6426
6427         * c-pch.c (get_ident): Use c_language_kind and flag_objc rather
6428         than langhooks.name.
6429
6430 2003-03-07  Michael Matz  <matz@suse.de>
6431
6432         * df.h (enum df_ref_flags.DF_REF_STRIPPED): New.
6433         (DF_FOR_REGALLOC): New.
6434         * df.c (df_ref_record): Set DF_REF_STRIPPED.
6435         (read_modify_subreg_p): Simplify.
6436         (df_def_record_1, df_uses_record): Set DF_REF_MODE_CHANGE more often.
6437         Use DF_FOR_REGALLOC.
6438         * ra.h (struct web): New member subreg_stripped.
6439         (invalid_mode_change_regs): Declare.
6440         * ra.c (invalid_mode_change_regs): New.
6441         (init_ra): Initialize it.
6442         * ra-build.c (init_one_web_common, remember_web_was_spilled): Use it.
6443         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
6444         (reinit_one_web, parts_to_web_1): Deal with subreg_stripped.
6445         * ra-colorize.c (colorize_one_web): Use invalid_mode_change_regs.
6446         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
6447
6448 2003-03-07  Richard Earnshaw  <rearnsha@arm.com>
6449
6450         * arm.md (addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, negsf2)
6451         (negdf2, abssi2, abssf2, absdf2, floatsisf2, floatsidf2)
6452         (fix_truncsfsi2, fix_truncdfsi2, truncdfsf2): Moved back into main
6453         machine description file from ...
6454         * cirrus.md: ... here.
6455
6456 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
6457
6458         * config/h8300/h8300.md (a peephole2): Don't use
6459         reg_overlap_mentioned_p.
6460
6461 2003-03-06  Geoffrey Keating  <geoffk@apple.com>
6462
6463         * c-pch.c: Include langhooks.h.
6464         (IDENT_LENGTH): New.
6465         (get_ident): New.
6466         (pch_ident): Delete.
6467         (pch_init): Use get_ident, IDENT_LENGTH.
6468         (c_common_valid_pch): Likewise.  Also, use actual language
6469         in warning message.
6470         * Makefile.in (c-pch.o): Add langhooks.h to dependencies.
6471
6472         * objc/config-lang.in (gtfiles): Add objc-act.c.  Remove duplicate
6473         c-parse.in.
6474         * objc/Make-lang.in (objc/objc-act.o): Add dependency on
6475         gt-objc-objc-act.h.
6476         (gt-objc-objc-act.h): New rule.
6477         * objc/lang-specs.h: Support PCH.
6478         * objc/objc-act.c: Include gt-objc-objc-act.h.
6479         (objc_add_static_instance): Move num_static_inst out, mark for PCH.
6480         (build_selector_reference_decl): Move idx out, mark for PCH.
6481         (build_class_reference_decl): Likewise.
6482         (build_objc_string_decl): Move *_idx out, mark for PCH.
6483         (build_tmp_function_decl): Move xxx out, mark for PCH.
6484
6485 2003-03-06  Dale Johannesen  <dalej@apple.com>
6486
6487         * config/rs6000/rs6000.c (rs6000_binds_local_p):  Consider
6488         global functions for inlining on Darwin.
6489
6490 2003-03-06  Vladimir Makarov  <vmakarov@redhat.com>
6491
6492         * haifa-sched.c (schedule_block): Don't call reorder when sorting
6493         is prohibited.
6494
6495 2003-03-06  Neil Booth  <neil@daikokuya.co.uk>
6496
6497         * Makefile.in (c-ppoutput.o): Update.
6498         * c-common.h (init_pp_output): New.
6499         (preprocess_file): Update.
6500         * c-lex.c (init_c_lex): Move mbchar initialization to cpplib.
6501         Register builtins.
6502         * c-opts.c (c_common_init): Call init_pp_output if preprocessing.
6503         Make call to cpp_read_main_file common to whether preprocessing
6504         or not.  Don't register builtins.
6505         * c-ppoutput.c: Include c-pragma.h.
6506         (setup_callbacks): Rename init_pp_output.
6507         (preprocess_file): No longer setup callbacks or call
6508         cpp_read_main_file.
6509         * cpphash.h (_cpp_init_mbchar): New.
6510         * cppinit.c (init_library): Call _cpp_init_mbchar.
6511         * cpplex.c (_cpp_init_mbchar): New.
6512
6513 2003-03-06  Roger Sayle  <roger@eyesopen.com>
6514
6515         * emit-rtl.c (gen_lowpart): When requesting the low-part of a
6516         MEM, try loading the MEM into a register and taking the low-part
6517         of that, to help CSE see the use of the MEM in its true mode.
6518
6519 2003-03-05  Tom Tromey  <tromey@redhat.com>
6520
6521         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH):
6522         Define.
6523
6524 2003-03-05  Nick Clifton  <nickc@cambridge.redhat.com>
6525
6526         * config/stormy16/stormy16.md ("*eqbranchsi"): Remove '+' on
6527         operand 2.
6528         ("*ineqbranchsi"): Likewise.
6529
6530 2003-03-05  Andrew Haley  <aph@cambridge.redhat.com>
6531
6532         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Delete
6533         mem_fake_push_rtx.  Instead construct a SEQUENCE to show the
6534         register store followed by a stack increment.
6535
6536 2003-03-05  Chris Moller  <cmoller@redhat.com>
6537
6538         * config/stormy16/stormy16.c (REG_NEEDS_SAVE): added a term
6539         to inhibit saving CARRY_REGS.
6540
6541         * config/stormy16/stormy16.c (xs_hi_general_operand):
6542         added predicate to detect and error-out on out-of-range
6543         const_ints for movhi.
6544         * config/stormy16/stormy16.md (movhi): use
6545         xs_hi_general_operand.
6546
6547         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
6548         added a check for local vbl size overflow.
6549         * config/stormy16/stormy16.c (xs_hi_nonmemory_operand):
6550         added predicate to detect and error-out on out-of-range
6551         const_ints for addhi and subhi.
6552         * config/stormy16/stormy16.md (addhi3, addchi4, addchi5,
6553         subhi3, subchi4, subchi5): used xs_hi_nonmemory_operand.
6554
6555         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
6556         add a term to accept PRE_MODIFY addresses.
6557         * config/stormy16/stormy16.c (xstormy16_expand_move):
6558         add code to expand PRE_MODIFY addresses to an add followed
6559         by a move.
6560
6561 2003-03-06  Jason Merrill  <jason@redhat.com>
6562
6563         * tree-inline.c (inlinable_function_p): Revert earlier change
6564         pending investigation.
6565
6566 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
6567
6568         * config/h8300/h8300.md (a new peephole2): New.
6569
6570 2003-03-06  Jan Hubicka  <jh@suse.cz>
6571
6572         * cgraph.c (cgraph_node): Do not confuse nested functions and methods.
6573
6574 2003-03-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6575
6576         * dwarf2out.c (size_of_die): Compute size of external reference to
6577         die correctly.
6578
6579 2003-03-06  Hans-Peter Nilsson  <hp@bitrange.com>
6580
6581         * config/mmix/mmix.md ("*movcc_expanded"): New pattern.
6582         ("movcc", "movcc_uns", "movcc_fp", "movcc_fpeq", "movcc_fun"): New
6583         expanders.
6584
6585 2003-03-05  Roger Sayle  <roger@eyesopen.com>
6586
6587         * expr.h (lang_expand_expr): Delete obsolete prototype.
6588
6589 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
6590
6591         * emit-rtl.c (gen_highpart_mode): Fix a comment typo.
6592
6593 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
6594
6595         * config/h8300/h8300.md (a peephole2): Generalize to
6596         accept a memory operand.
6597
6598 2003-03-05  Olivier Hainque <hainque@act-europe.fr>
6599
6600         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '+'.
6601         * config/alpha/alpha.c (print_operand, case '+'): New.
6602         * config/alpha/alpha.md (call_osf_1_noreturn): Document and use.
6603         (call_value_osf_1_noreturn): Likewise.
6604
6605 2003-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6606
6607         * stmt.c (fixup_gotos): Change meaning of DONT_JUMP_IN.
6608         (expand_end_bindings): Likewise.
6609
6610 2003-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6611
6612         * pa.md (return_external_pic): Add !TARGET_PA_20 to constraint.
6613         (epilogue): Don't generate return_external_pic when emitting PA 2.0
6614         code.
6615
6616 2003-03-05  Aldy Hernandez  <aldyh@redhat.com>
6617
6618         * doc/tm.texi: Document TARGET_DWARF_REGISTER_SPAN.
6619
6620         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): New.
6621
6622         * hooks.c (hook_rtx_rtx_null): New.
6623
6624         * hooks.h (hook_rtx_rtx_null): Protoize.
6625
6626         * target-def.h (TARGET_DWARF_REGISTER_SPAN): New macro.
6627         (TARGET_INITIALIZER): Add TARGET_DWARF_REGISTER_SPAN.
6628
6629         * target.h (struct gcc_target): Add dwarf_register_span.
6630
6631         * dwarf2out.c (multiple_reg_loc_descriptor): New.
6632         (one_reg_loc_descriptor): New.
6633         (reg_loc_descriptor): Add support for values that span more than
6634         one register.
6635
6636 2003-03-05  Jan Hubicka  <jh@suse.cz>
6637
6638         * Makefile.in (calls.o, toplev.o alias.o): Depend on cgraph.h
6639         * alias.c:  Include cgraph.h
6640         (mark_constant_function): Use cgraph_rtl_info.
6641         * calls.c:  Include cgraph.h
6642         (flags_from_decl_or_type): Use cgraph_rtl_info to find pure and const
6643         calls.
6644         (expand_call): Use cgraph_rtl_info to set preferred stack boundary.
6645         * cgraph.c (cgraph_rtl_info): New function.
6646         * cgraph.h (cgraph_rtl_info): Declare
6647         (cgraph_rtl_info): Likewise.
6648         * function.h (struct function): Add recursive_call_emit.
6649         * toplev.c: Include cgraph.h.
6650         (rest_of_compilation): Set preferred_incoming_stack_boundary.
6651
6652 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
6653
6654         * config/h8300/h8300.c (output_simode_bld): Clear the
6655         destination first if possible.
6656         * config/h8300/h8300.md (extzv_1_r_h8300hs): Add an
6657         alternative.
6658         (extzv_1_r_inv_h8300hs): Likewise.
6659
6660 2003-03-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6661
6662         * basic-block.h (EDGE_IRREDUCIBLE_LOOP, EDGE_ALL_FLAGS): New.
6663         * cfg.c (dump_edge_info): Add EDGE_IRREDUCIBLE_LOOP flag dump.
6664         * cfgloop.c (flow_loop_free): Made global.
6665         (establish_preds): New static function.
6666         (flow_loop_tree_node_add): Handle subloops of added loop correctly.
6667         (get_loop_exit_edges): New.
6668         (verify_loop_structure): Verify EDGE_IRREDUCIBLE_LOOP flags.
6669         * cfgloop.h (flow_loop_free, get_loop_exit_edges, unloop): Declare.
6670         * cfgloopanal.c (mark_irreducible_loops): Mark edges in irreducible
6671         loops.
6672         * cfgloopmanip.c (loop_delete_branch_edge): Allow to test for
6673         removability of an edge.
6674         (fix_irreducible_loops): New static function.
6675         (find_path, remove_path): Add ability to remove enclosing loops.
6676         (unloop): New.
6677         (copy_bbs, duplicate_loop_to_header_edge): Use EDGE_IRREDUCIBLE_LOOP
6678         flags.
6679         * cfgrtl.c (verify_flow_info): Handle EDGE_IRREDUCIBLE_LOOP flag.
6680         * loop-unroll.c (peel_loops_completely): Do not duplicate loop if
6681         not neccessary.
6682         (decide_peel_completely, peel_loops_completely): Allow complete peeling
6683         of non-duplicable once rolling loops.
6684         * loop-unswitch.c (unswitch_loop): Update EDGE_IRREDUCIBLE_LOOP flags.
6685
6686 2003-03-05  J"orn Rennecke <joern.rennecke@superh.com>
6687
6688         * sh.h (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, the minimum value
6689         for align_jumps is 4.
6690
6691         (SECONDARY_INPUT_RELOAD_CLASS): If reloading a PLUS into FPUL,
6692         use GENERAL_REGS.
6693
6694 2003-03-05  Stephane Carrez  <stcarrez@nerim.fr>
6695
6696         * config/m68hc11/m68hc11.h (PAD_VARARGS_DOWN): Define and return
6697         according to va_arg type.
6698         (EXPAND_BUILTIN_VA_ARG): Remove.
6699         * config/m68hc11/m68hc11.c (m68hc11_va_arg): Remove.
6700         * config/m68hc11/m68hc11-protos.h (m68hc11_va_arg): Remove.
6701
6702 2003-03-05  David Edelsohn  <edelsohn@gnu.org>
6703
6704         * config/rs6000/rs6000.c (rs6000_variable_issue): Remove unnecessary
6705         else clauses.
6706
6707 2003-03-05  Michael Matz  <matz@suse.de>
6708
6709         * i386/i386.c (ix86_save_reg): Also test
6710         current_function_uses_const_pool.
6711
6712 2003-03-05  Michael Matz  <matz@suse.de>
6713
6714         * unwind.h: Add the GPL exception.
6715         * Makefile.in (USER_H): Add unwind.h.
6716
6717 2003-03-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
6718
6719         PR c/9799
6720         * c-typeck.c (push_init_level): Add sanity check.
6721
6722 2003-03-05  Jan Hubicka  <jh@suse.cz>
6723
6724         * toplev.c (rest_of_compilation):  Deffer RTL compilation only when
6725         RTL inlining is done.
6726
6727         * cgraphunit.c (cgraph_mark_local_functions): New local function.
6728         (cgraph_optimize): Mark local functions.
6729         * i386-protos.h (init_cumulative_args): Update prototype.
6730         * i386.c (init_cumulative_args): Use register passing convention for
6731         local functions.
6732
6733         * cgraph.c (cgraph_global_info_ready): New global variable
6734         (cgraph_local_info, cgraph_global_info): New functions.
6735         * cgraph.h (struct cgraph_local_info, cgraph_global_info): New
6736         structures.
6737         (cgraph_local_info, cgraph_global_info, cgraph_global_info_ready):
6738         Declare.
6739         * cgraphunit.c (cgraph_finalize_function): Set inline_many.
6740         (cgraph_mark_functions_to_output): Use inline_many.
6741         (cgraph_expand_function): Free DECL_SAVED_TREE uncondtionally.
6742         (cgraph_expand_functions): Expand inline functions last.
6743         (cgraph_optimize): Do not emit uneeded functions.
6744
6745 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
6746
6747         * expr.c (convert_modes): Check for legal hard register.
6748
6749 2003-03-04  Tom Tromey  <tromey@redhat.com>
6750
6751         * doc/sourcebuild.texi (Front End Directory): Document tags.
6752         * configure: Rebuilt.
6753         * configure.in (target_list): Added tags.
6754         * Makefile.in (TAGS): Depend on lang.clean.  Include subdirectory
6755         TAGS files by reference.
6756         * objc/Make-lang.in (objc.tags): New target.
6757
6758 2003-03-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6759
6760         * gcov-io.h (gcov_save_position, gcov_reserve_length, gcov_resync,
6761         gcov_skip, gcov_skip_string, gcov_write_unsigned, gcov_write_counter,
6762         gcov_write_string, gcov_read_unsigned, gcov_read_counter,
6763         gcov_read_string, gcov_write_length): Modified to enable reading/
6764         writing of whole .da file just once.
6765         (da_file_open, da_file_close, da_file_eof, da_file_error,
6766         da_file_position, da_file_seek, da_file_write, da_file_read): New
6767         functions.
6768         (actual_da_file, actual_da_file_position, actual_da_file_length,
6769         actual_da_file_buffer, actual_da_file_buffer_size): New static
6770         functions.
6771         * libgcov.c (gcov_exit): Modified to read/write the whole .da file at
6772         just once.
6773
6774
6775 2003-03-04  Andreas Schwab  <schwab@suse.de>
6776
6777         * config/m68k/m68k.c (m68k_output_function_prologue): Fix CFA
6778         offset without frame pointer.
6779
6780 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
6781
6782         * expr.c (expand_expr): Call promote_mode to set unsignedp.
6783
6784 2003-03-04  Daniel Jacobowitz  <drow@mvista.com>
6785
6786         * configure.in: Don't always define TARGET_SYSTEM_ROOT.
6787         * configure: Regenerated.
6788         * gcc.c: Check whether TARGET_SYSTEM_ROOT is defined.
6789
6790 2003-03-04  Andreas Jaeger  <aj@suse.de>
6791
6792         * configure.in: Check for <memcheck.h>.
6793         * configure: Regenerated.
6794
6795         * config.in: Define HAVE_MEMCHECK_H.
6796
6797         * ggc-common.c: Use <memcheck.h> if available instead of
6798         <valgrind.h>.
6799         * ggc-page.c: Likewise.
6800         * cppfiles.c: Likewise.
6801
6802 2003-03-04  Kazu Hirata  <kazu@cs.umass.edu>
6803
6804         * config/h8300/h8300.md (*extzv_8_8): Fix cc and lengths.
6805
6806 2003-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6807
6808         PR c/9262
6809         * c-typeck.c (do_case): Attach the first case label to the SWITCH_BODY.
6810         (c_finish_case): Rechain the next statements to the SWITCH_STMT.
6811
6812 2003-03-04  Jan Hubicka  <jh@suse.cz>
6813
6814         * doc/invoke.texi:  Document that unit-at-a-time is enabled for -O3
6815         * toplev.c (parse_options_and_default_flags): Enable flag_unit_at_a_time
6816         for -O3.
6817
6818 2003-03-04  Nathanael Nerode  <neroden@gcc.gnu.org>
6819
6820         * configure.in: Delete three unused variables.  Move a variable
6821         definition closer to its use.  Simplify use_collect2 logic.  Start to
6822         organize.  Simplify tests for in-tree gas and ld.
6823         * configure: Regenerate.
6824
6825 2003-03-04  Neil Booth  <neil@daikokuya.co.uk>
6826
6827         * Makefile.in: Update.
6828         * c-common.c (flag_no_line_commands, flag_no_output,
6829         flag_dump_macros, flag_dump_includes): New.
6830         * c-common.h (flag_no_line_commands, flag_no_output,
6831         flag_dump_macros, flag_dump_includes, preprocess_file): New.
6832         (init_c_lex): Update prototype.
6833         * c-lex.c (init_c_lex): Update prototype; move some code to
6834         c_common_init.
6835         * c-opts.c (preprocess_file): Subsume into c_common_init.
6836         (c_common_decode_option): Update flags.
6837         (c_common_init): Move code from preprocess_file and init_c_lex.
6838         (sanitize_cpp_opts): Update.
6839         * c-ppoutput.c: New, cppmain.c almost verbatim.
6840         * cpphash.h (struct printer): Remove.
6841         (struct cpp_reader): Remove print.
6842         * cpplib.h (dump_none, dump_only, dump_names, dump_definitions,
6843         cpp_preprocess_file): Remove.
6844         (struct cpp_options): Remove no_output, no_line_commands, dump_macros
6845         and dump_includes.
6846         * cppmain.c: Remove.
6847         * doc/passes.texi: Update.
6848
6849 2003-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6850
6851         * function.c (STACK_ALIGNMENT_NEEDED): New macro.  Default to 1.
6852         (assign_stack_local_1): Perform overall stack alignment only when
6853         STACK_ALIGNMENT_NEEDED is non-zero.
6854         * doc/tm.texi (STACK_ALIGNMENT_NEEDED): Document.
6855
6856         * pa.c (compute_frame_size): Rename fsize to size.  Account for
6857         alignment to a word boundary before general register save block.  Only
6858         account for double-word alignment before floating point register save
6859         block if one or more are saved.  Don't allocate space for %r3 when
6860         frame pointer is needed.
6861         (hppa_expand_prologue): Include alignment to word boundary in local
6862         frame size.
6863         * pa.h (STARTING_FRAME_OFFSET): Define to 8 on both 32 and 64-bit ports.
6864         (STACK_ALIGNMENT_NEEDED): Define.
6865
6866 2003-03-04  Kevin Buettner  <kevinb@redhat.com>
6867
6868         * dwarf2out.c (rtl_for_decl_location): Don't return NULL_RTX for
6869         global register variables.
6870
6871 2003-03-04  Alexandre Oliva  <aoliva@redhat.com>
6872
6873         * reload.c (reload_adjust_reg_for_mode): New function.
6874         (subst_reloads): Call it.
6875         (operands_match_p): Adjust registers using HARD_REGNO_NREGS.
6876         * reload.h (reload_adjust_reg_for_mode): Declare.
6877         * reload1.c (emit_input_reload_insns, emit_output_reload_insns):
6878         Call it.
6879
6880 2003-03-03  James E Wilson  <wilson@tuliptree.org>
6881
6882         * optabs.c (add_equal_note): Delete SUBREG_REG use.
6883         Fixes PR c/7872.
6884
6885 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
6886
6887         * config/h8300/h8300.md (*ixorsi3_ashift_16): New.
6888         (*ixorsi3_lshiftrt_16): New.
6889         (*iorsi3_ashift_16): Remove.
6890
6891 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
6892
6893         * config/h8300/h8300.md (*extzv_8_8): Use '?' to simplify the
6894         pattern.
6895
6896 2003-03-03  Geoffrey Keating  <geoffk@apple.com>
6897
6898         * doc/install.texi (Specific): Update entry for powerpc-darwin.
6899
6900 2003-03-03  Richard Henderson  <rth@redhat.com>
6901
6902         * config/ia64/ia64.h (HAVE_AS_LTOFFX_LDXMOV_RELOCS): Default to 0.
6903
6904 2003-03-03  David Edelsohn  <edelsohn@gnu.org>
6905
6906         * config/rs6000/rs6000.c (rs6000_multipass_dfa_lookahead): Delete.
6907         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Delete.
6908         (rs6000_variable_issue): Do not return negative value.
6909         (rs6000_issue_rate): Uniformly set issue rate to 1 for first
6910         scheduling pass.
6911
6912 2003-03-03  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6913
6914         * dwarf2out.c (dwarf2out_finish): Swap order of break_out_includes and
6915         prune_unused_types calls.
6916
6917 2003-03-03  Jason Merrill  <jason@redhat.com>
6918
6919         * tree-inline.c (find_builtin_longjmp_call): Save and restore
6920         lineno and input_filename.
6921         (find_alloca_call): Likewise.
6922         (inlinable_function_p): Run the langhook earlier.
6923
6924         * calls.c (compute_argument_addresses): Give the new MEMs a
6925         minimum alignment of PARM_BOUNDARY.
6926
6927 2003-03-03  J"orn Rennecke <joern.rennecke@superh.com>
6928
6929         * config/sh/sh.h (EXTRA_SPECS): Add subtarget_asm_relax_spec and
6930         subtarget_asm_isa_spec.
6931         (SUBTARGET_ASM_RELAX_SPEC, SUBTARGET_ASM_ISA_SPEC): Define.
6932         (ASM_SPEC): Define as SH_ASM_SPEC.
6933         (SH_ASM_SPEC): New; take the role of ASM_SPEC, but safe from svr4.h.
6934         Use subtarget_asm_relax_spec and subtarget_asm_isa_spec.
6935         * config/sh/elf.h (ASM_SPEC): Use SH_ASM_SPEC.
6936         (SUBTARGET_ASM_ISA_SPEC): Undef / define.
6937
6938         * sh.h (OVERRIDE_OPTIONS): Set default values for align_loops
6939         and align_jumps if not set.
6940         Force align_jumps to be at least 2.
6941         When relaxing, force align_functions to be at least the maximum of
6942         align_loops, align_jumps and 4.
6943         * sh.c (find_barrier, barrier_align): Honour align_jumps_log.
6944         (sh_loop_align): Honour align_loops_log.
6945
6946         * sh.md (length attribute): Use prev_nonnote_insn instead of PREV_INSN
6947         to check for indirect_jump_scratch.
6948         (indirect_jump_scratch): Add second set.
6949         * sh.c (output_far_jump): Use prev_nonnote_insn instead of PREV_INSN
6950         when looking for indirect_jump_scratch.
6951         Extract scratch register taking new structure of indirect_jump_scratch
6952         into account.
6953         (gen_block_redirect): Set INSN_SCOPE for indirect_jump_scratch.
6954
6955 2003-03-03  Jan Hubicka  <jh@suse.cz>
6956
6957         * calls.c (rtx_for_function_call): Take the address as an argument
6958         (expand_call): Do not modify the expression.
6959
6960         * toplev.c (rest_of_compilation):  Avoid cfg_cleanup calls when not
6961         optimizing.
6962
6963 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
6964
6965         * config/h8300/h8300.md (*ixorsi3_zext_hi): Restrict to
6966         TARGET_H8300H and TARGET_H8300S.
6967
6968 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
6969
6970         * config/h8300/h8300.md (a peephole2): New.
6971
6972 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
6973
6974         * config/h8300/h8300.md (*extzv_8_8): Use shorter code when
6975         operands[0] and operands[1] are different.
6976
6977 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
6978
6979         * reload1.c (reload_cse_move2add): Remove variable success.
6980
6981 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6982
6983         * ggc-common.c (ggc_rlimit_bound): Cast RLIM_INFINITY to avoid
6984         warnings.
6985
6986 2003-03-02  Richard Henderson  <rth@redhat.com>
6987
6988         * configure.in (HAVE_AS_LTOFFX_LDXMOV_RELOCS): New ia64 test.
6989         * config.in, configure: Rebuild.
6990         * config/ia64/ia64.c (ia64_ld_address_bypass_p): Accept lo_sum.
6991         * config/ia64/ia64.md (load_symptr): Use high/lo_sum for the
6992         paired ldtoffx and ldxmov annotations.
6993         (load_symptr_internal1): Remove.
6994         (load_symptr_high, load_symptr_low): New.
6995
6996 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
6997
6998         * c-incpath.c (add_path): Fix sysp assignment.
6999
7000 2003-03-02  Kurt Garloff  <garloff@suse.de>
7001
7002         * params.def: Introduce parameter max-inline-insns-rtl for
7003         a separate limit for the RTL inliner.
7004         * params.h: Likewise.
7005         * integrate.c (function_cannot_inline_p): Use it.
7006         * toplev.c (decode_f_option): Set multiple parameters
7007         controlling inlining with -finline-limit.
7008         * params.def: Fix orthographic and typographic errors.
7009         * doc/invoke.texi: Document parameters controlling inlining
7010         and the way -finline-limit sets multiple of them.
7011
7012         * tree.h (struct tree_decl): Introduce inlined_function_flag,
7013         recording whether the function became eligible for inlining
7014         by a compiler flag rather than the declaration.
7015         Provide DID_INLINE_FUNC macro to access it.
7016         * c-decl.c (grokdeclarator): Set DID_INLINE_FUNC.
7017         * cp/decl.c (grokfndecl): Likewise.
7018         * toplev.c (rest_of_compilation): Likewise.
7019         * cp/optimize (maybe_clone_body): Copy DID_INLINE_FUNC.
7020         * print-tree.c (print_node): Report it.
7021         * params.def: Introduce new max-inline-insns-auto limit.
7022         * params.h: Likewise.
7023         * tree-inline.c (inlinable_function_p): Apply it to functions
7024         with DID_INLINE_FUNC set.
7025         * toplev.c (decode_f_option): Initialize it from -finline-limit
7026         value.
7027         * doc/invoke.texi: Document new parameter.
7028
7029 2003-03-02  Geoffrey Keating  <geoffk@apple.com>
7030
7031         * fix-header.c (read_scan_file): Don't reference simplify_path.
7032
7033 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7034
7035         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't enable
7036         min/max instructions by default as may result in reload errors.
7037
7038 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7039
7040         * config/m68hc11/m68hc11.md ("mulqi3"): Allow address register to
7041         avoid reload problems; define split for it.
7042
7043 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7044
7045         * config/m68hc11/m68hc11.c (m68hc11_shift_operator): New function.
7046         * config/m68hc11/m68hc11-protos.h (m68hc11_shift_operator): Declare.
7047         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register.
7048         * config/m68hc11/m68hc11.md ("rotrhi3", "rotlhi3"): New patterns for
7049         rotatert and rotate.
7050         ("rotrhi3_const", "rotlhi3_const"): Rename of old 'rotrhi3' insns.
7051         ("*rotrhi3", "*rotlhi3"): New insn pattern for non-const rotatert.
7052         ("*rotrhi3_addr"): New split for shift insns on address register.
7053         ("*lshrhi3", "*ashrhi3", "*ashlhi3_2"): Use new split.
7054         * config/m68hc11/larith.asm (___rotlhi3): New asm function.
7055         (___rotrhi3): Likewise.
7056         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build them.
7057
7058 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
7059
7060         * toplev.c (aux_base_name): Moved from toplev.h.
7061         (filename): Constify.
7062         (lang_dependent_init): Don't duplicate name.
7063         (process_options): Set aux_base_name here, not...
7064         (do_compile): ...here.  Change protoype.
7065         (toplev_main): Move some code from do_compile.
7066         * toplev.h: Remove aux_base_name.
7067
7068 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7069
7070         * config/h8300/h8300-protos.h: Add a prototype for
7071         iorxor_operator.
7072         * config/h8300/h8300.c (print_operand): Handle 'c'.
7073         (iorxor_operator): New.
7074         * config/h8300/h8300.h (PREDICATE_CODES): Add iorxor_operator.
7075         * config/h8300/h8300.md (*iorhi3_zext): Remove.
7076         (*iorsi3_zexthi): Likewise.
7077         (*iorsi3_zextsi): Likewise.
7078         (*xorhi3_zextqi): Likewise.
7079         (*xorsi3_zexthi): Likewise.
7080         (*xorsi3_zextsi): Likewise.
7081         (*ixorhi3_zext): New.
7082         (*ixorsi3_zext_qi): Likewise.
7083         (*ixorsi3_zext_hi): Likewise.
7084
7085 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
7086
7087         * c-incpath.c (remove_component_p, simplify_path): Move back to
7088         cppfiles.c.
7089         (remove_duplicates): Use cpp_simplify_path.
7090         * c-incpath.h (simplify_path): Remove.
7091         * c-lex.c: Don't include c-incpath.h.
7092         (init_c_lex): Remove simplify_path.
7093         * cppfiles.c (remove_component_p, cpp_simplify_path): Restore.
7094         (find_or_create_entry, validate_pch): Revert.
7095
7096 2003-03-02  Ashif Harji  <asharji@uwaterloo.ca>
7097
7098         * gcc.c (default_compilers): Add -no-integrated-cpp flag to invoke
7099           an external cpp during compilation.
7100         (option_map): Likewise.
7101         * objc/lang-specs.h (default_compilers): Similarly.
7102         * doc/invoke.texi: Document -no-integrated-cpp flag.
7103
7104 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7105
7106         * config/h8300/h8300.md (zero_extendqisi2): Change to an
7107         expander.
7108         (*zero_extendqisi2_h8300): New.
7109         (*zero_extendqisi2_h8300hs): New.
7110         (two splitters): New.
7111
7112 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7113
7114         * fp-bit.h (float_to_usi): Fix condition wrapping prototype.
7115
7116 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7117
7118         * config/h8300/h8300.md (a peephole2): Remove dead code.
7119
7120 2003-03-01  Roger Sayle  <roger@eyesopen.com>
7121
7122         PR c++/9367
7123         * builtin-types.def (DEF_FUNCTION_TYPE_VAR_3): New macro.
7124         (BT_FN_INT_CONST_STRING_VALIST_ARG,
7125         BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
7126         BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
7127         BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
7128         BT_FN_INT_STRING_CONST_STRING_VAR,
7129         BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
7130         BT_FN_INT_STRING_SIZE_CONST_STRING_VAR): New built-in types.
7131         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2,
7132         ATTR_NONNULL_3): Also include the nothrow attribute.
7133         (sprintf, scanf, sscanf, vprintf, vsprintf, snprintf,
7134         vsnprintf, vscanf, vsscanf): Don't define attributes here.
7135         * builtins.def (putchar, puts): Make full C89 built-ins.
7136         (snprintf, sprintf, scanf, sscanf, vprintf, vscanf,
7137         vsscanf, vsnprintf, vsprintf): New built-ins.
7138         * c-common.c (c_common_nodes_and_builtins): Handle new macro
7139         DEF_FUNCTION_TYPE_VAR_3.
7140
7141         * doc/extend.texi: Document these new built-in functions.
7142
7143 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7144
7145         * config/h8300/h8300.md (a peephole2): New.
7146
7147 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
7148
7149         * predict.c (estimate_bb_frequencies): Correctly set
7150         real_values_initialized after initialization.
7151
7152 2003-03-01  Neil Booth  <neil@daikokuya.co.uk>
7153
7154         * Makefile.in (C_AND_OBJC_OBJS, c-incpath.o, c-lex.o, LIBCPP_OBJS,
7155         cppinit.o, cppdefault.o, fix-header): Update.
7156         * c-incpath.c: New file.
7157         * c-incpath.h: New file.
7158         * c-lex.c: Include c-incpath.h.
7159         (init_c_lex): Register path simplifier.
7160         * c-opts.c: Include cppdefault.h and c-incpath.h.
7161         (TARGET_SYSTEM_ROOT, verbose, iprefix, sysroot, std_inc,
7162         std_cxx_inc, quote_chain_split, add_prefixed_path): New.
7163         (COMMAND_LINE_OPTIONS): Add more options from cpplib.
7164         (missing_arg, c_common_decode_option): Handle them.
7165         (c_common_post_options): Register include chains.
7166         (print_help): Update.
7167         * cppdefault.h (struct default include): Update.
7168         Move some macros to ...
7169         * cppdefault.c: ... here.
7170         (cpp_include_defaults): Add extra field add_sysroot.
7171         * cppfiles.c (include_file, search_from, find_or_create_entry,
7172         cpp_included, find_include_file, remap_filename): Update for
7173         renaming of search_path to cpp_path, and of the chain headers.
7174         (remove_component_p, _cpp_simplify_pathname): Move to c-incpath.c.
7175         * cpphash.h (struct search_path): Move to cpplib.h.
7176         (struct cpp_buffer, struct cpp_reader): Update.
7177         (_cpp_simplify_pathname): Remove.
7178         * cppinit.c: Don't include prefix.h and cppdefault.h.
7179         (INO_T_EQ, INO_T_COPY, path_include, append_include_chain,
7180         remove_dup_dir, remove_dup_nonsys_dirs, remove_dup_dirs,
7181         init_standard_includes, BRACKET, SYSTEM, AFTER, no_dir,
7182         no_pth, cpp_handle_options): Remove.
7183         (struct pending_option): Remove chain members.
7184         (cpp_destroy, cpp_read_main_file, COMMAND_LINE_OPTIONS,
7185         cpp_handle_option): Update.
7186         * cpplib.h (struct cpp_path, cpp_set_include_chains): New.
7187         (struct cpp_options): Remove quote_include, bracket_include,
7188         include_prefix, include_prefix_len, verbose, ignore_srcdir,
7189         no_standard_includes, no_standard_cplusplus_includes.
7190         (struct cpp_callbacks): Add simplify_path.
7191         (cpp_handle_options): Remove.
7192         * fix-header.c: Include c-incpath.h.
7193         (read_scan_file): Update to use c-incpath functionality.
7194         * doc/passes.texi: Update.
7195
7196 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7197
7198         * config/h8300/h8300.c (bit_operand): Accept MEM only if it
7199         satisfies EXTRA_CONSTRAINT 'U'.
7200
7201 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7202
7203         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Take a scratch
7204         register.
7205         (*tst_extzv_memqi_1_n): Change to a splitter.
7206         (a peephole2): Update.
7207
7208 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
7209
7210         * predict.c (estimate_bb_frequencies): Initialize the sreal
7211         constants once per compilation.
7212
7213 2003-02-28  Richard Henderson  <rth@redhat.com>
7214
7215         * toplev.c (flag_eliminate_unused_debug_types): Enable by default.
7216
7217 2003-02-28  scott snyder  <snyder@fnal.gov>
7218
7219         * flags.h: Add flag_eliminate_unused_debug_types.
7220         * toplev.c: Add flag_eliminate_unused_debug_types.
7221         (f_options): Add -feliminate-unused-debug-types.
7222         * dwarf2out.c (struct file_table): Add emitted member.
7223         (splice_child_die): Fix the parent pointer for the child being
7224         spliced.
7225         (lookup_filename): Maintain file_table.emitted array.  Don't
7226         output .file directive here.
7227         (maybe_emit_file): (new)
7228         (init_file_table): Set up file_table.emitted.
7229         (dwarf2out_source_line): Use maybe_emit_file.
7230         (dwarf2out_start_source_file): Use maybe_emit_file.
7231         (dwarf2out_init): Use maybe_emit_file.
7232         (prune_unused_types_walk_attribs): (new)
7233         (prune_unused_types_mark): (new)
7234         (prune_unused_types_walk): (new)
7235         (prune_unused_types_prune): (new)
7236         (prune_unused_types): (new)
7237         (dwarf2out_finish): Call prune_unused_types if
7238         flag_eliminate_unused_debug_types is set.
7239         * doc/invoke.texi (Option Summary): Add
7240         -feliminate-unused-debug-types.
7241         (Debugging Options): Likewise.
7242
7243 2003-02-28  Geoffrey Keating  <geoffk@apple.com>
7244
7245         * doc/invoke.texi: Change .pch to .gch.
7246         * cppfiles.c (open_file_pch): Likewise.
7247         * gcc.c (default_compilers): Likewise.
7248
7249 2003-02-28  Aldy Hernandez  <aldyh@redhat.com>
7250
7251         * floatlib.c: Remove.
7252
7253 2003-02-28  Jason Merrill  <jason@redhat.com>
7254
7255         * stor-layout.c (variable_size): Leave a "minus 1" outside the
7256         SAVE_EXPR.
7257
7258 2003-02-28  David Edelsohn  <edelsohn@gnu.org>
7259
7260         * config/rs6000/power4.md: Add compare bypass.
7261
7262 2003-02-28  Jason Thorpe  <thorpej@wasabisystems.com>
7263
7264         * config/netbsd.h: Update copyright years.
7265         (NETBSD_CPP_SPEC): Define _REENTRANT and _PTHREADS if
7266         -pthread is specified on the command line.
7267
7268 2003-02-28  Dale Johannesen <dalej@apple.com>
7269
7270         * loop.c (struct movable): Add insert_temp, shrink savemode.
7271         (scan_loop): Accept invariants that require copying; mark as
7272         insert_temp.
7273         (combine_movables): Don't combine insert_temp movables.
7274         (move_movables): Insert copies for insert_temp movables.
7275         Don't record the info based on regno for insert_temp's.
7276
7277 2003-02-28  Joel Sherrill <joel@OARcorp.com>
7278
7279         PR 9638/other
7280         * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Ensure the
7281         this constant defaults to 1.
7282
7283 2003-02-28  Bob Wilson  <bob.wilson@acm.org>
7284
7285         * config.gcc (xtensa-*-linux*): Add t-slibgcc-elf-ver to tmake_file.
7286
7287 2003-02-28  Richard Earnshaw  <rearnsha@arm.com>
7288
7289         * arm.md (mulhisi3, mulhisi3addsi, mulhidi3adddi): Enable for any
7290         ARMv5e processor, not just for XScale.  Instructions are predicable.
7291         (mulhisi3tb, mulhisi3bt, mulhisi3tt): New patterns for ARMv5e.
7292
7293 2003-02-28  Nick Clifton  <nickc@redhat.com>
7294
7295         * config/arm/arm.c (note_invalid_constants): Change parameter type
7296         from bool to int.
7297
7298 2003-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7299
7300         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Accept the
7301         test of bit 7.
7302         (*tst_extzv_memqi_1_n): Likewise.
7303         (a peephole2): New.
7304
7305 2003-02-28  Richard Sandiford  <rsandifo@redhat.com>
7306
7307         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Wrap in
7308         #ifndef __mips16.
7309
7310 2003-02-28  Jan Hubicka  <jh@suse.cz>
7311
7312         * combine.c (gen_lowpart_for_combine): Update handling of
7313         subregs_of_mode
7314         * flow.c (life_analysis, mark_used_regs): Likewise.
7315         * regclass.c (subregs_of_mode): Turn into single bitmap.
7316         (cannot_change-mode_set_regs, invalid_mode_change_p): Update
7317         dealing with subregs_of_mode
7318         * regs.h (subregs_of_mode): Update prototype.
7319
7320 2003-02-28  Josef Zlomek  <zlomekj@suse.cz>
7321
7322         * emit-rtl.c (set_reg_attrs_for_parm): New function.
7323         * rtl.h (set_reg_attrs_for_parm): New exported function.
7324         * function.c (assign_parms): Use set_reg_attrs_for_parm instead of
7325         set_reg_attrs_from_mem.
7326
7327 2003-02-27  Roger Sayle  <roger@eyesopen.com>
7328             Zack Weinberg <zack@codesourcery.com>
7329
7330         * gcc.c (do_spec_1):  Treat %U like %u for unique associations.
7331
7332 2003-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7333
7334         * reload1.c (sext_for_mode): Remove.
7335         (reload_cse_move2add): Use trunc_int_for_mode instead of
7336         sext_for_mode.
7337         (move2add_note_store): Likewise.
7338         Reset register information if we see a set in non-integer
7339         mode.
7340
7341 2003-02-27  David Edelsohn  <edelsohn@gnu.org>
7342
7343         * config/rs6000/aix43.h (ASM_SPEC): Only emit -mppc64 if no -mcpu
7344         option.
7345         (ASM_CPU_SPEC): Use -m620 for Power3, Power4, 620, 630.
7346         * config/rs6000/aix51.h: Same.
7347         * config/rs6000/aix52.h: Same.
7348         * config/rs6000/power4.md: Additional VMX bypasses.
7349
7350 2003-02-27   Geert Bosch <bosch@gnat.com>
7351
7352         * toplev.c (print_version): Add indentation for GGC heuristics and
7353         output after printing version information.
7354
7355 2003-02-27  James E Wilson  <wilson@tuliptree.org>
7356
7357         * combine.c (simplify_comparison): Require integral mode when
7358         permuting SUBREG with AND.
7359
7360 2003-02-27  Steve Ellcey  <sje@cup.hp.com>
7361
7362         * config/ia64/hpux.h (STARTFILE_PREFIX_SPEC): Remove.
7363
7364 2003-02-27  Nick Clifton  <nickc@redhat.com>
7365
7366         * config/arm/arm.md (extendsfdf2): Add pattern accidentally
7367         deleted when cirrus instructions were added.
7368
7369 2003-02-27  Jason Thorpe  <thorpej@wasabisystems.com>
7370
7371         * config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Enable
7372         POSIX thread support by default.
7373
7374 2003-02-27  Roger Sayle  <roger@eyesopen.com>
7375
7376         * config/i386/cygwin.h: Don't include any other files directly.
7377         * config/i386/mingw32.h: Don't include cygwin.h directly.
7378         * config.gcc (cygwin, mingw32, uwin): Instead make these files
7379         explicit in the tm_files variable.
7380
7381 2003-02-27  Alan Modra  <amodra@bigpond.net.au>
7382
7383         * config/rs6000/rs6000.md: Add TI constant splitter.
7384
7385 2003-02-26  Alexandre Oliva  <aoliva@redhat.com>
7386
7387         * builtins.c (purge_builtin_constant_p): Handle subreg of
7388         constant_p_rtx too.
7389
7390         * function.c (assign_stack_local_1): Truncate constant added to
7391         frame_pointer_rtx or virtual_stack_vars_rtx for Pmode.
7392
7393 2003-02-26  David Edelsohn  <edelsohn@gnu.org>
7394
7395         * config.gcc: Add power4 to PowerPC with_cpu list.
7396
7397 2003-02-26  Jan Hubicka  <jh@suse.cz>
7398
7399         * objc-act.c: (mark_referenced_methods): Fix compilation problem.
7400
7401 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7402
7403         * gcov-dump.c (print_prefix): Fix signedness warning.
7404         * gcov-io.h (struct counter_section, struct counter_section_data): New.
7405         (struct function_info): n_arc_counts field removed, n_counter_sections,
7406         counter_sections fields added.
7407         (struct gcov_info): arc_counts, n_arc_counts fields removed,
7408         n_counter_sections, counter_sections fields added.
7409         * libgcov.c (gcov_exit, __gcov_flush): Add support for multiple
7410         profile sections.
7411         * profile.h (MAX_COUNTER_SECTIONS): New.
7412         (struct section_info): New.
7413         (struct profile_info): count_instrumented_edges,
7414         count_edges_instrumented_now fields removed, n_sections, section_info
7415         fields added.
7416         (find_counters_section): Declare.
7417         * profile.c (struct function_list): count_edges field removed,
7418         n_counter_sections, counter_sections fields added.
7419         (set_purpose, label_for_tag, build_counter_section_fields,
7420         build_counter_section_value, build_counter_section_data_fields,
7421         build_counter_section_data_value, build_function_info_fields,
7422         build_function_info_value, build_gcov_info_fields,
7423         build_gcov_info_value): New static functions.
7424         (find_counters_section): New function.
7425         (instrument_edges, get_exec_counts, compute_branch_probabilities,
7426         branch_prob, create_profiler): Modified to support multiple profile
7427         sections.
7428
7429 2003-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7430
7431         * pa.c (compute_frame_size): Don't assume PREFERRED_STACK_BOUNDARY
7432         is 8 * STACK_BOUNDARY.
7433         * pa.h (PREFERRED_STACK_BOUNDARY): Change to 128 on 64-bit port.
7434
7435 2003-02-26  Michael Matz  <matz@suse.de>
7436
7437         * ra-colorize.c (merge_moves): Fix list handling.
7438
7439 2003-02-26  Nick Clifton  <nickc@redhat.com>
7440
7441         * config/arm/arm.c (is_load_address): Rename to...
7442         (arm_memory_load_p) ... this and make it check for SUBREGs and
7443         constant loads that will be converted into loads from the
7444         minipool.
7445         (is_cirrus_insn): Rename to ...
7446         (arm_cirrus_insn_p): ... this, for consistency.  Replace test
7447         of CIRRUS_NO with CIRRUS_NOT.
7448         (cirrus_reorg): Use renamed functions.
7449         (note_invalid_constants): Change from a void function to bool.
7450         Add an extra parameter, saying whether the fixups should be
7451         pushed.  Return true if fixups are needed.
7452         (arm_reorg): Use renamed functions.  Use INSN_P.  Replace test
7453         of CIRRUS_NO with CIRRUS_NOT.
7454         * config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that
7455         other floating point co-processors can also affect this.
7456         * config/arm/arm.md ("type" attribute): Add mav_farith and
7457         mav_dmult.  Replace references to "cirrus_type" attribute with
7458         "type".
7459         * config/arm/cirrus.md ("cirrus_fpu" attribute): Delete.
7460         ("cirrus_type" attribute): Delete - use "type" instead.
7461         ("cirrus" attribute): Replace 'no' with 'not' and 'yes' with
7462         'normal'.
7463
7464 2003-02-25  Jan Hubicka  <jh@suse.cz>
7465
7466         * objc-act.c: Include cgraph.h
7467         (mark_referenced_methods): New function.
7468         (objc_init): Call it.
7469         * objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set.
7470
7471         * c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time
7472         mode.
7473
7474         * optabs.c (expand_fix): Do not widen the input operand.
7475
7476         * expr.c (emit_group_store):  Fix crash when converting single
7477         register into complex register.
7478
7479         * Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h
7480         * alias.c: Include timevar.h
7481         (init_alias_analysis):  Set timevar
7482         * jump.c: Include timevar.h
7483         (rebuild_jump_labels):  Set timevar
7484         * regcalss.c: Include timevar.h
7485         (reg_scan):  Set timevar
7486         * timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New
7487
7488 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7489
7490         * cse.c (count_reg_usage): Fix handling of REG_EQUAL notes.
7491
7492         * Makefile.in (loop-unroll.o): New.
7493         * cfgloop.h (UAP_PEEL, UAP_UNROLL, UAP_UNROLL_ALL): New.
7494         (unroll_and_peel_loops): Declare.
7495         * alias.c (init_alias_analysis): Flag_unroll_loops renamed to
7496         flag_old_unroll_loops.
7497         * loop.c (loop_invariant_p): Ditto.
7498         * unroll.c (unroll_loop): Flag_unroll_all_loops renamed to
7499         flag_old_unroll_all_loops.
7500         * flags.h (flag_unroll_loops): Renamed to flag_old_unroll_loops.
7501         (flag_unroll_all_loops): Renamed to flag_old_unroll_all_loops.
7502         * params.def (PARAM_MAX_UNROLLED_INSNS): Default value changed.
7503         (PARAM_MAX_AVERAGE_UNROLLED_INSNS, PARAM_MAX_UNROLL_TIMES,
7504         PARAM_MAX_PEELED_INSNS, PARAM_MAX_PEEL_TIMES,
7505         PARAM_MAX_COMPLETELY_PEELED_INSNS, PARAM_MAX_COMPLETELY_PEEL_TIMES,
7506         PARAM_MAX_ONCE_PEELED_INSNS): New.
7507         * toplev.h (flag_old_unroll_loops, flag_old_unroll_all_loops): New.
7508         (flag_unroll_loops, flag_unroll_all_loops): Used for new unroller
7509         instead of old one.
7510         (flag_peel_loops): New.
7511         (lang_independent_options): The new flags added.
7512         (rest_of_compilation): Call new unroller.
7513         (process_options): Setup flags for coexistence of old and new unroller.
7514         * doc/invoke.texi: Document new options.
7515         * doc/passes.texi: Document new unroller pass.
7516
7517 2003-02-26  David Billinghurst <David.Billinghurst@riotinto.com>
7518
7519         * fixinc/fixincl.x: Regenerate
7520
7521 2003-02-26  Josef Zlomek  <zlomekj@suse.cz>
7522
7523         * function.c (assign_parms): Set reg_attrs for parameters passed in
7524         registers.
7525
7526 2003-02-26  Alan Modra  <amodra@bigpond.net.au>
7527
7528         PR target/9681
7529         * tlink.c (scan_linker_output): Drop leading '.' from symbol names.
7530
7531 2003-02-25  David Edelsohn  <edelsohn@gnu.org>
7532
7533         * config/rs6000/xcoff.h (ASM_FILE_START): Do not emit machine
7534         pseudo-op.
7535
7536 2003-02-25  Roger Sayle  <roger@eyesopen.com>
7537
7538         * combine.c (combine_simplify_rtx, simplfy_comparison):  Use CC0_P.
7539         * cse.c (invalidate_skipped_set):  Likewise.
7540         * integrate.c (subst_constants):  Likewise.
7541         * jump.c (reversed_comparison_code_parts):  Likewise.
7542         * loop.c (canonicalize_condition):  Likewise.
7543         * simplify-rtx.c (simplify_relational_operation):  Likewise.
7544
7545 2003-02-25  Roger Sayle  <roger@eyesopen.com>
7546
7547         * builtins.def (DEF_LIB_ALWAYS_BUILTIN, DEF_UNUSED_BUILTIN): Delete.
7548         (abs, labs, fabs, fabsf, fabsl, abort, exit, _exit, _Exit):  Use
7549         the appropriate macro to define built-in function.
7550         (fmod,fmodf,fmodl): New built-in functions.
7551
7552         * doc/extend.texi (fmod,fmodf,fmodl): Document new built-ins.
7553
7554 2003-02-25  Richard Henderson  <rth@redhat.com>
7555
7556         * config/i386/i386.c (function_arg): Pass variable sized
7557         structures correctly on the stack.
7558
7559 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
7560
7561         * reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS
7562         does not reduce the cost of SET.
7563
7564 2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7565
7566         PR target/9732
7567         * config/rs6000/rs6000.c (first_reg_to_save): Handle
7568         PIC_OFFSET_TABLE_REGNUM for -fPIC too.
7569         (rs6000_emit_prologue): Likewise.
7570         (rs6000_emit_epilogue): Likewise.
7571         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
7572         PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.
7573
7574 2003-02-25  Richard Henderson  <rth@redhat.com>
7575
7576         * real.c (real_to_integer2): Force overflow result only for
7577         unsigned overflow.
7578
7579 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
7580
7581         * gcse.c (cprop_jump): Revert the 2003-02-23 change.
7582
7583 2003-02-25  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
7584             Richard Henderson  <rth@redhat.com>
7585
7586         * sched-ebb.c (add_deps_for_risky_insns): Add the dependence when
7587         there is no similar load.
7588
7589 2003-02-25  Vladimir Makarov  <vmakarov@redhat.com>
7590             Richard Henderson  <rth@redhat.com>
7591
7592         * sched-int.h (INSN_TRAP_CLASS, WORST_CLASS): Move them from
7593         sched-rgn.c.
7594         (add_forward_dependence): New function prototype.
7595
7596         * sched-rgn.c (INSN_TRAP_CLASS, WORST_CLASS): Move them to
7597         sched-init.h.
7598         (CONST_BASED_ADDRESS_P, may_trap_exp, haifa_classify_insn): Move
7599         them to haifa-sched.c.
7600
7601         * haifa-sched.c (CONST_BASED_ADDRESS_P, may_trap_exp,
7602         haifa_classify_insn): Move them from sched-rgn.c.
7603
7604         * sched-deps.c (add_dependence): Return flag of creating a new
7605         entry.
7606         (add_forward_dependence): New function.
7607         (compute_forward_dependences): Use the function.
7608
7609         * sched-ebb.c (earliest_block_with_similiar_load): New function.
7610         (add_deps_for_risky_insns): New function.
7611         (schedule_ebb): Call the function.
7612
7613 2003-02-20  Aldy Hernandez  <aldyh@redhat.com>
7614
7615         * doc/tm.texi: Document Rename TARGET_VECTOR_TYPES_COMPATIBLE to
7616         TARGET_VECTOR_OPAQUE_P.  Document accordingly.
7617
7618         * testsuite/gcc.dg/20030218-1.c: Check that initialization of
7619         opaque types fail.
7620
7621         * c-typeck.c (comptypes): Change call to vector_types_compatible
7622         to vector_opaque_p.
7623         (convert_for_assignment): Call vector_opaque_p instead of
7624         vector_types_compatible.
7625         (really_start_incremental_init): Disallow initialization of opaque
7626         types.
7627
7628         * target-def.h: Remove TARGET_VECTOR_TYPES_COMPATIBLE.
7629         Define TARGET_VECTOR_OPAQUE_P.
7630         (TARGET_INITIALIZER): Same.
7631
7632         * target.h (struct gcc_target): Remove vector_types_compatible.
7633         Add vector_opaque_p.
7634
7635         * config/rs6000/rs6000.c (rs6000_spe_vector_types_compatible):
7636         Remove.
7637         (is_ev64_opaque_type): Check for TARGET_SPE and make sure type is
7638         a vector type.  Change return type to bool.
7639         (TARGET_VECTOR_TYPES_COMPATIBLE): Remove.
7640         (TARGET_VECTOR_OPAQUE_P): Define.
7641
7642         * cp/parser.c (cp_parser_init_declarator): Call vector_opaque_p
7643         target hook.
7644         Include target.h.
7645         (cp_parser_init_declarator): Fix typo in function comments.
7646
7647 2003-02-25  Jan Hubicka  <jh@suse.cz>
7648
7649         * Makefile.in (lcm.o):  Add dependency on function.h
7650         * lcm.c (function.h): Include.
7651         * i386.c (machine_function, ix86_stack_locals,
7652         * ix86_save_varrargs_registers) : Move to
7653         ...
7654         * i386.h (machine_function, ix86_stack_locals,
7655         ix86_save_varrargs_registers): ... here; add optimize_mode_switching
7656         (ix86_optimize_mode_switching): New.
7657         * i386.md (fix patterns): Set ix86_optimize_mode_switching
7658
7659 2003-02-25  Nick Clifton  <nickc@redhat.com>
7660
7661         * config/d30v/d30v.c (d30v_init_cumulative_args): Fix typo.  Name
7662         of fourth arg is 'fndecl' not 'indirect'.  Update comment
7663         describing the function's parameters.
7664
7665 2003-02-24  Jan Hubicka  <jh@suse.cz>
7666
7667         * combine.c (simplify_shift_const):  Fix previous patch.
7668
7669 2003-02-24  Jeff Law  <law@redhat.com>
7670
7671         * i386.md (testdi_1_rex64): Discourage reload from using the %eax
7672         alternative.
7673         (testsi_1, testhi_1, testqi_1): Likewise.
7674
7675 2003-02-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7676
7677         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename
7678         __EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX.
7679         * doc/extend.texi (Tru64 Pragmas): Reflect this.
7680
7681         * fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma
7682         extern_prefix support for Tru64 UNIX V5 <sys/stat.h>.
7683         * fixinc/fixincl.x: Regenerate.
7684         * fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New
7685         testcase.
7686         Fixes PR c/5059, c/6126, other/9671.
7687
7688 2003-02-24  Roger Sayle  <roger@eyesopen.com>
7689
7690         * gcc.c (do_spec_1) ['{']:  Handle pending argument upon return
7691         from handle_braces in "%{...}".
7692
7693 2003-02-24  Kaz Kojima  <kkojima@gcc.gnu.org>
7694
7695         * config/sh/sh.c (TARGET_HAVE_TLS): Conditionally define.
7696         (prepare_move_operands): Handle TLS operands.
7697         (tls_symbolic_operand): New.
7698         (nonpic_symbol_mentioned_p): Handle TLS UNSPECs.
7699         (legitimize_pic_address): Do nothing for the TLS symbol.
7700         (sh_encode_section_info): Handle TLS case.
7701         (sh_strip_name_encoding): Drop TLS encoding.
7702         * config/sh/sh-protos.h (tls_symbolic_operand): Add prototype.
7703         * config/sh/sh.h (SH_TLS_ENCODING): Define.
7704         (TLS_SYMNAME_P, STRIP_TLS_ENCODING): Likewise.
7705         (ASM_OUTPUT_LABELREF): Drop TLS encoding.
7706         (OUTPUT_ADDR_CONST_EXTRA): Handle TLS UNSPECs.
7707         * config/sh/sh.md: Define TLS UNSPEC constants.
7708         (type): Add tls_load.
7709         ("tls_global_dynamic", "tls_local_dynamic"): New insns.
7710         ("sym2DTPOFF", "symDTPOFF2reg", "sym2GOTTPOFF"): New expanders.
7711         ("tls_initial_exec"): New insn.
7712         ("sym2TPOFF", "symTPOFF2reg"): New expanders.
7713         ("load_gbr"): New insn.
7714
7715         * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
7716         * configure: Regenerate.
7717
7718 2003-02-24  Alan Modra  <amodra@bigpond.net.au>
7719
7720         PR 9297, PR 9722
7721         * calls.c (store_one_arg): Revert 1999-02-16 change.  Revert
7722         2000-12-17 change.  Pass EXPAND_STACK_PARM to expand_expr.
7723         * expr.h (enum expand_modifier): Define EXPAND_STACK_PARM.
7724         (enum block_op_methods): Reorder for better store_expr optimization.
7725         * expr.c (store_expr): Test bit 1 of "want_value" for call param
7726         stores, test bit 0 for original want_value meaning.  Pass
7727         BLOCK_OP_CALL_PARM to emit_block_move when bit 1 set.  Adjust
7728         recursive calls, and calls to expand_param.
7729         (expand_expr): Handle EXPAND_STACK_PARM modifier.  When cse
7730         expected, set target to 0 rather than to subtarget.  Formatting.
7731
7732 2003-02-23  Kazu Hirata  <kazu@cs.umass.edu>
7733
7734         * gcse.c (cprop_jump): Use the REG_EQUAL note if available.
7735
7736 2003-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7737
7738         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Document
7739         new default behavior.
7740         * ggc-common.c: Include sys/resource.h.
7741         (ggc_rlimit_bound): New function.
7742         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Update
7743         defaults to account for rlimits.
7744
7745 2003-02-22  Richard Henderson  <rth@redhat.com>
7746
7747         * i386.c, i386.h (TUNEMASK): Rename from CPUMASK.
7748
7749 2003-02-22  Kelley Cook <kelley@dwhoops.info>
7750
7751         * i386.h, i386.c, i386.md (ix86_tune): Rename from ix86_cpu.
7752         (ix86_tune_string): Rename from ix86_cpu_string.
7753
7754 2003-02-22  Kelley Cook <kelleycook@comcast.net>
7755
7756         * config/i386/i386.c: Replace "mcpu" with "mtune".
7757         * config/i386/i386.h (TARGET_OPTIONS): Likewise.
7758         (CC1_CPU_SPEC): Likewise. New warning for "-mcpu".
7759         * doc/invoke.texi (i386 and x86-64 Options): Replace "mcpu"
7760         with "mtune".  Note that "mcpu" is a deprecated synonym for "mtune".
7761
7762 2003-02-23  Andreas Schwab  <schwab@suse.de>
7763
7764         * config.gcc: Delete references to m68k/t-linux and
7765         m68k/t-linux-aout.
7766         * config/m68k/t-linux, config/m68k/t-linux-aout: Removed.
7767
7768 2003-02-22  Jan Hubicka  <jh@suse.cz>
7769
7770         * toplev.c (rest_of_compilation):  Apply fotgotten hunk
7771         of track scheduling patch.
7772
7773 2003-02-22  Jan Hubicka  <jh@suse.cz>
7774
7775         * config/linux.h (TARGET_HAS_F_SETLKW): Define.
7776         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Likewise
7777
7778 2003-02-22  Jan Hubicka  <jh@suse.cz>
7779
7780         * c-decl.c (c_expand_body_1): Fix.
7781
7782 2003-02-22  Jan Hubicka  <jh@suse.cz>
7783
7784         * expmed.c (expand_divmod): Undo sign extensions for unsigned operands
7785
7786         * cfgcleanup.c (try_forward_edges):  Don't check loop structures
7787         when not optimizing.
7788         (cleanup_cfg): Do not iterate trought delete_trivially_dead_insns
7789         when not expensive.
7790         * toplev.c (rest_of_compilation):  Duplicate loop headers only when
7791         optimizing;  Delete trivially dead insns early; fix optimize check.
7792
7793         * Makefile.in (c-decl.o, c-objc-common.o, cgraph.o, tree-inline.o): Add
7794         dependency on cgraph.h
7795         * c-decl.c: Include cgraph.h
7796         (finish_function): Update call of tree_inlinable_function_p.
7797         * c-objc-common.c: Include cgraph.h
7798         * cgraph.h: New file.
7799         * cgraphunit.c: New file.
7800         * cgraph.c (cgraph_node, cgraph_edge): Move into cgraph.h
7801         (cgraph_nodes, cgraph_n_nodes): Globalize.
7802         (cgraph_finalize_function, cgraph_finalize_compilation_unit
7803         cgraph_create_edges, cgraph_optimize, cgraph_mark_needed_node):
7804         Move into cgraphunit.c
7805         * tree-inline.c: Include cgraph.h
7806         * tree-inline.c: Include cgraph.h
7807
7808 2003-02-22  Josef Zlomek  <zlomekj@suse.cz>
7809
7810         * config/i386/i386.md: Use gen_lowpart instead of gen_rtx_REG
7811         for copying a register.
7812
7813 2003-02-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
7814
7815         PR other/3782
7816         * toplev.c (process_options): If flag_detailed_statistics is set,
7817         then set time_report as well.
7818
7819         PR c/8828
7820         * jump.c (never_reached_warning): Don't fall through BARRRIER
7821         insns.  Update comments to reflect what the function really does.
7822
7823 2003-02-21  Roger Sayle  <roger@eyesopen.com>
7824
7825         * fold-const.c (omit_one_operand): No longer static.
7826         * tree.h (omit_one_operand): Prototype here.
7827         (div_and_round_double): Keep fold-const.c prototypes together.
7828         * builtins.c (builtin_mathfn_code): Handle binary built-in
7829         funtions, such as "pow" and "atan2".
7830         (fold_builtin): Optimize both pow(x,0.0) and pow(1.0,y) to 1.0.
7831         Simplify optimizations using "type" the builtin's return type.
7832
7833 2003-02-22  Hans-Peter Nilsson  <hp@axis.com>
7834
7835         * config/cris/cris.c (cris_rtx_costs): Blockify dangling else.
7836         Fix functionalization typo.
7837
7838         * regmove.c (optimize_reg_copy_1): Do not replace a hard register
7839         in an asm.
7840
7841 2003-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7842
7843         * Makefile.in (ggc-common.o): Depend on $(PARAMS_H)
7844         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Update
7845         documentation.
7846         * ggc-common.c: Include params.h
7847         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
7848         init_ggc_heuristics): New functions.
7849         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
7850         init_ggc_heuristics): Prototype.
7851         * toplev.c (print_version):  Output GGC heuristics.
7852         (parse_options_and_default_flags): Call init_ggc_heuristics.
7853
7854 2003-02-22  Jan Hubicka  <jh@suse.cz>
7855
7856         * i386.c (def_builtin):  Special case 64bit builtins.
7857         (MASK_SSE164, MASK_SSE264): New constants.
7858         (builtin_description): Add 64bit builtins.
7859         (ix86_init_mmx_sse_builtins): Likewise.
7860         * i386.h (enum ix86_builtins): Likewise.
7861         * i386.md (cvtss2siq, cvttss2siq, cvtsd2siq, cvttsd2siq, cvtsi2sdq,
7862         sse2_movq2dq_rex64, sse2_movsq2q_rex64): New.
7863         (sse2_movq2dq, sse2_movsq2q): Disable for 64bit.
7864         * mmintrin.h (_mm_cvtsi64x_si64, _mm_set_pi64x, _mm_cvtsi64_si64x): New.
7865         * xmmintrin.h (_mm_cvtss_si64x, _mm_cvttss_si64x, _mm_cvtsi64x_ss,
7866         _mm_set_epi64x, _mm_set1_epi64x, _mm_cvtsd_si64x, _mm_cvttsd_si64x,
7867         _mm_cvtsi64x_sd, _mm_cvtsi64x_si128, _mm_cvtsi128_si64x): New.
7868
7869 2003-02-22  Jan Hubicka  <jh@suse.cz>
7870
7871         * i386.c (builtin_description): Add __builtin_ia32_paddq and
7872         __builtin_ia32_psubq. Fix __builtin_ia32_paddq128
7873          and __builtin_ia32_psubq128.
7874         * i386.h (IX86_BUILTIN_PADDQ, IX86_BUILTIN_PSUBQ): New.
7875         * i386.md (addv*, mmx_ior*, mmx_xoe*, mmx_and*): Add missing '%'.
7876         (mmx_adddi3, mmx_subdi3): New.
7877         * mmintrin.h (_mm_add_si64, _mm_sub_si64): New.
7878         * xmmintrin.h (_mm_movepi64_pi64): New.
7879         (_mm_add_epi64, _mm_sub_epi64): fix.
7880         (_mm_mul_pu16): Rename to...
7881         (_mm_mul_su32): ... this one.
7882
7883         * builtins.c (expand_builtin_expect):  Do not predict
7884         flag_guess_branch_prob is not set.
7885         * c-semantics.c (expand_stmt): Likewise.
7886         * predict.c (predict_insn): Likewise.
7887         * stmt.c (expand_continue_loop): Likewise.
7888         * toplev.c (rest_of_compilation): Do not call
7889         note_prediction_to_br_prob and note_prediction_to_br_prob
7890         when not optimizing.
7891
7892 2003-02-21  Jan Hubicka  <jh@suse.cz>
7893
7894         * cfgrtl.c (commit_edge_insertions):  Call
7895         find_many_sub_basic_block only when some code has been emitted.
7896         (commit_edge_insertions_watch_calls): Bring into sync with
7897         commit_edge_insertions
7898
7899 2003-02-21  J"orn Rennecke <joern.rennecke@superh.com>
7900
7901         * sh.h (OVERRIDE_OPTIONS): Fix code that clears 'e' register class.
7902
7903         * sh.md (binary_sf_op): Use extra constant operand instead of
7904         negating constant operand 4.
7905         * sh.c (sh_expand_binop_v2sf): Supply it.
7906
7907 2003-02-21  Zack Weinberg  <zack@codesourcery.com>
7908
7909         * cpphash.h (struct lexer_state): Add directive_wants_padding.
7910         * cpplib.c (_cpp_handle_directive): Set directive_wants_padding
7911         for directives of type INCL.
7912         (glue_header_name, parse_include): Use get_token_no_padding.
7913         * cppmacro.c (replace_args): If directive_wants_padding,
7914         provide padding tokens.
7915
7916 2003-02-21  Kazu Hirata  <kazu@cs.umass.edu>
7917
7918         * config/h8300/h8300.md (a peephole2): New.
7919
7920 2003-02-21  Jan Hubicka  <jh@suse.cz>
7921
7922         * cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting.
7923         (commit_edge_insertions): Call find_many_sub_basic_blocks
7924
7925         * reg-stack.c (convert_regs): Cleax aux for blocks.
7926
7927 2003-02-21  Jan Hubicka  <jh@suse.cz>
7928
7929         * toplev.c (parse_options_and_default_flags): Undo accidental commit.
7930
7931 2003-02-21  Glen Nakamura  <glen@imodulo.com>
7932
7933         PR optimization/8613
7934         * builtins.c (expand_builtin): Emit postincrements before expanding
7935         builtin functions.
7936
7937 2003-02-21  Ben Elliston  <bje@redhat.com>
7938
7939         PR other/5634
7940         * doc/install.texi (Configuration): Explain using $HOME instead of
7941         the ~ metacharacter when referring to home directories.
7942
7943 2003-02-20  Alexandre Oliva  <aoliva@redhat.com>
7944
7945         * configure.in (TARGET_SYSTEM_ROOT): Set default to
7946         ${exec_prefix}/${target_alias}/sys-root.  Match explicit
7947         '${exec_prefix}' (in addition to the expansion thereof) as
7948         relocatable.
7949         * configure: Rebuilt.
7950
7951 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
7952
7953         * config/h8300/h8300.md (addhi3_incdec): Change the name to
7954         *addhi3_incdec.
7955         (addsi3_incdec): Change the name to *addsi3_incdec.
7956
7957 2003-02-20  Roger Sayle  <roger@eyesopen.com>
7958
7959         * explow.c (force_reg): Avoid useless REG_EQUAL notes.
7960
7961 2003-02-20  Toon Moene  <toon@moene.indiv.nluug.nl>
7962
7963         PR fortran/9038
7964         * c-opts.c (sanitize_cpp_opts): Add Fortran front end
7965         options to be ignored.
7966         (c_common_decode_option): Ignore them when preprocessing.
7967
7968 2003-02-20  Jan Hubicka  <jh@suse.cz>
7969
7970         * toplev.c (flag_sched2_use_superblocks, flag_sched2_use_traces): New
7971         global variables.
7972         (lang_independent_options):  Add -fsched2-use-superblocks
7973         -fsced2-use-traces.
7974         (rest_of_compilation): Deal with it.
7975         * invoke.texi (-fsched2-use-traces, fsched2-use-superblocks):  Declare.
7976         * flags.h (flag_sched2_use_superblocks, flag_sched2_use_traces):
7977         Declare.
7978         * rtl.h (reg_to_stack):  Update prototype.
7979         * reg-stack.c (reg_to_stack): Return when something has changed;
7980         update liveness when executing after superblock scheduling.
7981
7982         * combine.c (simplify_shift_const):  Simplify few special cases
7983         into constants.
7984
7985 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
7986
7987         * config/rs6000/rs6000.md: (attr "type"): Add fast_compare.
7988         (add.,subf.,neg.): Change attribute to fast_compare.
7989         All DFA descriptions updated.
7990
7991 2003-02-20  Nathan Sidwell  <nathan@codesourcery.com>
7992
7993         Change base class access representation.
7994         * tree.h (TREE_VIA_PUBLIC, TREE_VIA_PROTECTED,
7995         TREE_VIA_PRIVATE): Remove.
7996         (BINFO_BASEACCESSES): New binfo elt.
7997         (BINFO_BASEACCESS): New accessor.
7998         (BINFO_ELTS): Increase.
7999         (TI_ACCESS_PUBLIC, TI_ACCESS_PROTECTED, TI_ACCESS_PRIVATE): New.
8000         (access_public_node, access_protected_node,
8001         access_private_node): New global nodes.
8002         * tree.c (build_common_tree_nodes_2): Initialize access nodes.
8003         * dbxout.c (dbxout_type): Adjust.
8004         * dwarf2out.c (gen_inheritance_die): Add access parameter.
8005         (gen_member_die): Adjust.
8006         * dwarfout.c (output_inheritance_die): ARG is array of two trees.
8007         (output_type): Adjust.
8008         * tree-dump.c (dequeue_and_dump): Adjust binfo dumping.
8009
8010         Change base class access representation. Share virtual base
8011         binfos.
8012         * cp/call.c (build_special_member_call): Remove binfo_for_vbase
8013         call.
8014         * cp/class.c (build_base_path): Likewise.
8015         (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
8016         (build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
8017         (make_new_vtable): Adjust.
8018         (force_canonical_binfo_r): Delete.
8019         (force_canonical_binfo): Delete.
8020         (mark_primary_virtual_base): Delete.
8021         (dfs_unshared_virtual_bases): Delete.
8022         (mark_primary_bases): Adjust.
8023         (maybe_warn_about_overly_private_class): Adjust.
8024         (dfs_base_derived_from): Delete.
8025         (base_derived_from): Follow the inheritance chain.
8026         (struct find_final_overrider_data): Add vpath member.
8027         (dfs_find_final_overrider): Adjust.
8028         (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
8029         (find_final_overrider): Adjust.
8030         (update_vtable_entry_for_fn): Adjust.
8031         (modify_all_vtables): Adjust.
8032         (walk_subobject_offsets): Adjust.
8033         (layout_nonempty_base_or_field): Adjust.
8034         (layout_empty_base): Remove last parameter. Adjust.
8035         (build_base_field): Adjust.
8036         (build_base_fields): Adjust.
8037         (propagate_binfo_offsets): Remove last parameter. Adjust.
8038         (dfs_set_offset_for_unshared_vbases): Delete.
8039         (layout_virtual_bases): Adjust.
8040         (finish_struct_1): Adjust.
8041         (init_class_processing): Don't init access nodes.
8042         (dfs_get_primary_binfo): Delete.
8043         (get_primary_binfo): Adjust.
8044         (dump_class_hierarchy_r): Remove most derived arg, add IGO
8045         parameter. Adjust.
8046         (dump_class_hierarchy): Adjust.
8047         (finish_vtbls): Adjust.
8048         (get_original_base): Delete.
8049         (build_vtt_inits): Adjust.
8050         (dfs_build_secondary_vptr_vtt_inits): Adjust.
8051         (dfs_ctor_vtable_bases_queue_p): Adjust.
8052         (build_ctor_vtbl_group): Adjust.
8053         (dfs_accumulate_vtbl_inits): Adjust.
8054         (build_vtbl_initializer): Adjust.
8055         (build_vbase_offset_vtbl_entries): Adjust.
8056         (add_vcall_offset_vtbl_entries_1): Adjust.
8057         * cp/cp-tree.h (CPTI_ACCESS_*): Remove.
8058         (access_*_node): Remove.
8059         (CANONICAL_BINFO): Delete.
8060         (BINFO_UNSHARED_MARKED): Remove.
8061         (BINFO_MARKED): Set LANG_FLAG_0 directly.
8062         (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
8063         (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
8064         (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
8065         Delete.
8066         (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
8067         (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
8068         (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
8069         Delete.
8070         (BINFO_DEPENDENT_BASE_P): New.
8071         (dfs_walk, dfs_walk_real): Queue function takes derived binfo and
8072         index.
8073         (markedp, unmarkedp): Adjust.
8074         (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
8075         dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
8076         find_vbase_instance, binfo_for_vbase): Delete.
8077         (copied_binfo, original_binfo): Declare.
8078         (finish_base_specifier): Add virtual_p arg.
8079         (unshare_base_binfos): Delete.
8080         (copy_base_binfos): Declare.
8081         (reverse_path): Delete.
8082         * cp/decl.c (xref_basetypes): Access and virtuality passed
8083         differently. Don't copy direct base binfos here. Call
8084         copy_base_binfos.
8085         * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
8086         (initialize_vtbl_ptrs): Adjust.
8087         (expand_member_init): Adjust.
8088         * cp/parser.c (cp_parser_base_specifier): Adjust.
8089         * cp/pt.c (instantiate_class_template): Adjust.
8090         (get_template_base_recursive): Adjust.
8091         * cp/rtti.c (get_pseudo_ti_init): Adjust.
8092         (get_pseudo_ti_desc): Adjust.
8093         * cp/tree.c (unshare_base_binfos): Rename to ...
8094         (copy_base_binfos): ... here, reimplement.
8095         (make_binfo): Set BINFO_DEPENDENT_BASE_P.
8096         (reverse_path): Remove.
8097         * cp/typeck.c (get_delta_difference): Adjust error messages.
8098         * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
8099         * cp/search.c (lookup_base_r): Adjust.
8100         (dynamic_cast_base_recurse): Adjust.
8101         (canonical_binfo): Remove.
8102         (dfs_canonical_queue): Remove.
8103         (dfs_assert_unmarked_p): Remove.
8104         (assert_canonical_unmarked): Remove.
8105         (shared_marked_p, shared_unmarked_p): Remove.
8106         (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
8107         (dfs_access_in_type): Adjust.
8108         (access_in_type): Adjust.
8109         (dfs_accessible_queue_p): Adjust.
8110         (dfs_accessible_p): Adjust.
8111         (is_subobject_of_p_1, is_subobject_of_p): Remove.
8112         (struct lookup_field_info): Remove from_dep_base_p field.
8113         (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
8114         (lookup_field_r): Remove dependent base code.
8115         (lookup_member): Likewise.
8116         (dfs_walk, dfs_walk_real): Add access arg to queue fn.
8117         (dfs_unmarked_real_bases_queue_p): Remove.
8118         (dfs_marked_real_bases_queue_p): Remove.
8119         (dfs_skip_vbases): Remove.
8120         (dfs_get_pure_virtuals): Adjust.
8121         (markedp, unmarkedp): Adjust.
8122         (marked_vtable_pathp, unmarked_vtable_pathp): Remove.
8123         (marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
8124         (dfs_unmark): Adjust.
8125         (dfs_get_vbase_types):Remove.
8126         (dfs_build_inheritance_graph_order): Remove.
8127         (get_vbase_types): Remove
8128         (dfs_find_vbase_instance): Remove.
8129         (find_vbase_instance): Remove.
8130         (dfs_debug_unmarkedp): Adjust.
8131         (dependent_base_p): Remove.
8132         (dfs_push_type_decls): Adjust.
8133         (dfs_push_decls): Adjust.
8134         (dfs_no_overlap_yet): Adjust.
8135         (copied_binfo): New function.
8136         (original_binfo): New function.
8137         (binfo_for_vbase): Remove.
8138
8139         Change base class access representation.
8140         * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
8141         (add_interface_do): Likewise.
8142
8143 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
8144
8145         * config/rs6000/sysv4.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8146         * config/rs6000/power4.md (power4-store,power4-vecstore): New
8147         insn reservations.
8148         (power4-fpstore): Compact.
8149
8150 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8151
8152         * config/h8300/h8300.md (*iorsi3_w): New.
8153
8154 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
8155
8156         * combine.c (distribute_notes): Kill REG_EXEC_COUNT.
8157         * rtl.c (reg_note_name): Likewise.
8158         * rtl.h (enum reg_note): Likewise.
8159         * doc/invoke.texi: Likewise.
8160         * doc/rtl.texi: Likewise.
8161
8162 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
8163
8164         * bb-reorder.c (find_traces_1_round): Fix comment typo.
8165
8166 2003-02-19  Roger Sayle  <roger@eyesopen.com>
8167
8168         * fold-const.c (fold_real_zero_addition_p): Don't fold a zero
8169         addition in the presence of signaling NaNs.
8170
8171 2003-02-19  Krister Walfridsson  <cato@df.lth.se>
8172
8173         * tm.texi (INIT_CUMULATIVE_ARGS): Fix typo.
8174
8175 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8176
8177         * config/h8300/h8300.c (output_logical_op): Optimize or.l when
8178         ORing with 0xffff??00 with the highest bit of the ?? part set.
8179         (compute_logical_op_length): Update.
8180         (compute_logical_op_cc): Likewise.
8181
8182 2003-02-19  Josef Zlomek  <zlomekj@suse.cz>
8183
8184         * bb-reorder.c (find_traces_1_round): Fixed condition for small
8185         destination block with multiple predecessors.
8186         (connect_traces): Check whether the block is a start of trace.
8187
8188 2003-02-19  Jan Hubicka  <jh@suse.cz>
8189
8190         * calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGS
8191         * function.c (assign_params): Likewise.
8192         * arm-protos.h (arm_init_cumulative_args): Update prototype.
8193         * arm.c (arm_init_cumulative_args): Update function.
8194         * arm.h (INIT_CUMULATIVE_ARGS): Update.
8195         * avr-protos.h (init_cumulative_args): Update prototype.
8196         * avr.c (init_cumulative_args): Update function.
8197         * avr.h (INIT_CUMULATIVE_ARGS): Update.
8198         * d30v-protos.h (d30v_init_cumulative_args): Update prototype.
8199         * d30v.c (d30v_init_cumulative_args): Update function.
8200         * d30v.h (INIT_CUMULATIVE_ARGS): Update.
8201         * frv-protos.h (frv_init_cumulative_args): Update prototype.
8202         * frv.c (frv_init_cumulative_args): Update function.
8203         * frv.h (INIT_CUMULATIVE_ARGS): Update.
8204         * mips.c (mips_expand_prolgue): Update call of INIT_CUMULATIVE_ARGS.
8205         * pa.h (INIT_CUMULATIVE_ARGS): Update.
8206         * sparc-protos.h (init_cumulative_args): Update prototype.
8207         * sparc.c (init_cumulative_args): Update function.
8208         * sparc.h (INIT_CUMULATIVE_ARGS): Update.
8209         * tm.texi (INIT_CUMULATIVE_ARGS): Update documentation.
8210
8211 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8212
8213         * config/h8300/h8300.md (*iorsi3_two_qi_sext): New.
8214         (*ashiftsi_sextqi_7): Likewise.
8215
8216 2003-02-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8217
8218         * config/mips/iris6.h (TARGET_OS_CPP_BUILTINS): Define __c99 for
8219         ISO C99 and C++.
8220
8221         * fixinc/inclhack.def (irix___restrict): Don't change __restrict
8222         for C++ on IRIX 6.5.1[89].
8223         * fixinc/tests/base/internal/sgimacros.h: New file.
8224
8225         * fixinc/inclhack.def (irix_wcsftime): Use XPG5 variant for C99.
8226         * fixinc/tests/base/internal/wchar_core.h: New file.
8227
8228         * fixinc/inclhack.def (irix_socklen_t): Fix broken IRIX 6.5.1[78]
8229         socklen_t definition.
8230         * fixinc/fixincl.x: Regenerate.
8231         * fixinc/tests/base/sys/socket.h: New file.
8232         Fixes PR libgcj/9652.
8233
8234 2003-02-19  Jan Hubicka  <jh@suse.cz>
8235
8236         * i386.md (movsfcc_1, movdfcc_1): Fix constrains.
8237
8238 2003-02-19  David Edelsohn  <edelsohn@gnu.org>
8239
8240         * config/rs6000/rs6000.c (rs6000_override_options): Initialize
8241         align_jumps_max_skip and align_loops_max_skip.
8242
8243 2003-02-19  Thierry Moreau  <thierry.moreau@connotech.com>
8244
8245         * config/rs6000/rs6000.c (rs6000_encode_section_info): Do not
8246         test size if named section.
8247
8248 2003-02-19  Daniel Jacobowitz  <drow@mvista.com>
8249
8250         * expr.c (expand_expr): Use gen_int_mode for the argument
8251         to gen_rtx_MULT.
8252
8253 2003-02-19  Jan Hubicka  <jh@suse.cz>
8254
8255         * i386.md (cosxf2):  Fix conditional.
8256
8257 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8258
8259         * config/h8300/h8300.md (extendqisi2): Change to an expander.
8260         (*extendqisi2_h8300): New.
8261         (*extendqisi2_h8300hs): Likewise.
8262
8263 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8264
8265         * config/h8300/h8300-protos.h: Update the prototype for
8266         split_adds_subs.  Remove the prototypes for
8267         const_int_le_2_operand and const_int_le_6_operand.
8268         * config/h8300/h8300.c (split_adds_sub): Don't output inc/dec.
8269         (const_int_le_2_operand): Remove.
8270         (const_int_le_6_operand): Likewise.
8271         * config/h8300/h8300.h (PREDICATE_CODES): Remove the entries
8272         for const_int_le_2_operand and const_int_le_6_operand.
8273         * config/h8300/h8300.md: Update all uses of split_adds_subs.
8274         (a peephole2): New.
8275
8276 2003-02-18  Jan Hubicka  <jh@suse.cz>
8277
8278         * cgraph.c (NPREDECESORC, SET_NPREDECESORS): Kill.
8279         (cgraph_expand_function): Rewrite.
8280
8281 2003-02-18  Matt Austern <austern@apple.com>
8282
8283         * toplev.c, langhooks.c, langhooks-def.h: Move
8284         write_global_declarations from toplev.c to langhooks.c.
8285
8286 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8287
8288         * config/h8300/h8300.c (general_operand_src): Always check
8289         MODE.
8290         (general_operand_dst): Likewise.
8291
8292 2003-02-18  Roger Sayle  <roger@eyesopen.com>
8293
8294         * convert.c (convert_to_real): Also optimize (float)log(x) into
8295         logf(x) where x is a float, i.e. also handle BUILT_IN_LOG{,L}.
8296
8297 2003-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
8298
8299         * config/sh/sh.c (unspec_caller_rtx_p): New.
8300         (sh_cannot_copy_insn_p): New.
8301         (TARGET_CANNOT_COPY_INSN_P): New.
8302
8303 2003-02-18  Richard Henderson  <rth@redhat.com>
8304
8305         * c-common.c (handle_used_attribute): Accept static data too.
8306
8307 2003-02-18  Nick Clifton  <nickc@redhat.com>
8308             Aldy Hernandez  <aldyh@redhat.com>
8309
8310         * testsuite/gcc.dg/20030218-1.c: New.
8311
8312         * doc/tm.texi: Document TARGET_VECTOR_TYPES_COMPATIBLE.
8313
8314         * target-def.h (TARGET_INITIALIZER): Add
8315         TARGET_VECTOR_TYPES_COMPATIBLE.
8316         (TARGET_VECTOR_TYPES_COMPATIBLE): New macro.
8317
8318         * target.h (struct gcc_target): Add field vector_types_compatible.
8319
8320         * c-typeck.c (comptypes): Take into account
8321         TARGET_VECTOR_TYPES_COMPATIBLE.
8322         (convert_for_assignment): Same.
8323
8324         * config/rs6000/rs6000.c (is_ev64_opaque_type): New.
8325         (rs6000_spe_vector_types_compatible): New.
8326         (TARGET_VECTOR_TYPES_COMPATIBLE): Define.
8327
8328 2003-02-19  Andreas Schwab  <schwab@suse.de>
8329
8330         * Makefile.in (toplev.o): Depend on $(LANGHOOKS_DEF_H).
8331         * toplev.c: Include langhooks-def.h.
8332
8333 2003-02-18  Chris Demetriou  <cgd@broadcom.com>
8334
8335         * config/mips/mips.h (enum processor_type): Sort entries
8336         alphabetically.
8337         * config/mips/mips.md (define_attr cpu): Sync with processor_type
8338         enum values, including adding entries that were missing.
8339
8340 2003-02-18  J"orn Rennecke <joern.rennecke@superh.com>
8341
8342         * sh.c (calc_live_regs): Also check GET_CODE when checking if
8343         initial value for PR_REG is still the PR_REG register.
8344
8345 2003-02-18  Jim Wilson  <wilson@redhat.com>
8346
8347         * config/ia64/ia64.md (floatdidf2, floatdisf2): Add %, before second
8348         instruction in output template.
8349         (bsp_value): Change output template from string to C code, add %,
8350         before actual instruction.
8351         (flushrs): Mark as not predicable.
8352
8353 2003-02-18  Krister Walfridsson  <cato@df.lth.se>
8354
8355         * inclhack.def (netbsd_bogus_semicolon): New fix.
8356         * fixincl.x: Rebuilt.
8357         * tests/base/ctype.h: Update.
8358
8359 2003-02-18  Roger Sayle  <roger@eyesopen.com>
8360
8361         * fold-const.c (negate_expr_p): New function to determine whether
8362         an expression can be negated cheaply.
8363         (fold) [MINUS_EXPR]: Use it to determine whether to transform
8364         -A - B into -B - A for floating point types.
8365
8366 2003-02-18  Roger Sayle  <roger@eyesopen.com>
8367
8368         * sbitmap.c (sbitmap_resize): New function.
8369         * sbitmap.h (sbitmap_resize): Prototype here.
8370         * recog.c (split_all_insns): Use sbitmap_resize.
8371
8372 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8373
8374         * config/h8300/h8300.md (*zero_extendhisi2_h8300): Fix the
8375         insn length.
8376         (extendqisi2): Likewise.
8377         (*extendhisi2_h8300): Likewise.
8378
8379 2003-02-18  Matt Austern <austern@apple.com>
8380
8381         * langhooks.h, langhooks-def.h: introduce new langhook,
8382         final_write_globals, with write_global_declarations as default.
8383         * toplev.c: Move invocation of wrapup_global_declarations from
8384         compile_file to new function, write_global_declarations.  Change
8385         compile_file to use final_write_globals hook.  Change
8386         wrapup_global_declarations so writing to DECL_DEFER_OUTPUT is
8387         conditional.
8388
8389 2003-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8390
8391         * pa.md: Correct and enhance comment.
8392
8393 2003-02-18  Geoffrey Keating  <geoffk@apple.com>
8394
8395         * gcc.c (validate_switches): Don't scan past closing '}'.
8396
8397 2003-02-18  Ben Elliston  <bje@redhat.com>
8398
8399         PR c++/1607
8400         * doc/extend.texi (Function Attributes): Document the effect of
8401         the C++ "this" parameter on the counting of arguments for the
8402         "format" and "format_arg" attributes.
8403
8404 2003-02-17  Aldy Hernandez  <aldyh@redhat.com>
8405
8406         * config/rs6000/spe.h (__ev_stdd): Cast 2nd arg.
8407         (__ev_stdw): Same.
8408         (__ev_stdh): Same.
8409
8410 2003-02-17  Jan Hubicka  <jh@suse.cz>
8411
8412         * recog.c (split_all_insns):  Fix memory overflow.
8413
8414 2003-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8415
8416         * config/h8300/h8300.md (cmpqi): Remove mode from compare.
8417         (cmphi): Likewise.
8418         (*cmphi_h8300): Likewise.
8419         (*cmphi_h8300hs): Likewise.
8420         (cmpsi): Likewise.
8421         (7 peephole2): Likewise.
8422
8423 2003-02-16  Jan Hubicka  <jh@suse.cz>
8424
8425         * c-typeck.c (build_c_cast):  Fold constant variables into
8426         initial values.
8427
8428 2003-02-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8429
8430         * doc/install.texi (Specific): Fix link for m68k-att-sysv.
8431         (Binaries): Ditto for Sinix/Reliant Unix.
8432
8433 2003-02-16 Richard Earnshaw  <rearnsha@arm.com>
8434
8435         * arm.c (arm_reload_in_hi): Ensure that the scratch register does
8436         not overlap the final result register.
8437
8438 2003-02-16 Arend Bayer <arend.bayer@web.de>
8439            Richard Henderson  <rth@redhat.com>
8440
8441         PR c/8068
8442         * fold-const.c (extract_muldiv_1): Rename from extract_muldiv;
8443         rearrange mult arguments for less recursion.
8444         (extract_muldiv): New.  Prevent runaway recursion.
8445
8446 2003-02-16  Danny Smith  <dannysmith@users.sourceforge.net>
8447
8448         * config/i386/cygwin.h (TARGET_SUBTARGET_DEFAULT): Set
8449         MASK_ALIGN_DOUBLE.
8450
8451 2003-02-15  Roger Sayle  <roger@eyesopen.com>
8452
8453         * config/i386/i386.c (x86_ext_80387_constants): Use 80387 insns
8454         to load mathematical constants on K6, Athlon, Pentium 4 and PPro.
8455         (ext_80387_constants_table): Global table of 80387 special constants
8456         guarded by ext_80387_constants_init flag when not initialized.
8457         (init_ext_80387_constants): New function to initialize this table.
8458         (standard_80387_constant_p): Extend to recognize extra 80387
8459         constants, in XFmode, on processors where this is a win.
8460         (standard_80387_constant_opcode): New function to return the
8461         opcode associated with standard_80387_constant_p.
8462         (standard_80387_constant_rtx): New function to return the XFmode
8463         CONST_DOUBLE associated with standard_80387_constant_p.
8464         (ix86_rtx_costs): Give the new constants the same cost as 1.0.
8465
8466         * config/i386/i386-protos.h (standard_80387_constant_opcode):
8467         Prototype here.
8468         (standard_80387_constant_rtx): Likewise.
8469
8470         * config/i386/i386.md (*movsf1, *movsf1_nointerunit, *movdf_nointeger,
8471         *movdf_integer, *movxf_nointeger, *movtf_nointeger, *movxf_integer,
8472         *movtf_integer): Simplify using new standard_80387_constant_opcode.
8473
8474 2003-02-15  Geoffrey Keating  <geoffk@apple.com>
8475
8476         * doc/invoke.texi (Optimize Options): Correct @option syntax.
8477
8478 2003-02-15  Richard Henderson  <rth@redhat.com>
8479
8480         * Makefile.in (cfglayout.o): Depend on TARGET_H.
8481         * cfglayout.c: Include target.h.
8482         (cfg_layout_can_duplicate_bb_p): Check targetm.cannot_copy_insn_p.
8483         * target-def.h (TARGET_CANNOT_COPY_INSN_P): New.
8484         * target.h (struct gcc_target): Add cannot_copy_insn_p.
8485
8486         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): New.
8487         (TARGET_CANNOT_COPY_INSN_P): New.
8488         (override_options): Revert 2003-02-08 hack.
8489
8490 2003-02-15  Richard Henderson  <rth@redhat.com>
8491
8492         * gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs.
8493         (bypass_conditional_jumps): Accept computed_jump_p insns as well.
8494
8495 2003-02-15  David Edelsohn  <edelsohn@gnu.org>
8496
8497         * config/rs6000/rs6000.h (processor_type): Add PPC440.
8498         * config/rs6000/rs6000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
8499         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
8500         TARGET_SCHED_VARIABLE_ISSUE): Define.
8501         (rs6000_use_dfa_pipeline_interface): New function.
8502         (rs6000_multipass_dfa_lookahead): New Function.
8503         (rs6000_variable_issue): New function.
8504         (rs6000_adjust_cost): Add CMP and DELAYED_CR types.
8505         (rs6000_issue_rate): Add PPC440.
8506         * config/rs6000/rs6000.md (unspec list): Correct typo.
8507         (attr "type"): Add load_ext, load_ext_u, load_ext_ux, load_u,
8508         store_ux, store_u, fpload_ux, fpload_u, fpstore_ux, fpstore_u,
8509         cmp, delayed_cr, mfcr, mtcr.
8510         (automata_option): Set "ndfa".
8511         (extendMMNN2): Update attributes.
8512         (movcc_internal1): Discourage move to non-cr0.  Update
8513         attributes.
8514         (movMM_update): Update attributes.
8515         (cmpMM_internal): Update attributes.
8516         (sCC CR materialization): Update attributes.
8517         (branch patterns): Do not discourage non-cr0.
8518         (cr logical patterns): Prefer destructive register allocation.
8519         Update attributes.
8520         (movesi_from_cr): Update attribute.
8521         (mtcrf_operation): Update attribute.
8522         (mtcrfsi): Update attribute.
8523         * config/rs6000/40x.md: New file.
8524         * config/rs6000/603.md: New file.
8525         * config/rs6000/6xx.md: New file.
8526         * config/rs6000/7450.md: New file.
8527         * config/rs6000/7xx.md: New file.
8528         * config/rs6000/mpc.md: New file.
8529         * config/rs6000/power4.md: New file.
8530         * config/rs6000/rios1.md: New file.
8531         * config/rs6000/rios2.md: New file.
8532         * config/rs6000/rs64.md: New file.
8533         [Some DFA descriptions based on work by Michael Hayes]
8534
8535 2003-02-15  Richard Henderson  <rth@redhat.com>
8536
8537         * bb-reorder.c (find_traces_1_round): Don't connect easy to copy
8538         successors with multiple predecessors.
8539         (connect_traces): Try harder to copy traces of length 1.
8540
8541         * function.h (struct function): Add computed_goto_common_label,
8542         computed_goto_common_reg.
8543         * function.c (free_after_compilation): Zap them.
8544         * stmt.c (expand_computed_goto): Use them to produce one
8545         indirect branch per function.
8546
8547 2003-02-15  Richard Henderson  <rth@redhat.com>
8548
8549         * cfgcleanup.c: Include params.h.
8550         (try_crossjump_bb): Use PARAM_MAX_CROSSJUMP_EDGES.  Fix test for
8551         too many outgoing edges from a block.
8552         * Makefile.in (cfgcleanup.o): Depend on PARAMS_H.
8553         * params.def (max-crossjump-edges): New.
8554         * doc/invoke.texi: Document it.
8555
8556 2003-02-15  Richard Henderson  <rth@redhat.com>
8557
8558         * recog.c (split_all_insns): Include new blocks in life update;
8559         do a global life update.
8560
8561 2003-02-15  Danny Smith  <dannysmith@users.sourceforge.net>
8562
8563         * config/i386/mingw32.h (LIBGCC_SPEC): Add libmingwex.a.
8564         Update copyright.
8565         * config/i386/cygwin.h (LIBGCC_SPEC): Add libmingwex.a for
8566         -mno-cygwin case.
8567
8568 2003-02-14  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
8569
8570         PR optimization/7702
8571         * reload1.c (reload_cse_simplify_set): Honor
8572         CANNOT_CHANGE_MODE_CLASS.
8573
8574 2003-02-14  Alexandre Oliva  <aoliva@redhat.com>
8575
8576         * config/mn10300/mn10300.c (mn10300_wide_const_load_uses_clr): New
8577         function.
8578         * config/mn10300/mn10300-protos.h: Declare it.
8579         * config/mn10300/mn10300.md (movdi, movdf): Use it to compute
8580         attribute cc of instructions that may use clr.
8581
8582 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
8583
8584         * simplify-rtx.c (simplify_binary_operation): Simplify ~y when
8585         (x - (x & y)) is found.
8586
8587 2003-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8588
8589         * configure.in: Fix typo.
8590         * configure: Regenerate.
8591
8592 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
8593
8594         * config/h8300/h8300.md (*iorsi2_and_1_lshiftrt_1): New.
8595
8596 2003-02-13  Adam Nemet  <anemet@lnxw.com>
8597
8598         PR opt/2391
8599         * combine.c: Fix spelling in comment.
8600         (cached_nonzero_bits): New function.
8601         (cached_num_sign_bit_copies): New function.
8602         (nonzero_bits_with_known): New macro.
8603         (num_sign_bit_copies_with_known): New macro.
8604         (nonzero_bits1): Rename from nonzero_bits.  Add three new
8605         arguments.  Change calls from nonzero_bits to
8606         nonzero_bits_with_known.
8607         (num_sign_bit_copies1): Rename from num_sign_bit_copies.  Add
8608         three new arguments.  Change calls from num_sign_bit_copies to
8609         num_sign_bit_copies_with_known.
8610         (nonzero_bits): New macro.
8611         (num_sign_bit_copies): New macro.
8612         (update_table_tick): Don't traverse identical subexpression more
8613         than once.
8614         (get_last_value_validate): Likewise.
8615
8616 2003-02-13  Zack Weinberg  <zack@codesourcery.com>
8617
8618         * emit-rtl.c (init_emit): Use ggc_alloc for regno_reg_rtx.
8619         * function.h (struct emit_status): Length of regno_pointer_align
8620         and x_regno_reg_rtx as seen by gengtype is only x_reg_rtx_no,
8621         not regno_pointer_align_length (i.e. length actually used, not
8622         length as allocated)
8623
8624         * config/i386/i386.c (struct stack_local_entry): New.
8625         (struct machine_function): Replace huge array with alist.
8626         (assign_386_stack_local): Change to match.
8627
8628 2003-02-13  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
8629
8630         * inclhack.def (hpux_long_double): Tighten select and add bypass
8631         regexp.
8632         * fixincl.x: Rebuilt.
8633
8634 2003-02-13  Josef Zlomek  <zlomekj@suse.cz>
8635
8636         * cfgcleanup.c (outgoing_edges_match): When there is single outgoing
8637         edge and block ends with a jump insn it must be simple jump.
8638
8639 2003-02-13  Daniel Jacobowitz  <drow@mvista.com>
8640
8641         * Makefile.in (PREPROCESSOR_DEFINES): Add
8642         @TARGET_SYSTEM_ROOT_DEFINE@.
8643         * configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot
8644         is specified or if building a cross compiler.
8645         (TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE
8646         if the sysroot is under $exec_prefix.
8647         * configure: Regenerated.
8648         * cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is
8649         defined.
8650         (struct default_include): Add add_sysroot field.
8651         (cpp_SYSROOT): Declare.
8652         * cppdefault.c (cpp_include_defaults): Fill in add_sysroot
8653         field.
8654         (cpp_SYSROOT): New variable.
8655         * cppinit.c (cpp_create_reader): Initialize
8656         CPP_OPTION (pfile, sysroot).
8657         (init_standard_includes): Handle add_sysroot.  Do not
8658         add unrelocated copies of relocated directories.
8659         (COMMAND_LINE_OPTIONS): Add -isysroot.
8660         (cpp_handle_option): Handle -isysroot.
8661         * cpplib.h (struct cpp_options): Add sysroot member.
8662         * gcc.c (The Specs Language): Update description of %I.
8663         (target_system_root_changed): New variable.
8664         (process_command): Conditionalize make_relative_prefix call
8665         on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE.  Set
8666         target_system_root_changed.
8667         (do_spec_1): Add -isysroot to %I.
8668         * doc/invoke.texi (Spec Files): Update description of %I.
8669         * doc/install.texi (--with-sysroot): Update comment about
8670         relocation.
8671
8672 2003-02-13  Kazu Hirata  <kazu@cs.umass.edu>
8673
8674         * config/h8300/h8300.md (a peephole2): New.
8675
8676 2003-02-13  Robert Lipe <robertlipe@usa.net>
8677             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8678
8679         * doc/install.texi (Specific): Update three SCO-related URLs.
8680
8681 2003-02-13  Andreas Schwab  <schwab@suse.de>
8682
8683         * cgraph.c (SET_NPREDECESORS): Add intermediate cast to size_t.
8684         Parenthesize properly.
8685         (NPREDECESORS): Parenthesize properly.
8686
8687 2003-02-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8688
8689         * timevar.h (POP_TIMEVAR_AND_RETURN): New macro.
8690
8691 2003-02-12  Roger Sayle  <roger@eyesopen.com>
8692
8693         * config/i386/i386.md (UNSPEC_FPATAN): New UNSPEC constant.
8694         (atan2sf3, atan2df3, atan2xf3, atan2tf3): New patterns.
8695
8696         * reg-stack.c (subst_stack_regs_pat): Add support for binary
8697         UNSPEC instructions (e.g. "fpatan").
8698
8699 2003-02-12  Mike Stump  <mrs@apple.com>
8700
8701         * varray.c (element_size): Remove.
8702         (uses_ggc): Remove.
8703         (element): Add.
8704         (varray_init): Use new interface.
8705         (varray_grow): Use new interface.
8706         (varray_clear): Use new interface.
8707
8708 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
8709
8710         * config/rs6000/spe.h: Add casts to the arguments of the following
8711         macros: evfsabs, evfsnabs, evfsneg, evfsadd, evfssub, evfsmul,
8712         evfsdiv, evfscfui, evfscfsi evfscfuf evfscfsf, evfsctui, evfsctsi,
8713         evfsctuf, evfsctsf, evfsctuiz, evfsctsiz, __ev_get_upper*,
8714         __ev_get_lower*, __ev_get_u32, __ev_get_s32, __ev_get_fs,
8715         __ev_get_u16, __ev_get_s16.
8716
8717 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
8718
8719         * config/h8300/h8300.md (a peephole2): New.
8720
8721 2003-02-12  Jan Hubicka  <jh@suse.cz>
8722
8723         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-unit-at-a-time
8724         (OBJS): Add callgraph.o
8725         (callgraph.o): New.
8726         * c-decl.c (expand_body_1): Break out from ...
8727         (expand_body): This one;  change calling convention
8728         (finish_function): Move some of expand_body logic here.
8729         (c_expand_deferred_function): Update call of expand_body
8730         (c_expand_stmt): Use c_expand_body_1.
8731         * c-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
8732         * c-objc-commin.c (c_objc_common_finish_file): Use callgraph code.
8733         * c-tree.h (c_expand_body): Declare.
8734         * callgraph.c: New file.
8735         * flags.h (flag_unit_at_a_time): Declare.
8736         * langhooks.h (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION,
8737         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,
8738         LANG_HOOKS_CALLGRAPH_INITIALIZER): New macros.
8739         * langhooks.h (struct lang_hooks_for_callgraph): New.
8740         (struct lang_hooks): Add callgraph field.
8741         * toplev.c (flag_unit_at_a_time): New.
8742         (lang_independent_options): Add flag_unit_at_a_time.
8743         (process_options): Disable unit-at-a-time mode for frontends not
8744         supporting callgraph.
8745         * tree-inline.c (typedef struct inline_data): Add "decl"
8746         (expand_call_inline): Update callgraph.
8747         (optimize_inline_calls): Set id.decl.
8748         * tree.h (cgraph_finalize_function, cgraph_finalize_compilation_unit,
8749         cgraph_create_edges, dump_cgraph, cgraph_optimize, cgraph_remove_call
8750         cgraph_calls_p): Declare.
8751         * invoke.texi (-funit-at-a-time): Document
8752
8753 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
8754
8755         * config/rs6000/spe.h: Fix misc formatting.
8756         (__ev_create_ufix32_fs): Cast ev argument.
8757         (__ev_create_sfix32_fs): Same.
8758         (__ev_get_sfix32_fs_internal): Cast arguments to builtins.
8759         (__ev_get_ufix32_fs_internal): Same.
8760
8761 2003-02-12  Ranjit Mathew  <rmathew@hotmail.com>
8762
8763         * doc/tm.texi (MODIFY_JNI_METHOD_CALL): Document.
8764         * config/i386/cygwin.h (MODIFY_JNI_METHOD_CALL): New macro.
8765
8766 2003-02-12  Zack Weinberg  <zack@codesourcery.com>
8767
8768         * cpplib.c (do_include_common): Move warnings for
8769         #include_next and #import out to callers.  Use early-return
8770         instead of nested ifs.  Don't do check_eol here.
8771         (parse_include): Do check_eol here with the rest of the
8772         parsing stuff.
8773         (do_include_next, do_import): Now handle warnings.
8774
8775 2003-02-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8776
8777         * doc/install.texi (Specific): Update AVR- and Darwin-related URLs.
8778
8779 2003-02-12  Jan Hubicka  <jh@suse.cz>
8780
8781         * predict.c (estimate_probability):  Fix roundoff error.
8782
8783 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
8784
8785         * config/h8300/h8300.md (a peephole2): Don't handle 65535.
8786         (two peephole2): New.
8787
8788 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
8789
8790         * config/h8300/h8300.md (several peephole2): Replace
8791         find_regno_note with peep2_reg_dead_p.
8792
8793 2003-02-11  Richard Henderson  <rth@redhat.com>
8794
8795         * gcse.c (lookup_set): Remove unused argument PAT.  Update
8796         both callers.
8797
8798 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
8799
8800         * diagnostic.c (real_abort): New.
8801         (diagnostic_report_diagnostic): Call real_abort on error.
8802         * diagnostic.h (diagnostic_abort_on_error): New.
8803         (struct diagnostic_context): Add abort_on_error field.
8804         * toplev.c (setup_core_dumping): New.
8805         (decode_d_option): Handle 'H' case.
8806         * doc/invoke.texi (Debugging Options): Document -dH.
8807
8808 2003-02-11  Nathanael Nerode  <neroden@gcc.gnu.org>
8809
8810         * Makefile.in: Remove pointless setting of CXXFLAGS for dejagnu
8811         which refers to obsolete directories.
8812
8813 2003-02-11  Richard Henderson  <rth@redhat.com>
8814
8815         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): New.
8816
8817 2002-10-21  Jan Hubicka  <jh@suse.cz>
8818
8819         * i386.c (contains_128bit_aligned_vector_p): New function.
8820         (ix86_function_arg_boundary): Properly align vector modes.
8821
8822 2003-02-11  Bob Wilson  <bob.wilson@acm.org>
8823
8824         * config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7.
8825         * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP
8826         as a SET pattern.
8827
8828 2003-02-11  Roger Sayle  <roger@eyesopen.com>
8829
8830         * builtins.c:  Fix failure caused by commiting wrong patch.
8831
8832 2003-02-11  Dale Johannesen  <dalej@apple.com>
8833         * ra-build.c (compare_and_free_webs):  Relax checking.
8834         * config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME):  Define.
8835         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):  Define.
8836
8837 2003-02-11  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
8838
8839         PR optimization/9651
8840         * rtlanal.c (may_trap_p): Handle FIX.
8841
8842 2003-02-11  Dave Jones <davej@codemonkey.org.uk>
8843
8844         * config/i386/i386.c (override_options): Define c3-2 as a 686 with SSE.
8845         * doc/invoke.texi: Extra alias.
8846
8847 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
8848
8849         * config/rs6000/host-darwin.c: Fix comment.
8850
8851 2003-02-11  David Edelsohn  <edelsohn@gnu.org>
8852
8853         * config/rs6000/rs6000.md (divmodsi4): Use register_operand
8854         predicate for mod result.
8855
8856 2003-02-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8857
8858         * inclhack.def (hpux_long_double, hpux10_ctype_declarations1,
8859         hpux10_ctype_declarations2, hpux_ctype_macros): New hacks.
8860         * fixincl.x: Rebuilt.
8861         * tests/base/stdlib.h: Update.
8862         * tests/base/ctype.h: New file.
8863
8864 2003-02-11  Jan Hubicka  <jh@suse.cz>
8865
8866         * emit-rtl.c (emit_copy_of_insn_after): Copy insn recog cache too.
8867
8868 2003-02-11  Richard Henderson  <rth@redhat.com>
8869
8870         * config/i386/i386.c (ix86_expand_movstr): Fail if esi or edi
8871         appropriated as globals.
8872         (ix86_expand_clrstr): Similarly.
8873         * config/i386/i386.md (cmpstrsi): Similarly.
8874
8875 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
8876
8877         * config/h8300/h8300.md (a peephole2): Add a case of 255.
8878
8879 2003-02-11  Roger Sayle  <roger@eyesopen.com>
8880
8881         * optabs.h (enum optab_index): Add new OTI_pow and OTI_atan2.
8882         (pow_optab, atan2_optab): Define corresponding macros.
8883         * optabs.c (init_optabs): Initialize pow_optab and atan2_optab.
8884         * genopinit.c (optabs): Implement pow_optab and atan2_optab
8885         using pow?f3 and atan2?f3 patterns.
8886         * builtins.c (expand_errno_check): New function to update errno
8887         if necessary, split out from expand_builtin_mathfn.
8888         (expand_builtin_mathfn): Use expand_errno_check.
8889         (expand_builtin_mathfn_2): New function to handle expanding binary
8890         math functions, reusing the code in expand_errno_check.
8891         (expand_builtin): Handle the pow and atan2 math built-ins,
8892         BUILT_IN_{POW,POWF,POWL,ATAN2,ATAN2F,ATAN2L} via the new function
8893         expand_builtin_mathfn_2.
8894
8895         * doc/md.texi: Document new pow?f3 and atan2?f3 patterns.
8896
8897 2003-02-11  Jan Hubicka  <jh@suse.cz>
8898
8899         * combine.c (combine_simplify_rtx): Fix folding of
8900         nested float_truncates.
8901
8902 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
8903
8904         * config/h8300/h8300.md (a peephole2): Fix a typo.
8905
8906 2003-02-11  Richard Earnshaw  <rearnsha@arm.com>
8907
8908         * arm.mc (return_address_mask): Use CC_REGNUM for the condition code
8909         register number.
8910
8911 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
8912
8913         * config/h8300/h8300-protos.h: Add a prototype for
8914         gtuleu_operator.
8915         * config/h8300/h8300.c (gtuleu_operator): New.
8916         * config/h8300/h8300.h (PREDICATE_CODES): Add gtuleu_operator.
8917         * config/h8300/h8300.md (a peephole2): New.
8918
8919 2003-02-11  Jan Hubicka  <jh@suse.cz>
8920
8921         * sched-ebb.c (schedule_ebbs): Do not verify_flow_info.
8922
8923 2003-02-11  Jan Hubicka  <jh@suse.cz>
8924
8925         * predict.c (choose_function_section): Choose sections correctly.
8926
8927 2003-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8928
8929         * reload1.c (first_label_num): New.
8930         (reload): Index offsets_known_at and offsets_at using difference of
8931         label number and first label number.  Don't use offset pointers.
8932         (set_label_offsets, set_initial_label_offsets): Likewise.
8933
8934 2003-02-10  Roger Sayle  <roger@eyesopen.com>
8935
8936         * mips-tfile.c (init_file): Add missing initializers in the
8937         "#ifdef __alpha" case.
8938         (file_offset, max_file_offset): Declare as unsigned long.
8939         (write_varray): Cast to "unsigned long" in comparisons against
8940         either file_offset or max_file_offset.
8941         (write_object): Likewise.
8942         (read_seek): Likewise.
8943         (copy_object): Likewise. Declare "ifd" as int to match its use
8944         in add_ext_symbol, and avoid signed/unsigned conditional warning.
8945
8946 2003-02-10  Nick Clifton  <nickc@redhat.com>
8947             Aldy Hernandez  <aldyh@redhat.com>
8948
8949         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Do not
8950         override options which have been specified on the command line.
8951
8952 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
8953
8954         * config/h8300/h8300.md (abssf2): New.
8955         (*abssf2_h8300): Likewise.
8956         (*abssf2_h8300hs): Likewise.
8957
8958 2003-02-10  Phil Edwards  <pme@gcc.gnu.org>
8959
8960         * tree.c (build_tree_list):  Fix parameter names in comment.
8961
8962 2003-02-10  Janis Johnson  <janis187@us.ibm.com>
8963
8964         * config/rs6000/ppc64-fp.c: New file.
8965         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
8966
8967 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
8968
8969         * Makefile.in (bb-reorder.o): Add dependency on $(FIBHEAP_H).
8970         * bb-reorder.c (make_reorder_chain): Deleted.
8971         (make_reorder_chain_1): Deleted.
8972         (find_traces): New function.
8973         (rotate_loop): New function.
8974         (mark_bb_visited): New function.
8975         (find_traces_1_round): New function.
8976         (copy_bb): New function.
8977         (bb_to_key): New function.
8978         (better_edge_p): New function.
8979         (connect_traces): New function.
8980         (copy_bb_p): New function.
8981         (get_uncond_jump_length): New function.
8982         (reorder_basic_blocks): Use new functions (Software Trace Cache).
8983         * cfgcleanup.c (outgoing_edges_match): Enable crossjumping across loop
8984         boundaries.
8985
8986 2003-02-10  Aldy Hernandez  <aldyh@redhat.com>
8987
8988         * config/rs6000/rs6000.c (bdesc_2arg): Change spe_evxor to xorv2si3.
8989
8990 2003-02-09  Dan Nicolaescu  <dann@ics.uci.edu>
8991
8992         * tree.h (struct tree_decl): Remove unused live_range_rtl field.
8993         (DECL_LIVE_RANGE_RTL): Remove.
8994
8995 2003-02-10  Nick Clifton  <nickc@redhat.com>
8996
8997         * config/arm/aof.h, config/arm/aout.h, config/arm/arm-modes.def,
8998         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
8999         config/arm/arm.md, config/arm/cirrus.md, config/arm/coff.h,
9000         config/arm/conix-elf.h, config/arm/ecos-elf.h, config/arm/elf.h,
9001         config/arm/freebsd.h, config/arm/linux-elf.h,
9002         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
9003         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
9004         config/arm/rtems-elf.h, config/arm/semi.h, config/arm/semiaof.h,
9005         config/arm/strongarm-coff.h, config/arm/strongarm-elf.h,
9006         config/arm/strongarm-pe.h, config/arm/uclinux-elf.h,
9007         config/arm/unknown-elf-oabi.h, config/arm/unknown-elf.h,
9008         config/arm/xscale-elf.h: Replace occurances of "GNU CC" with "GCC"
9009         and reformat as appropriate.
9010
9011 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
9012
9013         * config/h8300/clzsi2.c: Remove.
9014         * config/h8300/ctzsi2.c: Likewise.
9015         * config/h8300/paritysi2.c: Likewise.
9016         * config/h8300/popcountsi2.c: Likewise.
9017         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Remove clzsi2,
9018         ctzsi2, paritysi2, and popcountsi2.
9019
9020 2003-02-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
9021             Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
9022
9023         PR c/7741
9024         * c-decl.c (duplicate_decls): Discard the initializer of the
9025         new decl when the types are conflicting.
9026
9027 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
9028
9029         * Makefile.in (sreal.o): Added.
9030         (predict.o): Depends on sreal.h instead of real.h.
9031         * sreal.c: New file.
9032         * sreal.h: New file.
9033         * predict.c: Use sreal.c instead of real.c.
9034
9035 2003-02-10  Nick Clifton  <nickc@redhat.com>
9036
9037         * Contributed support for the Cirrus EP9312 "Maverick"
9038         floating point co-processor.  Written by Aldy Hernandez
9039         <aldyh@redhat.com>.
9040         (config/arm/arm.c): Add Cirrus support.
9041         (config/arm/arm.h): Likewise.
9042         (config/arm/aout.h): Likewise.
9043         (config/arm/arm.md): Likewise.
9044         (config/arm/arm-protos.h): Likewise.
9045         (config.gcc): Likewise.
9046         (doc/invoke.texi): Describe new -mcpu value and new
9047         -mcirrus-fix-invalid-insns switch,
9048         (cirrus.md): New file.
9049
9050 2003-02-10  Jan Hubicka  <jh@suse.cz>
9051
9052         * combine.c (combine_simplify_rtx): Simplify using
9053         (float_truncate (float x)) is (float x)
9054         (float_extend (float_extend x)) is (float_extend x).
9055
9056 2003-02-10  Alan Modra  <amodra@bigpond.net.au>
9057
9058         * calls.c (try_to_integrate): Tidy stack_usage_map access.
9059         (emit_library_call_value_1): Likewise.  Formatting.
9060         (store_one_arg): Likewise.
9061
9062 2003-02-09  Nick Clifton  <nickc@redhat.com>
9063             Aldy Hernandez  <aldyh@redhat.com>
9064
9065         * config/rs6000/spe.md: spe_evlhhesplat, spe_evlhhossplat,
9066         spe_evlhhousplat, spe_evlwhsplat, spe_evlwwsplat, spe_evldd,
9067         spe_evldh, spe_evldw, spe_evlwhe, spe_evlwhos, spe_evlwhou,
9068         spe_evstdd, spe_evstdh, spe_evstdw, spe_evstdwx, spe_evstwhe,
9069         spe_evstwho, spe_evstwwe, spe_evstwwo: Fix syntax to match newest
9070         docs.  Add range test for immediate value.
9071
9072 2003-02-09  Aldy Hernandez  <aldyh@redhat.com>
9073
9074         Rename spe_evxor to xorv2si3.
9075         (xorv4hi3): New.
9076         (xorv1di3): New.
9077
9078 2003-02-10  Glen Nakamura  <glen@imodulo.com>
9079
9080         * doc/extend.texi (C++98 Thread-Local Edits): Add missing @item
9081         tag.
9082
9083 2003-02-10  Jan Hubicka  <jh@suse.cz>
9084
9085         * i386.c (vector_move_operand): New predicate.
9086         (ix86_expand_vector_move): Be happy about 0.
9087         * i386.h (PREDICATE_CODES): Add sse-move_operand.
9088         * i386.md (mov*_internal): Add 'C' alternative.
9089
9090 2003-02-09  Jan Hubicka  <jh@suse.cz>
9091
9092         * i386.md (floathi*): Deal with SSE.
9093
9094 2003-02-09  Jan Hubicka  <jh@suse.cz>
9095
9096         * simplify-rtx.c (simplify_unary_operation,
9097         simplify_binary_operation):  Deal with vector modes
9098         (simplify_ternary_operation):  Deal with no-op VEC_MERGE.
9099
9100 2003-02-09  Richard Sandiford  <rsandifo@redhat.com>
9101
9102         * toplev.c (rest_of_compilation): Recompute register usage after
9103         split_all_insns.
9104
9105 2003-02-09  Richard Henderson  <rth@redhat.com>
9106
9107         * libgcc-std.ver (__clztf2): New.
9108         (__ctztf2, __popcounttf2, __paritytf2): New.
9109         * libgcc2.c (__clzSI2, __clzDI2, __ctzSI2, __ctzDI2, __popcountSI2,
9110         __popcountDI2, __paritySI2, __parityDI2): Use UWmode and UDWmode;
9111         adjust code to match the different type sizes.
9112         * libgcc2.h (__clzSI2, __ctzSI2, __popcountSI2, __paritySI2,
9113         __clzDI2, __ctzDI2, __popcountDI2, __parityDI2): New macros.
9114
9115         * optabs.c (init_integral_libfuncs): Don't hard-code SImode and
9116         TImode; select word_mode and twice that.
9117         (init_floating_libfuncs): Don't hard-code SFmode and TFmode;
9118         select the modes from float, double, and long double.
9119         (init_optabs): Remove duplicate initializations.
9120
9121 2003-02-09  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
9122
9123         * doc/install.texi: Squeeze and streamline section on
9124         testing and regression checking.
9125
9126 2003-02-09  Jan Hubicka  <jh@suse.cz>
9127
9128         * i386.md (ahi?v*3): Set third operand type to TImode.
9129         * i386.c (ix86_expand_binop_builtin): Extend operand when needed.
9130
9131         * simplify-rtx.c (simplify_subreg): Fix conversion from vector into
9132         integer mode.
9133
9134         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_DUPLICATE):
9135         Change code so they are arithmetic expressions now.
9136         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
9137         simplify_ternary_operation): Deal with VEC_* expressions.
9138
9139         * i386.md (vmaskcmp, pinsrw, movd patterns):  Fix RTL representation.
9140
9141 2003-02-08  Jan Hubicka  <jh@suse.cz>
9142
9143         * cfgrtl.c (verify_flow_info):  Use control_flow_insn_p.
9144         * reload1.c (fixup_abnormal_edges):  Split basic blocks when EH edges
9145         possibly got duplicated.
9146
9147 2003-02-08  Richard Henderson  <rth@redhat.com>
9148
9149         * config/alpha/alpha.c (override_options): Turn off explicit
9150         relocs until post-peep2 code duplication resolved.
9151
9152 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9153
9154         * optabs.c (expand_unop): Widen clz properly when clz is done
9155         via libcall.
9156
9157 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9158
9159         * config/h8300/clzsi2.c: Replace "GNU CC" with "GCC".
9160         * config/h8300/crti.asm: Likewise.
9161         * config/h8300/crtn.asm: Likewise.
9162         * config/h8300/ctzsi2.c: Likewise.
9163         * config/h8300/fixunssfsi.c: Likewise.
9164         * config/h8300/h8300-protos.h: Likewise.
9165         * config/h8300/h8300.c: Likewise.
9166         * config/h8300/h8300.h: Likewise.
9167         * config/h8300/h8300.md: Likewise.
9168         * config/h8300/paritysi2.c: Likewise.
9169         * config/h8300/popcountsi2.c: Likewise.
9170         * config/h8300/rtems.h: Likewise.
9171
9172 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9173
9174         * doc/invoke.texi: Documentation for my previous commit.
9175         * doc/passes.texi: Ditto.
9176
9177 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9178
9179         * cfgloop.h (fix_loop_placement, can_duplicate_loop_p,
9180         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
9181         Declare.
9182         (DLTHE_FLAG_UPDATE_FREQ): New.
9183         * cfgloopmanip.c (duplicate_loop, duplicate_subloops, copy_loops_to,
9184         loop_redirect_edge, loop_delete_branch_edge, copy_bbs, remove_bbs,
9185         rpe_enum_p, find_branch, alp_enum_p, add_loop, fix_loop_placements,
9186         fix_bb_placement, fix_bb_placements, place_new_loop,
9187         scale_loop_frequencies, scale_bbs_frequencies, record_exit_edges):
9188         New static functions.
9189         (fix_loop_placement, can_duplicate_loop_p,
9190         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
9191         New functions.
9192
9193         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize,
9194         unswitch_loops): Declare.
9195         * loop-init.c: New file.
9196         * loop-unswitch.c: New file.
9197         * Makefile.in (loop-init.o, loop-unswitch.o): New.
9198         * params.def (PARAM_MAX_UNSWITCH_INSNS, PARAM_MAX_UNSWITCH_LEVEL): New.
9199         * toplev.c (DFI_loop2): New dump.
9200         (flag_unswitch_loops): New.
9201         (lang_independent_options): Add it.
9202         (rest_of_compilation): Call new loop optimizer.
9203         (parse_options_and_default_flags): Turn flag_unswitch_loops on with -O3.
9204
9205 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9206
9207         * config/h8300/clzsi2.c: New.
9208         * config/h8300/ctzsi2.c: Likewise.
9209         * config/h8300/paritysi2.c: Likewise.
9210         * config/h8300/popcountsi2.c: Likewise.
9211         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Add above files.
9212
9213 2003-02-07  David Edelsohn  <edelsohn@gnu.org>
9214
9215         * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
9216         * config/rs6000/rs6000.md (clzsi2): Rename from cntlzw2.
9217         (ctzsi2): New pattern.
9218         (ffssi2): Use clz instead of unspec.
9219         (clzdi2): Rename from cntlzd2.
9220         (ctzdi2): New pattern.
9221         (ffsdi2): Use clz instead of unspec.
9222
9223 2003-02-07  Loren James Rittle  <ljrittle@acm.org>
9224
9225         * config/alpha/freebsd.h (LINK_SPEC): Weaken error to notice.
9226         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
9227         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
9228         * config/i386/freebsd.h (LINK_SPEC): Add clause to mirror other arches.
9229
9230 2003-02-07  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
9231
9232         * doc/trouble.texi: Document pitfalls of two-stage name lookup.
9233
9234 2003-02-07  Richard Henderson  <rth@redhat.com>
9235
9236         PR 9226
9237         * gcse.c (local_cprop_find_used_regs): New.
9238         (local_cprop_pass): Use it.
9239
9240 2003-02-07  Fred Fish  <fnf@intrinsity.com>
9241
9242         * mips-tfile.c (parse_def): Parenthesize assignments to fix
9243         precedence bugs.
9244
9245 2003-02-07  Segher Boessenkool  <segher@koffie.nl>
9246
9247         * genoutput.c (output_get_insn_name): Handle NOOP_MOVE_INSN_CODE.
9248
9249 2003-02-07  Roger Sayle  <roger@eyesopen.com>
9250
9251         * builtin-types.def (BT_FN_FLOAT_FLOAT_FLOAT): New built-in type.
9252         (BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE): Likewise.
9253         (BT_FN_DOUBLE_DOUBLE_DOUBLE): Likewise.
9254         * builtins.def: Define pow, powf, powl, atan2, atan2f and atan2l
9255         builtin functions (and their __builtin_* variants).
9256         * builtins.c (mathfn_built_in): Handle missing log{,f,l} cases.
9257         (expand_builtin): Don't expand log{,f,l}, pow{,f,l} or atan2{,f,l}
9258         when not optimizing.
9259
9260         * doc/extend.texi: Document new pow and atan2 builtins, and
9261         their float and long double variants.  Realphabetize builtins.
9262
9263 2003-02-07  Jan Hubicka  <jh@suse.cz>
9264
9265         * i386.md (sse2_nandv2di3): Fix.
9266
9267 2003-03-07  Danny Smith  <dannysmith@users.sourceforge.net>
9268
9269         * config/i386/i386.h (MS_AGGREGATE_RETURN): New define.
9270         * config/i386/cygwin.h (MS_AGGREGATE_RETURN): Override default
9271         definition.
9272         * config/i386/i386.h (ix86_return_in_memory): Return aggregate
9273         types of up to 8 bytes via registers if MS_AGGREGATE_RETURN.
9274
9275 2003-02-07  Jan Hubicka  <jh@suse.cz>
9276
9277         * i386.md (movdi_rex64_1): Fix mmx<->int move opcode.
9278
9279 2003-02-07  Daniel Berlin  <dberlin@dberlin.org>
9280
9281         * cfg.c (dump_flow_info): Add back accidently deleted line.
9282
9283 2003-02-07  Andrey Petrov <petrov@netbsd.org>
9284
9285         * optabs.c (expand_float): Search wider integer modes first.
9286
9287 2003-02-07  Bob Wilson  <bob.wilson@acm.org>
9288
9289         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Set this
9290         based on preprocessor flag.
9291
9292 2003-02-07  Roger Sayle  <roger@eyesopen.com>
9293             Richard Henderson  <rth@redhat.com>
9294
9295         * gcse.c (implicit_sets): New.
9296         (compute_hash_table_work): Include them in hash table.
9297         (find_implicit_sets, fis_get_condition): New.
9298         (one_cprop_pass): Allocate and free implicit_sets; call
9299         find_implicit_sets before building hash table.
9300
9301 2003-02-07  Jason Thorpe  <thorpej@wasabisystems.com>
9302
9303         * config/t-netbsd (USER_H): Revert previous change.
9304
9305 2003-02-07  Gabor Greif  <ggreif@lucent.com>
9306
9307         * doc/c-tree.texi (Namespaces): Fix typo.
9308
9309 2003-02-07  Jan Hubicka  <jh@suse.cz>
9310
9311         * regrename.c (do_replace, find_oldest_value_reg,
9312         copyprop_hardreg_forward_1): Update register attributes.
9313
9314 2003-02-06  Vladimir Makarov  <vmakarov@redhat.com>
9315
9316         * genautomata.c (VLA_PTR_CREATE, VLA_PTR_EXPAND, VLA_PTR_ADD,
9317         VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD): Use temporay
9318         variables starting with underscore.
9319         (struct unit_usage): New structure.
9320         (unit_usages, cycle_alt_unit_usages): New global variables.
9321         (check_unit_distribution_in_reserv): Remove it.
9322         (store_alt_unit_usage): New function.
9323         (check_regexp_units_distribution): Rewrite it.
9324
9325 2003-02-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9326
9327         * config.gcc (hppa*-*-linux*): Set MASK_NO_SPACE_REGS in
9328         target_cpu_default.
9329         * pa.c (attr_length_call): Add 8 to call length (long indirect PA 1.X)
9330         if not MASK_NO_SPACE_REGS.
9331         (output_call): Adjust return pointer, don't load new space register
9332         into %sr0, and use %sr4 for call if TARGET_NO_SPACE_REGS is true.
9333         (pa_asm_output_mi_thunk): Don't load new space register into %sr0 if
9334         TARGET_NO_SPACE_REGS is true.
9335         * pa.md (return_external_pic): Add TARGET_NO_SPACE_REGS to insn
9336         conditions.
9337         (epilogue): Always use return_internal if TARGET_NO_SPACE_REGS is true.
9338         (interspace_jump): Add new pattern for when TARGET_NO_SPACE_REGS is
9339         true.  Use bve when TARGET_64BIT is true.
9340
9341 2003-02-06  Richard Henderson  <rth@redhat.com>
9342
9343         * combine.c (nonzero_bits): Fix double break.
9344
9345 2003-02-06  Eric Botcazou <ebotcazou@libertysurf.fr>
9346             Richard Henderson <rth@redhat.com>
9347
9348         PR c/9530
9349         * config/i386/i386.c (ix86_function_ok_for_sibcall): Forbid sibcalls
9350         from functions that return a float to functions that don't.
9351
9352 2003-02-06  Jan Hubicka  <jh@suse.cz>
9353
9354         * i386.c (x86_inter_unit_moves): New variable.
9355         (ix86_secondary_memory_needed): Fix 64bit case, honor
9356         TARGET_INTER_UNIT_MOVES
9357         * i386.h (x86_inter_unit_moves): Declare.
9358         (TARGET_INTER_UNIT_MOVES): New macro.
9359         * i386.md (movsi_1): Cleanup constraints; disable
9360         when not doing inter-unit moves.
9361         (movsi_1_nointernunit): New.
9362         (movdi_1_rex64): Fix constraints; deal with SSE->GPR moves.
9363         (movdi_1_rex64_nointerunit): New.
9364         (mivsf_1): disable when not doing inter-unit moves.
9365         (movsf_1_nointerunit): New.
9366
9367         * basic-block.h (inside_basic_block_p):  Declare.
9368         * cfgbuild.c (inside_basic_block_p): Make global.
9369         * haifa-sched.c (unlink_other_notes0: Deal with NOT_INSN_BASIC_BLOCK.
9370         * scheudle-ebb.c  (schedule_ebb): Return last basic block of trace;
9371         update CFG.
9372         (fix_basic_block_boundaries, add_missing_bbs): New.
9373         (rank): Use profile.
9374         (scheudle_ebbs): Rely on CFG; update coments.
9375
9376 2003-02-05  Geoffrey Keating  <geoffk@apple.com>
9377
9378         * Makefile.in (host_hook_obj): New.
9379         (OBJS): Add $(host_hook_obj).
9380         (host_default.o): New rule.
9381         * config.gcc (host_hook_obj): New, default to host-default.o.
9382         (powerpc-*-darwin*): Use host-darwin.o.
9383         (out_host_hook_obj): New.
9384         * configure: Regenerate.
9385         * configure.in: Print information about out_host_hook_obj, substitute
9386         into output files.
9387         * host-default.c: New file.
9388         * hosthooks.h: New file.
9389         * toplev.c (general_init): Call host_hooks.extra_signals.
9390         * config/rs6000/host-darwin.c: New file.
9391         * config/rs6000/x-darwin: New file.
9392         * doc/hostconfig.texi: Add documentation for new host hook.
9393         Rearrange existing documentation.
9394
9395 2003-02-05  Roger Sayle  <roger@eyesopen.com>
9396
9397         * dwarf2out.c (mem_loc_descriptor): Replace ASM_SIMPLIFY_DWARF_ADDR
9398         with *targetm.delegitimize_address.
9399         (rtl_for_decl_location): Likewise.
9400         * dwarfout.c (output_mem_loc_descriptor): Likewise.  Include target.h.
9401         * Makefile.in (dwarf2out.c, dwarfout.c): Depend upon $(TARGET_H)
9402
9403         * config/i386/i386.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
9404         * config/i386/i386-protos.h (i386_simplify_dwarf_addr): Remove
9405         prototype.
9406         * config/i386/i386.c (ix86_delegitimize_address): Renamed from
9407         i386_simplify_dwarf_addr.  Made static.  Prototyped.
9408         (TARGET_DELEGITIMIZE_ADDRESS): Update definition from
9409         i386_simplify_dwarf_addr to ix86_delegitimize_address.
9410         (ix86_find_base_term): Likewise.
9411         (maybe_get_pool_constant): Likewise.
9412
9413         * config/s390/s390.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
9414         * config/s390/s390-protos.h (s390_simplify_dwarf_addr): Remove
9415         prototype.
9416         * config/s390/s390.c (s390_delegitimize_address): Renamed from
9417         s390_simplify_dwarf_addr.  Made static.  Prototyped.
9418         (TARGET_DELEGITIMIZE_ADDRESS): Define as s390_delegitimize_address.
9419
9420 2003-02-05  Richard Henderson  <rth@redhat.com>
9421
9422         PR c/8602
9423         * integrate.c (output_inline_function): Reset input_filename
9424         and lineno from the decl before rest_of_compilation.
9425
9426 2003-02-05  Richard Henderson  <rth@redhat.com>
9427
9428         * defaults.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
9429         (CTZ_DEFINED_VALUE_AT_ZERO): New.
9430         * doc/rtl.texi, doc/tm.texi: Document them.
9431
9432         * combine.c (nonzero_bits) [CLZ, CTZ]: Handle the definedness
9433         of the value at zero properly.
9434         * fold-const.c (tree_expr_nonnegative_p): Likewise.
9435         * simplify-rtx.c (simplify_unary_operation): Likewise.
9436
9437         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
9438         (CTZ_DEFINED_VALUE_AT_ZERO): New.
9439
9440         * config/arm/arm.c (TARGET_INIT_BUILTINS): Remove.
9441         (TARGET_EXPAND_BUILTIN): Remove.
9442         (def_builtin, arm_init_builtins, arm_expand_builtin): Remove.
9443         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
9444         (enum arm_builtins): Remove.
9445         * config/arm/arm.md (UNSPEC_CLZ): Remove.
9446         (clzsi2): Rename from clz; use clz instead of unspec.
9447         (ctzsi2): New.
9448         * config/arm/arm-protos.h: Update.
9449
9450 2003-02-05  Jan Hubicka  <jh@suse.cz>
9451
9452         * i386-protos.h (x86_emit_floatuns):  Declare.
9453         * i386.c (x86_emit_floatuns): New global function.
9454         * i386.md (floatunssisf2, floatunsdisf2,
9455         floatunsdidf2):  New patterns.
9456
9457 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9458
9459         * cfgloopmanip.c (force_single_succ_latches): Fix missindentation.
9460
9461 2003-02-05  Hans Boehm <Hans.Boehm@hp.com>
9462
9463         * config/ia64/unwind-ia64.c: include coretypes.h, tm.h to get
9464           config/ia64/linux.h
9465
9466 2003-02-05  Roger Sayle  <roger@eyesopen.com>
9467
9468         * cfgloop.h (flow_bb_inside_loop_p): Correct prototype again.
9469
9470 2003-02-05  Jakub Jelinek  <jakub@redhat.com>
9471
9472         PR optimization/8555
9473         * config/i386/i386.md (sse_mov?fcc split): Handle op2 == op3 case
9474         instead of aborting.
9475
9476 2003-02-04  Richard Henderson  <rth@redhat.com>
9477
9478         * config/i386/i386.md (UNSPEC_BSF): Remove.
9479         (ffssi2): Split into cmove and no_cmove insns and splitters;
9480         lose pentium float trick for now.
9481         (ffssi_1): Add * to name; use CTZ instead of UNSPEC.
9482         (ctzsi2, clzsi2, bsr): New.
9483
9484 2003-02-04  Richard Henderson  <rth@redhat.com>
9485
9486         * config/ia64/ia64.c (rtx_needs_barrier): Handle POPCOUNT,
9487         UNSPEC_GETF_EXP; remove UNSPEC_POPCNT.
9488         * config/ia64/ia64.md (UNSPEC_POPCNT): Remove.
9489         (ffsdi2): Use popcount instead of unspec.
9490         (popcountdi2): Rename from *popcnt.
9491         (ctzdi2, clzdi2, getf_exp_tf): New.
9492
9493 2003-02-04  Kazu Hirata  <kazu@cs.umass.edu>
9494
9495         * genconfig.c (main): Generate CC0_P.
9496         * rtl.h (CC0_P): Remove.
9497
9498 2003-02-04  Richard Henderson  <rth@redhat.com>
9499
9500         * libgcc2.h, libgcc2.c (__ffsSI2): New.
9501         (__ffsDI2): Rename from __ffsdi2.
9502         * mklibgcc.in (lib2funcs): Add _ffssi2.
9503
9504 2003-02-04  Richard Henderson  <rth@redhat.com>
9505
9506         * libgcc2.c (__paritysi2, __paritydi2): Replace last two reduction
9507         rounds with a "bit table" lookup.
9508
9509 2003-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
9510
9511         * reload.c (find_reloads): Do not use the mode specified in the insn
9512         pattern as reload mode for address operands.  Do not generate optional
9513         reloads for operands where a mandatory reload was already pushed.
9514
9515 2003-02-04  Richard Henderson  <rth@redhat.com>
9516
9517         * longlong.h [alpha] (count_leading_zeros, count_trailing_zeros): Use
9518         builtins instead of inline assembly.
9519
9520 2003-02-04  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
9521
9522         PR c/9376
9523         * libgcc2.c (__subvdi3): Fix typo.
9524
9525 2003-02-04  Jan Hubicka  <jh@suse.cz>
9526
9527         * i386.md (movti_rex64):  Fix constraint.
9528
9529 2003-02-04  Jan Hubicka  <jh@suse.cz>
9530
9531         * i386.md (vector push splitters):  Fix typo in resolving conflict.
9532
9533 2003-02-04  Rodney Brown  <rbrown64@csc.com.au>
9534
9535         * config/i386/i386.c (x86_function_profiler): Fix typo in format.
9536
9537 2003-02-04  Phil Edwards  <pme@gcc.gnu.org>
9538
9539         * doc/install.texi (*-*-linux-gnu):  Mention glibc requirements
9540         for recent libstdc++.  Remove formatting cruft.
9541
9542 2003-02-04  Jakub Jelinek  <jakub@redhat.com>
9543
9544         * dwarf2out.c (dwarf2out_finish): Add AT_comp_dir
9545         attribute even if input file name is absolute, but one of the
9546         includes is relative.
9547
9548 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
9549
9550         * doc/gcc.texi, doc/gccint.texi, doc/gcov.texi,
9551         doc/include/fdl.texi, doc/invoke.texi: Update to GFDL 1.2.
9552         * doc/install.texi: Update copyright dates.  Update to GFDL 1.2.
9553
9554 2003-02-03  Richard Henderson  <rth@redhat.com>
9555
9556         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
9557         __popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change
9558         return type to "int".  Shuffle declarations and undef int trap.
9559         * libgcc2.h: Remove their declarations.
9560         * optabs.c (expand_unop): Force outmode to int for bitops.
9561
9562 2003-02-03  Bob Wilson  <bob.wilson@acm.org>
9563
9564         * config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the
9565         coprocessor registers before floating-point registers.
9566         * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Adjust register numbers
9567         to account for a previously removed register.
9568         (SPEC_REG_FIRST, SPEC_REG_LAST, SPEC_REG_NUM, COUNT_REGISTER_REGNUM):
9569         Delete unused macros.
9570
9571 2003-02-03  Jan Hubicka  <jh@suse.cz>
9572
9573         * i386.c (ix86_expand_store_builtin):  Always force op1 to register.
9574         (mov*_internal): Fix predicates; require one of operands to not be
9575         memory.
9576         (SSE?MMX move expanders):  Fix predicates; force one of operands to
9577         register.
9578         (SSE/MMX push patterns): Reorganize; fix x86-64 code generation.
9579         (movups/movupd/movdqu patterns): Force one of operands to not be
9580         memory.
9581
9582 2003-02-03  Roger Sayle  <roger@eyesopen.com>
9583
9584         * hooks.c (hook_rtx_rtx_identity): Generic hook function that
9585         takes a single rtx and returns it unmodified.
9586         * hooks.h (hook_rtx_rtx_identity): Prototype here.
9587         * target.h (struct gcc_target): Add "delegitimize_address"
9588         field to target structure.
9589         * target-def.h (TARGET_DELEGITIMIZE_ADDRESS):  Provide default
9590         for delegitimize_address target using hook_rtx_rtx_identity.
9591         (TARGET_INITIALIZER): Initialize delegitimize_address field
9592         using TARGET_DELEGITIMIZE_ADDRESS macro.
9593         * simplify-rtx.c (avoid_constant_pool_reference): Handle float
9594         extensions of constant pool references.  Use delegitimize_address
9595         to undo the obfuscation of "-fpic".
9596         * Makefile.in (simplify-rtx.o): Add dependency on target.h.
9597
9598         * config/i386/i386.c (TARGET_DELEGITIMIZE_ADDRESS): Define as
9599         i386_simplify_dwarf_addr.
9600         (ix86_find_base_term): Simplify using i386_simplify_dwarf_addr.
9601         (maybe_get_pool_constant): Likewise.
9602
9603 2003-02-03  Jan Hubicka  <jh@suse.cz>
9604
9605         * i386.c (ix86_expand_int_movcc):  Fix setcc sign bit case.
9606
9607 2003-02-03  Jan Hubicka  <jh@suse.cz>
9608
9609         * regclass.c (cannot_change_mode_set_regs): Correct argument order.
9610
9611 2003-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9612
9613         * mips/_tilib.c: Don't include tsystem.h or defaults.h.  Don't
9614         define LIBGCC2_WORDS_BIG_ENDIAN.  Include coretypes.h and tm.h.
9615
9616 2003-02-02  Andreas Schwab  <schwab@suse.de>
9617
9618         * varasm.c (asm_output_aligned_bss): Declare as possibly unused.
9619
9620 2003-02-02  Richard Earnshaw  <rearnsha@arm.com>
9621
9622         * arm.md (sibcall_epilogue): Set the "conds" to "clob".
9623         (epilogue_insns): Likewise.
9624
9625 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9626
9627         * doc/install.texi (hppa*-hp-hpux11*): Update installation notes.
9628
9629 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9630
9631         * pa-protos.h (attr_length_millicode_call): Remove second argument.
9632         (attr_length_indirect_call, attr_length_indirect_call,
9633         attr_length_save_restore_dltp): New prototypes.
9634         * pa.c (attr_length_millicode_call): Remove second argument.  Check
9635         INSN_ADDRESSES_SET_P in distance calculation.
9636         (output_millicode_call): Check INSN_ADDRESSES_SET_P before using
9637         INSN_ADDRESSES.
9638         (attr_length_call): Check INSN_ADDRESSES_SET_P in distance calculation.
9639         (output_call): Check INSN_ADDRESSES_SET_P before using INSN_ADDRESSES.
9640         Call attr_length_call directly.
9641         (attr_length_indirect_call, output_indirect_call,
9642         attr_length_save_restore_dltp): New functions.
9643         * pa.md (attr_length_millicode_call): Drop second argument from all
9644         patterns.
9645         (return_internal_pic): Delete.
9646         (return_external_pic): Remove use of PIC register and pic operand and
9647         flag checks.
9648         (epilogue): Use return_internal for both normal and pic code.
9649         (call, call_value): Emit new 32-bit pic patterns for symref and
9650         indirect calls.  Remove uses for arg pointer and pic register.
9651         (call_symref_pic, call_symref_pic_post_reload, call_reg_pic,
9652         call_reg_pic_post_reload, call_val_symref_pic,
9653         call_val_symref_pic_post_reload, call_val_reg_pic,
9654         call_val_reg_pic_post_reload): New pre and post reload insn patterns.
9655         Implement define_split and define_peephole2 patterns for pre reload
9656         patterns.
9657         (call_symref_64bit, call_internal_reg_64bit, call_value_symref_64bit,
9658         call_value_internal_reg_64bit): Shorten names.
9659         (all call patterns): Explicitly indicate registers used and clobbered.
9660         Use attr_length_indirect_call and attr_length_save_restore_dltp for
9661         attribute length calculation.  Move code generation for indirect calls
9662         to output_indirect_call.
9663         (sibcall, sibcall_value): Don't restore PIC register.
9664         (exception_receiver, builtin_setjmp_receiver): Add blockage after PIC
9665         register retore.
9666
9667 2003-02-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9668
9669         * doc/install.texi (Testing): Simplify and compress instructions
9670         concerning Dejagnu.
9671
9672 2003-02-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9673
9674         * collect2.c (pexecute_pid): Rename to pid.
9675         (collect_wait, collect_execute, scan_prog_file, scan_libraries): Use
9676         pid.
9677
9678 2003-02-01  Geoffrey Keating  <geoffk@apple.com>
9679
9680         * doc/extend.texi (Function Attributes): Remove documentation
9681         for PowerPC Windows NT function attributes..
9682
9683 2003-02-01  Daniel Jacobowitz  <drow@mvista.com>
9684
9685         * dwarf2out.c (gen_type_die): Check for typedefs before calling
9686         for TYPE_MAIN_VARIANT.
9687
9688 2003-02-01  Richard Henderson  <rth@redhat.com>
9689
9690         * libgcc2.c: Include auto-host.h.
9691         (ATTRIBUTE_HIDDEN): New.
9692         (__clz_tab): Don't declare here for clz and ctz.
9693         (__clzsi2, __clzdi2): Use count_leading_zeros.
9694         (__ctzsi2, __ctzdi2): Use count_trailing_zeros.
9695         (__popcount_tab): Mark ATTRIBUTE_HIDDEN.
9696         (__paritysi2, __paritydi2): Use shifts instead of __popcount_tab.
9697         * longlong.h (__clz_tab): Mark ATTRIBUTE_HIDDEN.
9698
9699 2003-02-01  Richard Henderson  <rth@redhat.com>
9700
9701         * config/i386/i386.md (addsi_1_zext splitter): Add TARGET_64BIT
9702         to the conditional.
9703         (ashlsi3_1_zext splitter): Likewise.
9704
9705 2003-02-01  Richard Henderson  <rth@redhat.com>
9706
9707         * optabs.c (expand_unop): Use word_mode for outmode of bit scaners.
9708         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
9709         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change
9710         return type to Wtype.
9711
9712         * libgcc-std.ver (GCC_3.4): Fix inheritance.
9713
9714         * config/i386/i386.md (ffssi2): Use nonimmediate_operand for
9715         expander input constraint.
9716
9717 2003-02-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
9718
9719         * optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and
9720         OTI_parity.
9721         (clz_optab, ctz_optab, popcount_optab, parity_optab): New.
9722         * optabs.c (widen_clz, expand_parity): New.
9723         (expand_unop): Handle clz and parity.  Hardcode SImode as outmode
9724         for libcalls to clz, ctz, popcount, and parity.
9725         (init_optabs): Init clz_optab, ctz_optab, popcount_optab and
9726         parity_optab, and set up libfunc handlers.
9727         * libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
9728         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2,
9729         __popcount_tab): New.
9730         * libgcc2.h: Declare them.
9731         * libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c.
9732         * genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab
9733         and parity_optab.
9734         * builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New.
9735         * builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT,
9736         BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL,
9737         BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL,
9738         BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL,
9739         BUILT_IN_PARITYLL): New.
9740         * builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs
9741         and add optab argument.
9742         (expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*.
9743         * tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New.
9744         * expr.c (expand_expr): Handle them.
9745         * fold-const.c (tree_expr_nonnegative_p): Likewise.
9746         * rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New.
9747         * reload1.c (eliminate_regs): Handle them.
9748         (elimination_effects): Likewise.
9749         * function.c (instantiate_virtual_regs_1): Likewise
9750         * genattrtab.c (check_attr_value): Likewise.
9751         * simplify-rtx.c (simplify_unary_operation): Likewise.
9752         * c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR.
9753         * combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY.
9754         (nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY.
9755         * config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New.
9756         * config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to
9757         __builtin_arm_clz.
9758         * Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move...
9759         * mklibgcc.in (lib2funcs): ...here and merge.  Add new members.
9760         * doc/extend.texi (Other Builtins): Add new builtins.
9761         * doc/md.texi (Standard Names): Add new patterns.
9762
9763 2003-02-01  Ulrich Weigand  <uweigand@de.ibm.com>
9764
9765         * reload.c: Revert 2003-01-31 change.
9766
9767 2003-02-01  Jan Hubicka  <jh@suse.cz>
9768
9769         * combine.c (combine_simplify_rtx):  Use reversed_comparison_code_parts.
9770
9771 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
9772
9773         * flags.h (flag_volatile): Remove declaration.
9774         (flag_volatile_global, flag_volatile_static): Likewise.
9775         * c-typeck.c (build_indirect_ref): Don't check flag_volatile.
9776         * toplev.c (flag_volatile): Remove definition.
9777         (flag_volatile_global, flag_volatile_static): Likewise.
9778         (f_options): Remove corresponding entries here.
9779         * varasm.c (make_decl_rtl): Don't check flag_volatile_global
9780         or flag_volatile_static.
9781         * doc/invoke.texi: Remove documentation of -fvolatile,
9782         -fvolatile-global and -fvolatile-static.
9783
9784 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9785
9786         * pa.c (pa_output_function_prologue, pa_output_function_epilogue): Move
9787         updating of total_code_bytes from prologue to epilogue.
9788
9789 2003-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
9790
9791         * reload.c (find_reloads): Do not use the mode specified in the insn
9792         pattern as reload mode for address operands.  Do not generate optional
9793         reloads for operands where a mandatory reload was already pushed.
9794         Generate optional reloads only in the final pass though find_reloads.
9795         (have_replacement_p): New function.
9796
9797 2003-01-31  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9798
9799         * doc/install.texi (Testing): Remove a reference to our obsolete
9800         /testresults web pages and strip redundant information concerning
9801         test results.
9802         (Binaries): Refer to Microsoft Windows instead of listing all
9803         possible variants.
9804
9805 2003-02-01  Jan Hubicka  <jh@suse.cz>
9806
9807         * loop.c (emit_prefetch_instructions):  Do conversion at right place in
9808         RTL chain.
9809
9810         * combine.c (simplify_set): Reverse order of ragumetns to
9811         REG_CANNOT_CHANGE_MODE_P
9812         * df.c (df_def_record_1): Likewise.
9813         * recog.c (register_operand): Likewise.
9814         * simplify-rtx.c (simplify_subreg): Likewise.
9815         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of
9816         CANNOT_CHANGE_MODE_CLASS.
9817         * regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p):
9818         Likewise.
9819         * reload.c (push_reload): Likewise.
9820         * alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
9821         * ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
9822         * mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
9823         * mips-protos.h (mips_cannot_change_mode_class): Update prototype.
9824         * mips.c (mips_cannot_change_mode_class): Update.
9825         * pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
9826         * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
9827         * s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
9828         * sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
9829         * sh-protos.h (sh_cannot_change_mode_class): Update prototype.
9830         * sh.c (sh_cannot_change_mode_class): Update.
9831         * i386.h (CANNOT_CHANGE_MODE_CLASS): New.
9832         * tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation.
9833
9834 2003-01-31  Geoffrey Keating  <geoffk@apple.com>
9835
9836         * config/darwin.h (LINK_COMMAND_SPEC): Update for Nathan's recent
9837         change to LINK_COMMAND_SPEC in gcc.c.
9838
9839 2003-01-31  Jan Hubicka  <jh@suse.cz>
9840
9841         PR c/9506
9842         * i386.c (override_options): Use DEFAULT_PCC_STRUCT_RETURN.
9843
9844 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9845
9846         * pa32-regs.h (REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Delete
9847         duplicated code.
9848
9849 2003-01-31  Nathan Sidwell  <nathan@codesourcery.com>
9850
9851         * tree.h (TYPE_BINFO_SIZE, TYPE_BINFO_SIZE_UNIT): Remove.
9852         (BINFO_ELTS): New #define.
9853         * stor-layout.c (finalize_record_size): Don't set them.
9854         * cp/cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
9855         BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
9856         (BINFO_LANG_ELTS): New #define.
9857         * cp/tree.c (make_binfo): Use BINFO_LANG_ELTS.
9858         * java/class.c (make_class): Use BINFO_ELTS.
9859         (set_super_info): Likewse.
9860         (add_interface_do): Likewise.
9861         * objc/objc-act.c (start_class): Use BINFO_ELTS.
9862
9863 2003-01-31 Danny Smith <dannysmith@users.sourceforge.net>
9864
9865         * timevar.c (getrusage): Don't ever declare if not HAVE_GETRUSAGE.
9866         (times): Don't ever declare if not HAVE_TIMES.
9867         (clock): Don't ever declare if not HAVE_CLOCK.
9868
9869 2003-01-30  Richard Henderson  <rth@redhat.com>
9870
9871         * flow.c (update_life_info): Zap life info after cleanup_cfg.
9872         (regno_uninitialized): Use correct live at function entry set.
9873         (regno_clobbered_at_setjmp): Likewise.
9874
9875         * expr.c (store_expr): Promote all MEM intermediates to regs.
9876
9877 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9878
9879         * config/arm/arm.c: Fix comment typos.
9880         * config/arm/arm.h: Likewise.
9881         * config/arm/netbsd-elf.h: Likewise.
9882         * config/arm/netbsd.h: Likewise.
9883
9884 2003-01-30  Geoffrey Keating  <geoffk@apple.com>
9885
9886         * gengtype.c (struct walk_type_data): Add needs_cast_p.
9887         (walk_type): Set needs_cast_p in walk_type_data.
9888         (write_types_process_field): Supply casts when required to suppress
9889         warnings.
9890         (write_root): Cast gt_pch_n_S to suppress warning.
9891         * Makefile.in: Remove -Wno-error from gtype-desc.o and c-decl.o.
9892         * config/rs6000/rs6000.c (print_operand): Mask off high bits only
9893         when they might exist.
9894         * config/rs6000/t-rs6000: Remove -Wno-error from varasm.o,
9895         insn-conditions.o, and rs6000.o.
9896
9897 2003-01-30  Richard Henderson  <rth@redhat.com>
9898
9899         * ggc-page.c (G.context_depth_allocations): New.
9900         (G.context_depth_collections): New.
9901         (alloc_page): Set G.context_depth_allocations.
9902         (ggc_collect): Set G.context_depth_collections.
9903         (ggc_push_context): Limit to HOST_BITS_PER_LONG contexts.
9904         (ggc_pop_context): Early exit for no allocations or collections.
9905
9906 2003-01-30  Richard Henderson  <rth@redhat.com>
9907
9908         * tree-inline.c (walk_tree): Streamline duplicate hash table lookup.
9909
9910 2003-01-30  Richard Earnshaw  <rearnsha@arm.com>
9911
9912         * arm.c (arm_compute_initial_elimination_offset): If optimizing for
9913         size, the link register is always saved if any other register is
9914         saved.
9915
9916 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9917
9918         * config/h8300/h8300-protos.h: Update the prototype for
9919         compute_plussi_cc.
9920         (cpp_reader): Declare before it is used.
9921         * config/h8300/h8300.c (compute_plussi_cc): Change the return
9922         type to int.
9923         * config/h8300/h8300.md (monitor_prologue): Call abort() if we
9924         see an unknown H8 variant.
9925
9926 2003-01-30  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
9927
9928         PR target/9316
9929         * config/rs6000/rtems.h: Add CPP_OS_DEFAULT_SPEC.
9930         * config/rs6000/sysv4.h: Add CPP_OS_RTEMS_SPEC.
9931         * config/rs6000/t-rtems: New file. multilib variants to match OS.
9932         * config.gcc (powerpc-*-rtems*): Use rs6000/t-rtems instead of
9933         rs6000/t-ppcgas so we get the desired multilibs.
9934
9935 2003-01-30  Nick Clifton  <nickc@redhat.com>
9936
9937         * config/arm/arm.c (arm_output_epilogue): Update stack pointer
9938         when popping saved IP register off the stack.
9939
9940 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9941
9942         * config/rs6000/aix43.h: Fix comment typos.
9943         * config/rs6000/aix51.h: Likewise.
9944         * config/rs6000/aix52.h: Likewise.
9945         * config/rs6000/altivec.h: Likewise.
9946         * config/rs6000/rs6000.c: Likewise.
9947         * config/rs6000/rs6000.h: Likewise.
9948         * config/rs6000/rs6000.md: Likewise.
9949         * config/rs6000/spe.md: Likewise.
9950
9951 2003-01-29  Mark Mitchell  <mark@codesourcery.com>
9952
9953         * c-common.c (builtin_define_float_constants): Define
9954         __<TYPE>_HAS_INFINITY__ and __<TYPE>_HAS_QUIET_NAN__.
9955
9956 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9957
9958         * config/sh/lib1funcs.asm: Fix comment typos.
9959         * config/sh/linux.h: Likewise.
9960         * config/sh/sh.c: Likewise.
9961         * config/sh/sh.md: Likewise.
9962
9963 2003-01-30  Loren James Rittle  <ljrittle@acm.org>
9964
9965         * objc/Make-lang.in (objc-parse.y): Find c-parse.in in $(srcdir).
9966
9967 2003-01-30  Alexandre Oliva  <aoliva@redhat.com>
9968
9969         * config/fp-bit.h (__make_dp): Declare if TMODES.
9970
9971 2003-01-29  Kazu Hirata  <kazu@cs.umass.edu>
9972
9973         * config/h8300/h8300.h (PREDICATE_CODES): Add entries for
9974         general_operand_src and general_operand_dst.
9975
9976 2003-01-29  David Edelsohn  <edelsohn@gnu.org>
9977
9978         * config/rs6000/rs6000.c (function_arg_pass_by_reference):
9979         Return true for variable sized types.
9980         (rs6000_va_arg): Handle variable sized types passed by reference
9981         on non-SVR4 ABI.
9982
9983 2003-01-29  Richard Earnshaw  <rearnsha@arm.com>
9984
9985         * arm.c (arm_legtimize_address): New function.
9986         * arm-protos.h (arm_legtimize_address): Add prototype.
9987         * arm.h (ARM_LEGITIMIZE_ADDRESS): Use arm_legitimize_address.
9988         (LEGITIMIZE_ADDRESS, THUMB_LEGITIMIZE_ADDRESS): Wrap with
9989         do ... while (0)
9990
9991 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
9992
9993         PR bootstrap/9296
9994         * gthr-rtems.h: Define __GTHREAD_MUTEX_INIT.  Apparently no code
9995         depended on it being defined until now.
9996
9997 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
9998
9999         PR target/9295
10000         * config/mips/rtems.h: Predefine __USE_INIT_FINI__ so generic
10001         RTEMS code knows which C++ initialization style the toolset
10002         configuration is using.
10003
10004 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
10005
10006         PR bootstrap/9293
10007         * config/m68k/t-crtstuff: Replace spaces with tabs, add
10008          $(MULTILIB_CFLAGS) as compiler option and multilib crtbegin/end.o.
10009
10010 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
10011
10012         PR bootstrap/9292
10013         * config.gcc (hppa1.1-rtems):  Did not include t-rtems nor enable
10014         RTEMS threads.
10015         * config/pa/rtems.h (LIB_SPEC): Use -N when linking.
10016
10017 2003-01-29  Nick Clifton  <nickc@redhat.com>
10018
10019         * Makefile.in (c-parse.o): Locate source file in $(parsedir)
10020         not $(srcdir).
10021
10022 2003-01-29  Andrew Haley  <aph@redhat.com>
10023
10024         * tree-inline.c (walk_tree): Add CHAR_TYPE.
10025
10026 2003-01-29  Jan Hubicka  <jh@suse.cz>
10027
10028         * i386.md (subdi3_carry_rex64): Fix typo.
10029
10030 2003-01-28  Stan Shebs  <shebs@apple.com>
10031
10032         * coretypes.h (cpp_reader): Forward declare struct.
10033         * c-pragma.h (cpp_reader): Remove forward declaration.
10034         * hashtable.h (cpp_reader): Likewise.
10035         * scan.h (cpp_reader): Likewise.
10036         * tree.h (cpp_reader): Likewise.
10037         * config/darwin-protos.h (cpp_reader): Likewise.
10038         * config/arm/arm-protos.h (cpp_reader): Likewise.
10039         * config/rs6000/rs6000-protos.h: Remove GCC_CPPLIB_H ifdef, use
10040         struct cpp_reader in prototypes.
10041
10042 2003-01-28  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
10043
10044         * doc/install.texi: Add documentation for installation into
10045         tooldirs and with DESTDIR.
10046
10047 2003-01-28  Richard Henderson  <rth@redhat.com>
10048
10049         * config.gcc (ia64*-*-aix*): Remove.
10050         * config/ia64/aix.h, config/ia64/t-aix: Remove file.
10051         * config/ia64/unwind-aix.c: Remove file.
10052
10053 2003-01-28  Andreas Schwab  <schwab@suse.de>
10054
10055         * config/m68k/m68k.md (tablejump+2): Don't sign extend an address
10056         register.
10057         * config/m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Likewise.
10058         * config/m68k/coff.h (ASM_RETURN_CASE_JUMP): Likewise.
10059         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Likewise.
10060         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
10061         * config/m68k/mot3300.h (ASM_RETURN_CASE_JUMP): Likewise.
10062         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
10063         * config/m68k/pbb.h (ASM_RETURN_CASE_JUMP): Likewise.
10064
10065 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
10066
10067         * combine.c (nonzero_bits): Fix check for negative divide operands.
10068
10069 2003-01-28  Richard Henderson  <rth@redhat.com>
10070
10071         * config/ia64/ia64.c (ia64_rwreloc_section_type_flags): New.
10072         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): New.
10073
10074 2003-01-28  Richard Henderson  <rth@redhat.com>
10075
10076         * cse.c (find_best_addr): Kill !ADDRESS_COST code.
10077
10078         * config/cris/cris.c (cris_address_cost): Make static.
10079         (TARGET_RTX_COSTS, TARGET_ADDRESS_COST): New.
10080         * config/cris/cris.h (ADDRESS_COST): Remove.
10081         * config/cris/cris-protos.h: Update.
10082
10083 2003-01-23  Mike Stump  <mrs@apple.com>
10084
10085         * regclass.c (init_reg_autoinc): New function.
10086         (regclass): Move initialization of forbidden_inc_dec_class from
10087         here...
10088         (init_regs): to here.  Avoids reinitialization for each function,
10089         saving compilation time.
10090
10091 2003-01-28  Jason Merrill  <jason@redhat.com>
10092
10093         * cpplib.h (struct cpp_options): Add warn_deprecated field.
10094         * cppinit.c (cpp_create_reader): Turn it on by default.
10095         * c-opts.c (c_common_decode_option): Set it.
10096         * cpplib.c (do_pragma_once): Only complain about #pragma once
10097         if warn_deprecated is set.
10098
10099 2003-01-28  Dale Johannesen  <dalej@apple.com>
10100
10101         * emit-rtl.c (const_double_htab_hash):  Use mode in the hash.
10102         * loop.c (scan_loop):  Move movables on -Os rich-register targets.
10103         * config/rs6000/rs6000.md (sibcall*):  Use match_operand for LR.
10104
10105 2003-01-28  Richard Henderson  <rth@redhat.com>
10106
10107         * target.h (targetm.address_cost): New.
10108         * target-def.h (TARGET_ADDRESS_COST): New.
10109         (TARGET_RTX_COSTS): Uncomment.  Oops.
10110         * cse.c (address_cost): Use new target hook.
10111         (default_address_cost): New.
10112         * output.h (default_address_cost): Declare.
10113         * hooks.c (hook_int_rtx_0): New.
10114         * hooks.h (hook_int_rtx_0): Declare.
10115         * loop.c (combine_givs_p): Remove if 0 code.
10116         * system.h (ADDRESS_COST): Poison.
10117
10118         * config/alpha/alpha.c, config/alpha/alpha.h, config/d30v/d30v.c,
10119         config/d30v/d30v.h, config/ia64/ia64.c, config/ia64/ia64.h,
10120         config/m32r/m32r.c, config/m32r/m32r.h, config/mcore/mcore.c,
10121         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.h,
10122         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sparc/sparc.c,
10123         config/sparc/sparc.h, config/v850/v850.c, config/v850/v850.h,
10124         config/xtensa/xtensa.c, config/xtensa/xtensa.h
10125         (TARGET_ADDRESS_COST): Define as hook_int_rtx_0.
10126         (ADDRESS_COST): Remove.
10127
10128         * config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
10129         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
10130         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
10131         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
10132         config/dsp16xx/dsp16xx.h, config/i386/i386-protos.h,
10133         config/i386/i386.c, config/i386/i386.h, config/i960/i960-protos.h,
10134         config/i960/i960.c, config/i960/i960.h, config/ip2k/ip2k-protos.h,
10135         config/ip2k/ip2k.c, config/ip2k/ip2k.h, config/mips/mips-protos.h,
10136         config/mips/mips.c, config/mips/mips.h,
10137         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
10138         config/m68hc11/m68hc11.h, config/ns32k/ns32k-protos.h,
10139         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa-protos.h,
10140         config/pa/pa.c, config/pa/pa.h, config/s390/s390-protos.h,
10141         config/s390/s390.c, config/s390/s390.h, config/vax/vax-protos.h,
10142         config/vax/vax.c, config/vax/vax.h
10143         (foo_address_cost): Make static.
10144         (TARGET_ADDRESS_COST): New.
10145         (ADDRESS_COST): Remove.
10146
10147         * config/arm/arm.h, config/arm/arm.c, config/m88k/m88k.h,
10148         config/m88k/m88k.c, config/romp/romp.h, config/romp/romp.c,
10149         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
10150         config/stormy16/stormy16.h
10151         (ADDRESS_COST): Move code ...
10152         (foo_address_cost): ... here.
10153         (TARGET_ADDRESS_COST): New.
10154
10155         * config/m32r/m32r.c (m32r_address_cost): Remove.
10156         * config/m32r/m32r-protos.h: Update.
10157
10158         * config/mmix/mmix.c (mmix_address_cost): Remove.
10159         * config/mmix/mmix-protos.h: Update.
10160
10161         * config/mn10300/mn10300.c (mn10300_address_cost_1): Rename from
10162         mn10300_address_cost; move unsig allocation ...
10163         (mn10300_address_cost): ... here.
10164         (TARGET_ADDRESS_COST): New.
10165         * config/mn10300/mn10300-protos.h: Update.
10166         * config/mn10300/mn10300.h (ADDRESS_COST): Remove.
10167
10168         * doc/tm.texi: Update.
10169
10170 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
10171
10172         * haifa-sched.c (schedule_insn): Return necessary cycle advance
10173         after issuing the insn.
10174         (rank_for_schedule): Make a insn with /S the highest priority
10175         insn.
10176         (move_insn): Ignore schedule groups.  Clear SCHED_GROUP_P.
10177         (choose_ready): Check SCHED_GROUP_P.
10178         (schedule_block): Advance cycle after issuing insn if it is
10179         necessary.  Don't reorder insns if there is an insn with /S.
10180         (set_priorities): Ignore schedule groups.
10181
10182         * sched-deps.c (remove_dependence, group_leader): Remove the
10183         functions.
10184         (add_dependence): Ignore schedule groups.
10185         (set_sched_group_p): Don't make copy of dependencies from previous
10186         insn of the schedule group.  Add anti-dependency to the previous
10187         insn of the schedule group.
10188         (compute_forward_dependences): Ignore schedule groups.
10189
10190         * sched-ebb.c (init_ready_list): Ignore schedule groups.
10191
10192         * sched-rgn.c (init_ready_list): Ditto.
10193         (can_schedule_ready_p): Ditto.
10194
10195 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
10196
10197         * config/i386/i386.md (*movsi_1): Use movdqa to move one xmm
10198         register to another one.
10199
10200 2003-01-28  Richard Henderson  <rth@redhat.com>
10201
10202         * calls.c (default_must_pass_in_stack): Fix typo in !type case.
10203
10204 2003-01-28  Roger Sayle  <roger@eyesopen.com>
10205
10206         * cse.c (cse_insn): Avoid redundant REG_EQUAL notes.
10207
10208 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
10209
10210         * config/sh/sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA, and the given
10211         class contains a floating-point register, return the size of the
10212         mode in half words.
10213
10214 2003-01-28  Jan Hubicka  <jh@suse.cz>
10215
10216         * i386.c (ix86_carry_flag_operator):  New predicate.
10217         (fcmov_operator): Fix whitespace.
10218         (ix86_expand_carry_flag_compare):  Deal with floating point.
10219         (ix86_expand_int_movcc): Deal with fp; update insn expansion
10220         (ix86_expand_int_addcc): Likewise.
10221         (ix86_expand_strlensi_unroll_1): likewsie.
10222         * i386.h (PREDICATE_CODES): Add ix86_carry_flag_operator.
10223         * i386.md (add?i_carry_rex64): Use new predicate.
10224         (sub?i3_carry_rex64): Likewise.
10225         (x86_mov?icc_0_m1*): Likewise.
10226
10227 2003-01-28  Andreas Schwab  <schwab@suse.de>
10228
10229         * cfgloopmanip.c (create_preheader): Initialize src to avoid
10230         warning.
10231
10232         * expmed.c (emit_store_flag): Fix cast to avoid sign
10233         comparison warning.
10234
10235         * combine.c (force_to_mode): Add cast to fix warning when
10236         STORE_FLAG_VALUE is negative.
10237
10238 2003-01-27  Richard Henderson  <rth@redhat.com>
10239
10240         * Makefile.in (cse.o): Depend on TARGET_H.
10241         * cse.c (rtx_cost): Use targetm.rtx_costs.
10242         * system.h (CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS): Poison.
10243         * doc/tm.texi: Update.
10244
10245         * target.h (targetm.rtx_costs): New.
10246         * target-def.h (TARGET_RTX_COSTS): New.
10247         * hooks.c (hook_bool_rtx_int_int_intp_false): New.
10248         * hooks.h: Update.
10249
10250         * config/alpha/alpha.c (alpha_rtx_cost_data): New.
10251         (alpha_rtx_costs, TARGET_RTX_COSTS): New.
10252         * config/alpha/alpha.h (PROCESSOR_MAX): New.
10253         (CONST_COSTS, RTX_COSTS): Remove.
10254
10255         * config/arc/arc.c, config/arc/arc.h, config/c4x/c4x.c,
10256         config/c4x/c4x.h, config/cris/cris.c, config/cris/cris.h,
10257         config/d30v/d30v.c, config/d30v/d30v.h, config/dsp16xx/dsp16xx.c,
10258         config/dsp16xx/dsp16xx.h, config/frv/frv.c, config/frv/frv.h,
10259         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
10260         config/i370/i370.h, config/i386/i386.c, config/i386/i386.h,
10261         config/i960/i960.c, config/i960/i960.h, config/ia64/ia64.c,
10262         config/ia64/ia64.h, config/m32r/m32r.c, config/m32r/m32r.h,
10263         config/m68k/m68k.c, config/m68k/m68k.h, config/m88k/m88k.c,
10264         config/m88k/m88k.h, config/mcore/mcore.c, config/mcore/mcore.h,
10265         config/mips/mips.c, config/mips/mips.h, config/mn10200/mn10200.c,
10266         config/mn10200/mn10200.h, config/mn10300/mn10300.c,
10267         config/mn10300/mn10300.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h,
10268         config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.c,
10269         config/pdp11/pdp11.h, config/romp/romp.c, config/romp/romp.h,
10270         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c,
10271         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
10272         config/stormy16/stormy16.c, config/stormy16/stormy16.h,
10273         config/v850/v850.c, config/v850/v850.h,
10274         config/xtensa/xtensa.c, config/xtensa/xtensa.h
10275         (CONST_COSTS, RTX_COSTS): Move code ...
10276         (foo_rtx_costs, TARGET_RTX_COSTS): ... here.
10277
10278         * config/arm/arm.c (arm_rtx_costs_1): Rename from arm_rtx_costs.
10279         (arm_rtx_costs, TARGET_RTX_COSTS): New.
10280         * config/arm/arm-protos.h: Update.
10281         * config/arm/arm.h (DEFAULT_RTX_COSTS): Remove.
10282
10283         * config/avr/avr.h (CONST_COSTS): Move code ...
10284         * config/avr/avr.c (avr_rtx_costs): ... here.
10285         (default_rtx_costs): Make static.
10286         * config/avr/avr-protos.h: Update.
10287
10288         * config/h8300/h8300.c (const_costs): Make static.
10289         (h8300_and_costs, h8300_shift_costs): Likewise.
10290         * config/h8300/h8300-protos.h: Update.
10291
10292         * config/ip2k/ip2k.h (DEFAULT_RTX_COSTS): Remove.
10293         (CONST_COSTS): Move code ...
10294         * config/ip2k/ip2k.c (ip2k_rtx_costs): ... here.  Rename from
10295         default_rtx_costs; update for signature change.
10296         * config/ip2k/ip2k-protos.h: Update.
10297
10298         * config/m68hc11/m68hc11.h (RTX_COSTS): Remove.
10299         (CONST_COSTS): Move code ...
10300         * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): ... here.
10301         (TARGET_RTX_COSTS): New.
10302         (m68hc11_rtx_costs_1): Rename from m68hc11_rtx_costs; make static.
10303         * config/m68hc11/m68hc11-protos.h: Update.
10304
10305         * config/m68k/m68k.c (const_int_cost): Make static.
10306         * config/m68k/m68k-protos.h: Update.
10307
10308         * config/mcore/mcore.c (mcore_const_costs): Make static.
10309         (mcore_and_cost, mcore_ior_cost): Likewise.
10310         * config/mcore/mcore-protos.h: Update.
10311
10312         * config/mmix/mmix.c (mmix_rtx_costs, TARGET_RTX_COSTS): New.
10313         (mmix_rtx_cost_recalculated): Remove.
10314         * config/mmix/mmix.h (DEFAULT_RTX_COSTS): Remove.
10315         * config/mmix/mmix-protos.h: Update.
10316
10317         * config/sh/sh.c (shiftcosts): Make static.
10318         (addsubcosts, andcosts, multcosts): Likewise.
10319         * config/sh/sh-protos.h: Update.
10320
10321         * config/sparc/sparc.c (TARGET_RTX_COSTS): New.
10322         (sparc_rtx_costs): Make static; update for change in signature.
10323         * config/sparc/sparc.h (RTX_COSTS_CASES, RTX_COSTS): Remove.
10324         * config/sparc/sparc-protos.h: Update.
10325
10326         * config/v850/v850.c (const_costs): Make static.
10327         * config/v850/v850-protos.h: Update.
10328
10329         * config/vax/vax.h (RTX_COSTS): Remove.
10330         (CONST_COSTS): Move code ...
10331         * config/vax/vax.c (vax_rtx_costs_1): ... here; rename
10332         from vax_rtx_cost.
10333         (vax_rtx_costs, TARGET_RTX_COSTS): New.
10334
10335 2003-01-27  Richard Henderson  <rth@redhat.com>
10336
10337         * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove.  Really.
10338         * config/vax/vax-protos.h: Update.  Really.
10339
10340 2003-01-28  Alexandre Oliva  <aoliva@redhat.com>
10341
10342         * config/mips/mips.h (UNITS_PER_HWFPVALUE): Renamed from...
10343         (UNITS_PER_FPVALUE): Defined as the width of a long double, or
10344         zero if no hardware floating point.
10345         (LONG_DUBLE_TYPE_SIZE): Set to 128 on N32 and N64.
10346         (MAX_FIXED_MODE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE.
10347         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
10348         (BIGGEST_ALIGNMENT): Same as LONG_DOUBLE_TYPE_SIZE.
10349         (FUNCTION_VALUE_REGNO_P): Set for FP_RETURN+2 on N32 and N64.
10350         * config/mips/mips.c (mips_arg_info): Pass TFmode values in
10351         even FP registers on N32 and N64.
10352         (mips_setup_incoming_varargs): Use UNITS_PER_HWFPVALUE.
10353         (mips_va_start): Adjust alignment of ARG_POINTER_REGNUM.
10354         (mips_va_arg): Use UNITS_PER_HWFPVALUE.  Impose additional
10355         even-register-like alignment to 128-bit arguments.
10356         (save_restore_insns): Use UNITS_PER_HWFPVALUE.
10357         (mips_function_value): Likewise.  Return TFmode in $f0 and $f2
10358         on N32 or N64.
10359         * config/mips/_tilib.c (__negti2, __ashlti3, __lshrti3): New.
10360         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Add _tilib.c.
10361         (TPBIT): Set to tp-bit.c.
10362         (tp-bit.c): Create out of fp-bit.c.
10363
10364 2003-01-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10365
10366         * c-parse.in: Remove '%expect 32' directive in objc mode.
10367
10368 2003-01-27  Nathan Sidwell  <nathan@codesourcery.com>
10369
10370         * Makefile.in (LIB2FUNCS_ST): Remove _gcov.
10371         (LIBGCOV): New variable.
10372         (libgcc.mk): Add LIBGCOV.
10373         (LIBGCC_DEPS): Add libgcov.c.
10374         (libgcov.a): New target.
10375         (clean): Remove libgcov.a.
10376         (install-libgcc): Do libgcov too.
10377         (stage1-start, stage2-start, stage3-start, stage4-start): Deal
10378         with libgcov.a.
10379         * libgcc2.c (L_gcov): Move into ...
10380         * libgcov.c: ... here. New file.
10381         * mklibgcc.in: Add libgcov rules.
10382         * gcc.c (LINK_COMMAND_SPEC): Add -lgcov when profiling.
10383
10384         * doc/invoke.texi (profile-arcs, test-coverage): Update and
10385         clarify.
10386
10387         * profile.c (index_counts_file): Remove duplicate check for open file.
10388
10389 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
10390
10391         * gcc/doc/invoke.texi (Optimization Options): Group together
10392         optional and experimental flags.  Move trapv and bounds-check
10393         out of this section.  Group floating point flags together.
10394         (Code Gen Options): Move trapv and bounds-check to here.
10395
10396 2003-01-27  Josef Zlomek  <zlomekj@suse.cz>
10397
10398         * gcse.c (constprop_register): Check NEXT_INSN (insn) != NULL.
10399
10400 2003-01-27  Richard Earnshaw  <rearnsha@arm.com>
10401
10402         PR optimization/9090
10403         * function.c (purge_addressof_1): After pushing an addressed register
10404         onto the stack, simplify the result.
10405
10406 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10407
10408         * doc/extend.texi: Fix typo.
10409
10410 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10411
10412         * doc/cppopts.texi: Fix typo.
10413         * doc/objc.texi: Likewise.
10414         * doc/passes.texi: Likewise.
10415
10416 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
10417
10418         * real.c (ibm_extended_format): Add 53 to minimum exponent.
10419         (encode_ibm_extended): Adjust.
10420
10421 2003-01-26  Gabriel Dos Reis  <gdr@soliton.integrable-solutions.net>
10422
10423         * timevar.def (TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION): New
10424         timevar_id enumerations.
10425
10426 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10427
10428         * combine.c: Fix formatting.
10429
10430 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10431
10432         * doc/gccint.texi: Update the copyright.
10433
10434 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10435
10436         * doc/cpp.texi: Fix typos.
10437         * doc/extend.texi: Likewise.
10438         * doc/gty.texi: Likewise.
10439         * doc/install.texi: Likewise.
10440         * doc/passes.texi: Likewise.
10441         * doc/rtl.texi: Likewise.
10442         * doc/tm.texi: Likewise.
10443
10444 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10445
10446         * config/ia64/fde-glibc.c: Fix comment typos.
10447         * config/ia64/hpux.h: Likewise.
10448         * config/ia64/ia64.c: Likewise.
10449         * config/ia64/ia64.h: Likewise.
10450         * config/ia64/unwind-ia64.c: Likewise.
10451
10452 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10453
10454         * config/i386/i386-modes.def: Fix comment typos.
10455         * config/i386/i386.c: Likewise.
10456         * config/i386/i386.md: Likewise.
10457
10458 2003-01-26  Steven Bosscher  <s.bosscher@student.tudelft.nl>
10459
10460         * config/avr/avr.h, config/cris/aout.h, config/elfos.h,
10461         config/i386/freebsd-aout.h, config/mips/iris6.h: Undefine
10462         ASM_FINISH_DECLARE_OBJECT before defining it.
10463         * toplev.c (rest_of_decl_compilation):  Don't define
10464         ASM_FINISH_DECLARE_OBJECT.  Only use it if it is defined.
10465         (rest_of_type_compilation): Don't ATTRIBUTE_UNUSED function
10466         parameters for DWARF2 targets because they _are_ used.
10467
10468 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
10469
10470         * fp-bit.h: Define macros for TFmode floating-point constants
10471         in IBM-extended TFmode types.
10472         (TMODES): Define if __LDBL_MANT_DIG__ has the newly-supported
10473         widths.
10474         * config/fp-bit.c (pack_d, unpack_d): Support IBM-extended
10475         TFmode type.
10476
10477         * config/fp-bit.h: Define macros for TFmode floating-point
10478         constants in IEEE quad TFmode type.  Declare functions according
10479         to L_ macros.
10480         (TMODES): Define if __LDBL_MANT_DIG__ is 113.
10481         (TFtype, TItype, UTItype): Define if TMODES is defined.
10482         (MAX_UDI_INT, MAX_DI_INT, BITS_PER_DI): Likewise.
10483         (F_T_BITOFF, D_T_BITOFF): Define.
10484         (IMPLICIT_1, IMPLICIT_2): Cast constants to types that are
10485         guaranteed to be wide enough.
10486         * config/fp-bit.c: Check for L_ macros for tf functions.
10487         (__thenan_tf): New.
10488         (nan): Adjust.
10489         (pack_d, unpack_d): Support IEEE 854 quad type.
10490         (_fpmul_parts): Support TFmode.  Compute exponent adjustment
10491         from FRAC_NBITS, FRAC_BITS and NGARDS.
10492         (usi_to_float): Cast constants to be shifted to fractype
10493         instead of assuming long long is wide enough.
10494         (sf_to_tf, df_to_tf, __make_tp, tf_to_df, tf_to_sf): New.
10495
10496 2003-01-26  Andreas Jaeger  <aj@suse.de>
10497
10498         * df.c: Remove prototype of unused function df_regno_rtl_debug.
10499
10500 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
10501
10502         * Makefile.in (FPBIT_FUNCS): Added _sf_to_tf.
10503         (DBBIT_FUNCS): Added _df_to_tf.
10504         (TPBIT_FUNCS): New.
10505         (libgcc.mk): Pass TPBIT and TPBIT_FUNCS down.
10506         (LIBGCC_DEPS): Added TPBIT.
10507         * mklibgcc.in: Support TPBIT and TPBIT_FUNCS.
10508
10509         * optabs.c (expand_binop) <add, sub>: Return xtarget if we haven't
10510         been able to move the result to target.
10511
10512         * expr.c (emit_group_store): Initialize dst with CONST0_RTX
10513         for the appropriate mode.
10514
10515         * calls.c (emit_library_call_value_1): Handle return values
10516         in a PARALLEL.
10517
10518         * rtl.c (get_mode_alignment): Moved to...
10519         * stor-layout.c: ... here.
10520
10521         * print-rtl.c (print_rtx): Don't print MEM details in
10522         GENERATOR_FILEs.
10523
10524 2003-01-26  Michael Hayes  <mph@paradise.net.nz>
10525
10526         * df.h: Update comments, tidy formatting.
10527         (DF_FORWARD, DF_REVERSE, DF_UNION, DF_INTERSECTION): Rename from FORWARD,
10528         REVERSE, UNION, INTERSECTION.  All uses updated.
10529         (OLD_DF_INTERFACE): Remove.
10530         (struct insn_info): Remove commented out insn field.
10531         * df.c: Update comments, tidy formatting.
10532         (df_def_table_realloc): Remove.
10533
10534
10535 2003-01-26  Alan Modra  <amodra@bigpond.net.au>
10536
10537         * calls.c (save_fixed_argument_area): Tidy.
10538         (restore_fixed_argument_area): Tidy.  Set alignment of stack_area.
10539         (expand_call): Comment typo fixes.  Don't init low_to_save.  Start
10540         call chain loop at 1 if !try_tail_call.  Formatting.
10541         (emit_library_call_value_1): Don't init low_to_save or high_to_save.
10542         Use save_fixed_argument_area and restore_fixed_argument_area.
10543
10544 2003-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10545
10546         * df.c (df_uses_record): Handle CC0.
10547
10548 2003-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
10549
10550         * reload.c (maybe_memory_address_p): New function.
10551         (find_reloads_address): Use it instead of memory_address_p.
10552
10553 2003-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
10554
10555         * final.c (shorten_branches): Align the address of code label
10556         when computing initial lengths and addresses.
10557
10558 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10559
10560         * config/m68hc11/m68hc11.md: Fix a comment typo.
10561
10562 2003-01-25  Andreas Jaeger  <aj@suse.de>
10563
10564         * config/i386/i386.c (x86_output_mi_thunk): Correct test for
10565         TARGET_MACHO.
10566
10567 2003-01-25  Roger Sayle  <roger@eyesopen.com>
10568
10569         * gcse.c (bypass_last_basic_block): New global variable.
10570         (bypass_block):  Use redirect_edge_and_branch_force to redirect
10571         fall-through edges.  Use bypass_last_basic_block to determine
10572         which blocks have valid PRE information.
10573         (bypass_conditional_jumps): Initialize bypass_last_basic_block.
10574
10575 2003-01-25  Jan Hubicka  <jh@suse.cz>
10576
10577         * gcse.c (local_cprop_pass): Update reg_sets table when needed.
10578
10579 2003-01-25  Jan Hubicka  <jh@suse.cz>
10580                               Eric Botcazou <ebotcazou@libertysurf.fr>
10581         PR opt/8492
10582         * gcse.c (one_cprop_pass): Delete unreachable blocks.
10583
10584 2003-01-25  Richard Henderson  <rth@redhat.com>
10585
10586         * config/ia64/ia64.c (ia64_rwreloc_select_rtx_section): Rename
10587         from ia64_aix_select_rtx_section.
10588         (ia64_rwreloc_select_section): Simlarly; use default*_1 function
10589         instead of saving and restoring flag_pic.
10590         (ia64_rwreloc_unique_section): Similarly.
10591         * config/ia64/aix.h (TARGET_ASM_SELECT_SECTION,
10592         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Update.
10593         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
10594         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): New.
10595
10596 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10597
10598         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Update a
10599         comment.
10600
10601 2003-01-25  Richard Henderson  <rth@redhat.com>
10602
10603         * config/m68k/m68k-none.h (ASM_SPEC): Adjust inter-option spacing.
10604
10605 2003-01-25  Kelley Cook <kelleycook@comcast.net>
10606
10607         * ggc-simple.c (debug_ggc_tree): Add PTR cast.
10608
10609 2003-01-25  Segher Boessenkool  <segher@koffie.nl>
10610
10611         * bitmap.h (BITMAP_WORD): New typedef: fundamental storage
10612         type for bitmaps.  Use unsigned long.
10613         (nBITMAP_WORD_BITS): New macro.
10614         (BITMAP_WORD_BITS): New macro.
10615         (rest of file): Use it.
10616         * bitmap.c: Use it.
10617
10618 2003-01-25  Richard Henderson  <rth@redhat.com>
10619
10620         2002-02-19  Robert Lipe  <robertlipe@usa.net>
10621         * config/i386/t-sco5gas: (CRTSTUFF_T_CFLAGS_S): Delete -mcoff.
10622
10623 2003-01-25  Roger Sayle  <roger@eyesopen.com>
10624
10625         * builtins.c (purge_builtin_constant_p): Scan insn stream
10626         sequentially rather than by basic block.
10627         * function.c (purge_addressof): Simplify test with INSN_P.
10628
10629 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10630
10631         * combine.c (simplify_comparison, case AND): Remove a redundant test.
10632
10633 2003-01-25  Roger Sayle  <roger@eyesopen.com>
10634
10635         * function.h (struct function): New field calls_constant_p.
10636         (current_function_calls_constant_p): New macro for above.
10637         * function.c (prepare_function_start): Initialize calls_eh_return
10638         and calls_constant_p.
10639         * builtins.c (expand_builtin_constant_p): Set calls_constant_p.
10640         * toplev.c (rest_of_compilation): Only call purge_builtin_constant_p
10641         when the current_function_calls_constant_p.
10642         * integrate.c (expand_inline_function): Set calls_constant_p if
10643         the function being inlined has calls_constant_p set.
10644
10645 2003-01-25  Roger Sayle  <roger@eyesopen.com>
10646
10647         * cse.c (fold_rtx): Instantiate CONSTANT_P_RTX to 0 when not
10648         optimizing, even if flag_gcse is true.
10649         * toplev.c (rest_of_compilation): purge_builtin_constant_p
10650         only needs to be called when "optimize > 0 && flag_gcse".
10651
10652 2003-01-25  Roger Sayle  <roger@eyesopen.com>
10653
10654         * stmt.c (emit_case_bit_tests): New routine to implement suitable
10655         switch statements using the equivalent of "if ((1<<x) & cst) ... ".
10656         (case_bit_test_cmp): New comparison function for "qsort" to order
10657         case_bit_tests by decreasing number of destination nodes.
10658         (lshift_cheap_p): New function to determine if "1 << x" is cheap.
10659         (expand_end_case_type): Use emit_case_bit_tests to implement
10660         suitable switch statments.
10661         (CASE_USE_BIT_TESTS): New target macro to disable the above.
10662         * Makefile.in (stmt.o): Add dependency on optab.h.
10663         * doc/tm.texi (CASE_USE_BIT_TESTS): Document new target macro.
10664
10665 2003-01-23  Andreas Schwab  <schwab@suse.de>
10666
10667         * config/ia64/crtend.asm [HAVE_INITFINI_ARRAY]: Make
10668         __do_global_ctors_aux hidden global and don't put it in
10669         .init_array.
10670         * config/ia64/crtbegin.asm [HAVE_INITFINI_ARRAY]: Put it here
10671         instead so that it comes first.
10672
10673 2003-01-25  Jan Hubicka  <jh@suse.cz>
10674
10675         * df.c (read_modify_subreg_p):  When osize == UNITS_PER_WORD,
10676         subreg is read/modify.
10677
10678 2003-01-25  Jan Hubicka  <jh@suse.cz>
10679
10680         * i386.c (ix86_expand_movstr, ix86_expand_clrstr): Consistently
10681         do libcall for large blocks.
10682         * i386.md (comi patterns): Set type to ssecomi.
10683         (sse2_unpck?pd): Fix mode of vec_select.
10684
10685         * cse.c: Include except.h
10686         (cse_set_around_loop):  Do not create new basic blocks.
10687         * Makefile.in (cse.o): Add dependnecy on except.h
10688
10689 2003-01-25  Jan Hubicka  <jh@suse.cz>
10690
10691         * builtins.c (fold_trunc_transparent_mathfn): New function.
10692         (fold_builtin): Use it.
10693         * convert.c (convert_to_real): Re-enable code to convert
10694         math functions; add support for floor familly functions.
10695
10696 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10697
10698         * Makefile.in (cfgloop.o, cfgloopanal.o, cfgloopmanip.o): Add
10699         dependencies on coretypes.h and $(TM_H).
10700
10701 2003-01-25  Jan Hubicka  <jh@suse.cz>
10702
10703         * builtins.c (fold_trunc_transparent_mathfn):  Undo accidental commit.
10704
10705 2003-01-24  Stuart Hastings  <stuart@apple.com>
10706
10707         * config/i386/i386.c (x86_output_mi_thunk): Add Darwin/x86 support.
10708
10709 2003-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10710
10711         * config/c4x/c4x.md (UNSPEC_BU): New constants.
10712         (UNSPEC_RPTS, UNSPEC_LSH, UNSPEC_CMPHI, UNSPEC_RCPF): Likewise.
10713         (UNSPEC_RND, UNSPEC_RPTB_FILL, UNSPEC_LOADHF_INT): Likewise.
10714         (UNSPEC_STOREHF_INT, UNSPEC_RSQRF, UNSPEC_LOADQF_INT): Likewise.
10715         (UNSPEC_STOREQF_INT, UNSPEC_LDIV, UNSPEC_PUSH_ST):  Likewise.
10716         (UNSPEC_POP_ST, UNSPEC_PUSH_DP, UNSPEC_POP_DP):  Likewise.
10717         (UNSPEC_POPQI, UNSPEC_POPQF, UNSPEC_ANDN_ST):  Likewise.
10718         (UNSPEC_RPTB_INIT, UNSPEC_TOIEEE, UNSPEC_FRIEEE):  Likewise.
10719
10720 2003-01-24  Jan Hubicka  <jh@suse.cz>
10721
10722         * emit-rtl.c (reg_attrs_htab): New static variable.
10723         (reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static
10724         functions.
10725         (reg_rtx): Do not maintain regno_decl.
10726         (gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx,
10727         set_mem_attrs_from_reg): New global function.
10728         (init_emit): Do not initialize regno_decl.
10729         (init_emit_once): initialize reg_attrs_htab.
10730         * final.c (alter_subreg): Do not replace REG by SUBREG.
10731         (gen_mem_expr_from_op): Improve output.
10732         (output_asm_operands): Likewise.
10733         * function.c (assign_params): Do not set REGNO_DECL.
10734         * function.h (struct function): Kill regno_decl.
10735         (REGNO_DECL): Kill.
10736         * gengtype.c (adjust_field_rtx_def): Handle new field of reg.
10737         * print_rtl.c (print_rtx): Output REG information.
10738         * regclass.c (reg_scan_mark_refs): Update attrs.
10739         * reload1.c (alter_reg): Likewise.
10740         * simplify_rtx.c (simplify_subreg): Likewise.
10741         * stmt.c (expand_decl): Likewise.
10742         * rtl.def (REG): Add new field.
10743         * rtl.h (struct reg_attrs): New.
10744         (rtunion_def): At rtreg.
10745         (X0MEMATTR): Add checking.
10746         (X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro.
10747         (set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset):
10748         Declare.
10749         * tree.h (SET_DECL_RTL): Call set_decl_rtl.
10750
10751 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
10752
10753         * config/xtensa/xtensa.c: Remove unused include of machmode.h.
10754         (xtensa_emit_call, print_operand): Fix printf format strings
10755         to avoid compile warnings.
10756         (xtensa_function_prologue, xtensa_function_epilogue): Change type
10757         of "size" argument to HOST_WIDE_INT to fix compile warnings.
10758         * config/xtensa/xtensa-protos.h
10759         (xtensa_function_prologue, xtensa_function_epilogue): Ditto.
10760
10761 2003-01-24  Jan Hubicka  <jh@suse.cz>
10762
10763         * builtins.c (DEF_BUILTIN): Accept 10 arguments.
10764         (implicit_built_in_decls): New global array.
10765         (mathfn_built_in): New global function.
10766         (fold_trunc_transparent_mathfn): New static function
10767         (expand_builtin_strstr, expand_bultin_strchr,
10768         expand_builtin_strpbrk, expand_builtin_strcpy,
10769         expand_builtin_strncpy, expand_bultin_strcmp,
10770         expand_bultin_strncat, expand_builtin_fputs): Use
10771         implicint_built_in_decls.
10772         (fold_builtin): Fold floor/trunc/round/ceil/nearbyint.
10773         * builtins.def: Fix comments.
10774         (DEF_GCC_BUILTIN, DEF_FALLBACK_BUILTIN, DEF_EXT_FALLBACK_BUILTIN,
10775         DEF_LIB_BUILTIN, DEF_LIB_ALWAYS_BUILTIN, DEF_EXT_LIB_BUILTIN,
10776         DEF_C99_BULTIN, DEF_FRONT_END_LIB_BUILTIN,
10777         DEF_EXT_FRONT_END_LIB_BUILTIN): Pass implicit as needed.
10778         (DEF_C99_C90RES_BULTIN): New.
10779         (*f, *l builtins): Update.
10780         * c-common.c (DEF_BUILTIN): Initialize implicit array.
10781         (c_expand_builtin_printf, c_expand_builtin_fprintf): Update.
10782         * convert.c (strip_float_extensions): New global function.
10783         * tree.h (DEF_BUILTIN): Accept 10 arguments.
10784         (implicit_built_in_decls, mathfn_built_in, strip_float_extension):
10785         Declare.
10786         * java/builtins.c (define_builtin): Handle implicit.
10787         (DEF_BUILTIN): Update.
10788         * tm.texi (TARGET_C99_FUNCTIONS): Document.
10789         * defaults.h (TARGET_C99_FUNCTIONS): Default to 0.
10790         * config/linux.h (TARGET_C99_FUNCTIONS): Default to 1
10791         when using glibc2.
10792
10793 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
10794
10795         * config.gcc (xtensa-*-elf*): Removed assignments to with_newlib,
10796         extra_parts, and fixincludes.  Add xtensa/t-elf tmake_file.
10797         (xtensa-*-linux*): Add xtensa/t-linux tmake_file.
10798         * config/xtensa/crti.asm: New file.
10799         * config/xtensa/crtn.asm: New file.
10800         * config/xtensa/t-elf: New file.
10801         * config/xtensa/t-linux: New file.
10802         * config/xtensa/t-xtensa: Add rules for crti.o and crtn.o.
10803         Move various CFLAGS settings to new t-elf file.
10804
10805 2003-01-24  Richard Henderson  <rth@redhat.com>
10806
10807         PR optimization/4382
10808         * tree-inline.c (find_builtin_longjmp_call_1): New.
10809         (find_builtin_longjmp_call): New.
10810         (inlinable_function_p): Use it.
10811
10812 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10813
10814         * config/i386/i386-protos.h (function_arg_pass_by_reference): Declare.
10815         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
10816         * config/i386/i386.c (function_arg_pass_by_reference): New.
10817         (ix86_va_arg): Support arguments passed by reference.
10818
10819 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10820
10821         * cfgloopanal.c: New file.
10822         * cfgloopmanip.c: New file.
10823         * Makefile.in (cfgloopanal.o, cfgloopmanip.o): New.
10824         (toplev.o, loop.o, doloop.o, unroll.o, cfgloop.o, predict.o,
10825         cfglayout.o): Add dependency on cfgloop.h.
10826         (cfgloop.o): Add flags.h dependency.
10827         * basic-block.h (BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK): New flags.
10828         (VLS_EXPECT_PREHEADERS, VLS_EXPECT_SIMPLE_LATCHES): Removed.
10829         (struct loop, struct loops, flow_loops_find, flow_loops_update,
10830         flow_loops_free, flow_loops_dump, flow_loop_dump,
10831         flow_loop_scan, flow_loop_tree_node_add, flow_loop_tree_node_remove,
10832         LOOP_TREE,,LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
10833         LOOP_ALL, flow_loop_outside_edge_p, flow_loop_nested_p,
10834         flow_bb_inside_loop_p, get_loop_body, loop_preheader_edge,
10835         loop_latch_edge, add_bb_to_loop, remove_bb_from_loops,
10836         find_common_loop, verify_loop_structure): Declarations moved to ...
10837         * cfgloop.h: New file.
10838         * bb-reorder.c (reorder_basic_blocks): Modified.
10839         * cfglayout.c: Include cfgloop.h.
10840         (cleanup_unconditional_jumps, cfg_layout_redirect_edge,
10841         cfg_layout_duplicate_bb, cfg_layout_initialize): Update loop structure.
10842         (break_superblocks): New static function.
10843         (cfg_layout_finalize): Use it.
10844         (cfg_layout_split_block): New function.
10845         * cfglayout.h (struct reorder_block_def): Add copy and duplicated
10846         fields.
10847         (cfg_layout_initialize, cfg_layout_redirect_edge): Declaration
10848         changed.
10849         (cfg_layout_split_block): Declare.
10850         * cfgloop.c: Include cfgloop.h and flags.h.
10851         (flow_loop_dump, flow_loops_free, flow_loop_exit_edges_find,
10852         get_loop_body): Avoid signed versus unsigned comparison warnings.
10853         (make_forwarder_block, flow_loops_find, loop_preheader_edge,
10854         loop_latch_edge): Modified.
10855         (verify_loop_structure): Modified to use flags stored in loop structure;
10856         check irreducible loops.
10857         (cancel_loop, cancel_loop_tree): New functions.
10858         (estimate_probability): Use loop analysis code for predictions.
10859         (estimate_loops_at_level):  Avoid signed versus unsigned comparison
10860         warnings.
10861         * doloop.c: Include cfgloop.h.
10862         * loop.c: Include cfgloop.h.
10863         * predict.c: Include cfgloop.h.
10864         * toplev.c: Include cfgloop.h.
10865         * unroll.c: Include cfgloop.h.
10866         * tracer.c (tracer): Modified.
10867
10868 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10869
10870         * config/h8300/h8300.c (get_shift_alg): Fix a typo.
10871
10872 2003-01-24  Ulrich Weigand  <uweigand@de.ibm.com>
10873
10874         * configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
10875         * configure: Regenerate.
10876
10877         * config/s390/s390-protos.h (tls_symbolic_operand): Add prototype.
10878         (tls_symbolic_reference_mentioned_p): Add prototype.
10879         (s390_tls_get_offset): Add prototype.
10880         (emit_pic_move): Remove prototype, replace by ...
10881         (emit_symbolic_move): .. this new prototype.
10882
10883         * config/s390/s390.c (TARGET_HAVE_TLS): Conditionally define.
10884         (tls_model_chars): New global variable.
10885         (s390_encode_section_info): Encode TLS model.
10886         Use targetm.binds_local_p to check for local symbols.
10887         (s390_strip_name_encoding): New function.
10888         (TARGET_STRIP_NAME_ENCODING): Define.
10889
10890         (get_thread_pointer): New function.
10891         (legitimize_tls_address): New function.
10892         (legitimize_address): Call it.
10893         (emit_pic_move): Remove, replace by ...
10894         (emit_symbolic_move): ... this new function.
10895
10896         (larl_operand): Handle TLS operands.
10897         (legitimate_constant_p): Likewise.
10898         (s390_decompose_address): Likewise.
10899         (s390_cannot_force_const_mem): New function.
10900         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
10901
10902         (s390_output_symbolic_const): Handle TLS unspecs.
10903         (print_operand): New code 'J'.
10904         (machine_function): Add struct member 'some_ld_name'.
10905         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
10906
10907         (enum s390_builtin): New type.
10908         (code_for_builtin_64, code_for_builtin_31): New global variables.
10909         (s390_init_builtins, s390_expand_builtin): New functions.
10910         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
10911
10912         * config/s390/s390.h (TLS_SYMBOLIC_CONST): New macro.
10913         (ASM_OUTPUT_LABELREF): Define.
10914         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Handle TLS constants.
10915
10916         * config/s390/s390.md: Define TLS UNSPEC constants.
10917         ("movdi", "movsi"): Handle TLS operands.
10918         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): New insns.
10919         ("*tls_load_64", "*tls_load_31"): New insns.
10920         ("call_value_tls", "call_value_tls_exp"): New expanders.
10921         ("brasl_tls", "bras_tls", "basr_tls_64", "basr_tls_31",
10922         "bas_tls_64", "bas_tls_31"): New insns.
10923
10924 2003-01-24  Nathan Sidwell  <nathan@codesourcery.com>
10925
10926         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Make sure
10927         spe ABI is configured, if requested.
10928
10929 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10930
10931         * doc/passes.texi: Fix typo.
10932
10933 2003-01-24  Andreas Schwab  <schwab@suse.de>
10934
10935         * stor-layout.c (excess_unit_span): Only define if used.
10936
10937 2003-01-24  Jerry Quinn  <jlquinn@optonline.net>
10938
10939         * gcc/doc/invoke.texi (Optimization Options): List -O levels
10940         for each optimization flag.
10941
10942 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10943
10944         * config/h8300/h8300.md (*andsi3_ashift_n_lower): New.
10945
10946 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10947
10948         * doc/bugreport.texi: Use @command instead of @code for commands.
10949         * doc/collect2.texi: Likewise.
10950         * doc/headerdirs.texi: Likewise.
10951         * doc/invoke.texi: Likewise.
10952         * doc/standards.texi: Likewise.
10953         * doc/tm.texi: Likewise.
10954         * doc/trouble.texi: Likewise.
10955
10956 2003-01-24  Nick Clifton  <nickc@redhat.com>
10957
10958         * config/arm/arm.c (use_return_insn): Do not use a single return
10959         instruction for interrupt handelrs which have to create a stack
10960         frame.
10961         (arm_expand_prologue): Do not pre-bias the return address of
10962         interrupt handlers which create a stack frame.
10963
10964 2003-01-24  Nick Clifton  <nickc@redhat.com>
10965
10966         * Add sh2e support:
10967
10968         2002-08-12  Alexandre Oliva  <aoliva@redhat.com>
10969
10970                 * config/sh/sh.c (output_branch) [TARGET_SH2E]: Handle
10971                 med_cbranches.  Fix logic in short_cbranches.
10972
10973         2002-04-03  Alexandre Oliva  <aoliva@redhat.com>
10974
10975                 * config/sh/sh.md (delay for cbranch): Don't annul delay
10976                 slots on SH2e.
10977                 * config/sh/sh.c (sh_insn_length_adjustment): Add 2 for
10978                 cbranch with unfilled delay slot on SH2e.
10979                 (output_branch): Fill with a nop the delay slot of a
10980                 branch that required a delay slot but didn't get one.
10981
10982         2002-04-02  Alexandre Oliva  <aoliva@redhat.com>
10983
10984                 * doc/invoke.texi (SH options): Document -m2e.
10985                 * config/sh/crt1.asm: Add __SH2E__ Next to __SH3E__.
10986                 * config/sh/lib1funcs.asm: Likewise.
10987                 * config/sh/sh.c: Replace all uses of TARGET_SH3E with SH2E.
10988                 * config/sh/sh.h (CPP_SPEC): Define __SH2E__ for -m2e, and
10989                 not __sh1__.
10990                 (CONDITIONAL_REGISTER_USAGE): Don't disable FP regs from
10991                 SH2E up.
10992                 (SH3E_BIT): Renamed to...
10993                 (SH_E_BIT): ... this.  Replace all uses.
10994                 (TARGET_SH2E): Define from SH_E_BIT and TARGET_SH2.
10995                 Replace all uses of TARGET_SH3E with TARGET_SH2E.
10996                 (TARGET_SWITCHES): Added 2e.
10997                 (OVERRIDE_OPTIONS): Set sh_cpu for SH2E.
10998                 (processor_type): Added PROCESSOR_SH2E.
10999                 * config/sh/sh.md: Replace all uses of TARGET_SH3E with
11000                 TARGET_SH2E, except in sqrtsf2_i.
11001                 (attribute cpu): Added sh2e.
11002                 * config/sh/t-sh (MULTILIB_OPTIONS): Replace m3e with m2e.
11003                 (MULTILIB_MATCHES): Use m2e multilib for m3e.
11004                 * config.gcc: Add sh2e target support.
11005
11006 2003-01-24  Phil Edwards  <pme@gcc.gnu.org>
11007
11008         Rename -W to -Wextra.
11009         * c-decl.c:  Update comments.
11010         * c-typeck.c:  Likewise.
11011         * flags.h:  Likewise.
11012         * function.c:  Likewise.
11013         * stmt.c:  Likewise.
11014         * toplev.c:  Update comments.
11015         (W_options):  Add 'extra'.
11016         (display_help):  Remove '-W'.
11017         (decode_W_option):  Special warn_uninitialized treatment in the case
11018         of -Wextra.
11019         * doc/invoke.texi:  Update with new entries.
11020
11021 2003-01-23  Richard Henderson  <rth@redhat.com>
11022
11023         * ifcvt.c (noce_process_if_block): Re-add check vs X being changed
11024         in no-else-block case.  Add commentary.
11025
11026 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11027
11028         * configure.in: Revert last change.
11029
11030 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11031
11032         * configure.in: Don't include ansidecl.h in tconfig.h.
11033         * gcov-io.h (PARAMS, ATTRIBUTE_UNUSED: Define if IN_LIBGCC2.
11034         * unwind-dw2-fde.h (last_fde): Use __attribute__, not
11035         ATTRIBUTE_UNUSED.
11036
11037         * configure: Regenerate.
11038
11039 2003-01-23  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11040
11041         PR java/6748
11042         * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Don't destroy
11043         regs->nip. Fix rt_sigreturn frame layout. Add support for newer
11044         kernels.
11045
11046 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11047
11048         * cpplex.c (cpp_interpret_charconst): Squelch warning with cast.
11049
11050 2003-01-23  Ulrich Weigand  <uweigand@de.ibm.com>
11051
11052         * genattrtab.c (write_attr_get): Mark 'insn' paramter
11053         as ATTRIBUTE_UNUSED.
11054
11055 2003-01-23  Richard Earnshaw  <rearnsha@arm.com>
11056
11057         * arm.c (thumb_base_register_rtx_p): New function.
11058         (thumb_index_register_rtx_p): New function.
11059         (thumb_legitimate_address_p): New function.
11060         (thumb_legitimate_offset_p): New function.
11061         * arm.h (REG_STRICT_P): Define according to setting of REG_OK_STRICT.
11062         (ARM_GO_IF_LEGITIMATE_ADDRESS): Use REG_STRICT_P to avoid duplicate
11063         definitions.
11064         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Use thumb_legitimate_address_p.
11065         (THUMB_LEGITIMATE_OFFSET): Delte.
11066         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use thumb_legitimate_offset.
11067         * arm-protos.h (thumb_legitimate_address_p): Add prototype.
11068         (thumb_legitimate_offset_p): Likewise.
11069
11070 2003-01-23  Andreas Schwab  <schwab@suse.de>
11071
11072         * unwind.h (_Unwind_GetTextRelBase): Mark parameter as unused.
11073
11074 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11075
11076         * fixinc/Makefile.in (FL_LIST): Revert last change.
11077
11078 2003-01-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
11079
11080         PR other/7341
11081         * invoke.texi (ftest-coverage): Fix broken cross-reference.
11082         Change @code to @command for gcov command.
11083
11084         * gcc.texi: Adjust title of gcov section.
11085         Adjust copyright.
11086         * gcov.texi: Likewise.
11087
11088 2003-01-22  Roger Sayle  <roger@eyesopen.com>
11089
11090         PR optimization/8423
11091         * cse.c (fold_rtx): Only eliminate a CONSTANT_P_RTX to 1 when
11092         its argument is constant, or 0 if !flag_gcse.
11093         * simplify-rtx.c (simplify_rtx): Convert CONSTANT_P_RTX to 1
11094         if it's argument is constant.
11095         * gcse.c (want_to_gcse_p): Ignore CONSTANT_P_RTX nodes.
11096         (hash_scan_set): Don't record CONSTANT_P_RTX expressions.
11097         (do_local_cprop): Don't propagate CONSTANT_P_RTX constants.
11098         * builtins.c (purge_builtin_constant_p): New function to force
11099         instantiation of any remaining CONSTANT_P_RTX nodes.
11100         * rtl.h (purge_builtin_constant_p): Prototype here.
11101         * toplev.c (rest_of_compilation): Invoke purge_builtin_constant_p
11102         pass after GCSE and before loop.
11103         (flag_gcse): No longer static.
11104         * flags.h (flag_gcse): Prototype here.
11105
11106 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
11107
11108         * config/s390/s390.h (HARD_REGNO_MODE_OK): Fix warning regression
11109         introduced by last change.
11110
11111 2003-01-22  Andreas Schwab  <schwab@suse.de>
11112
11113         * ra-rewrite.c (rewrite_program2): Initialize bb to avoid warning.
11114
11115 2003-01-22  Kazu Hirata  <kazu@cs.umass.edu>
11116
11117         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Don't
11118         request a scratch reg on H8S when the shift count is 8.
11119
11120 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
11121
11122         * config/s390/s390-protos.h (preferred_la_operand_p):
11123         Remove second parameter.
11124         * config/s390/s390.c (preferred_la_operand_p): Likewise.
11125         * config/s390/s390.h (FRAME_REGNO_P, FRAME_REG_P): New macros.
11126         (HARD_REGNO_MODE_OK): Use FRAME_REGNO_P.
11127         * config/s390/s390.md ("*la_cc_64", "*la_cc_31", splitters): Remove.
11128         Add peepholes to transform ADD to LOAD ADDRESS.
11129
11130 2003-01-22  Richard Earnshaw  <rearnsha@arm.com>
11131
11132         * arm.c (arm_address_register_rtx_p): New function.
11133         (arm_legitimate_address_p): New function.
11134         (arm_legitimate_index_p): New function.
11135         (legitimize_pic_address): Use arm_legitimate_index_p.
11136         * arm-protos.h (arm_legtimate_address_p): Add prototype.
11137         * arm.h (ARM_GO_IF_LEGITIMATE_INDEX): Delete.
11138         (ARM_GO_IF_LEGITIMATE_ADDRESS): Call arm_legitimate_address_p.
11139
11140 2003-01-22  Hartmut Penner  <hpenner@de.ibm.com>
11141
11142         * config/s390/s390.md (floatdfdi2): Insn has type 'itof'.
11143         * config/s390/2064.md (define_bypass): Correct 'Load' and
11144         'Load-address' bypass values.
11145
11146 2003-01-22  Andreas Schwab  <schwab@suse.de>
11147
11148         * config/ia64/t-ia64 (insn-attrtab.o-warn): Define as -Wno-error.
11149
11150 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
11151
11152         * genautomata.c (output_internal_insn_latency_func,
11153         output_print_reservation_func): Short circuit when there is no
11154         automaton to generate code for.
11155
11156 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11157
11158         * Makefile.in (ssa-ccp.o): Depend on coretypes.h $(TM_H).
11159         (df.o): Delete duplicate dependency on coretypes.h $(TM_H).
11160
11161 2003-01-21  Geoffrey Keating  <geoffk@apple.com>
11162
11163         * config/rs6000/rs6000.md: Remove warning.
11164         (builtin_setjmp_receiver): Likewise.
11165         * config/darwin.c (update_stubs): Slightly improve terrible hack
11166         with identifiers.  Add comment pointing out problems with it.
11167         (update_non_lazy_ptrs): Likewise.
11168
11169 2003-01-21  Richard Henderson  <rth@redhat.com>
11170
11171         * dwarf2out.c (lookup_filename): Fix printf format warning.
11172         * system.h (fread_unlocked, fwrite_unlocked): Undef.
11173
11174         * fixinc/Makefile.in (FL_LIST): Add $($@-warn) hook.
11175         (fixincl.o-warn, gnu-regex.o-warn): New.
11176         * fixinc/fixfixes.c (FIX_PROC_HEAD): Mark parameters unused.
11177         * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Likewise.
11178         * fixinc/fixincl.c (process): Fix printf format warning.
11179
11180 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
11181
11182         * dwarf2out (output_file_names): Don't crash if called
11183         with empty file_table.
11184
11185 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
11186
11187         * genautomata.c (output_internal_insn_latency_func): Add
11188         missing break statement to generated code.
11189
11190 2003-01-21  Roger Sayle  <roger@eyesopen.com>
11191
11192         * stmt.c (same_case_target_p): New function to determine whether
11193         two case labels branch to the same target.  Split out from...
11194         (group_case_nodes): ... here.  Use same_case_target_p instead.
11195         (strip_default_case_nodes): Remove explicit case nodes
11196         that branch to the default destination.
11197         (expand_end_case_type): Call strip_default_case_nodes after
11198         group_case_nodes, to simplify the case-list before we count it.
11199         Only generate table_label RTX when actually needed.  Try to share
11200         thiscase->exit_label and thiscase->data.case_stmt.default_label
11201         when a switch has no explicit default case.  Simplify test for
11202         constant index.
11203
11204 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11205
11206         * config/h8300/h8300.md (*negsf2_h8300): Use \\t instead of
11207         \t.
11208         (*negsf2_h8300hs): Likewise.
11209         (*addsi3_lshiftrt_16_zexthi): Likewise.
11210         (*iorhi3_lshiftrt_8): Likewise.
11211
11212 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
11213
11214         * dwarf2out.c (fde_table_in_use): Mark GTY.
11215         (dwarf2out_cfi_label_num): New variable, marked GTY.
11216         (dwarf2out_cfi_label): Use it instead of static label_num.
11217         * emit-rtl.c (label_num): Mark GTY.
11218
11219 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11220
11221         * config/h8300/h8300.c (output_plussi): Support H8/300.
11222         (compute_plussi_length): Likewise.
11223         (compute_plussi_cc): Likewise.
11224         * config/h8300/h8300.md (addsi_h8300): Use output_plussi to
11225         output assembly instructions.
11226
11227 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11228
11229         * calls.c (fix_unsafe_tree): Prototype.
11230
11231         * Makefile.in (GCC_WARN_CFLAGS): Add $(WERROR) $($@-warn)
11232         (gtype-desc.o-warn, c-decl.o-warn, varasm.o-warn, gcc.o-warn,
11233         insn-conditions.o-warn, out_object_file, gengtype-yacc.o-warn,
11234         c-parse.o-warn): Add -Wno-error.
11235         (STAGE2_FLAGS_TO_PASS): Add WERROR="@WERROR@".
11236
11237         * configure.in (--enable-werror): Add new flag.
11238         * doc/install.texi (--enable-werror): Document.
11239         * configure: Regenerate.
11240
11241         * objc/Make-lang.in (objc/objc-parse.o-warn): Add -Wno-error.
11242
11243 2003-01-21  Andreas Schwab  <schwab@suse.de>
11244
11245         * genautomata.c (output_internal_insn_latency_func): Fix missing
11246         close paren in output.
11247
11248 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
11249
11250         * genautomata.c: Space savings in generated code:
11251         (output_dfa_insn_code_func): Split out the table-enlargement
11252         path to an out-of-line static function, dfa_insn_code_enlarge.
11253         (output_internal_insn_latency_func): Use a lookup table for the
11254         default latencies.
11255         (output_print_reservation_func): Use a lookup table for the
11256         strings.
11257
11258 2003-01-21  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
11259
11260         PR opt/7507
11261         * calls.c (fix_unsafe_tree): Split out from ...
11262         (expand_call): ... here.  Use it on the function address too.
11263
11264 2003-01-20  Richard Henderson  <rth@redhat.com>
11265
11266         * expr.h (default_must_pass_in_stack): Move decl outside ifdef.
11267
11268 2003-01-20  Richard Henderson  <rth@redhat.com>
11269
11270         PR opt/7154
11271         * stmt.c (expand_asm_operands): Validize memory operands.
11272
11273 2003-01-20  Richard Henderson  <rth@redhat.com>
11274
11275         PR opt/8848
11276         * ifcvt.c (noce_process_if_block): Correct arguments to
11277         modified_between_p for no-else-block case.
11278
11279 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11280
11281         * config/h8300/h8300.c (const_costs): Remove a warning.
11282         (output_plussi): Likewise.
11283         (compute_plussi_length): Likewise.
11284         (compute_plussi_cc): Likewise.
11285
11286 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11287
11288         * config/h8300/h8300.md (addsi_h8300): Remove the last
11289         alternative.
11290
11291 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11292
11293         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
11294
11295 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11296
11297         * system.h (__NO_STRING_INLINES): Define.
11298
11299 2003-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11300
11301         * ifcvt.c (noce_emit_store_flag): Don't emit store flag if mode of x
11302         is not a scalar int mode.
11303
11304 2003-01-20  Roger Sayle  <roger@eyesopen.com>
11305
11306         * cse.c (cse_insn): Avoid RTL sharing when updating the RETVAL
11307         insn's notes following a substitution inside a libcall.
11308
11309 2003-01-20  Zack Weinberg  <zack@codesourcery.com>
11310
11311         * configure.in: Check for system-provided 'uchar' type.
11312         * configure, config.in: Regenerate.
11313         * cpphash.h: Only typedef 'uchar' if the system doesn't.
11314
11315 2003-01-20  Richard Henderson  <rth@redhat.com>
11316
11317         * expr.h (MUST_PASS_IN_STACK): Move implementation...
11318         * calls.c (default_must_pass_in_stack): ... here.
11319
11320 2003-01-20  Vladimir Makarov  <vmakarov@redhat.com>
11321
11322         * genattrtab.h (INSN_ALTS_FUNC_NAME): Move it from genautomata.c.
11323
11324         * genautomata.c (INSN_ALTS_FUNC_NAME): Move it into genattrtab.h.
11325
11326         * genattr.c (main): Output default definition of AUTOMATON_ALTS.
11327         Wrap up definition of `insn_alts'.
11328
11329         * genattrtab.c (main): Wrap up `insn_alts'.
11330
11331 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11332
11333         * collect2.c (ldgetname): Check HAVE_DECL_LDGETNAME before
11334         prototyping.
11335         * configure.in: Check for <ldfcn.h> and ldgetname() prototype.
11336
11337         * config.in, configure: Regenerate.
11338
11339 2003-01-20  Nick Clifton  <nickc@redhat.com>
11340
11341         * config/arm/arm.md (sibcall_epilogue): Add an
11342         UNSPEC_PROLOGUE_USE to prevent the link register from being
11343         considered dead.
11344
11345 2003-01-20  Jan Hubicka  <jh@suse.cz>
11346
11347         * i386.md (SSE cmov splitter):  Handle memory operand in operand 5.
11348
11349 2003-01-20  Andreas Schwab  <schwab@suse.de>
11350
11351         * system.h: Don't declare strsignal if the decl test hasn't been
11352         run yet.
11353
11354 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11355
11356         * config/h8300/h8300.c (notice_update_cc): Don't assume that
11357         recog_data.operands[0] is always associated with cc0.
11358
11359 2003-01-19  David Edelsohn  <edelsohn@gnu.org>
11360
11361         * collect2.c (ldgetname): Expand declaration to prototype.
11362         * read-rtl.c (atoll): Add prototype.
11363         * system.h (strsignal): Also declare if no declaration found.
11364
11365 2003-01-19  Alexandre Oliva  <aoliva@redhat.com>
11366
11367         * config.gcc (mips64*-*-linux*): Added.
11368         * config/mips/linux64.h, config/mips/t-linux64: New file.
11369         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Define.
11370         * config/mips/mips.c (override_options): Use it.
11371         * config/mips/mips.h (TARGET_SWITCHES): Added...
11372         (SUBTARGET_TARGET_SWITCHES): New, empty by default.
11373         * Makefile.in (SPECS): New.
11374         (STAGESTUFF, specs, mostlyclean, install-common): Use it.
11375         * gcc.c (process_command): Move self-spec processing past spec
11376         file loading.
11377         * doc/tm.texi (DRIVER_SELF_SPECS): Document the change.
11378         * doc/fragments.texi (MULTILIB_EXTRA_OPTS): Document need for
11379         CRTSTUFF_T_CFLAGS.
11380         (SPECS): Document.
11381         * doc/invoke.texi (-mabi-fake-default): Document.
11382
11383 2003-01-19  Stephane Carrez  <stcarrez@nerim.fr>
11384
11385         * config/m68hc11/m68hc11.c (stack_push_word, stack_pop_word,
11386         z_reg, z_reg_qi): Declare static and GTY().
11387         (da_reg): Remove.
11388         (create_regs_rtx): Don't create da_reg.
11389         ("gt-m68hc11.h"): Include for GTY roots.
11390         * config/m68hc11/m68hc11.h (ix_reg, iy_reg, d_reg): Declare extern
11391         and GTY() here.
11392         (m68hc11_compare_op0, m68hc11_compare_op1): Likewise.
11393         (m68hc11_soft_tmp_reg): Likewise.
11394         * config/m68hc11/m68hc11-protos.h: Remove above declarations.
11395
11396 2003-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11397
11398         * basic-block.h: Fix comment formatting.
11399         * calls.c: Likewise.
11400         * combine.c: Likewise.
11401         * convert.c: Likewise.
11402         * gcov.c: Likewise.
11403         * haifa-sched.c: Likewise.
11404         * libgcc2.c: Likewise.
11405         * loop.c: Likewise.
11406         * profile.c: Likewise.
11407         * system.h: Likewise.
11408
11409 2003-01-18  Roger Sayle  <roger@eyesopen.com>
11410
11411         * config/pa/pa.md (muldi3): Avoid invalid sharing of SUBREG RTXs.
11412
11413 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11414
11415         * ra-build.c (undef_to_size_word): Avoid `switch' warning.
11416
11417 2003-01-17  Dale Johannesen  <dalej@apple.com>
11418
11419         * config/rs6000/rs6000.md (*floatsidf2_internal):  Add earlyclobbers.
11420           (*floatunssidf2_internal):  Ditto.
11421
11422 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
11423
11424         * alias.c: Fix comment typos.
11425         * basic-block.h: Likewise.
11426         * c-common.c: Likewise.
11427         * c-common.h: Likewise.
11428         * c-decl.c: Likewise.
11429         * c-opts.c: Likewise.
11430         * c-pragma.c: Likewise.
11431         * c-pretty-print.h: Likewise.
11432         * cfg.c: Likewise.
11433         * cfganal.c: Likewise.
11434         * cfgbuild.c: Likewise.
11435         * cfgcleanup.c: Likewise.
11436         * cfglayout.c: Likewise.
11437         * cfgrtl.c: Likewise.
11438         * convert.c: Likewise.
11439         * cpphash.h: Likewise.
11440         * cpplex.c: Likewise.
11441         * cpplib.h: Likewise.
11442         * df.h: Likewise.
11443         * diagnostic.c: Likewise.
11444         * diagnostic.h: Likewise.
11445         * dwarf2.h: Likewise.
11446
11447 2003-01-17  Stan Shebs  <shebs@apple.com>
11448
11449         * config/darwin-protos.h: Forward-declare struct cpp_reader.
11450
11451 2003-01-17  Douglas B Rupp  <rupp@gnat.com>
11452
11453         * config/alpha/alpha.c (alpha_need_linkage): Fix obvious
11454         mistake in last checkin.
11455
11456 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
11457
11458         * et-forest.c: Fix comment typos.
11459         * et-forest.h: Likewise.
11460         * except.c: Likewise.
11461         * expr.c: Likewise.
11462         * flags.h: Likewise.
11463         * flow.c: Likewise.
11464         * gcc.c: Likewise.
11465         * gcse.c: Likewise.
11466         * genattrtab.c: Likewise.
11467         * genautomata.c: Likewise.
11468         * gengtype.c: Likewise.
11469         * genrecog.c: Likewise.
11470         * global.c: Likewise.
11471         * gthr-rtems.h: Likewise.
11472
11473 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11474
11475         * i386.c (x86_function_profiler): Fix format specifier.
11476
11477 2003-01-17  Richard Henderson  <rth@redhat.com>
11478
11479         * gengtype.c (walk_type): Allow paramN_is.
11480
11481 2003-01-17  Nick Clifton  <nickc@redhat.com>
11482
11483         * config/i960/t-960bare (i960-c.o): Add missing newline escape.
11484
11485 2003-01-16  Richard Henderson  <rth@redhat.com>
11486
11487         * config/alpha/linux-elf.h (LIB_SPEC): Adjust inter-option spacing.
11488
11489 2003-01-16  Richard Henderson  <rth@redhat.com>
11490
11491         * config/alpha/alpha.c (alpha_sr_alias_set): Mark GTY.
11492         (alpha_next_sequence_number): Likewise.
11493         (alpha_this_literal_sequence_number): Likewise.
11494         (alpha_this_gpdisp_sequence_number): Likewise.
11495         (struct alpha_funcs, alpha_funcs_num): Likewise.
11496         (struct alpha_links): Fix branch merge error.
11497         (alpha_need_linkage, alpha_use_linkage): Use GC for alpha_funcs.
11498
11499 2003-01-17  Alexandre Oliva  <aoliva@redhat.com>
11500
11501         * config/mips/mips.h: Don't use #elif.  Reported by Kaveh
11502         R. Ghazi.
11503
11504 2003-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11505
11506         * ifcvt.c: Fix comment typos.
11507         * lcm.c: Likewise.
11508         * libgcc2.c: Likewise.
11509         * local-alloc.c: Likewise.
11510         * loop.c: Likewise.
11511         * predict.c: Likewise.
11512         * ra-build.c: Likewise.
11513         * ra.c: Likewise.
11514         * ra-colorize.c: Likewise.
11515         * ra.h: Likewise.
11516         * ra-rewrite.c: Likewise.
11517         * regmove.c: Likewise.
11518         * reload.h: Likewise.
11519         * rtlanal.c: Likewise.
11520         * toplev.c: Likewise.
11521         * tree.h: Likewise.
11522         * unwind-dw2-fde-glibc.c: Likewise.
11523         * vmsdbgout.c: Likewise.
11524
11525 2003-01-16  Richard Henderson  <rth@redhat.com>
11526
11527         * dwarf2out.c (struct file_table): Remove.
11528         (FILE_TABLE_INCREMENT): Remove.
11529         (file_table): Make a varray; mark for GC.  Update all users.
11530         (file_table_last_lookup_index): Extract from struct file_table.
11531         (output_file_names): Fix unsigned compare warnings.
11532         (add_name_attribute): Remove inline marker.
11533         (add_comp_dir_attribute): Split out from gen_compile_unit_die.
11534         (lookup_filename): Don't manage size of file_table.
11535         (init_file_table): Allocate file_table with GC.
11536         (dwarf2out_init): Don't record main_input_filename here.
11537         (dwarf2out_finish): Do it here instead.
11538
11539 2003-01-16  Bruce Korb  <bkorb@gnu.org>
11540
11541         * gcc/fixinc/inclhack.def(limits_ifndef): QNX needs a bypass, too.
11542
11543 2003-01-16  Kaz Kojima  <kkojima@gcc.gnu.org>
11544
11545         * config/sh/sh.c (sh_initialize_trampoline): Emit rotrdi3_mextr
11546         instead of rotldi3_mextr.
11547
11548 2003-01-16  Vladimir Makarov  <vmakarov@redhat.com>
11549
11550         * haifa-sched.c (move_insn): Restore moving all schedule group.
11551         (set_priorities): Restore taking SCHED_GROUP_P into account.
11552
11553         * sched-deps.c (add_dependence): Restore processing the last group
11554         insn.
11555         (remove_dependence, group_leader): Restore the functions.
11556         (set_sched_group_p): Restore adding dependencies from previous insn
11557         in the group.
11558         (compute_forward_dependences): Restore usage of group_leader.
11559
11560         * sched-ebb.c (init_ready_list): Restore taking SCHED_GROUP_P into
11561         account.
11562
11563         * sched-rgn.c (init_ready_list): Restore taking SCHED_GROUP_P into
11564         account.
11565         (can_schedule_ready_p): Ditto.
11566         (add_branch_dependences): Restore skipping over the group insns.
11567
11568 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
11569
11570         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling
11571         68HC12 pre/post inc/dec side effects.
11572
11573 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
11574
11575         * config/m68hc11/m68hc11.h (MASK_M6812): Define.
11576
11577 2003-01-16  J"orn Rennecke <amylaar@onetel.net.uk>
11578
11579         * sh.md (mshflo_w_x): Fix description of operation.
11580
11581 2003-01-16  Zack Weinberg  <zack@codesourcery.com>
11582
11583         * config/rs6000/rs6000.h: Mention Altivec registers in
11584         commentary.  Fix typo.
11585
11586 2003-01-16  David Edelsohn  <edelsohn@gnu.org>
11587
11588         * config/rs6000/rs6000.md (movti_string): Remove clobber.
11589         * config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly
11590         generate PARALLEL with clobber for TARGET_POWER.
11591
11592 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11593
11594         * ra-colorize.c (colorize_one_web): Initialize variable.
11595         * regmove.c (fixup_match_1): Likewise.
11596         * reload1.c (reload_as_needed): Likewise.
11597         * sdbout.c (SET_KNOWN_TYPE_TAG): Add cast.
11598
11599 2003-01-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11600
11601         * cfgloop.c (flow_loops_find): Fix handling of abnormal edges.
11602
11603 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11604
11605         * dbxout.c (lastfile, cwd): Fix `unused' warning.
11606         * dwarf2out.c (fde_table_in_use, current_funcdef_fde,
11607         dw_cfi_oprnd1_desc, dw_cfi_oprnd2_desc, next_die_offset,
11608         is_main_source, file_table, decl_die_table_in_use,
11609         abbrev_die_table_in_use, line_info_table_in_use,
11610         separate_line_info_table_in_use, pubname_table_in_use,
11611         arange_table_in_use, ranges_table_in_use,
11612         current_function_has_inlines): Likewise.
11613         * flow.c (life_analysis): Likewise.
11614         * genemit.c (gen_insn): Likewise.
11615         * protoize.c (cplus_suffix): Likewise.
11616
11617         * arm.c (ROUND_UP_WORD): Renamed from ROUND_UP.
11618         * arm.h (ROUND_UP_WORD): Likewise.
11619
11620         * arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned
11621         warning.
11622         * emit-rtl.c (gen_rtx_REG, set_mem_attributes_minus_bitpos,
11623         init_emit_once): Likewise.
11624         * flow.c (mark_regs_live_at_end, calculate_global_regs_live):
11625         Likewise.
11626         * function.c (assign_stack_temp_for_type): Likewise.
11627         * loop.c (loop_invariant_p): Likewise.
11628         * recog.c (push_operand): Likewise.
11629         * regclass.c (init_reg_sets_1): Likewise.
11630         * reload.c (update_auto_inc_notes): Likewise.
11631         * reload1.c (reload_as_needed, emit_input_reload_insns): Likewise.
11632         * stmt.c (expand_asm_operands): Likewise.
11633         * stor-layout.c (start_record_layout): Likewise.
11634
11635 2003-01-16  Herman A.J. ten Brugge <hermantenbrugge@home.nl>
11636
11637         * config/c4x/c4x.md (epilogue): Correct last patch.
11638
11639 2003-01-15  Richard Henderson  <rth@redhat.com>
11640
11641         * config/alpha/alpha.c (find_lo_sum_using_gp): Rename from find_lo_sum;
11642         also check that GP is being used.
11643         (alpha_find_lo_sum_using_gp): New.
11644         (alpha_does_function_need_gp): Use get_attr_usegp.
11645         * config/alpha/alpha-protos.h: Update.
11646         * config/alpha/alpha.md (attr usegp): New.  Annotate patterns
11647         as needed.
11648
11649 2003-01-15  Roger Sayle  <roger@eyesopen.com>
11650
11651         * gcse.c (one_cprop_pass): Change function arguments to take both
11652         cprop_jumps and bypass_jumps flags instead of just alter_jumps.
11653         (gcse_main): Update calls to one_cprop_pass, disabling bypassing.
11654         (bypass_jumps): New function to perform separate jump bypassing pass.
11655         * rtl.h (bypass_jumps): Add function prototype.
11656         * timevar.def (TV_BYPASS): New timing variable.
11657         * toplev.c (enum dump_file_index): Add new entry DFI_bypass.
11658         (dump_file): New entry for the bypass RTL dump file.
11659         (rest_of_compilation): Insert new jump bypassing optimization
11660         pass after loop.
11661         * doc/passes.texi: Document new pass.
11662
11663 2003-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11664
11665         * som.h (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY,
11666         ASM_WEAKEN_LABEL, GTHREAD_USE_WEAK): Define.
11667         * pa.h (TARGET_SOM_SDEF): Define.
11668         * pa-hpux11.h (TARGET_SOM_SDEF): Define.
11669
11670 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
11671
11672         * config/m68hc11/m68hc11.c (expand_prologue): Use push/pop to
11673         allocate 4-bytes of locals on 68HC11.
11674         (expand_epilogue): Likewise.
11675         (m68hc11_memory_move_cost): Increase cost of HI/QI soft registers.
11676
11677 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
11678
11679         * config/m68hc11/m68hc11.h (ASM_SPEC): Handle -m68hcs12; Pass -mshort
11680         and -mshort-double to the assembler to specify the ABI.
11681         (LINK_SPEC): Likewise.
11682         (CPP_SPEC): Pass HCS12 specific define.
11683         (MASK_M68S12): New define.
11684         (TARGET_M68S12): Likewise.
11685         (TARGET_SWITCHES): New options -m68hcs12 and -m68S12.
11686         (TARGET_VERSION): Update.
11687         * config/m68hc11/m68hc12.h (CPP_SPEC): Pass HCS12 specific define.
11688         (LINK_SPEC): Update.
11689         (ASM_SPEC): Update.
11690         * config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Update.
11691         * doc/invoke.texi (M68hc1x Options): Document -m68hcs12.
11692
11693 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
11694
11695         * config/m68hc11/m68hc11.md ("return"): Use emit_jump_insn to emit
11696         the return code.
11697
11698 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
11699
11700         * cfganal.c (set_edge_can_fallthru_flag): Clear the EDGE_CAN_FALLTHRU
11701         flag before setting it.
11702
11703 2003-01-15  Roger Sayle  <roger@eyesopen.com>
11704
11705         * c-semantics.c (genrtl_while_stmt):  Improve initial RTL generation
11706         when loop condition is known true, i.e.  "while (1) { ... }".
11707         (genrtl_for_stmt): Similarly for "for" statements.
11708
11709 2003-01-15  Roger Sayle  <roger@eyesopen.com>
11710
11711         * real.c (real_sqrt): Return a bool result indicating whether
11712         a floating point exception or trap should be raised.
11713         * real.h (real_sqrt): Update function prototype.
11714         * builtins.c (fold_builtin): Only fold non-trapping square
11715         roots unless we're ignoring errno and trapping math.
11716
11717 2003-01-15  John David Anglin  <dave.anglin@nrc.gc.ca>
11718
11719         * expr.h (emit_conditional_add): Add PARAMS to declaration.
11720         * gengtype-lex.l (malloc, realloc): Move defines after include of
11721         system.h.  Remove duplicate include of system.h.
11722
11723 2003-01-15  Roger Sayle  <roger@eyesopen.com>
11724
11725         PR middle-end/9009
11726         * optabs.c (expand_unop):  When manipulating the FP sign bit
11727         using integer operations, account for targets with different
11728         integer and FP word orders.
11729         (expand_abs): Likewise.
11730
11731 2003-01-15  David Edelsohn  <edelsohn@gnu.org>
11732
11733         * config/rs6000/rs6000.c (rs6000_gen_section_name): Do not include
11734         file extension in section name.
11735
11736 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
11737
11738         * flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with
11739         constant offset.
11740
11741 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
11742
11743         * arm.h (HAVE_PRE_MODIFY_DISP, HAVE_PRE_MODIFY_REG): Define.
11744         (HAVE_POST_MODIFY_DISP, HAVE_POST_MODIFY_REG): Define.
11745         (ARM_GO_IF_LEGITIMATE_ADDRESS): Handle pre/post-modify addresses.
11746         (ARM_PRINT_OPERAND_ADDRESS): Likewise.
11747
11748 2003-01-15  Jan Hubicka  <jh@suse.cz>
11749
11750         PR f/9258
11751         * global.c (struct allocno): Add no_stack_reg.
11752         (global_conflicts): Set no_stack_reg.
11753         (find_reg): Use it.
11754
11755         * convert.c (convert_to_real): Fold - and abs only when profitable.
11756         * fold-const.c (fold): Fold truncates in - and abs.
11757
11758 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
11759
11760         Segher Boessenkool  <segher@koffie.nl>
11761
11762         * predict.c (real_inv_br_prob_base): New variable.
11763         (propagate_freq): Use multiply by reciprocal instead of
11764         division.  Don't divide by 1.0 at all.
11765         (estimate_bb_frequencies): Similar.
11766
11767 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
11768
11769         * configure.in (libgcc_visibility): Force disabled on IRIX 6 too.
11770         * configure: Rebuilt.
11771
11772 2003-01-15  Hartmut Penner  <hpenner@de.ibm.com>
11773
11774         * config/s390/s390.c (s390_safe_attr_type): New function.
11775         (s390_use_dfa_pipeline_interface): New function, return true for z900.
11776         (s390_issue_rate): New function.
11777         (s390_agen_dep_p): New function.
11778         (addr_generation_dependency_p): Use 's390_safe_attr_type'.
11779         (s390_adjust_cost): Return 'cost' if new DFA is used.
11780         (s390_adjust_priority): Delete function.
11781         * config/s390/s390-protos.h: (s390_agen_dep_p): New prototype.
11782         * config/s390/s390.md (atype attribute): Attribute 'atype' default
11783         determined by 'op_type'.
11784         (type attribute): Added more type attributes.
11785         * config/s390/2064.md: New DFA description for z900 pipeline.
11786
11787 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
11788
11789         * config/i386/i386.c (ix86_expand_vector_move): Validize constant
11790         forced to memory.  Fixes PR bootstrap/9036.
11791
11792         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Define so as
11793         to set $gp before the call.
11794
11795 2003-01-14  Richard Henderson  <rth@redhat.com>
11796
11797         * config/alpha/alpha.c (alpha_expand_mov): Use correct mode
11798         for force_const_mem.
11799
11800 2003-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11801
11802         * genattr.c (main): Rearrange output to avoid prototype warning.
11803         * genautomata.c (transform_3): Fix ambiguous-else warning.
11804         * local-alloc.c (requires_inout): Add parentheses around
11805         assignment used as truth-value.
11806         * timevar.c: Move system includes above local includes.  Include
11807         toplev.h
11808         * Makefile.in (timevar.o): Depend on toplev.h.
11809
11810 2003-01-14  Denis Chertykov  <denisc@overta.ru>
11811
11812         * config/ip2k/ip2k.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
11813         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
11814
11815         * config/ip2k/ip2k.c (ip2k_attribute_table): New table of
11816         attributes.
11817         (TARGET_ATTRIBUTE_TABLE): New macro.
11818         (valid_machine_type_attribute): Remove.
11819         (valid_machine_decl_attribute): Remove.
11820         (ip2k_handle_progmem_attribute): New function.
11821         (ip2k_handle_fndecl_attribute): New function.
11822
11823 2003-01-10  Andrew Haley  <aph@redhat.com>
11824
11825         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Rename
11826         registers to be in correct order.  Add rip.
11827
11828 2003-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11829
11830         * config/h8300/h8300.md (*andsi3_lshiftrt_9_sb): New.
11831         (*iorsi3_and_lshiftrt_9_sb): Likewise.
11832
11833 2003-01-14  Jan Hubicka  <jh@suse.cz>
11834
11835         * convert.c (strip_float_extensions):  Look for narrowest type handling
11836         FP constants.
11837
11838         * fold-const.c (fold):  Fold (double)float1 CMP (double)float2 into
11839         float1 CMP float2.
11840         * convert.c (strip_float_extensions): Make global.
11841         * tree.h (strip_float_extensions): Declare.
11842
11843 2003-01-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11844
11845         * timevar.def: define TV_NAME_LOOKUP.
11846         * timevar.c (timevar_pop): Be verbose when aborting.
11847
11848 2003-01-13  Andreas Schwab  <schwab@suse.de>
11849
11850         * Makefile.in ($(parsedir)/gengtype-lex.c): Don't change to
11851         $(parsedir), just move the temporary file at the end.
11852         ($(parsedir)/gengtype-yacc.c): Likewise.
11853
11854 2003-01-13  Alexandre Oliva  <aoliva@redhat.com>
11855
11856         * aclocal.m4 (gcc_AC_PROG_GNAT): Don't try to prepend
11857         ${ac_tool_prefix} to ADAC or CC.  Protect them from word
11858         splitting.
11859         * configure: Rebuilt.
11860
11861 2003-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11862
11863         * config/sparc/gmon-sol2.c (moncontrol, monstartup, _mcleanup,
11864         internal_mcount): Don't use PARAMS.
11865         (monstartup, _mcleanup, internal_mcount, moncontrol): Convert to
11866         ISO C style.
11867         (internal_mcount): Use __attribute__, not ATTRIBUTE_UNUSED.
11868
11869 2003-01-13  Andreas Schwab  <schwab@suse.de>
11870
11871         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Output type
11872         directive.
11873
11874 2003-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11875
11876         * config/h8300/h8300.md (*andsi3_lshift_n_sb): New.
11877         (*iorsi3_and_lshiftrt_n_sb): Likewise.
11878
11879 2003-01-12  Mark Mitchell  <mark@codesourcery.com>
11880
11881         PR c++/9264
11882         * c-lex.c (c_lex): Set the token value to error_mark_node for
11883         invalid numeric constants.
11884
11885 2003-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11886
11887         * c-pch.c (asm_file_startpos): Change to `long'.
11888         (pch_init): Use ftell, not ftello.
11889         (c_common_write_pch): Use ftell/fseek, not ftello/fseeko.
11890         Use `long' instead of `off_t'.
11891         (c_common_read_pch): Likewise.
11892         * ggc-common.c (gt_pch_save): Use long/ftell instead of
11893         off_t/ftello.
11894
11895 2003-01-12  Alan Modra  <amodra@bigpond.net.au>
11896
11897         * expr.c (expand_expr <RDIV_EXPR>): Correct recursive call args.
11898
11899 2003-01-11  Richard Earnshaw  (rearnsha@arm.com)
11900
11901         * arm-protos.h (struct cpp_reader): Add declaration.
11902
11903 2003-01-11  Jan Hubicka  <jh@suse.cz>
11904
11905         PR target/9068
11906         * i386.c (output_fp_compare): Fix typo.
11907
11908 2003-01-10  David Edelsohn  <edelsohn@gnu.org>
11909
11910         * config/rs6000/rs6000.c (common_mode_defined): Mark for PCH.
11911
11912 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
11913
11914         * Makefile.in (parsedir): New variable.
11915         (docobjdir): New variable.
11916         (c-parse.o, c-parse.c, c-parse.y, gengtype-lex.o, gengtype-yacc.o,
11917         gengtype-lex.c, gengtype-yacc.c): Use parsedir.
11918         (info, cpp.info, gcc.info, gccint.info, gccinstall.info,
11919         cppinternals.info, generated-manpages, gcov.1, cpp.1, gcc.1, gfdl.7,
11920         gpl.7, fsf-funding.7, maintainer-clean, install-info, install-man):
11921         Use docobjdir.
11922         * objc/Make-lang.in (objc/objc-parse.c, objc/objc-parse.y,
11923         objc.maintainer-clean): Use parsedir.
11924
11925         * varasm.c (struct constant_descriptor_rtx): Remove unused
11926         `label' field.
11927
11928         * toplev.c (documented_lang_options): Document -Winvalid-pch.
11929
11930 2003-01-10  Richard Henderson  <rth@redhat.com>
11931
11932         * config/alpha/alpha.h (NO_PROFILE_COUNTERS): Set.
11933         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Kill.
11934
11935 2003-01-10  Richard Henderson  <rth@redhat.com>
11936
11937         * combine.c (make_compound_operation): Use SCALAR_INT_MODE_P,
11938         not INTEGRAL_MODE_P when widening extensions.
11939
11940 2003-01-10  Richard Henderson  <rth@redhat.com>
11941
11942         * config/alpha/alpha.c (decl_has_samegp): True for !TREE_PUBLIC.
11943
11944 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
11945
11946         * ggc-page.c (ggc_collect): Avoid overflow computing
11947         min_expand.
11948
11949         * Makefile.in (RANLIB_FOR_TARGET): Use RANLIB when native.
11950         (RANLIB_TEST_FOR_TARGET): Delete.  Don't pass down to sub-makes.
11951         Remove calls.
11952         * mklibgcc.in: Remove uses of RANLIB_TEST_FOR_TARGET.
11953
11954 2003-01-10  Jan Hubicka  <jh@suse.cz>
11955
11956         * ifcvt.c (noce_try_addcc): Do not call emit_conditional_add
11957         with weird operands.
11958
11959 2003-01-10  Dale Johannesen <dalej@apple.com>
11960
11961         * calls.c (load_register_parameters):  Add is_sibcall, sibcall_failure
11962         parameters.  Call check_sibcall_argument_overlap if indicated.
11963         (check_sibcall_argument_overlap):  Add mark_stored_args_map
11964         parameter.  Don't mark parameter area as clobbered if not set.
11965         (expand_call):  Adjust calls to above.
11966
11967 2003-01-10 Kelley Cook <kelleycook@comcast.net>
11968
11969         * configure.in (linker read-only and read-write section mixing):
11970         Squelch some assembler warnings.
11971         * configure: Likewise.
11972
11973 2003-01-10  Hartmut Penner  <hpenner@de.ibm.com>
11974
11975         * doc/invoke.texi: Document -mtune, delete -mcpu
11976         option for S/390 and zSeries.
11977         * config/s390/s390.c (s390_tune_string) New variable.
11978         (s390_cpu_string) Delete variable.
11979         (override_options): Use s390_tune_string instead of
11980         s390_cpu_string.
11981         * config/s390/s390.h: (TARGET_OPTIONS) '-mtune' instead of '-mcpu'.
11982
11983 2003-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11984
11985         * config/h8300/h8300.md (*iorsi3_ashift_31): New.
11986
11987 2003-01-10  Josef Zlomek  <zlomekj@suse.cz>
11988
11989         * jump.c (next_nonnote_insn_in_loop): New function.
11990         (copy_loop_headers): Use next_nonnote_insn_in_loop instead of
11991         next_nonnote_insn.
11992         (duplicate_loop_exit_test). Likewise.
11993
11994 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
11995
11996         Merge from pch-branch:
11997
11998         2003-01-06  Geoffrey Keating  <geoffk@apple.com>
11999
12000         * ggc-page.c (ggc_pch_read): Update the statistics after a PCH
12001         load.
12002
12003         2002-12-24  Geoffrey Keating  <geoffk@apple.com>
12004
12005         * cpplib.c (count_registered_pragmas): New function.
12006         (save_registered_pragmas): New function.
12007         (_cpp_save_pragma_names): New function.
12008         (restore_registered_pragmas): New function.
12009         (_cpp_restore_pragma_names): New function.
12010         * cpphash.h (_cpp_save_pragma_names): Prototype.
12011         (_cpp_restore_pragma_names): Likewise.
12012         * cpppch.c (struct save_macro_item): Split from save_macro_data.
12013         (struct save_macro_data): New field 'saved_pragmas'.
12014         (save_macros): Update for changes to struct save_macro_data.
12015         (cpp_prepare_state): Call _cpp_save_pragma_names, update
12016         for changes to struct save_macro_data.
12017         (cpp_read_state): Call _cpp_restore_pragma_names, update
12018         for changes to struct save_macro_data.
12019
12020         * cpppch.c (cpp_read_state): Restore the hashtable references
12021         in the cpp_reader.
12022
12023         * tree.h (built_in_decls): Mark for PCH.
12024
12025         * dbxout.c (lastfile): Don't mark for PCH.
12026
12027         * ggc.h: Document PCH calls into memory managers.
12028
12029         2002-12-18  Geoffrey Keating  <geoffk@apple.com>
12030
12031         * doc/invoke.texi (Precompiled Headers): Document the
12032         directory form of PCH.
12033         * cppfiles.c (validate_pch): New function.
12034         (open_file_pch): Search suitably-named directories for PCH files.
12035
12036         2002-12-14  Geoffrey Keating  <geoffk@apple.com>
12037
12038         * doc/gty.texi (GTY Options): Document chain_next, chain_prev,
12039         reorder options.
12040         (Type Information): Mention that the information is also
12041         used to implement PCH.
12042         * doc/passes.texi (Passes): Improve documentation of
12043         language-specific files.
12044
12045         2002-12-11  Geoffrey Keating  <geoffk@apple.com>
12046
12047         * gengtype.c (struct write_types_data): Add reorder_note_routine field.
12048         (struct walk_type_data): Add reorder_fn field.
12049         (walk_type): Process 'reorder' option.
12050         (write_types_process_field): Reorder parameters to gt_pch_note_object,
12051         call reorder_note_routine.
12052         (write_func_for_structure): Reorder parameters to gt_pch_note_object.
12053         (ggc_wtd): Update for change to struct write_types_data.
12054         (pch_wtd): Likewise.
12055         * ggc.h (gt_pch_note_object): Reorder parameters.
12056         (gt_handle_reorder): New definition.
12057         (gt_pch_note_reorder): New prototype.
12058         * ggc-common.c (struct ptr_data): Add reorder_fn.
12059         (gt_pch_note_object): Reorder parameters.
12060         (gt_pch_note_reorder): New.
12061         (gt_pch_save): Call reorder_fn.
12062         * stringpool.c (gt_pch_n_S): Update for change to gt_pch_note_object.
12063
12064         * dbxout.c (cwd): Don't mark for PCH.
12065
12066         2002-12-09  Geoffrey Keating  <geoffk@apple.com>
12067
12068         * gengtype.c (finish_root_table): Fix some warnings.
12069         (write_root): Handle TYPE_STRING.
12070         * ggc.h (gt_ggc_m_S): Add prototype.
12071         * stringpool.c (gt_ggc_m_S): New function.
12072
12073         2002-11-30  Geoffrey Keating  <geoffk@apple.com>
12074
12075         * dwarf2out.c (dw2_string_counter): New.
12076         (AT_string_form): Use it.
12077         (same_dw_val_p): Update for removal of hashtable.h hash tables.
12078
12079         2002-11-22  Geoffrey Keating  <geoffk@apple.com>
12080
12081         * dbxout.c: Include gt-dbxout.h.
12082         (lastfile): Mark for PCH/GGC.
12083         (cwd): Likewise.
12084         (struct typeinfo): Likewise.
12085         (typevec): Likewise.
12086         (typevec_len): Likewise.
12087         (next_type_number): Likewise.
12088         (struct dbx_file): Likewise.
12089         (current_file): Likewise.
12090         (next_file_number): Likewise.
12091         (dbxout_init): Allocate typevec, struct dbx_file with GGC.
12092         (dbxout_start_source_file): Allocate struct dbx_file with GGC.
12093         (dbxout_end_source_file): Don't free struct dbx_file.
12094         (dbxout_type): Use GGC to allocate typevec.
12095         * Makefile.in (dbxout.o): Depend on gt-dbxout.h, $(GGC_H).
12096         (GTFILES): Add dbxout.c.
12097         (gt-dbxout.h): New rule.
12098
12099         * Makefile.in (c-pch.o): Add debug.h as dependency.
12100         * c-pch.c: Include debug.h.
12101         (pch_init): Call start_source_file to keep nesting right.
12102         (c_common_read_pch): Add orig_name parameter.  Call
12103         start_source_file debug hook.  Call end_source_file debug hook.
12104         * c-common.h (c_common_read_pch): Update prototype.
12105         * cpplib.h (struct cpp_callbacks): Add fourth field to read_pch
12106         callback.
12107         * cppfiles.c (struct include_file): Add new field `header_name'.
12108         (find_or_create_entry): Default it to `name'.
12109         (open_file_pch): Set it to the original header file searched for.
12110         (stack_include_file): Don't stack an empty buffer, just handle
12111         PCH files immediately.  Pass header_name field to read_pch callback.
12112
12113         2002-11-19  Geoffrey Keating  <geoffk@apple.com>
12114
12115         * function.c (funcdef_no): Mark to be saved in a PCH.
12116
12117         2002-11-15  Geoffrey Keating  <geoffk@apple.com>
12118
12119         * ggc-page.c (ggc_pch_read): Remove unused 'bmap_size'.
12120
12121         * cpppch.c (cpp_read_state): Correct size reallocated for 'defn'.
12122
12123         2002-11-14  Geoffrey Keating  <geoffk@apple.com>
12124
12125         * optabs.h (code_to_optab): Add GTY marker.
12126
12127         2002-11-13  Geoffrey Keating  <geoffk@apple.com>
12128
12129         * Makefile.in (GTFILES): Add cpplib.h.
12130         * c-common.h (struct c_common_identifier): Don't skip 'node' field.
12131         * c-decl.c (build_compound_literal): Don't use var_labelno.
12132         * cpplib.h (struct cpp_hashnode): Use gengtype to mark.
12133         * dwarf2asm.c (dw2_force_const_mem): Don't use const_labelno.
12134         * varasm.c (const_labelno): Use gengtype to mark.
12135         (var_labelno): Likewise.
12136         (in_section): Likewise.
12137         (in_named_name): Likewise.
12138         (struct in_named_entry): Likewise.
12139         (in_named_htab): Likewise.
12140         (set_named_section_flags): Use GGC to allocate struct in_named_entry.
12141         (init_varasm_once): Use GGC to allocate in_named_htab.
12142         * config/darwin.c (current_pic_label_num): Mark for PCH.
12143
12144         2002-11-11  Geoffrey Keating  <geoffk@apple.com>
12145
12146         * ggc-simple.c (init_ggc_pch): New stub procedure.
12147         (ggc_pch_count_object): Likewise.
12148         (ggc_pch_total_size): Likewise.
12149         (ggc_pch_this_base): Likewise.
12150         (ggc_pch_alloc_object): Likewise.
12151         (ggc_pch_prepare_write): Likewise.
12152         (ggc_pch_write_object): Likewise
12153         (ggc_pch_finish): Likewise.
12154         (ggc_pch_read): Likewise.
12155
12156         2002-11-08  Geoffrey Keating  <geoffk@apple.com>
12157
12158         * c-pch.c (c_common_write_pch): Write the macro definitions after
12159         the GCed data.
12160         (c_common_read_pch): Call cpp_prepare_state.  Restore the macro
12161         definitions after the GCed data.
12162         * cpplib.c (save_macros): New.
12163         (reset_ht): New.
12164         (cpp_write_pch_deps): Split out of cpp_write_pch.
12165         (cpp_write_pch_state): Split out of cpp_write_pch.
12166         (cpp_write_pch): Delete.
12167         (struct save_macro_data): Delete.
12168         (cpp_prepare_state): New.
12169         (cpp_read_state): Erase and restore initial macro definitions.
12170         * cpplib.h (struct save_macro_data): Forward-declare.
12171         (cpp_write_pch_deps): Prototype.
12172         (cpp_write_pch_state): Prototype.
12173         (cpp_write_pch): Delete prototype.
12174         (cpp_prepare_state): Prototype.
12175         (cpp_read_state): Add fourth argument.
12176
12177         2002-11-04  Geoffrey Keating  <geoffk@apple.com>
12178
12179         * gengtype.c (adjust_field_rtx_def): Don't use skip on valid fields.
12180         (write_array): Remove warning.
12181
12182         * gengtype.c (contains_scalar_p): New.
12183         (finish_root_table): Add the table to all languages, even if it's
12184         empty.
12185         (write_roots): Output gt_pch_scalar_rtab.
12186         * ggc-common.c (gt_pch_save): Write out scalars.
12187         (gt_pch_restore): Read scalars back.
12188
12189         * ggc-page.c (OBJECTS_IN_PAGE): New macro.
12190         (struct page_entry): Delete pch_page field.
12191         (ggc_recalculate_in_use_p): Use OBJECTS_IN_PAGE.
12192         (clear_marks): Likewise.
12193         (sweep_pages): Likewise.
12194         (poison_pages): Likewise.
12195         (ggc_print_statistics): Likewise.
12196         (ggc_pch_read): Don't free objects read from a PCH.
12197         Properly set up in_use_p and page_tails.
12198
12199         2002-10-25  Geoffrey Keating  <geoffk@apple.com>
12200
12201         * gengtype.c (struct write_types_data): New.
12202         (struct walk_type_data): Make `cookie' const; add extra
12203         prev_val item; add `orig_s' field.
12204         (walk_type): Update prev_val[3].
12205         (write_types_process_field): New.
12206         (write_func_for_structure): Take write_types_data structure.
12207         (write_types): New.
12208         (ggc_wtd): New.
12209         (pch_wtd): New.
12210         (write_types_local_process_field): New.
12211         (gc_mark_process_field): Delete.
12212         (write_local_func_for_structure): New.
12213         (gc_mark_func_name): Delete.
12214         (write_gc_types): Delete.
12215         (write_local): New.
12216         (finish_root_table): Don't include 'ggc_' in PFX.
12217         (write_root): Rename from write_root.  Fill pchw field of structures.
12218         (write_array): New.
12219         (write_roots): Rename from write_gc_roots.  Split out to write_array.
12220         Update to changes to other routines.  Write gt_pch_cache_rtab table.
12221         (main): Write PCH walking routines.
12222         * ggc-common.c: Include toplev.h, sys/mman.h.
12223         (ggc_mark_roots): For cache hashtables, also mark the hash table
12224         and the array of entries.
12225         (saving_htab): New.
12226         (struct ptr_data): New.
12227         (POINTER_HASH): New.
12228         (gt_pch_note_object): New.
12229         (saving_htab_hash): New.
12230         (saving_htab_eq): New.
12231         (struct traversal_state): New.
12232         (call_count): New.
12233         (call_alloc): New.
12234         (compare_ptr_data): New.
12235         (relocate_ptrs): New.
12236         (write_pch_globals): New.
12237         (struct mmap_info): New.
12238         (gt_pch_save): New.
12239         (gt_pch_restore): New.
12240         * ggc-page.c (ROUND_UP_VALUE): New.
12241         (ROUND_UP): New.
12242         (struct page_entry): Add field `pch_page'.
12243         (init_ggc): Use ROUND_UP.
12244         (struct ggc_pch_data): Declare.
12245         (init_ggc_pch): New.
12246         (ggc_pch_count_object): New.
12247         (ggc_pch_total_size): New.
12248         (ggc_pch_this_base): New.
12249         (ggc_pch_alloc_object): New.
12250         (ggc_pch_prepare_write): New.
12251         (ggc_pch_write_object): New.
12252         (ggc_pch_finish): New.
12253         (ggc_pch_read): New.
12254         * ggc.h (gt_pointer_operator): New.
12255         (gt_note_pointers): New.
12256         (gt_pch_note_object): New prototype.
12257         (gt_pointer_walker): New.
12258         (struct ggc_root_tab): Use gt_pointer_walker, add `pchw' field.
12259         (LAST_GGC_ROOT_TAB): Update.
12260         (gt_pch_cache_rtab): Declare.
12261         (gt_pch_scalar_rtab): Declare.
12262         (struct ggc_cache_tab): Use gt_pointer_walker, add `pchw' field.
12263         (LAST_GGC_CACHE_TAB): Update.
12264         (gt_pch_save_stringpool): Declare.
12265         (gt_pch_restore_stringpool): Declare.
12266         (gt_pch_p_S): Declare.
12267         (gt_pch_n_S): Declare.
12268         (struct ggc_pch_data): Forward-declare.
12269         (init_ggc_pch): Declare.
12270         (ggc_pch_count_object): Declare.
12271         (ggc_pch_total_size): Declare.
12272         (ggc_pch_this_base): Declare.
12273         (ggc_pch_alloc_object): Declare.
12274         (ggc_pch_prepare_write): Declare.
12275         (ggc_pch_write_object): Declare.
12276         (ggc_pch_finish): Declare.
12277         (ggc_pch_read): Declare.
12278         (gt_pch_save): Declare.
12279         (gt_pch_restore): Declare.
12280         * fold-const.c (size_int_type_wide): Allocate size_htab using GGC.
12281         * emit-rtl.c (init_emit_once): Allocate const_int_htab,
12282         const_double_htab, mem_attrs_htab using GGC.
12283         * c-pch.c: Include ggc.h.
12284         (pch_init): Allow reading PCH file back.
12285         (c_common_write_pch): Call gt_pch_save.
12286         (c_common_read_pch): Call gt_pch_restore.
12287         * c-parse.in (init_reswords): Delete now-untrue comment.
12288         Allocate ridpointers using GGC.
12289         * c-objc-common.c (c_objc_common_finish_file): Write PCH before
12290         calling expand_deferred_fns.
12291         * c-common.h (ridpointers): Mark for GTY machinery.
12292         * Makefile.in (stringpool.o): Update dependencies.
12293         (c-pch.o): Update dependencies.
12294         (ggc-common.o): Update dependencies.
12295         * stringpool.c: Include gt-stringpool.h.
12296         (gt_pch_p_S): New.
12297         (gt_pch_n_S): New.
12298         (struct string_pool_data): New.
12299         (spd): New.
12300         (gt_pch_save_stringpool): New.
12301         (gt_pch_restore_stringpool): New.
12302         * tree.c (init_ttree): Make type_hash_table allocated using GC.
12303
12304         2002-10-04  Geoffrey Keating  <geoffk@apple.com>
12305
12306         * gengtype.c (adjust_field_rtx_def): Don't pass size_t to printf.
12307         (output_mangled_typename): Don't pass size_t to printf.
12308
12309         * tree.h (union tree_type_symtab): Add tag to `address' field.
12310         (union tree_decl_u2): Add tag to 'i' field.
12311         * varasm.c (union rtx_const_un): Add tags to all fields.
12312         * gengtype.c (struct walk_type_data): New.
12313         (output_escaped_param): Take struct walk_type_data parameter.
12314         (write_gc_structure_fields): Delete.
12315         (walk_type): New.
12316         (write_gc_marker_routine_for_structure): Delete.
12317         (write_func_for_structure): New.
12318         (gc_mark_process_field): New.
12319         (gc_mark_func_name): New.
12320         (gc_counter): Delete.
12321         (write_gc_types): Use write_func_for_structure.
12322         (write_gc_roots): Use walk_type.
12323
12324         2002-10-02  Geoffrey Keating  <geoffk@apple.com>
12325
12326         * ggc-common.c (ggc_mark_roots): Delete 'x'.
12327         (ggc_splay_dont_free): Fix warning about unused 'x'.
12328         (ggc_print_common_statistics): Remove warnings.
12329
12330         2002-10-01  Mike Stump  <mrs@apple.com>
12331
12332         * ggc-common.c (ggc_splay_alloc): Actually return the allocated area.
12333         * gengtype.c (write_gc_structure_fields): Handle param[digit]_is.
12334
12335         2002-09-01  Geoffrey Keating  <geoffk@redhat.com>
12336             Catherine Moore  <clm@redhat.com>
12337
12338         * Makefile (c-pch.o): Update dependencies.
12339         (LIBCPP_OBJS): Add cpppch.o.
12340         (cpppch.o): New.
12341         * c-common.c (c_common_init): Don't call pch_init here.
12342         * c-common.h (c_common_read_pch): Update prototype.
12343         * c-lex.c (c_common_parse_file): Call pch_init here.
12344         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-pch, -fpch-deps.
12345         (c_common_decode_option): Handle them.
12346         * c-pch.c: Include c-pragma.h.
12347         (save_asm_offset): Delete.
12348         (pch_init): Move contents of save_asm_offset into here, call
12349         cpp_save_state.
12350         (c_common_write_pch): Call cpp_write_pch.
12351         (c_common_valid_pch): Warn only when -Winvalid-pch.  Call
12352         cpp_valid_state.
12353         (c_common_read_pch): Add NAME parameter.  Call cpp_read_state.
12354         * cppfiles.c (stack_include_file): Update for change to
12355         parameters of cb.read_pch.
12356         * cpphash.h (struct cpp_reader): Add `savedstate' field.
12357         * cpplib.h (struct cpp_options): Add `warn_invalid_pch' and
12358         `restore_pch_deps' fields.
12359         (struct cpp_callbacks): Add NAME parameter to `read_pch'.
12360         (cpp_save_state): Prototype.
12361         (cpp_write_pch): Prototype.
12362         (cpp_valid_state): Prototype.
12363         (cpp_read_state): Prototype.
12364         * cpppch.c: New file.
12365         * flags.h (version_flag): Remove prototype.
12366         * mkdeps.c (deps_save): New.
12367         (deps_restore): New.
12368         * mkdeps.h (deps_save): Prototype.
12369         (deps_restore): Prototype.
12370         * toplev.c (late_init_hook): Delete.
12371         (version_flag): Make static again.
12372         (compile_file): Don't call late_init_hook.
12373         * toplev.h (late_init_hook): Delete.
12374         * doc/cppopts.texi: Document -fpch-deps.
12375         * doc/invoke.texi (Warning Options): Document -Winvalid-pch.
12376
12377         2002-08-27  Geoffrey Keating  <geoffk@redhat.com>
12378
12379         * c-pch.c (c_common_write_pch): Rename from c_write_pch, change
12380         callers.
12381         (c_common_valid_pch): Rename from c_valid_pch, change callers.
12382         (c_common_read_pch): Rename from c_read_pch, change callers.
12383
12384         * c-opts.c (COMMAND_LINE_OPTIONS): Allow -output-pch= to have
12385         a space between it and its argument.
12386
12387         2002-08-24  Geoffrey Keating  <geoffk@redhat.com>
12388
12389         * c-pch.c: New file.
12390         * toplev.h (late_init_hook): Declare.
12391         * toplev.c (late_init_hook): Define.
12392         (version_flag): Make globally visible.
12393         (compile_file): Call late_init_hook.
12394         (init_asm_output): Make output file seekable.
12395         * gcc.c (default_compilers): Update c-header rule.
12396         * flags.h (version_flag): Declare.
12397         * cpplib.h (struct cpp_callbacks): Add 'valid_pch' and 'read_pch'
12398         fields.
12399         * cppfiles.c (struct include_file): Add 'pch' field.
12400         (INCLUDE_PCH_P): New.
12401         (open_file_pch): New.
12402         (stack_include_file): Handle PCH files specially.
12403         (find_include_file): Call open_file_pch instead of open_file.
12404         (_cpp_read_file): Explain why open_file is used instead of
12405         open_file_pch.
12406         * c-opts.c (c_common_decode_option): Correct OPT__output_pch case.
12407         * c-objc-common.c (c_objc_common_finish_file): Call c_write_pch.
12408         * c-lex.c (init_c_lex): Set valid_pch and read_pch fields
12409         in cpplib callbacks.
12410         * c-common.c (pch_file): Correct comment.
12411         (allow_pch): Define.
12412         (c_common_init): Call pch_init.
12413         * c-common.h (allow_pch): Declare.
12414         (pch_init): Declare.
12415         (c_valid_pch): Declare.
12416         (c_read_pch): Declare.
12417         (c_write_pch): Declare.
12418         * Makefile.in (c-pch.o): New.
12419         (C_AND_OBJC_OBJS): Add c-pch.o.
12420         * doc/invoke.texi (Precompiled Headers): Add index entries,
12421         complete truncated paragraph.
12422
12423         2002-08-17  Geoffrey Keating  <geoffk@redhat.com>
12424
12425         * c-common.c: (pch_file): Define.
12426         * c-common.h (pch_file): Declare.
12427         * c-opts.c (COMMAND_LINE_OPTIONS): Add --output-pch=.
12428         (missing_arg): Require --output-pch= to have an argument.
12429         (c_common_decode_option): Handle --output-pch=.
12430         * gcc.c: Document new %V.
12431         (default_compilers): Handle compiling C header files.
12432         (do_spec_1): Implement %V.
12433         (main): Handle "gcc foo.h" without trying to run linker.
12434         * doc/invoke.texi (Invoking GCC): Add new menu item for PCH.
12435         (Overall Options): Document what the driver does with header files,
12436         document new -x option possibilities.
12437         (Invoking G++): More documentation for PCH.
12438         (Precompiled Headers): New.
12439
12440         2002-08-09  Geoffrey Keating  <geoffk@redhat.com>
12441
12442         * ggc.h: Don't include varray.h.  Rearrange functions to be more
12443         organized.
12444         (ggc_add_root): Delete.
12445         (ggc_mark_rtx): Delete.
12446         (ggc_mark_tree): Delete.
12447         (struct ggc_statistics): Remove contents.
12448         * ggc-common.c: Remove unneeded includes.
12449         (struct ggc_root): Delete.
12450         (roots): Delete.
12451         (ggc_add_root): Delete.
12452         (ggc_mark_roots): Don't mark `roots'.  Call ggc_mark_stringpool.
12453         (ggc_print_common_statistics): Remove most of the contents.
12454         * Makefile.in (GGC_H): No longer uses varray.h.
12455         (ggc-common.o): Update dependencies.
12456         (c-parse.o): Add varray.h to dependencies.
12457         (c-common.o): Add varray.h.
12458         * stringpool.c (mark_ident): Use mangled name for tree marker routine.
12459         (mark_ident_hash): Rename to ggc_mark_stringpool.
12460         (init_stringpool): Don't use ggc_add_root.
12461         * c-parse.in: Include varray.h.
12462         * c-common.c: Include varray.h.
12463         * objc/Make-lang.in (objc-act.o): Add varray.h.
12464         * objc/objc-act.c: Include varray.h.
12465
12466         2002-07-25  Geoffrey Keating  <geoffk@redhat.com>
12467
12468         * dwarf2out.c (dw_cfi_oprnd2_desc): Fix ISO-only function definition.
12469         (dw_cfi_oprnd1_desc): Likewise.
12470
12471         2002-07-17  Geoffrey Keating  <geoffk@redhat.com>
12472
12473         * config/alpha/alpha.c (struct alpha_links): Use gengtype to mark;
12474         move out of ifdef.
12475         (alpha_links): Use gengtype to mark; move out of ifdef.
12476         (mark_alpha_links_node): Delete.
12477         (mark_alpha_links): Delete.
12478         (alpha_need_linkage): Use GGC to allocate splay tree, struct
12479         alpha_links, strings.  Don't use ggc_add_root.
12480         * ggc-common.c (ggc_splay_alloc): New.
12481         (ggc_splay_dont_free): New.
12482         * ggc.h (ggc_mark_rtx): Update for changed name mangling.
12483         (ggc_mark_tree): Likewise.
12484         (splay_tree_new_ggc): New.
12485         (ggc_splay_alloc): Declare.
12486         (ggc_splay_dont_free): Declare.
12487         * dwarf2asm.c: Include gt-dwarf2asm.h.
12488         (mark_indirect_pool_entry): Delete.
12489         (mark_indirect_pool): Delete.
12490         (indirect_pool): Use gengtype to mark.
12491         (dw2_force_const_mem): Don't use ggc_add_root.
12492         * Makefile.in (dwarf2asm.o): Depend on gt-dwarf2asm.h.
12493         (GTFILES): Add SPLAY_TREE_H, dwarf2asm.c.
12494         (gt-dwarf2asm.h): Depend on s-gtype.
12495
12496         2002-07-08  Geoffrey Keating  <geoffk@redhat.com>
12497
12498         * tree.h (union tree_type_symtab): Mark `die' field.
12499         * Makefile.in (dwarf2out.o): Update dependencies.
12500         * dwarf2out.c: Use GGC to allocate all structures.  Convert to htab_t
12501         hash tables.
12502         (dw_cfi_oprnd1_desc): New function.
12503         (dw_cfi_oprnd2_desc): New function.
12504         (indirect_string_alloc): Delete.
12505         (debug_str_do_hash): New function.
12506         (debug_str_eq): New function.
12507         (mark_limbo_die_list): Delete.
12508         (dwarf2out_init): Don't call ggc_add_root.
12509
12510 2003-01-09  Vladimir Makarov  <vmakarov@redhat.com>
12511
12512         The following changes are merged from itanium-sched-branch:
12513
12514         2003-01-08  David Edelsohn  <edelsohn@gnu.org>
12515
12516         * doc/md.texi: Clarify assignment of units to automata description.
12517
12518         2003-01-08  Vladimir Makarov  <vmakarov@redhat.com>
12519
12520         * genautomata.c (unit_decl): Remove members
12521         `the_same_automaton_unit' and
12522         `the_same_automaton_message_reported_p'.
12523         (process_unit_to_form_the_same_automaton_unit_lists,
12524         form_the_same_automaton_unit_lists_from_regexp,
12525         form_the_same_automaton_unit_lists, the_same_automaton_lists):
12526         Remove them.
12527         (annotation_message_reported_p): New global variable.
12528         (check_unit_distribution_in_reserv,
12529         check_regexp_units_distribution): New functions.
12530         (check_unit_distributions_to_automata): Rewrite it.
12531
12532         2003-01-04  Vladimir Makarov  <vmakarov@redhat.com>
12533
12534         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
12535         Use continue instead of break if cycle is too big.
12536
12537         2002-12-20  Vladimir Makarov  <vmakarov@redhat.com>
12538
12539         * genautomata.c (check_unit_distributions_to_automata): Output at
12540         most one message for a unit.
12541         (process_unit_to_form_the_same_automaton_unit_lists): Check
12542         automaton of units instead of units themself.
12543
12544         * doc/md.texi: Describe the constraint about assigning unit to
12545         automata.
12546
12547         2002-12-20  Jan Hubicka  <jH@suse.cz>
12548                     Vladimir Makarov  <vmakarov@redhat.com>
12549
12550         * genautomata.c (unit_decl): Add new members `min_occ_cycle_num'
12551         and `in_set_p'.
12552         (gen_cpu_unit): Initialize the new members.
12553         (process_regexp_cycles): Calculate minimal finish cycle too.  Set
12554         up `min_occ_cycle_num'.
12555         (evaluate_max_reserv_cycles): Change the function call.
12556         (CLEAR_BIT): New macro.
12557         (states_union, state_shift): Use the mask.
12558         (initiate_excl_sets, form_reserv_sets_list): Set up `in_set_p'.
12559         (form_reservs_matter): New function.
12560         (make_automaton): Call the function and use the mask.
12561         (estimate_one_automaton_bound): Take `min_occ_cycle_num' into
12562         account.
12563
12564         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
12565
12566         * config/ia64/itanium2.md (lfetch): Change the insn reservation.
12567
12568         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
12569
12570         * config/ia64/ia64.c (bundling): Try to insert 2 nops for M insn
12571         for Itanium.
12572
12573         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
12574
12575         * config/ia64/ia64.c (ia64_override_options): Make itanium2 as
12576         default cpu.
12577
12578         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
12579                 2002-10-31  Dale Johannesen <dalej@apple.com>
12580
12581         * haifa-sched.c (find_set_reg_weight): New function.
12582         (find_insn_reg_weight): Use the new function.
12583         (schedule_block): Do sorting ready queue always
12584         after insn issue.
12585
12586         2002-11-27  Vladimir Makarov  <vmakarov@redhat.com>
12587
12588         * config/ia64/ia64.c (bundling): Use MFI template instead of MLX.
12589
12590         2002-11-19  Vladimir Makarov  <vmakarov@redhat.com>
12591
12592         * haifa-sched.c (choice_entry): New structure.
12593         (choice_stack, cycle_issued_insns): New variables.
12594         (max_issue): Rewrite it.
12595         (choose_ready): Set up ready_try for unknown insns too.
12596         (schedule_block): Allocate and free choice_stack.  Set up
12597         and modify cycle_issued_insns.
12598
12599         * config/ia64/ia64.c (issue_nops_and_insn): Combine insn issue
12600         with and without filling the bundle.
12601         (bundling): Combine calls of issue_nops_and_insn.
12602
12603         2002-10-17  Vladimir Makarov  <vmakarov@redhat.com>
12604
12605         * config/ia64/itanium1.md: New file.
12606
12607         * config/ia64/itanium2.md: New file.
12608
12609         * config/ia64/ia64.md: Move DFA descriptions into the new files.
12610         Remove the old pipeline description.
12611
12612         * config/ia64/ia64.c (ia64_override_options): Add aliases of
12613         itanium processor names.
12614
12615         2002-10-16  Vladimir Makarov  <vmakarov@redhat.com>
12616
12617         * config/ia64/ia64.c (bundling): Print states for Itanium2 too.
12618         (ia64_reorg):  Set up queried unit codes for Itanium2 too.
12619
12620         * config/ia64/ia64.md: Add descriptions for Itanium2.
12621
12622         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
12623
12624         * config/ia64/ia64.h (processor_type): New enumeration.
12625         (ia64_tune, ia64_tune_string): New external declarations.
12626         (TARGET_OPTIONS): Add option `tune='.
12627
12628         * config/ia64/ia64.c (ia64_tune, ia64_tune_string): New global
12629         variables.
12630         (ia64_override_options): Set up `ia64_tune'.
12631         (ia64_sched_reorder2): Set up `clocks' only for Itanium.
12632         (ia64_dfa_new_cycle): Set up `add_cycles' only for Itanium.
12633         (bundling): Add nops for MM-insns only for Itanium.
12634         (ia64_reorg): Allocate and free `clocks' and `add_cycles' only for
12635         Itanium.
12636
12637         * config/ia64/ia64.md (cpu): New attribute.
12638         (DFA description): Enable it only for Itanium.
12639
12640         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
12641                     Richard Henderson  <rth@redhat.com>
12642
12643         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS): Rename it to
12644         MASK_EARLY_STOP_BITS.
12645         (TARGET_TUNE_STOP_BITS): Rename it to TARGET_EARLY_STOP_BITS.
12646         (TARGET_SWITCHES): Rename option `tune-stop-bits' to
12647         `early-stop-bits'.
12648
12649         * config/ia64/ia64.c (ia64_dfa_new_cycle,
12650         final_emit_insn_group_barriers): Use TARGET_EARLY_STOP_BITS
12651         instead of TARGET_TUNE_STOP_BITS.
12652
12653         * doc/invoke.texi: Rename option `-mtune-stop-bits' to
12654         `-mearly-stop-bits'.
12655
12656         * config/ia64/ia64.c (automata_option "v"): Comment it.
12657
12658         2002-10-07  Vladimir Makarov  <vmakarov@redhat.com>
12659
12660         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS, TARGET_TUNE_STOP_BITS):
12661         New macros.
12662         (TARGET_SWITCHES): Add entries for the new option.
12663
12664         * config/ia64/ia64.c (dfa_stop_insn, last_scheduled_insn, rtx
12665         dfa_pre_cycle_insn, ia64_nop): Don't make them as roots for GC.
12666         (stops_p, stop_before_p, clocks_length, clocks, add_cycles): New
12667         global variables.
12668         (ia64_sched_reorder2): Set up `clocks'.
12669         (ia64_variable_issue): Set up `stops_p' and reset `stop_before_p'.
12670         (ia64_dfa_new_cycle): Set up add_cycle.  Permit sorting ready
12671         queue when TARGET_TUNE_STOP_BITS.
12672         (bundling): Insert additional nops for MM-insns.
12673         (final_emit_insn_group_barriers): Add insertion of stop bits
12674         according `stops_p'.
12675         (ia64_reorg): Initiate the new varibales.
12676
12677         * doc/invoke.texi: Add description of option `-mtune-stop-bits'.
12678
12679         2002-10-02  Vladimir Makarov  <vmakarov@redhat.com>
12680
12681         * haifa-sched.c (schedule_block): Modify INSN_TICK of depended
12682         insns at the end of block insn scheduling.
12683
12684         2002-09-30  Vladimir Makarov  <vmakarov@redhat.com>
12685
12686         * sched-deps.c (remove_dependence, group_leader): Remove it.
12687         (add_dependence): Add dependence to group leader to.
12688         (set_sched_group_p): Add dependence to the first insn of the
12689         schedule group too.
12690         (sched_analyze_insn): Make dependence to jump as anti-dependence.
12691         Change true dependence by anti-dependence when
12692         `reg_pending_barrier'.
12693
12694         * sched-rgn.c (init_ready_list, can_schedule_ready_p,
12695         add_branch_dependences): Ignore schedule groups.
12696
12697         * sched-ebb.c (init_ready_list): Ditto.
12698
12699         * (move_insn, set_priorities): Ditto.
12700
12701         * config/ia64/ia64.c (ia64_sched_init): Check that schedule group
12702         flag is clear after reload.
12703         (adjust_cost): Change cost only for output dependencies.
12704
12705         * config/ia64/ia64.md: Add more insns into bypass for MM-insns.
12706
12707         2002-09-26  Vladimir Makarov  <vmakarov@redhat.com>
12708
12709         * Makefile.in (sched-ebb.o): Add `$(TARGET_H)' to the entry.
12710
12711         * target.h (gcc_target): Add member
12712         `dependencies_evaluation_hook'.
12713
12714         * target-def.h (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New
12715         macro.
12716         (TARGET_SCHED): Add initiatialization of the new member.
12717
12718         * sched-ebb.c: Include `target.h'.
12719         (schedule_ebb): Call `dependencies_evaluation_hook'.
12720
12721         * sched-rgn.c (schedule_region): Call
12722         `dependencies_evaluation_hook'.
12723
12724         * config/ia64/ia64.c (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
12725         New macro.
12726         (ia64_dependencies_evaluation_hook): New function.
12727
12728         * doc/tm.texi (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
12729         Describe the new hook.
12730
12731         2002-09-25  Vladimir Makarov  <vmakarov@redhat.com>
12732
12733         * target.h (gcc_target): Add members
12734         `first_cycle_multipass_dfa_lookahead_guard' and `dfa_new_cycle'.
12735
12736         * target-def.h (TARGET_SCHED_DFA_NEW_CYCLE,
12737         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): New
12738         macros.
12739         (TARGET_SCHED): Add initiatialization of the new members.
12740
12741         * haifa-sched.c (schedule_insn): Update last_clock_var for the 1st
12742         insn scheduling too.
12743         (choose_ready): Use `first_cycle_multipass_dfa_lookahead_guard' to
12744         initialize `ready_try'.
12745         (schedule_block): Use `dfa_new_cycle'.  Sort `ready' only unless
12746         `dfa_new_cycle' says not to do it.
12747
12748         * config/ia64/ia64.md: Add DFA Itanium 1 description for insn
12749         bundling.
12750
12751         * config/ia64/ia64.h (CPU_UNITS_QUERY): New macro.
12752
12753         * config/ia64/ia64.c: Include `hashtab.h'.
12754         (ia64_first_cycle_multipass_dfa_lookahead_guard,
12755         ia64_dfa_new_cycle, final_emit_insn_group_barriers,
12756         ia64_dfa_sched_reorder, get_free_bundle_state, free_bundle_state,
12757         initiate_bundle_states, finish_bundle_states, bundle_state_hash,
12758         bundle_state_eq_p, insert_bundle_state,
12759         initiate_bundle_state_table, finish_bundle_state_table,
12760         try_issue_nops, try_issue_insn, issue_nops_and_insn, get_max_pos,
12761         get_template, get_next_important_insn, bundling): New functions.
12762         (ia64_internal_sched_reorder): Remove it.
12763         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
12764         TARGET_SCHED_DFA_NEW_CYCLE): New macros.
12765         (ia64_safe_itanium_requires_unit0): Remove it.
12766         (group_barrier_needed_p): Place group barrier right before a real
12767         insn.
12768         (bundle, ia64_packet, NR_PACKETS, type_names, packets, packets):
12769         Remove them.
12770         (bundle_name): New variable.
12771         (_0mii_, _0mmi_, _0mfi_, _0mmf_, _0bbb_, _0mbb_, _0mib_, _0mmb_,
12772         _0mfb_, _0mlx_, _1mii_, _1mmi_, _1mfi_, _1mmf_, _1bbb_, _1mbb_,
12773         _1mib_, _1mmb_, _1mfb_, _1mlx_, pos_1, pos_2, pos_3, pos_4, pos_5,
12774         pos_6, dfa_stop_insn, last_scheduled_insn, dfa_state_size,
12775         temp_dfa_state, prev_cycle_state): New global variables.
12776         (insn_matches_slot, maybe_rotate, finish_last_head,
12777         rotate_one_bundle, rotate_one_bundles, nop_cycles_until,
12778         cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn,
12779         find_best_packet, itanium_reorder, dump_current_packet,
12780         schedule_stop, gen_nop_type, ia64_emit_nops): Remove them.
12781         (sched_data, sched_ready, sched_types): Remove them.
12782         (ia64_sched_init): Initiate only `last_scheduled_insn' and call
12783         `init_insn_group_barriers'.
12784         (ia64_sched_reorder, ia64_sched_reorder2): Call
12785         ia64_dfa_sched_reorder.
12786         (ia64_variable_issue): Rewrite it.
12787         (bundle_state): New structure.
12788         (index_to_bundle_states, bundle_states_num,
12789         allocated_bundle_states_chain, free_bundle_state_chain): New
12790         global variables.
12791         (ia64_sched_finish): Add stop bits and call `bundling' after the
12792         2nd insn scheduling.
12793         (ia64_use_dfa_pipeline_interface): Return zero always.
12794         (ia64_first_cycle_multipass_dfa_lookahead): Return 6 for the 2nd
12795         insn scheduling.
12796         (ia64_init_dfa_pre_cycle_insn): Initialize `dfa_state_size',
12797         `temp_dfa_state', `prev_cycle_state', and `dfa_stop_insn'.
12798         (ia64_reorg): Add bundling insns.
12799
12800         * doc/tm.texi
12801         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
12802         TARGET_SCHED_DFA_NEW_CYCLE): Describe the new hooks.
12803
12804         2002-09-23  Vladimir Makarov  <vmakarov@redhat.com>
12805
12806         * config/ia64/ia64.md: Add Itanium1 DFA description.
12807         (itanium_class): Add `nop' and `pre_cycle'.  Add
12808         define_function_unit for `nop'.
12809         (nop): Change attribute `itanium_class'.
12810         (pre_cycle): New define_insn.
12811
12812         * config/ia64/ia64-protos.h (bundling_p): New external variable.
12813         (ia64_st_address_bypass_p, ia64_ld_address_bypass_p,
12814         ia64_produce_address_p): New function prototypes.
12815
12816         * config/ia64/ia64.c (bundling_p): New global variable.
12817         (ia64_use_dfa_pipeline_interface,
12818         ia64_first_cycle_multipass_dfa_lookahead,
12819         ia64_init_dfa_pre_cycle_insn, ia64_dfa_pre_cycle_insn): New
12820         functions.
12821         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
12822         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
12823         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
12824         TARGET_SCHED_DFA_PRE_CYCLE_INSN): New macros.
12825         (ia64_sched_init, ia64_sched_reorder, ia64_sched_reorder2,
12826         ia64_variable_issue, ia64_sched_finish): Do nothing before reload.
12827         (dfa_pre_cycle_insn): New variable.
12828
12829         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
12830
12831         * rtl.def (FINAL_PRESENCE_SET, FINAL_ABSENCE_SET): New
12832         constructions.
12833
12834         * genattrtab.h (gen_final_presence_set, gen_final_absence_set):
12835         New function prototypes.
12836
12837         * genattrtab.c (main): Process the new constructions.
12838
12839         * genautomata.c (gen_presence_absence_set,
12840         process_presence_absence_names, process_presence_absence_patterns,
12841         add_presence_absence, check_absence_pattern_sets): Add parameter
12842         `final_p'.
12843         (unit_decl): Add new members `final_presence_list' and
12844         `final_absence_list'.
12845         (unit_pattern_rel_decl): Add new member `final_p'.
12846         (gen_final_presence_set, gen_final_absence_set): New functions.
12847         (process_decls): Use member `final_p'.
12848         (temp_reserv): New global variable.
12849         (reserv_sets_are_intersected): Add processing `final_presence_set'
12850         and `final_absence_set'.
12851         (initiate_states): Allocate `temp_reserv'.
12852         (unit_final_presence_set_table, unit_final_absence_set_table): New
12853         gloabal variables.
12854         (initiate_presence_absence_pattern_sets): Initiate them.
12855         (NDFA_to_DFA): Fix typo.
12856         (output_description): Output `final_presence_set' and
12857         `final_absence_set'.
12858
12859         * doc/md.texi (final_presence_set, final_absence_set): Describe
12860         them.
12861
12862         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
12863
12864         * genautomata.c (transform_3): Process a missing case (nothing on
12865         unit place).
12866
12867         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
12868
12869         * rtl.def (DEFINE_QUERY_CPU_UNIT, AUTOMATA_OPTION): Change
12870         comments about queried units and the minimization.
12871
12872         * doc/md.texi: Ditto.
12873
12874         * genautomata.c (create_composed_state): Return nonzero if the new
12875         state has been created.
12876         (first_cycle_unit_presence): New function.
12877         (state_is_differed): Add new parameter.  Use the new function.
12878         Take queried units into account.
12879         (partition_equiv_class): Pass additional parameter to
12880         `state_is_differed'.
12881         (merge_states): Process composed states too.
12882         (build_automaton, create_automata, output_min_issue_delay_table,
12883         output_tables, output_statistics): Output more information.
12884         (output_reserved_units_table): Use function
12885         `first_cycle_unit_presence'.
12886         (output_tables): Output table of queried units even if the
12887         minimization is switched on.
12888         (write_automata): Output code for querying units even if the
12889         minimization is switched on.
12890
12891         2002-09-19  Vladimir Makarov  <vmakarov@redhat.com>
12892
12893         * rtl.def (PRESENCE_SET, ABSENCE_SET): Add comments about extended
12894         syntax of the constructions.
12895
12896         * doc/md.texi (PRESENCE_SET, ABSENCE_SET): Add description of
12897         extended syntax of the constructions.
12898
12899         * genautomata.c (unit_rel_decl): Rename it to
12900         `unit_pattern_rel_decl'.
12901         (pattern_set_el, pattern_reserv): New structures.
12902         (pattern_set_el_t, pattern_reserv_t): New types.
12903         (gen_presence_absence_set): New function.
12904         (process_presence_absence): Remove it.
12905         (process_presence_absence_names,
12906         process_presence_absence_patterns): New functions.
12907         (get_presence_absence_set): Remove it.
12908         (initiate_presence_absence_sets): Rename it on
12909         `initiate_presence_absence_pattern_sets'.  Use new function
12910         `form_reserv_sets_list'.
12911         (form_reserv_sets_list, check_presence_pattern_sets,
12912         check_absence_pattern_sets, output_pattern_set_el_list): New
12913         functions.
12914         (unit_decl): Change types of members `presence_list' and
12915         `absence_list'.
12916         (unit_rel_decl): Rename member `names_num' to `all_names_num'.
12917         (decl): Change types of members `excl', `presence', and `absence'.
12918         (get_str_vect): Rename `par_flag' to `paren_p'.  Add null element
12919         at the end of the vector.
12920         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
12921         gen_automaton, gen_regexp_repeat, gen_regexp_allof,
12922         gen_regexp_oneof, gen_regexp_sequence): Use boolean values.
12923         (gen_presence_set, gen_absence_set): Use new function
12924         `gen_presence_absence_set'.
12925         (add_presence_absence): Process `pattern_list' instead of
12926         `source_list'.
12927         (process_decls): USe new functions
12928         `process_presence_absence_names' and
12929         `process_presence_absence_patterns'.
12930         (reserv_sets_are_intersected): Use new function
12931         `check_presence_pattern_sets'.
12932         (presence_set, absence_set): Remove them.
12933         (unit_presence_set_table, unit_absence_set_table): New global
12934         variables.
12935         (output_description): Use new function
12936         `output_pattern_set_el_list'.
12937         (generate): Use `initiate_presence_absence_pattern_sets'.
12938
12939         2002-09-18  Vladimir Makarov  <vmakarov@redhat.com>
12940
12941         * genattr.c (main): Add output of prototype of new interface
12942         function `dfa_clean_insn_cache'.
12943
12944         * genautomata.c (output_dfa_clean_insn_cache_func): New function.
12945         (DFA_CLEAN_INSN_CACHE_FUNC_NAME): New macro.
12946         (output_dfa_start_func): Use function `dfa_clean_insn_cache' in
12947         the generated code.
12948         (write_automata): Call the new function.
12949
12950 2003-01-09  Jan Hubicka  <jh@suse.cz>
12951
12952         * i386.md (unit, prefix_0f, memory attributes): Hanlde sseicvt
12953         correctly.
12954
12955 2003-01-09  Paolo Carlini  <pcarlini@unitus.it>
12956
12957         * doc/tm.texi (EXTRA_ADDRESS_CONSTRAINT): Fix typo.
12958
12959 2003-01-09  J"orn Rennecke <joern.rennecke@superh.com>
12960
12961         * defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument.
12962         (EXTRA_ADDRESS_CONSTRAINT): Likewise.
12963         (CONSTRAINT_LEN): Provide default definition.
12964         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
12965         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Likewise.
12966         (EXTRA_CONSTRAINT_STR): Likewise.
12967         (REG_CLASS_FROM_CONSTRAINT): Define.
12968         * genoutput.c (check_constraint_len, constraint_len): New functions.
12969         (validate_insn_alternatives): Check CONSTRAINT_LEN for each
12970         constraint / modifier.
12971         (gen_insn): Call check_constraint_len.
12972         * local-alloc.c (block_alloc): Update to use new macros / pass
12973         second argument to EXTRA_{MEMORY,ADDRESS}_CONSTRAINT.
12974         * ra-build.c (handle_asm_insn): Likewise.
12975         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
12976         (constrain_operands, peep2_find_free_register): Likewise.
12977         * regclass.c (record_operand_costs, record_reg_classes): Likewise.
12978         * regmove.c (find_matches): Likewise.
12979         * reload.c (push_secondary_reload, find_reloads): Likewise.
12980         (alternative_allows_memconst): Likewise.
12981         * reload1.c (maybe_fix_stack_asms): Likewise.
12982         (reload_cse_simplify_operands): Likewise.
12983         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
12984         * doc/tm.texi (CONSTRAINT_LEN, REG_CLASS_FROM_CONSTRAINT): Document.
12985         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
12986         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR): Likewise.
12987         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Add STR argument.
12988         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Likewise.
12989
12990         * sh.h (OVERRIDE_OPTIONS): Allow first scheduling pass for SH5.
12991
12992 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
12993
12994         * config/h8300/h8300.md (*extzv_1_r_h8300): Correct the insn
12995         length.
12996         (*extzv_1_r_h8300hs): Likewise.
12997         (*extzv_1_r_inv_h8300): Likewise.
12998         (*extzv_1_r_inv_h8300hs): Likewise.
12999
13000 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
13001
13002         * config/h8300/h8300.h (PREDICATE_CODES): New.
13003
13004 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
13005
13006         * config/h8300/h8300.md (*addsi3_upper): New.
13007         (*iorsi3_shift): Likewise.
13008         (two splitters): Likewise.
13009         (*addsi3_shift): Likewise.
13010         (two splitters): Likewise.
13011
13012 2003-01-09  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
13013
13014         * Makefile.in (optabs.o): Add dependency on basic-block.h.
13015         * basic-block.h (control_flow_insn_p): Fuction was exported.
13016         * cfgbuild.c (control_flow_insn_p): Fuction was made non-static.
13017         * optabs.c (emit_libcall_block): Emit REG_LIBCALL and REG_RETVAL
13018         notes only when the region is contained in a single basic block.
13019
13020 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
13021
13022         PR inline-asm/8832
13023         * tree.h (expand_asm): New prototype.
13024         * stmt.c (expand_asm): Set the MEM_VOLATILE_P flag if instructed
13025         to do so.
13026         * c-semantics (genrtl_asm_stmt): Pass the RID_VOLATILE qualifier
13027         down to expand_asm.
13028         * c-typeck.c (simple_asm_stmt): Set the RID_VOLATILE qualifier.
13029         * rtlanal.c (volatile_insn_p) [ASM_INPUT]: Test the MEM_VOLATILE_P flag.
13030         (volatile_refs_p) [ASM_INPUT]: Likewise.
13031         (side_effects_p) [ASM_INPUT]: Likewise.
13032
13033 2003-01-09  Jan Hubicka  <jh@suse.cz>
13034
13035         * i386.md (*mul*): FIx constraints; remove confused comment; fix
13036         athlon_decode attributes
13037         (imul/k8 optimization peep2s): New.
13038
13039         * athlon.md (athlon_ssecmp*): Handle ssecomi as well.
13040         * i386.md (type attribute): Add ssecomi.
13041         (unit, memory, prefix attributes): Handle ssecomi.
13042         (cvt?2? patterns): Fix athlon_decode attribute
13043         (comi patterns): Set attribute to ssecomi.
13044
13045         PR target/8343
13046         * m68k.md (umulsidi, mulsidi expanders): Use register operand.
13047
13048 2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
13049
13050         * config/mips/mips.h (PREDICATE_CODES): Add ADDRESSOF for predicates
13051         that match register_operands.
13052         * config/mips/mips.c (reg_or_0_operand, true_reg_or_0_operand): Make
13053         register_operand the default case.
13054
13055 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
13056
13057         PR c/8032
13058         * c-typeck.c (process_init_element) [RECORD_TYPE]: For
13059         an empty element, do not advance the pointer to unfilled
13060         fields if there are pending initializers.
13061
13062 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
13063
13064         * Makefile.in (ORDINARY_FLAGS_TO_PASS): Also pass DESTDIR.
13065         (install-gcc-tooldir, install-cpp, installdirs,
13066         install-common, install-driver, install-info, install-man,
13067         install-headers, install-include-dir, install-headers-tar,
13068         install-headers-cpio, install-headers-cp, install-mkheaders,
13069         install-collect2, uninstall): Prepend $(DESTDIR) to
13070         destination paths in all (un)installation commands.
13071         (install-driver): Rewrite $(LN) commands to support DESTDIR
13072         with "ln" as well as with "ln -s".
13073         (installdirs): Simply use mkinstalldirs.
13074         (install-libgcc, install-multilib): Also pass DESTDIR.
13075         * mklibgcc.in: Prepend $(DESTDIR) to $(libsubdir) in the
13076         installation destination variable ldir.
13077         * config/alpha/t-osf4, config/arm/t-netbsd,
13078         config/ia64/t-hpux, config/mips/t-iris5-6,
13079         config/pa/t-hpux-shlib, config/rs6000/t-aix43,
13080         config/rs6000/t-aix52, config/t-slibgcc-elf-ver,
13081         config/t-slibgcc-sld: Prepend $$(DESTDIR) to $$(slibdir)
13082         in the definition of SHLIB_INSTALL.
13083         * config/arc/t-arc (install-multilib-arc): Prepend $(DESTDIR) to
13084         $(libsubdir) in the installation commands.
13085
13086 2003-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
13087
13088         * config/sh/sh.h (CASE_VECTOR_MODE): Use SImode for a
13089         non-optimizing compile.
13090         (ASM_OUTPUT_ADDR_VEC_ELT): Use .long for a non-optimizing
13091         compile.
13092
13093 2003-01-08  Douglas B Rupp  <rupp@gnat.com>
13094
13095         * config/i386/i386.c (ix86_attribute_table): Add new attributes
13096         ms_struct and gcc_struct.
13097         (ix86_handle_struct_attribute): New function.
13098         (ix86_ms_bitfield_layout_p): Update to take new attributes
13099         into account.
13100         * doc/extend.texi: Document new attributes.
13101         * testsuite/gcc.dg/bf-ms-attrib.c: New test.
13102
13103 2003-01-08  Danny Smith  <dannysmith@users.sourceforge.net>
13104
13105         PR optimization/8750
13106         * config/i386/i386.c (ix86_expand_prologue): Don't allow
13107         scheduling pass to move insns across __alloca call.
13108
13109 2003-01-08  Dale Johannesen  <dalej@apple.com>
13110
13111         * config/rs6000/rs6000.md:  Replace *store_multiple_string
13112         with *stmsi[3-8].
13113
13114 2003-01-08  Jeff Sturm  <jsturm@one-point.com>
13115
13116         PR target/9210
13117         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info):
13118         Set SYMBOL_REF_FLAG on local data sym_ref.
13119
13120 2003-01-08  Dale Johannesen  <dalej@apple.com>
13121
13122         * function.c (assign_parms):  Don't set pretend_args_size if
13123           REG_PARM_STACK_SPACE.
13124           config/rs6000/rs6000.c (setup_incoming_varargs):  Don't set
13125           pretend_args_size.
13126
13127 2003-01-08  Nathanael Nerode  <neroden@gcc.gnu.org>
13128
13129         * gcc.hlp: Delete.
13130
13131 2003-01-09  Jan Hubicka  <jh@suse.cz>
13132
13133         * i386.c  (ix86_expand_int_addcc): Fix thinko.
13134
13135 2003-01-08  David Edelsohn  <edelsohn@gnu.org>
13136
13137         * config/rs6000/rs6000.h (FUNCTION_MODE): Always use SImode.
13138         * config/rs6000/rs6000.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine
13139         as hook_bool_tree_hwi_hwi_tree_true.
13140         (rs6000_emit_allocate_stack): Use TARGET_32BIT.
13141         (rs6000_emit_epilogue): Same.
13142         (rs6000_output_mi_thunk): Re-implement as RTL.
13143         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Call
13144         xcoffout_declare_function if any debugging enabled.
13145
13146 2003-01-08  Chris Demetriou  <cgd@broadcom.com>
13147
13148         * config.gcc (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*): New
13149         targets, to support MIPS32 Release 2 (MIPS32R2) configurations.
13150         * config/mips/mips.h (enum processor_type): Rename
13151         PROCESSOR_R4KC to PROCESSOR_4KC, PROCESSOR_R5KC to
13152         PROCESSOR_5KC, and PROCESSOR_R20KC to PROCESSOR_20KC.
13153         Add PROCESSOR_M4K.
13154         (TARGET_MIPS4KC, TARGET_MIPS5KC): Update for the renaming.
13155         (ISA_MIPS32R2): New define.
13156         (GENERATE_MULT3_SI, ISA_HAS_CONDMOVE, ISA_HAS_8CC)
13157         (ISA_HAS_MADD_MSUB, ISA_HAS_CLZ_CLO)
13158         (ISA_HAS_PREFETCH): Add support for MIPS32R2.
13159         (MIPS_ISA_DEFAULT): Likewise.  Also, fix indentation.
13160         (TARGET_CPU_CPP_BUILTINS): Add support for MIPS32R2.  Add new
13161         predefine __mips_isa_rev for MIPS32, MIPS32R2, and MIPS64.
13162         (ISA_HAS_ROTR_SI): Add support for MIPS32R2, and avoid if
13163         compiling MIPS16 code.
13164         (ISA_HAS_ROTR_DI): Do not use if compiling MIPS16 code, and fix
13165         comment.
13166         (ISA_HAS_SEB_SEH): New define.
13167         (ASM_SPEC, LINK_SPEC): Pass -mips32r2 to assembler and linker.
13168         * config/mips/mips.c (mips_cpu_info_table): Adjust for enum
13169         processor_type value renaming.  Add support for MIPS32R2.
13170         Clean up comments, and move "sb1" entry with other MIPS64 CPU
13171         entries.
13172         (override_options): Reimplement -mipsN option handling so that
13173         it will work correctly for -mips32r2.  Avoid branch-likely
13174         instructions on MIPS32R2.
13175         * config/mips/mips.md (mulsi3_mult3): Add support for MIPS32R2.
13176         (extendhisi2): Use extendhisi2_hw if ISA_HAS_SEB_SEH.
13177         (extendqisi2): Use extendqisi2_hw if ISA_HAS_SEB_SEH.
13178         (extendhisi2_hw, extendqisi2_hw): New.
13179         * config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Add support
13180         for MIPS32R2.  Add new predefine __mips_isa_rev for MIPS32,
13181         MIPS32R2, and MIPS64.
13182         (LINK_SPEC): Pass -mips32r2 to linker.
13183         * config/mips/t-isa3264: Built -mips32r2 multilibs.
13184         * doc/invoke.texi (MIPS Options): Add -mips32r2, add support
13185         for mips32r2 in the -march description.  Alphabetically sort
13186         CPU names in the -march description.  Add long-missed -mips32
13187         and -mips64 to MIPS option summary.
13188
13189         * config.gcc: Update copyright years to include 2003.
13190         * config/mips/mips.c: Likewise.
13191         * config/mips/mips.h: Likewise.
13192         * config/mips/mips.md: Likewise.
13193         * config/mips/netbsd.h: Likewise.
13194         * doc/invoke.texi: Likewise.
13195
13196 2003-01-08  Andreas Schwab  <schwab@suse.de>
13197
13198         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): Fix spelling of cache
13199         variable.
13200         * configure: Regenerated.
13201
13202 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
13203
13204         * config/h8300/h8300.c (output_logical_op): Replace byte/word
13205         extraction of det with b0, b1, w0, w2, etc.
13206         (compute_logical_op_length): Likewise.
13207         (compute_logical_op_cc): Likewise.
13208
13209 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
13210
13211         * config/h8300/h8300.h (CONSTANT_ADDRESS_P): Allow CONST and
13212         HIGH on all variants.
13213
13214 2003-01-08  Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz>
13215
13216         * Makefile.in (PARTITION_H): New.
13217         (BASIC_BLOCK_H): Added hard-reg-set.h and $(PARTITION_H).
13218         * basic-block.h: Include hard-reg-set.h.
13219
13220 2003-01-08  Richard Earnshaw  <rearnsha@arm.com>
13221
13222         * arm.h (ENABLE_XF_PATTERNS): Delete.
13223         * arm.md (addxf3, subxf3, mulxf3, divxf3, modxf3, negxf2, absxf2)
13224         (sqrtxf2, floatsixf2, fix_truncxfsi2, truncxfsf2, truncxfdf2)
13225         (extendsfxf2, extenddfxf2, movxf, cmpxf, cmpxf_insn)
13226         (cmpxf_trap): Delete.
13227         (movxf_hard_insn): Remove test of ENABLE_XF_PATTERNS.
13228
13229 2003-01-08  Jan Hubicka  <jh@suse.cz>
13230
13231         * i386.md (adddi3_carry_rex64, subdi3_carry_rex64): Name pattern.
13232         (addhi3_carry, addqi3_carry, subhi3_carry, subqi3_carry): New patterns.
13233         (add??cc): New expanders.
13234         * i386.c (expand_int_addcc): New function.
13235         * i386-protos.h (expand_int_addcc): Declare.
13236
13237         * alias.c (memory_modified_1): New static function.
13238         (memory_modified): New static varaible.
13239         (memory_modified_in_insn_p): New global function.
13240         * rtl.h (memory_modified_in_insn_p): Declare.
13241         * rtlanal.c (modified_between_p, modified_in_p): Be smart about memory
13242         references.
13243
13244         * expr.h (emit_conditional_add): Declare.
13245
13246 2003-01-07  Janis Johnson  <janis187@us.ibm.com>
13247
13248         PR other/8947
13249         * doc/invoke.texi (-malign-double): Explain that the option breaks
13250         binary compatibility.
13251
13252 2003-01-08  Andreas Schwab  <schwab@suse.de>
13253
13254         * config.gcc (m68k-*-linux*): Don't set extra_parts and gnu_ld,
13255         should come from the generic *-*-linux* entry.
13256
13257 2003-01-07  Jan Hubicka  <jh@suse.cz>
13258
13259         * cselib.c (cselib_current_insn_in_libcall): New static variable.
13260         (new_elt_loc_list, cselib_process_insn, cselib_init): Keep track on whether
13261         we are inside libcall.
13262         * cselib.h (elt_loc_list): Add in_libcall.
13263         * gcse.c (do_local_cprop): Do not copy propagate using insns
13264         in libcalls.
13265
13266 2003-01-07  David Edelsohn  <edelsohn@gnu.org>
13267
13268         * doc/tm.texi (TARGET_SCHED_VARIABLE_ISSUE): CLOBBER and USE do
13269         not normally affect to issue rate.
13270
13271 2003-01-07  Jan Hubicka  <jh@suse.cz>
13272
13273         * genopinit.c (optabs): Add addc_optab.
13274         * ifcvt.c (noce_try_store_flag): Rename to ...
13275         (noce_try_addcc): ... this one; handle generic conditional increment.
13276         (noce_process_if_block): Update noce_try_addcc call.
13277         * optabs.c (emit_conditional_add): New.
13278         (init_obtabs): Initialize addc_optab.
13279         * optabs.h (optab_index): Add OTI_addcc.
13280         (addcc_optab): New macro.
13281         * md.texi: Document addMcc
13282
13283         PR target/8322
13284         * i386.c (ix86_init_mmx_sse_builtins): Constify arguments of loads.
13285         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
13286         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
13287
13288         * reload1.c (delete_output_reload): Avoid repeated attempts
13289         to delete insn.
13290
13291 2003-01-07  Andreas Schwab  <schwab@suse.de>
13292
13293         * configure.in: Restore CFLAGS before gcc_AC_INITFINI_ARRAY.
13294         Move --enable-initfini-array check ...
13295         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): ... here.  Define
13296         HAVE_INITFINI_ARRAY also when --enable-initfini-array is given.
13297         Don't AC_SUBST gcc_cv_initfinit_array.  Use AC_TRY_RUN.
13298         * configure: Rebuild.
13299
13300 2003-01-07  Richard Henderson  <rth@redhat.com>
13301
13302         * alias.c (find_base_value): Only use new_reg_base_value shortcut
13303         if the register is set once.
13304
13305 2003-01-07  Sylvain Pion <Sylvain.Pion@mpi-sb.mpg.de>
13306
13307         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
13308         __builtin_ia32_ldmxcsr and __builtin_ia32_stmxcsr are SSE, not MXX.
13309         * config/i386/i386.md (ldmxcsr, stmxcsr): SSE, not MMX.
13310
13311 2003-01-07  Benjamin Kosnik  <bkoz@redhat.com>
13312             Sunil Davasam  <sunil.k.davasam@intel.com>
13313
13314         PR libstdc++/9076
13315         * unwind-dw2.c (execute_cfa_program): DW_CFA_undefined,
13316         DW_CFA_same_value, read next and ignore.
13317
13318 2003-01-07  Richard Henderson  <rth@redhat.com>
13319
13320         * cfganal.c (flow_call_edges_add): Don't crash on noreturn call.
13321
13322 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
13323
13324         * cfg.c: Include alloc-pool.h
13325         (edge_pool): New pool.
13326         (bb_pool): New pool.
13327         (first_deleted_edge): Remove.
13328         (first_deleted_block): Remove.
13329         (init_flow): Alloc/free the pools.
13330         (free_edge): Use pools.
13331         (alloc_block): Ditto.
13332         (expunge_block): Ditto.
13333         (cached_make_edge): Ditto.
13334
13335         * Makefile.in (cfg.o): Add alloc-pool.h dependency.
13336
13337 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
13338
13339         * et-forest.c: Include alloc-pool.h.
13340         (struct et_forest): Add node_pool and occur_pool.
13341         (et_forest_create): Create the new pools.
13342         (et_forest_delete): Delete them.
13343         (et_forest_add_node): Allocate and free using pools.
13344         (et_forest_add_edge): Ditto.
13345         (et_forest_remove_node): Ditto.
13346         (et_forest_remove_edge): Ditto.
13347
13348         * Makefile.in (et-forest.o): Add alloc-pool.h dependency.
13349
13350 2003-01-07  Kazu Hirata  <kazu@cs.umass.edu>
13351
13352         * config/h8300/h8300.c (output_logical_op): Simplify and
13353         optimize the handling of SImode.
13354         * config/h8300/h8300.c (compute_logical_op_length): Update
13355         accordingly.
13356         * config/h8300/h8300.c (compute_logical_op_cc): Likewise.
13357
13358 2003-01-07  Richard Sandiford  <rsandifo@redhat.com>
13359
13360         * config/mips/mips.c (mips_va_arg): In the EABI code, apply the
13361         big-endian correction to indirect arguments too.
13362
13363 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
13364
13365         Segher Boessenkool  <segher@koffie.nl>
13366
13367         * config/rs6000/rs6000.c (rs6000_reg_names): Add missing registers.
13368         (alt_reg_names): Ditto, fix formatting.
13369         * config/rs6000/rs6000.h (DEBUG_REGISTER_NAMES): Fix formatting.
13370
13371 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13372
13373         * config/h8300/h8300.c (final_prescan_insn): Constify uid.
13374         (output_logical_op): Constify intval and det.
13375         (compute_logical_length): Likewise.
13376         (compute_logical_cc): Likewise.
13377         (output_a_shift): Constify mask.
13378         (h8300_encode_label): Constify len.
13379
13380 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13381
13382         * config/h8300/h8300.c (h8300_expand_prologue): Remove fsize.
13383         (h8300_expand_epilogue): Likewise.
13384
13385 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
13386
13387         Segher Boessenkool  <segher@koffie.nl>
13388
13389         * config/rs6000/altivec.md: Remove spaces from assembler
13390         instruction argument lists.
13391
13392 2003-01-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13393
13394         * config/c4x/c4x.c (c4x_naked_function_p): Rename from
13395         c4x_assembler_function_p.
13396         (c4x_null_epilogue_p): Complement return value, all uses updated.
13397         (c4x_insert_attributes): Add naked.
13398         * config/c4x/c4x.md (c4x_null_epilogue_p): Changes uses.
13399         * doc/extend.texi: Update C4x function attributes.
13400
13401 2003-01-06  Richard Henderson  <rth@redhat.com>
13402
13403         * config/alpha/alpha.c (alpha_encode_section_info): Adjust symbol_str
13404         properly when changing "local-ness".
13405         * config/alpha/alpha.md (movdi_er_high_g): Allow all symbols.
13406
13407 2003-01-06  Dale Johannesen  <dalej@apple.com>
13408
13409         * config/darwin-protos.h:  Add prototypes for new section functions.
13410
13411 2003-01-06  Chris Demetriou  <cgd@broadcom.com>
13412
13413         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*): Default ABI
13414         to EABI.
13415
13416 2003-01-06  Zack Weinberg  <zack@codesourcery.com>
13417
13418         * hwint.h: If the current compiler has no 64-bit type at all,
13419         make HOST_WIDEST_INT 32 bits.
13420
13421 2003-01-06  Eric Christopher  <echristo@redhat.com>
13422
13423         * config/mips/mips.md (movdf_internal2): Fix constraints.
13424
13425 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13426
13427         * config/h8300/h8300.md (*twoshifts_l16_r1): New.
13428
13429 2003-01-06  Richard Sandiford  <rsandifo@redhat.com>
13430
13431         * config/mips/mips.md (leadi): Use dla rather than la.
13432
13433 2003-01-06  Svein E. Seldal  <Svein.Seldal@solidas.com>
13434
13435         * config/c4x/c4x.h: Updated specs for new gas format.  Fixed bug
13436         in C33_FLAG.  Added proper C33 support in ASM_FILE_START macro.
13437
13438 2003-01-06 Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
13439
13440         * config/c4x/c4x.h: Remove hwint.h include and HOST_WIDE_INT_PRINT_HEX
13441         redefinition.
13442
13443 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13444
13445         * config/h8300/h8300.md (*extzv_8_23): New.
13446
13447 2003-01-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13448
13449         * pa64-hpux.h (JCR_SECTION_NAME): Define.
13450         (PA_INIT_FRAME_DUMMY_ASM_OP): Check EH_FRAME_SECTION_NAME instead of
13451         USE_EH_FRAME_REGISTRY when defining.
13452
13453 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13454
13455         * config/h8300/h8300.c (output_a_shift): Do not output a
13456         variable shift.
13457         * config/h8300/h8300.md (two splitters): New.
13458
13459 2003-01-05  Richard Sandiford  <rsandifo@redhat.com>
13460
13461         * config/mips/mips.md: Disable the movstrsi define_split.
13462
13463 2003-01-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13464
13465         * alloc-pool.c: Don't include "libiberty.h".
13466         * config/sparc/gmon-sol2.c: Include <fcntl.h>.
13467         * convert.c (convert_to_real): Hide unused variable.
13468
13469 2003-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13470
13471         * Makefile.in (gtyp-gen.h): Const-ify.
13472         * gcov-dump.c (tag_table): Likewise.
13473
13474 2003-01-04  Bruce Korb  <bkorb@gnu.org>
13475
13476         * fixinc/fixfixes.c(wrap_fix): the wrapper guard must be a function
13477         of *both* the file name and the fix name.
13478
13479 2003-01-04  John David Anglin  <dave.anglin@nrc.ca>
13480
13481         * config.gcc (hppa*64*-*-hpux11*): Define extra_parts.  Don't use
13482         collect2.
13483         * pa-hpux11.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Undefine.
13484         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Define.
13485         * pa64-hpux.h (HP_INIT_ARRAY_SECTION_ASM_OP,
13486         GNU_INIT_ARRAY_SECTION_ASM_OP, HP_FINI_ARRAY_SECTION_ASM_OP,
13487         GNU_FINI_ARRAY_SECTION_ASM_OP): Define.
13488         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define when not using
13489         elfos.h.
13490         (EH_FRAME_IN_DATA_SECTION): Delete define.
13491         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Undefine.
13492         (STARTFILE_SPEC): Use crtbegin.o.
13493         (ENDFILE_SPEC): Use crtend.o.
13494         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION,
13495         SUPPORTS_INIT_PRIORITY, PA_CXA_FINALIZE_STUB, PA_INIT_FINI_HACK,
13496         PA_INIT_FRAME_DUMMY_ASM_OP, PA_JV_REGISTERCLASSES_STUB,
13497         DTOR_LIST_BEGIN): Define.
13498         * pa.c (TARGET_ASM_CONSTRUCTOR): Define.
13499         (pa_asm_out_constructor, pa_asm_out_destructor): New functions.
13500         * som.h (SUPPORTS_INIT_PRIORITY): Delete define.
13501
13502 2002-12-31  Larin Hennessy  <larin@science.oregonstate.edu>
13503
13504         * fixinc/fixinc.svr4: Remove references to i860, Sony NewsOS, and spur.
13505         * fixinc/inclhack.def: Remove tests for Apple A/UX, ARM/RISCiX, DG/UX,
13506         m88k-*-sysv3*, Sony NewsOS.   Remove references to i860.
13507         Cleanup handling of replacement text.
13508         * fixinc/mkfixinc.sh: Remove reference to i?86-*-osf1*
13509
13510 2003-01-04  Bruce Korb  <bkorb@gnu.org>
13511
13512         * fixinc/tests/base/math.h: removed obsolete results
13513         * fixinc/tests/base/stdlib.h: ditto
13514         * fixinc/tests/base/sys/param.h: ditto
13515         * fixinc/tests/base/sys/stat.h: ditto
13516         * fixinc/tests/base/time.h: ditto
13517         * fixinc/tests/base/X11/Intrinsic.h: removed obsolete file
13518         * fixinc/tests/base/sys/byteorder.h: ditto
13519         * fixinc/inclhack.def: Remove superfluous backslashes
13520
13521 2003-01-04  Kazu Hirata  <kazu@cs.umass.edu>
13522
13523         * config/h8300/h8300-protos.h: Add prototypes for
13524         the new functions defined below.
13525         * config/h8300/h8300.c (TARGET_ASM_FUNCTION_PROLOGUE): Do not
13526         define.
13527         (dosize): Emit RTL instead of assembly code.
13528         (push): Likewise.
13529         (pop): Likewise.
13530         (h8300_output_function_prologue): Remove.
13531         (h8300_expand_prologue): New.
13532         (h8300_expand_epilogue): New.
13533         (h8300_output_function_epilogue): Do only the reset of
13534         pragma_saveall.
13535         * config/h8300/h8300.md (push_h8300): New.
13536         (push_h8300hs): Likewise.
13537         (pop_h8300): Likewise.
13538         (pop_h8300hs): Likewise.
13539         (*stm_h8300s_2): Change the name to stm_h8300s_2.
13540         (*stm_h8300s_3): Change the name to stm_h8300s_3.
13541         (*stm_h8300s_4): Change the name to stm_h8300s_4.
13542         (*ldm_h8300s_2): New.
13543         (*ldm_h8300s_3): Likewise.
13544         (*ldm_h8300s_4): Likewise.
13545         (return): Likewise.
13546         (*return_1): Likewise.
13547         (prologue): Likewise.
13548         (epilogue): Likewise.
13549         (monitor_prologue): Likewise.
13550
13551 2003-01-03  Dale Johannesen  <dalej@apple.com>
13552
13553         * config/darwin.h:  (EXTRA_SECTIONS):  Add machopic_symbol_stub1,
13554           machopic_picsymbol_stub1.
13555           (EXTRA_SECTION_FUNCTIONS):  Ditto.
13556         * rs6000/rs6000.c:  Update copyright.
13557           (machopic_output_stub):  Use them.  Remove an insn from stub code.
13558
13559 2003-01-02  Jason Merrill  <jason@redhat.com>
13560
13561         * fold-const.c (fold) [COND_EXPR]: Avoid NOP_EXPRs better.
13562
13563         * integrate.c (copy_decl_for_inlining): Don't clear the rtl for
13564         static/external decls.
13565
13566         * c-common.c (finish_fname_decls): Put the DECL_STMTs inside the
13567         outermost scope.
13568         * c-decl.c (c_make_fname_decl): Push the decls there, too.
13569
13570 2003-01-03  Kazu Hirata  <kazu@cs.umass.edu>
13571
13572         * config/h8300/h8300-protos.h: Add a prototype for
13573         h8300_current_function_interrupt_function_p.
13574         * config/h8300/h8300.c (interrupt_handler): Remove.
13575         (os_task): Likewise.
13576         (monitor): Likewise.
13577         (pragma_interrupt): New.
13578         (WORD_REG_USED): Use
13579         h8300_current_function_interrupt_function_p.
13580         (dosize): Likewise.
13581         (h8300_output_function_prologue): Likewise.
13582         Do not set interrupt_handler, os_task, monitor.
13583         (h8300_output_function_prologue): Use
13584         h8300_current_function_interrupt_function_p.
13585         Do not set interrupt_handler, os_task, monitor.
13586         (h8300_current_function_interrupt_function_p): New.
13587         (h8300_pr_interrupt): Set pragma_interrupt.
13588         (h8300_insert_attributes): Reset pragma_interrupt.
13589
13590 2003-01-03  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13591
13592         * doc/install.texi (Configuration): Fix markup for reference to
13593         gcc/config.gcc.
13594
13595 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
13596
13597         * config/h8300/h8300.md (*iorhi3_zext): Relax the condition.
13598         (*iorhi3_two_qi): Likewise.
13599         (*iorsi3_zexthi): Likewise.
13600         (*xorhi3_zextqi): Likewise.
13601         (*xorsi3_zexthi): Likewise.
13602         (*xorsi3_zextqi): Likewise.
13603
13604 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
13605
13606         * config/h8300/h8300.c (stack_pointer_operand): New.
13607         (const_int_gt_2_operand): Likewise.
13608         (const_int_ge_8_operand): Likewise.
13609         * config/h8300/h8300.md (a splitter): Likewise.
13610         (a peephole2): Likewise.
13611         * config/h8300/h8300-protos.h: Add prototypes for the new
13612         functions above.
13613
13614 2003-01-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
13615
13616         * objc/Make-lang.in, objc/config-lang.in, objc/lang-specs.h,
13617         objc/objc-act.h: Fix copyright years.
13618
13619 2003-01-02  Steven Bosscher  <s.bosscher@student.tudelft.nl>
13620
13621         * doc/passes.texi: Fix documentation for -fssa-ccp
13622
13623 2003-01-02  Neil Booth  <neil@daikokuya.co.uk>
13624
13625         * gccbug.in: Update for new categories.
13626
13627 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
13628
13629         * config/h8300/h8300.md: Reorder some patterns.
13630
13631 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
13632
13633         * config/h8300/h8300.c (output_logical_op): Fix a warning.
13634
13635 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
13636
13637         * config/darwin-protos.h, config/c4x/c4x-protos.h,
13638         config/cris/cris-protos.h, config/i370/i370-protos.h,
13639         config/i960/i960-protos.h, config/ia64/ia64-protos.h,
13640         config/v850/v850-protos.h: Use struct, and don't conditionally
13641         compile on GCC_C_PRAGMA_H.
13642
13643 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
13644
13645         * config/arm/arm-protos.h: Remove #ifdef GCC_C_PRAGMA_H.
13646         * config/h8300/h8300-protos.h: Likewise.
13647         * config/sh/sh-protos.h: Likewise.
13648
13649 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
13650
13651         * config/arm/arm-protos.h: Use struct cpp_reader instead of
13652         cpp_reader.
13653         * config/h8300/h8300-protos.h: Likewise.
13654         * config/sh/sh-protos.h: Likewise.
13655
13656 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
13657
13658         * config/arm/arm.c (arm_pr_long_calls, arm_pr_no_long_calls,
13659         arm_pr_long_calls_off): Use struct.
13660         * config/h8300/h8300.c (h8300_pr-interrupt, h8300_pr_saveall)
13661         : Similarly.
13662         Don't include cpplib.h.
13663         * config/sh/sh.c (sh_pr_interrupt, sh_pr_trapa,
13664         sh_pr_nosave_low_regs): Similarly.
13665
13666 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
13667
13668         * config/h8300/h8300.c: Include cpplib.h.
13669
13670 2003-01-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
13671
13672         * objc/Make-lang.in, objc/config-lang.in, objc/lang-options.h,
13673           objc/lang-specs.h, objc/objc-act.c, objc/objc-act.h,
13674           objc/objc-lang.c, objc/objc-tree.def: Replace "GNU CC" with
13675           "GCC" in the copyright header.
13676
13677 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
13678
13679         * c-pragma.c (c_register_pragma): New.
13680         (init_pragma): Use it.
13681         * c-pragma.h (cpp_register_pragma): Don't declare.
13682         (c_register_pragma): New.
13683         * cpplib.h: Remove #ifdef GCC_C_PRAGMA_H.
13684         * config/darwin.h (REGISTER_TARGET_PRAGMAS): Update.
13685         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS): Update.
13686         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
13687         * config/h8300/h8300.h (REGISTER_TARGET_PRAGMAS): Update.
13688         * config/i370/i370.h (REGISTER_TARGET_PRAGMAS): Update.
13689         * config/i960/i960.h (REGISTER_TARGET_PRAGMAS): Update.
13690         * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Update.
13691         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Update.
13692         * config/sh/sh.h (REGISTER_TARGET_PRAGMAS): Update.
13693         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS): Update.
13694         * doc/tm.texi (REGISTER_TARGET_PRAGMAS): Update
13695
13696 See ChangeLog.8 for earlier changes.