OSDN Git Service

* config/sh/sh.md (prefetch): New pattern.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-11-12  J"orn Rennecke <joern.rennecke@superh.com>
2
3         * config/sh/sh.md (prefetch): New pattern.
4
5 2003-11-11  Eric Christopher  <echristo@redhat.com>
6
7         * reload1.c (reload): Verify that addresses for
8         reg_equiv_* are valid for the architecture.
9
10 2003-11-11  Eric Christopher  <echristo@redhat.com>
11
12         * function.c (purge_addressof_1): Add libcall check.
13         Remove test for cached replacements on fallback case.
14         Simplify mode comparisons. Add libcall test for
15         paradoxical subregs.
16
17 2003-11-11  Kazu Hirata  <kazu@cs.umass.edu>
18
19         * config/h8300/t-h8300: Fix an obsolete comment.
20
21 2003-11-11  James E Wilson  <wilson@specifixinc.com>
22
23         * expmed.c (store_bit_field, extract_bit_field): Revert last two
24         changes.
25
26 2003-11-11  Kazu Hirata  <kazu@cs.umass.edu>
27
28         * config/h8300/lib1funcs.asm: Replace DenHighZero with
29         DenHighNonZero.
30
31 2003-11-11  Jan Hubicka  <jh@suse.cz>
32
33         * cgraphunit.c (cgraph_function_possibly_inlined_p): Use
34         really_no_inline.
35
36 2003-11-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37
38         * pa.h (TRAMPOLINE_TEMPLATE): Fix flushing of cache lines when
39         generating 64-bit code.
40
41 2003-11-10  David Edelsohn  <edelsohn@gnu.org>
42
43         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove
44         accidental commit in previous change.
45
46 2003-11-10  Fariborz Jahanian <fjahanian@apple.com>
47
48         * config/rs6000/rs6000.h (STACK_SIZE_MODE): Add definition.
49         * config/rs6000/rs6000.c (reg_or_mem_operand): Add macho-style
50         address recognition.
51         (macho_lo_sum_memory_operand): Routine to recognize macho-style
52         address recognition.
53
54 2003-11-10  Richard Henderson  <rth@redhat.com>
55
56         * dwarf2out.c (gen_label_die): Cope with DECL_RTL not set.
57
58 2003-11-10  Matt Austern  <austern@apple.com>
59
60         * config/darwin-protos.h (darwin_assemble_visibility): Declare.
61         * config/darwin.c (darwin_assemble_visibility): Define.  Warn for
62         anything other than VISIBILITY_DEFAULT and VISIBILITY_HIDDEN.
63         * config/darwin.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Use
64         darwin_assemble_visibility instead of default.
65
66 2003-11-10  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
67
68         PR target/12865
69         * config/sparc/sparc.c (sparc_initialize_trampoline): Call
70         __enable_execute_stack only after writing onto the stack.
71         (sparc64_initialize_trampoline): Likewise.
72
73 2003-11-09  Roger Sayle  <roger@eyesopen.com>
74
75         * loop.c (check_dbra_loop): Try swapping the comparison operands
76         of the loop condition to identify a suitable induction variable.
77         * unroll.c (loop_iterations): Likewise.
78
79 2003-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
80
81         * config/sparc/sparc.h (TARGET_CPU_CPP_BUILTINS): Fix sparc vs
82         sparc64 #cpu and #machine assertions.
83
84 2003-11-09  Richard Henderson  <rth@redhat.com>
85
86         * Makefile.in (rtlanal.o): Depend on BASIC_BLOCK_H.
87
88 2003-11-09  Jan Hubicka  <jh@suse.cz>
89
90         * tree-optimize.c (tree_rest_of_compilation): Fix warning.
91
92         * cgraphunit.c (cgraph_expand_function): Use
93         cgraph_possibly_inlined_p.
94         * tree-optimize.c (tree_rest_of_compilation): Do not kill saved tree.
95
96         * opts.c (common_handle_option): Do not set max-inline-insns.
97         * params.def: Update comments.
98         (PARAM_MAX_INLINE_INSNS): Kill.
99         * invoke.texi (max-inline-insns): Kill.
100
101 2003-11-08  Joseph S. Myers  <jsm@polyomino.org.uk>
102
103         PR c/3190
104         PR c/8714
105         * c-format.c (set_Wformat): Do not enable -Wformat-y2k by default.
106         * invoke.texi: Update.
107
108 2003-11-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
109
110         PR optimization/12630
111         * pa.c (compute_movstrsi_length): Rename to compute_movstr_length.
112         Handle length computation 64-bit moves.
113         (compute_clrstr_length, output_block_clear): Implement block clear.
114         (output_block_move): Handle 64-bit moves.
115         (pa_adjust_insn_length): Use compute_movstr_length and
116         compute_clrstr_length.
117         * pa.md (movstrsi): Revise operand order and comments.  Don't use
118         match_scratch.
119         (movstrsi_internal): Delete.
120         (movstrsi_prereload, movstrsi_postreload): New insns.  Define splitter
121         and peephole2 patterns to transform prereload to postreload form.
122         (movstrdi, movstrdi_prereload, movstrdi_postreload, clrstrsi,
123         clrstrsi_prereload, clrstrsi_postreload, clrstrdi, clrstrdi_prereload,
124         clrstrdi_postreload): New patterns for 64-bit block move, and block
125         clear.
126         * pa-protos.h (output_block_clear): New prototype.
127
128 2003-11-08  Andreas Schwab  <schwab@suse.de>
129
130         * dbxout.c (current_file): Also wrap inside DBX_DEBUGGING_INFO ||
131         XCOFF_DEBUGGING_INFO.
132
133 2003-11-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
134
135         * dbxout.c (current_file): Wrap declaration in DBX_USE_BINCL.
136
137 2003-11-07  Geoffrey Keating  <geoffk@apple.com>
138
139         * config/rs6000/rs6000.c (rs6000_legitimize_address): Remove
140         redundant parens.
141
142         * cppfiles.c (pch_open_file): New parameter 'invalid_pch', set it.
143         (find_file_in_dir): Likewise.
144         (_cpp_find_file): Print message if no header file is found
145         but an invalid PCH file was.
146
147 2003-11-08  Joseph S. Myers  <jsm@polyomino.org.uk>
148
149         * c-typeck.c (pedantic_lvalue_warning): Deprecate compound
150         expressions as lvalues.
151         (internal_build_compound_expr): Remove special handling for
152         non-pedantic case.
153         * doc/extend.texi: Document that all extended lvalues are now
154         deprecated.
155
156 2003-11-07  Geoffrey Keating  <geoffk@apple.com>
157
158         PR 11654
159         * dbxout.c (struct dbx_file): Do not save for PCH.
160         (current_file): Likewise.
161         (dbxout_init): Don't allocate struct dbx_file using GC.
162         (dbxout_start_source_file): Likewise.
163
164 2003-11-07  Falk Hueffner  <falk@debian.org>
165
166         * config/alpha/elf.h, config/alpha/unicosmk.h,
167         config/alpha/vms.h: Convert to ISO C90.
168
169 2003-11-07  Nathanael Nerode  <neroden@gcc.gnu.org>
170
171         * config/arm/pe.h: Convert to ISO C90.
172
173 2003-11-07  J"orn Rennecke <joern.rennecke@superh.com>
174
175         * sh-protos.h (sh_pch_valid_p): Declare.
176         * sh.c ("intl.h"): Include.
177         (TARGET_PCH_VALID_P): Override.
178         (sh_target_switches): New variable.
179         (target_switches): Define.
180         (sh_pch_valid_p): New function.
181
182         * sh.h (MODE_AFTER): Don't change mode unless TARGET_HITACHI.
183
184 2003-11-07  Jan Hubicka  <jh@suse.cz>
185
186         * i386.c (x86_64_sign_extended_value):  Return false from tls variables.
187         (x86_64_zero_extended_value):  likewise.
188
189 2003-11-07  Richard Sandiford  <rsandifo@redhat.com>
190
191         * config/mips/mips.md (loadgp): Take $25 as a second operand.
192         * config/mips/mips.c (mips_expand_prologue): Modify accordingly.
193
194 2003-11-06  Matt Austern <austern@apple.com>
195
196         * c-common.c (handle_visibility_attribute): Set DECL_VISIBILITY
197         field instead of hanging an attribute object off the decl.
198         * tree.h (DECL_VISIBLITY): New accessor macro for
199         symbol_visibility field in struct tree_decl.
200         (enum symbol_visibility): Move definition to before tree_decl.
201         (struct tree_decl): Define new two-bit field, symbol_visibility.
202         (decl_visibility): Remove declaration.
203         * varasm.c (maybe_assemble_visibility): Use DECL_VISIBILITY
204         instead of decl_visibility.
205         (default_binds_local_p_1):  Use DECL_VISIBILITY instead of
206         decl_visibility.
207         (decl_visibility): Remove.
208
209 2003-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
210
211         * config/s390/s390.c (s390_emit_epilogue): Recognize more cases
212         where register 14 will be saved.
213
214 2003-11-06  Geoffrey Keating  <geoffk@apple.com>
215
216         * config/rs6000/rs6000.h (USE_FP_FOR_ARG_P): Move to rs6000.c.
217         (USE_ALTIVEC_FOR_ARG_P): Likewise.
218         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Move from rs6000.h.
219         Take a pointer as the CUM parameter.  Update callers.
220         (USE_ALTIVEC_FOR_ARG_P): Likewise.  Also correct for Darwin/AIX
221         32-bit ABIs.
222         (function_arg_advance): Use USE_ALTIVEC_FOR_ARG_P.  Correct case
223         of vector parameters as named arguments of stdarg function.
224         (function_arg): Likewise.
225
226         * config/rs6000/darwin.h (ASM_SPEC): Use -force_cpusubtype_ALL when
227         -maltivec is specified, not the non-existent -faltivec.
228
229 2003-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
230
231         * config/s390/s390-protos.h (s390_function_value): Declare.
232         * config/s390/s390.c (TARGET_RETURN_IN_MEMORY): Define.
233         (s390_return_in_memory): New function.
234         (s390_function_value): New function.
235         (s390_function_arg_float): Return false for all arguments larger
236         than 8 bytes.
237         (s390_function_arg_pass_by_reference): Likewise.  Return true for
238         all vector arguments.
239         (s390_function_arg_integer): New function.
240         (s390_function_arg_advance): Call it.  Add sanity checks.
241         (s390_function_arg): Likewise.
242         * config/s390/s390.h (FUNCTION_VALUE): Call s390_function_value.
243         (LIBCALL_VALUE): Likewise.
244         (RET_REG): Remove.
245         (RETURN_IN_MEMORY): Remove.
246
247 2003-11-06  Richard Sandiford  <rsandifo@redhat.com>
248
249         * config/mips/mips-protos.h (mips_initial_elimination_offset): Change
250         return type to HOST_WIDE_INT.
251         * config/mips/mips.c (mips_frame_info): Give sizes type HOST_WIDE_INT.
252         Make initialized a bool.  Make register masks unsigned ints.
253         (compute_frame_size): Make same mask change here.  Use HOST_WIDE_INT
254         where appropriate.
255         (mips_initial_elimination_offset): Return a HOST_WIDE_INT.
256         (mips_output_function_prologue): Print sizes as HOST_WIDE_INTs.
257
258 2003-11-06  Richard Sandiford  <rsandifo@redhat.com>
259
260         * config/frv/frv.c (frv_initial_elimination_offset): Remove bogus
261         negation.
262
263 2003-11-06  Richard Sandiford  <rsandifo@redhat.com>
264
265         * config/frv/frv.h (ASM_OUTPUT_ALIGN_WITH_NOP): Define.
266
267 2003-11-06  Momchil Velikov  <velco@fadata.bg>
268
269         * config/mips/mips.c (override_options): Set MASK_SOFT_FLOAT
270         for VR4111 too.
271
272 2003-11-06  Jan Hubicka  <jh@suse.cz>
273
274         * builtins.c (simplify_builtin_strrchr, simplify_builtin_strpbrk): Add
275         missing casts.
276
277 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
278
279         * genmodes.c: Change the word "bitsize" to "precision" throughout.
280         * machmode.def: Likewise.
281         * machmode.h (GET_MODE_SIZE): Cast value to unsigned short.
282         (GET_MODE_BITSIZE): Define as GET_MODE_SIZE * BITS_PER_UNIT.
283         (GET_MODE_PRECISION): New macro.
284         (mode_bitsize): Renamed mode_precision.
285         * stor-layout.c (mode_for_size, smallest_mode_for_size):
286         Use GET_MODE_PRECISION; clarify comments.
287
288 2003-11-05  Joseph S. Myers  <jsm@polyomino.org.uk>
289
290         * doc/install-old.texi: Remove old documentation of building
291         cross-compilers.
292         * doc/install.texi: Move some of it to here.
293
294 2003-11-05  Per Bothner  <pbothner@apple.com>
295
296         PR preprocessor/12891
297         * c-opts.c (finish_options):  Set include_cursor to disable premature
298         calls to push_command_line_include from cpp_scan_nooutput.
299         Fixes bug reported by DJ Delorie.
300
301 2003-11-05  Geoffrey Keating  <geoffk@apple.com>
302
303         * config/rs6000/rs6000.c (setup_incoming_varargs): Remove
304         code supporting old-style varargs.
305
306         * config/rs6000/rs6000.c (rs6000_machopic_legitimize_pic_address): Use
307         an intermediate register for better optimisation.
308
309 2003-11-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
310
311         PR optimization/10080
312         * cfgloopanal.c (variable_initial_value, variable_initial_values,
313         simple_loop_exit_p): Record the fact that initial value is extended
314         from inner mode.
315         (count_strange_loop_iterations, count_loop_iterations): Handle
316         ivs that iterate in a narrower mode. Fix handling of overflows.
317         Improve handling of NE conditions.
318         (inverse, fits_in_mode_p): New static functions.
319         (simple_increment): Detect variables that iterate in a narrower mode.
320         * cfgloop.h (struct loop_desc): Fields inner_mode and extend added.
321
322 2003-11-05  Geoffrey Keating  <geoffk@apple.com>
323
324         * config/rs6000/rs6000.c (compute_vrsave_mask): Correct off-by-one
325         error.
326
327         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Darwin
328         needs VRSAVE.
329
330 2003-11-05  Joseph S. Myers  <jsm@polyomino.org.uk>
331
332         * c-typeck.c (pedantic_lvalue_warning): Deprecate use of
333         conditional expressions as lvalues.
334
335 2003-11-05  Kazu Hirata  <kazu@cs.umass.edu>
336
337         * tsystem.h: Add the prototype of strlen.
338         * unwind-pe.h (read_encoded_value_with_base): Add an
339         appropriate cast to handle a case where the pointer size is
340         smaller than sizeof (int).
341
342 2003-11-04  Richard Sandiford  <rsandifo@redhat.com>
343
344         * config/mips/mips-protos.h (mips_global_pic_constant_p): Delete.
345         (mips_delegitimize_address): Delete.
346         (mips_gotoff_global, mips_load_got_page): Declare.
347         (mips_load_got_global, mips_rewrite_small_data): Declare.
348
349         * config/mips/mips.h (FIND_BASE_TERM): Remove definition.
350         (DANGEROUS_FOR_LA25_P): Use global_got_operand.
351         (PREDICATE_CODES): Add global_got_operand, local_got_operand and
352         small_data_pattern.  Remove CONST from const_arith_operand's entry.
353
354         * config/mips/mips.c (UNSPEC_ADDRESS_P, CONST_GP_P): New macros.
355         (UNSPEC_ADDRESS, UNSPEC_ADDRESS_TYPE): Likewise.
356         (mips_constant_type): Delete.
357         (mips_symbol_type): Add SYMBOL_GOTOFF_PAGE, SYMBOL_GOTOFF_GLOBAL,
358         SYMBOL_GOTOFF_CALL and SYMBOL_GOTOFF_LOADGP.
359         (NUM_SYMBOL_TYPES): New macro.
360         (mips_address_type): Remove ADDRESS_INVALID.
361         (machine_function): Add has_gp_insn_p.
362         (mips_constant_info): Delete.
363         (mips_address_info): Add the address type as an extra field.  Replace
364         the c field with symbol_type.
365         (mips_split_p, mips_lo_relocs, mips_hi_relocs): New arrays.
366         (TARGET_DELEGITIMIZE_ADDRESS): Remove definition.
367         (mips_reloc_offset_ok_p, mips_classify_constant): Delete.
368         (mips_split_const, mips_symbolic_constant_p): New functions.
369         (mips_symbolic_address_p): Take the symbol type and mode as arguments.
370         (mips_classify_address): Return true if the address is valid, storing
371         its type in INFO.  Use mips_symbolic_constant_p.  Use mips_lo_relocs[]
372         to test whether a LO_SUM address is allowed.
373         (mips_symbol_insns): Return 0 for general mips16 symbols.
374         Reorder SYMBOL_GOT_GLOBAL case to match mips_symbol_type definition.
375         Handle the new SYMBOL_GOTOFF_*s.
376         (mips_address_insns): Update call to mips_classify_address.
377         (mips_const_insns): Be more fussy about HIGH constants.  Remove use
378         of mips_classify_constant.  Be more accurate about CONSTs.
379         (mips_global_pic_constant_p): Delete.
380         (const_arith_operand): Only accept CONST_INTs.
381         (call_insn_operand): Remove call to mips_classify_constant.
382         Let mips_symbolic_constant_p check for invalid offsets.
383         (move_operand): Check for general_operands first.  Only accept symbolic
384         constants if they satisfy mips_symbolic_constant_p and cannot be split.
385         (symbolic_constant): Use mips_symbolic_constant_p.
386         (global_got_operand, local_got_operand): New predicates.
387         (stack_operand): Update call to mips_classify_address.
388         (mips_legitimate_address_p): Likewise.
389         (mips_reloc, mips_lui_reloc): Delete.
390         (mips_force_temporary): Only use the given temporary if no_new_pseudos.
391         Use emit_move_insn.
392         (mips_split_symbol, mips_unspec_address): New functions.
393         (mips_unspec_offset_high): New function.
394         (mips_load_got): Replace reloc argument with a symbol_type.
395         Use mips_unspec_address to create the address and put it in a
396         LO_SUM with the base register.
397         (mips_load_got16, mips_load_got32): Delete.
398         (mips_emit_high, mips_legitimize_symbol): Delete.
399         (mips_gotoff_global): New function.
400         (mips_load_got_page, mips_load_got_global): New functions.
401         (mips_legitimize_symbol): Inline handling of LO_SUM splits.
402         (mips_legitimize_const_move): Likewise.  Remove HIGH handling.
403         Inline code to handle constants plus invalid offsets.  Use
404         mips_split_symbol to legitimize constant pool addresses.
405         (mips_delegitimize_address): Delete.
406         (mips_rtx_costs): Give legitimate symbolic constants and CONST_DOUBLEs
407         a cost of 1 insn.  Give the rest a cost of CONSTANT_POOL_ADDRESS.
408         (mips_subword): Pass memrefs through mips_rewrite_small_data.
409         (mips_output_move): Remove use of mips_classify_constant.
410         (mips_expand_call): Use mips_unspec_offset_high to calculate the
411         high part of the GOT address for calls to global functions.
412         (override_options): Initialize mips_split_p[], mips_lo_relocs[]
413         and mips_hi_relocs[].
414         (print_operand): Use print_operand_reloc to handle '%h' and '%R'.
415         Remove use of mips_classify_constant.
416         (mips_reloc_string): Delete.
417         (print_operand_reloc): New function.
418         (print_operand_address): Update call to mips_classify_address.
419         (mips_rewrite_small_data_p, small_data_pattern_1): New functions.
420         (small_data_pattern): New predicate.
421         (mips_rewrite_small_data_1, mips_rewrite_small_data): New functions.
422         (mips_function_has_gp_insn): New function.
423         (mips_global_pointer): Use it.
424         (mips_gp_insn): Delete.
425         (mips_expand_prologue): When compiling for n32/n64 abicalls, use a
426         single loadgp pattern to initialize $gp.  Pass it the offset of _gp
427         from the start of the current function.
428         (mips16_gp_pseudo_reg): Revert last patch.
429
430         * config/mips/mips.md (RELOC_*): Delete.
431         (UNSPEC_LOADGP, UNSPEC_FIRST_ADDRESS): New constants.
432         (got): New insn attribute.
433         (type): Set to "load" if got == load.
434         (length): Set to 4 if got == load, 8 if got == xgot_high.
435         (lui[sd]i): Delete.
436         (*xgot_hi[sd]i, *xgot_lo[sd]i): New patterns.
437         (*got_disp[sd]i, *got_page[sd]i): Likewise.
438         (*low[sd]i): Change constraints to "d".  Add a new define_split to
439         rewrite small data constants into LO_SUMs.
440         (loadgp): New insns.
441
442 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
443
444         * config/mips/_tilib.c: Use _ABI* in _MIPS_SIM tests.
445
446 2003-11-04  DJ Delorie  <dj@redhat.com>
447
448         * config/v850/v850.md (mulhisi3): Expand the const_int case
449         separately to avoid trying to sign extend the const.
450
451 2003-11-04  Richard Sandiford  <rsandifo@redhat.com>
452
453         * emit-rtl.c (copy_rtx_if_shared): Don't allow MEMs with constant
454         addresses to be shared.
455         (force_const_mem): Return a copy of the pool entry.
456
457 2003-11-03  Andreas Jaeger  <aj@suse.de>
458
459         * Makefile.in (GCC_CFLAGS): Remove @WERROR@ again.
460
461 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
462
463         * Makefile.in (cpp.dvi): New target split from cpp.info.
464         (gcc.dvi):  New target split from gcc.info.
465         (gccint.dvi): New target split from gccint.info.
466         (cppinternals.dvi): New target split from cppinternals.info
467         (gccinstall.info): New specific rule.
468         (gccinstall.dvi): Likewise.
469         (dvi): Move targets to $(docobjdir).
470         ($(docobjdir)/%.dvi): New implicit rule.
471
472 2003-11-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
473
474         * doc/gty.texi (tag, desc): Say more about role of desc values in
475         selecting between tags.
476
477 2003-11-03  Alexander Kabaev  <ak03@gte.com>
478
479         * real.c (encode_ieee_single): Ensure proper promotion.
480
481 2003-11-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
482
483         * doc/contrib.texi: Add Giovanni Bajo, Dara Hazeghi, Falk Hueffner,
484         and Andrew Pinski.
485
486 2003-11-03  Syd Polk  <spolk@apple.com>
487
488         * config/rs6000/rs6000.c (rs6000_override_options): Add G3, G4, and G5
489         marketing names to the list of supported processors.
490         * config/rs6000/rs6000.h: Ditto.
491         * doc/invoke.texi: Ditto.
492         * config.gcc: Ditto.
493
494 2003-11-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
495
496         * fixinc/inclhack.def (stdio_va_list): Allow tab before va_list.
497         Merge two substitutions.
498         * fixinc/fixincl.x: Regenerate.
499         Fixes PR bootstrap/12666.
500
501 2003-11-03  Joseph S. Myers  <jsm@polyomino.org.uk>
502
503         * doc/install-old.texi: Remove VMS documentation.
504
505 2003-11-03  Jan Hubicka  <jh@suse.cz>
506
507         * i386.c (override_options):  Remove hack enabling 128bit long double
508         commited by accident.
509
510 2003-11-02  Per Bothner  <per@bothner.com>
511
512         * c-opts.c (needValue):  Do cpp_find_main_file before processing
513         any imacros flags, so pfile->main_file is set for the latter.
514
515 2003-11-03  Andreas Jaeger  <aj@suse.de>
516             Zack Weinberg  <zack@codesourcery.com>
517
518         * Makefile.in (GCC_CFLAGS): Allow blacklisting of warnings.
519         (SYSCALLS.c.X-warn): Suppress warnings.
520
521 2003-11-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
522
523         PR optimization/12845
524         * pa.c (output_cbranch): Use cmpb for DImode comparisons with 0.
525
526 2003-11-02  Zack Weinberg  <zack@codesourcery.com>
527
528         * print-rtl.c (print_rtx): Call PRINT_REG with second argument -1.
529         * config/i386/i386.c (print_reg): Abort on a virtual register
530         if code != -1; not if file == asm_out_file.
531         * config/i386/i386.h (PRINT_REG): Document meaning of CODE == -1.
532         (DEBUG_PRINT_REG): Delete, unused.
533
534 2003-11-02  Andreas Schwab  <schwab@suse.de>
535
536         * config/ia64/fde-glibc.c (_GNU_SOURCE): Define to 1 instead of
537         empty to avoid conflict with the definition from configure.
538
539 2003-11-02  Roger Sayle  <roger@eyesopen.com>
540
541         PR optimization/10817
542         * ifcvt.c (noce_emit_move_insn): Improve documentation comment.
543         (noce_try_move): New function to optimize an if-the-else into an
544         unconditional move, i.e. "if (a!=b) x=a; else x=b" into "x=a".
545         (noce_process_if_block): Attempt simplification with noce_try_move.
546
547         * simplify-rtx.c (simplify_ternary_operation): Some minor fixes
548         and improvements to the optimizations of IF_THEN_ELSE expressions.
549         (simplify_subreg): Silence signed/unsigned comparison warning.
550
551 2003-11-02  Richard Sandiford  <rsandifo@redhat.com>
552
553         * Makefile.in (targhooks.o, reload.o): Update dependencies.
554         (GTFILES): Add targhooks.c.
555         (gt-targhooks.h): New rule; depend on s-gtype.
556         * target.h (direct_pool_load_p): New hook.
557         * target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro.
558         (TARGET_INITIALIZER): Include it.
559         * targhooks.h (default_direct_pool_load_p): Declare.
560         (hook_bool_machine_mode_true): Declare.
561         * targhooks.c: Include insn-config.h, recog.h, ggc.h and
562         gt-targhooks.h.
563         (pool_symbol): New variable.
564         (default_direct_pool_load_p): New function.
565         (hook_bool_machine_mode_true): New function.
566         * reload.c: Include target.h.
567         (find_reloads): If an alternative will force a constant into memory,
568         count an extra reload if constant pool symbols are not valid
569         addresses.  If an alternative uses memory to move values between
570         registers, count the move as two reloads rather than one.
571         * config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define.
572         * doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document.
573
574 2003-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
575
576         PR optimization/12799
577         * postreload.c (reload_cse_move2add): Generate the add2
578         patterns manually.
579
580 2003-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
581
582         * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]:
583         Return 0 for all complex modes whose size is lesser or equal to
584         a word.  Add a ??? comment for the condition used with 16-byte
585         aligned modes.
586
587 2003-11-01  Kelley Cook  <kcook@gcc.gnu.org>
588
589         * .cvsignore: Remove c-parse* and tradcif.c.
590         * objc/.cvsignore: Delete.
591
592 2003-11-01  Roger Sayle  <roger@eyesopen.com>
593
594         * unwind-sjlj.c (_Unwind_GetCFA): Return (_Unwind_Word)0 instead
595         of NULL.
596
597 2003-11-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
598
599         * som.h (DO_GLOBAL_DTORS_BODY): Change to C90 declaration.
600
601         * libgcc2.c (SYMBOL__MAIN): Provide C90 declaration.
602
603         * collect2.c (scan_libraries): Fix typos.
604
605         PR preprocessor/12847
606         * cppfiles.c, cppexp.c, cpperror.c, cpplib.h, cpplib.c, cpplex.c,
607         cppinit.c, cpptrad.c, cppmacro.c, fix-header.c, cpppch.c, c-pch.c,
608         c-incpath.c, cppcharset.c (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN,
609         DL_ERROR, DL_ICE, DL_EXTRACT, DL_WARNING_P): Prefix macro names with
610         "CPP_".
611
612 2003-11-01  Fariborz Jahanian  <fjahanian@apple.com>
613
614         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Correct
615         no_units calculation.
616
617 2003-11-01  Andreas Jaeger  <aj@suse.de>
618
619         * unwind-dw2.c (_Unwind_FrameState): Remove commas at end of
620         enumeration list.
621
622 2003-11-01  Andreas Schwab  <schwab@suse.de>
623
624         * config/ia64/sysv4.h (SDATA_SECTION_FUNCTION): Update to C90
625         prototypes.
626         (SBSS_SECTION_FUNCTION): Likewise.
627
628 2003-11-01  Andreas Jaeger  <aj@suse.de>
629
630         * Makefile.in (GCC_CFLAGS): Add @WERROR@ for target files.
631
632 2003-11-01  Andreas Tobler  <a.tobler@schweiz.ch>
633
634         * config/rs6000/sysv4.h (EXTRA_SECTION_FUNCTIONS): Update to C90
635         prototypes.
636
637 2003-11-01  Andreas Jaeger  <aj@suse.de>
638
639         * unwind-dw2.c (_Unwind_FindEnclosingFunction): Constify variable.
640         (uw_frame_state_for): Constify variables.
641         (extract_cie_info): Constify first argument.
642
643         * unwind-dw2-fde-darwin.c: Adjust prototype of
644         _Unwind_Find_registered_FDE for recent changes.
645         (examine_objects): Constify return value and local variable result.
646         (_Unwind_Find_FDE): Constify return value and local variable ret.
647
648 2003-10-31  Per Bothner  <pbothner@apple.com>
649
650         * c-opts.c (finish_options):  Change to returns boolean - false iff
651         the call to cpp_find_main_file fails.
652         (c_common_init):  Skip preprocess_file if finish_options failed.
653         (c_common_parse_file):  Break if finish_options failed.
654         Fixes PR preprocessor/12545.
655
656 2003-10-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
657
658         * aclocal.m4: Blacklist ultrix* for mmap file.
659         * configure: Rebuilt.
660
661         * function.c (assign_parms): Add ATTRIBUTE_UNUSED to variable
662         reg_parm_stack_space.
663         * toplev.c (default_get_pch_validity): Fix warning.
664
665         * vax.c: Include toplev.h.
666         (vax_init_libfuncs): Fix typo (umod).
667         * vax.h (ASM_COMMENT_START): Define.
668         (PRINT_OPERAND): Fix warning when HOST_WIDE_INT is a long long.
669
670 2003-10-31  Roger Sayle  <roger@eyesopen.com>
671
672         PR middle-end/11968
673         * expr.c (expand_expr <MULT_EXPR>): Remove inappropriate and
674         confusing comment; distributivity isn't handled in expand_expr.
675         * fold-const.c (extract_muldiv_1 <PLUS_EXPR>):  Allow overflow
676         in distributivity, if wrap-around semantics are specified with
677         -fwrapv.
678
679 2003-11-01  Alan Modra  <amodra@bigpond.net.au>
680
681         PR 12315
682         * final.c (profile_function): Allow for NULL svrtx.
683
684 2003-10-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
685
686         * pa.c (pa_select_section): Use new style declaration.
687         * som.h (readonly_data): Likewise.
688
689 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
690
691         * config/rs6000/rs6000.c: Update to C90 prototypes.
692
693 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
694
695         PR target/7513
696         * arm.h (CONDITIONAL_REGISTER_USAGE): Disable use of LR in Thumb
697         code.
698
699 2003-10-31  Andreas Jaeger  <aj@suse.de>,
700             Zack Weinberg  <zack@codesourcery.com>
701
702
703         * crtstuff.c (__register_frame_info, __register_frame_info_bases)
704         (__deregister_frame_info, __deregister_frame_info_bases):
705         Constify void * argument.
706         * unwind-dw2-fde.h (struct fde_vector):
707         Constify 'orig_data' and 'array' fields.
708         (__register_frame_info, __register_frame_info_bases)
709         (__deregister_frame_info, __deregister_frame_info_bases):
710         Constify void * argument.
711         (get_cie, next_fde, _Unwind_Find_FDE): Constify arguments,
712         return values, and casts of type fde *, struct dwarf_fde *,
713         and struct dwarf_cie *.
714         * unwind-dw2-fde.c (__register_frame_info, __register_frame_info_bases)
715         (__deregister_frame_info, __deregister_frame_info_bases):
716         Constify void * argument.
717         (get_cie_encoding, ): Constify struct dwarf_cie * argument.
718         (get_fde_encoding, fde_unencoded_compare, fde_single_encoding_compare)
719         (fde_mixed_encoding_compare, fde_compare_t, start_fde_sort, fde_insert)
720         fde_split, SWAP, frame_downheap, frame_heapsort)
721         (classify_object_over_fdes, add_fdes, linear_search_fdes,
722         binary_search_unencoded_fdes, binary_search_single_encoding_fdes,
723         binary_search_mixed_encoding_fdes, search_object, _Unwind_Find_FDE):
724         Constify arguments, local variables, return values, and casts
725         of type fde *, fde **, struct dwarf_fde *, and struct dwarf_cie *.
726         Use const pointer types in sizeof expressions, for clarity.
727         * unwind-dw2-fde-glibc.c
728         (_Unwind_find_registered_FDE, _Unwind_find_FDE): Constify return value.
729         (struct unw_eh_callback_data): Constify 'ret' field.
730
731 2003-10-31  Fariborz Jahanian  <fjahanian@apple.com>
732             David Edelsohn  <edelsohn@gnu.org>
733
734         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): New.
735         (function_arg): Call it.
736         (rs6000_function_value): Widen integral return value to mode based
737         on TARGET_32BIT, not word_mode.
738         * config/rs6000/rs6000.h (PROMOTE_MODE): Likewise.
739         (UNITS_PER_ARG): New.
740         (RS6000_ARG_SIZE): Use it.
741
742 2003-10-31  Gerald Pfeifer  <gerald@pfeifer.com>
743
744         * .cvsignore: No longer ignore gengtype-lex.c, gengtype-yacc.c,
745         and gengtype-yacc.h.
746
747 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
748
749         PR optimization/8896
750         * postreload.c (reload_combine): Check that REGY doesn't die in an
751         insn of the form (set (regx) (plus (regx) (regy))), ie REGX != REGY.
752
753 2003-10-31  Josef Zlomek  <zlomekj@suse.cz>
754
755         PR/10239
756         * cfgrtl.c (delete_insn): Decrease LABEL_NUSES for all REG_LABEL notes.
757
758 2003-10-31  Josef Zlomek  <zlomekj@suse.cz>
759
760         PR/11640
761         * cfgrtl.c (try_redirect_by_replacing_jump): Move jump
762         immediatelly before BARRIER.
763
764 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
765
766         * Makefile.in (STRICT2_WARN): Add -Wold-style-definition.
767
768 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
769
770         PR target/11271
771         * reload.c (find_reloads_address): Handle any register in
772         (PLUS (PLUS (REG) (REG)) (CONST_INT).
773
774 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
775
776         * ggc-page.c (ggc_pch_read): Wrap call to poison_pages in
777         ENABLE_GC_CHECKING not in GGC_POISON.
778
779 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
780
781         PR bootstrap/9863
782         * configure.in: Bail out if awk is missing.
783         * configure: Regenerate.
784
785         PR ada/12761
786         * Makefile.in: Move default definitions of X_ADA_CFLAGS,
787         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from ada/Make-lang.in to here.
788
789 2003-10-30  Richard Henderson  <rth@redhat.com>
790
791         * c-objc-common.c (c_tree_printer): Handle types correctly.
792         Factor code a bit.
793
794 2003-10-30 Kelley Cook <kcook@gcc.gnu.org>
795
796         * value-prof.c, web.c: Update to C90.
797
798 2003-10-30  Eric Christopher  <echristo@redhat.com>
799
800         * function.c (purge_addressof_1): Add case for REG_RETVAL
801         notes when modes are unequal.
802
803 2003-10-31  Jan Hubicka  <jh@suse.cz>
804
805         * i386-modes.def: Add XFmode format adjustment.
806
807 2003-10-30  Jan Hubicka  <jh@suse.cz>
808
809         * real.c (encode_ieee_extended): Back out previous patch.
810
811 2003-10-30  Jan Hubicka  <jh@suse.cz>
812
813         * real.c (encode_ieee_extended): Initialize whole array.
814         * reg-stack.c (move_for_stack_reg0: Use always XFmode.
815         * i386-modes.def: Change definitions of TFmode and XFmode.
816         * i386.c (classify_argument): Rename TFmodes to XFmodes; add new TFmode
817         code.
818         (construct_container): Allow constructing of TFmode integer containers.
819         (ix86_return_in_memory):  XFmode is not returned in memory.
820         (init_ext_80387_constants): Always use XFmode.
821         (print_operand): Likewise.
822         (ix86_prepare_fp_compare_regs): Likewise.
823         (split_to_parts): Deal with TFmode.
824         (split_long_move): Simplify.
825         (ix86_init_mmx_sse_builtins): Add __float80, __float128.
826         (ix86_memory_move_cost): Do not confuse TFmode.
827         * i386.h (LONG_DOUBLE_TYPE_SIZE): Set to 96.
828         (IS_STACK_MODE): TFmode is not stack mode.
829         (HARD_REGNO_NREGS, CLASS_MAX_NREGS): Deal nicely with XFmode.
830         (VALID_SSE_REG_MODE): Allow TFmode.
831         (VALID_FP_MODE_P): Disallow TFmode.
832         (VALID_INT_MODE_P): Allow TFmode in 64bit mode.
833         * i386.md (TFmode patterns): Kill.
834         (movtf, motf_rex64): New patterns.
835
836 2003-10-30  Richard Sandiford  <rsandifo@redhat.com>
837
838         * config/mips/mips.md (adddi3): Fix typo in mips16 stack pointer code.
839
840 2003-10-30  Richard Sandiford  <rsandifo@redhat.com>
841
842         * config/mips/mips.md (mov_lwl): Use memory_operand where appropriate.
843         (mov_lwr, mov_swl, mov_swr): Likewise.
844         (mov_ldl, mov_ldr, mov_sdl, mov_sdr): Likewise.
845
846 2003-10-30  Richard Sandiford  <rsandifo@redhat.com>
847
848         * config/mips/mips.c (mips_global_pointer): Don't try to use $25.
849
850 2003-10-30  Richard Henderson  <rth@redhat.com>
851
852         * config/mips/mips.c (mips_build_builtin_va_list): Use runtime
853         test for irix6 rather than preprocessor test.
854
855 2003-10-30  Richard Henderson  <rth@redhat.com>
856
857         * cppcharset.c (one_utf8_to_utf16): Initialize 's' to silence warning.
858
859 2003-10-30  Ulrich Weigand  <uweigand@de.ibm.com>
860
861         * config/s390/s390.c (struct machine_function): Use save_return_addr_p
862         as a general flag that the return address register needs to be saved,
863         not necessarily because of __builtin_return_addr (0).
864         (s390_split_branches): Remove TEMP_REG and TEMP_USED arguments,
865         remove special handling of zSeries machines.
866         (s390_optimize_prolog): Remove TEMP_USED argument, treat the return
867         register as a regular register on zSeries machines.
868         (s390_reorg): Adjust calls to s390_split_branches and
869         s390_optimize_prolog.
870         (s390_frame_info): On zSeries machines, do not assume the return
871         register is always used.  Update regs_ever_live with current data
872         for the special registers.
873         (s390_emit_epilogue): Use save_return_addr_p to determine whether
874         the return register was saved.
875         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Do not mark
876         RETURN_REGNUM fixed on zSeries machines.
877         (REG_ALLOC_ORDER): Use RETURN_REGNUM last.
878         * config/s390/s390.md ("*doloop_si"): Handle branch overflow
879         via ahi-jgne pair on zSeries machines.
880         ("*doloop_di"): Likewise.
881         ("*doloop_di_long"): Remove.
882
883 2003-10-30  Richard Earnshaw  <rearnsha@arm.com>
884
885         * arm.c (arm_override_options): Revert change of arm_constant_limit
886         when optimizing for size.
887
888 2003-10-29  Richard Henderson  <rth@redhat.com>
889
890         * fold-const.c (fold_single_bit_test): Convert the input to the
891         operational intermediate type.
892
893 2003-10-29  Richard Henderson  <rth@redhat.com>
894
895         * builtins.c (std_build_builtin_va_list): New.
896         * expr.h (std_build_builtin_va_list): Declare.
897         * defaults.h (BUILD_VA_LIST_TYPE): New.
898         * system.h (BUILD_VA_LIST_TYPE): Poison.
899         * target-def.h (TARGET_BUILD_BUILTIN_VA_LIST): New.
900         * target.h (struct gcc_target): Add build_builtin_va_list.
901         * tree.c (build_common_tree_nodes_2): Use it.
902
903         * config/alpha/alpha-protos.h, config/alpha/alpha.c,
904         config/alpha/alpha.h, config/alpha/unicosmk.h,
905         config/d30v/d30v-protos.h, config/d30v/d30v.c, config/d30v/d30v.h,
906         config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h,
907         config/i860/i860-protos.h, config/i860/i860.c, config/i860/i860.h,
908         config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h,
909         config/mips/iris6.h, config/mips/mips-protos.h, config/mips/mips.c,
910         config/mips/mips.h, config/rs6000/rs6000-protos.h,
911         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
912         config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h,
913         config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h,
914         config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c,
915         config/xtensa/xtensa.h: Rename foo_build_va_list to
916         foo_build_builtin_va_list; make it static.  Define
917         TARGET_BUILD_BUILTIN_VA_LIST.  Remove BUILD_VA_LIST_TYPE.
918         Update protos.
919
920         * config/i386/i386.c (ix86_expand_carry_flag_compare): Make static.
921         * config/iq2000/iq2000.h (BUILD_VA_LIST_TYPE): Remove.
922
923 2003-10-29  James E Wilson  <wilson@specifixinc.com>
924
925         * recog.c (asm_operand_ok): Add missing break after case 'X'.
926         Change if statements to else if statements in default case.
927         (extract_constrain_insn_cached): Fix misspelling of constrain_operands
928         in comment.
929         (constrain_operands_cached): Likewise.
930         (constrain_operands): Change if statements to else if statements in
931         default case.
932         * reload.c (find_reloads): Likewise.
933
934 2003-10-29  Richard Henderson  <rth@redhat.com>
935
936         * config/m68k/m68k.c (notice_update_cc): Clear cc status for
937         shifts and rotates.
938
939 2003-10-30  Alan Modra  <amodra@bigpond.net.au>
940
941         * config/rs6000/rs6000.md: Remove duplicate pattern.
942
943 2003-10-29  Hans-Peter Nilsson  <hp@axis.com>
944
945         * real.c (do_divide): Initialize result with a 0.
946
947         * configure.in <enable-checking for valgrind>: Look for
948         <valgrind/memcheck.h> first.  AC_DEFINE HAVE_VALGRIND_MEMCHECK_H
949         if it exists.
950         * configure, config.in: Regenerate.
951         * ggc-common.c [ENABLE_VALGRIND_CHECKING &&
952         HAVE_VALGRIND_MEMCHECK_H]: Include <valgrind/memcheck.h>.  Use
953         #elif for other alternatives.
954         * ggc-page.c: Ditto.
955         * ggc-zone.c: Don't assume <valgrind/memcheck.h>; instead copy
956         include structure from ggc-common.c.
957
958 2003-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
959
960         * pa-linux.h (ASM_OUTPUT_ADDR_VEC_ELT): Use label in big switch ELTs.
961         (ASM_OUTPUT_ADDR_DIFF_ELT): Use label difference in big switch ELTs.
962         * pa.c (pa_adjust_insn_length): Check for btable branches using
963         attribute TYPE_BTABLE_BRANCH.
964         (pa_reorg): Simplify.
965         * pa.h (CASE_VECTOR_MODE): Change big switch mode to SImode.
966         (ASM_OUTPUT_ADDR_VEC_ELT): As above.
967         (ASM_OUTPUT_ADDR_DIFF_ELT): As above.
968         * pa.md (btable_branch): New instruction type.
969         (in_branch_delay, in_nullified_branch_delay, in_call_delay): Disallow
970         btable branches.
971         (define_delay): Add btable branches to insn types that may have an
972         insn in the delay position.
973         (Z2, Z3): Add btable branch to list.
974         Simplify unamed pattern set copy pic_label_operand to register.  Add
975         PA 2.0 variant.
976         (short_jump): New jump for use in branch tables.
977         (casesi, casesi0): Revise for new branch table formats.
978         (casesi32, casesi32p, casesi64p): New casesi patterns.
979         (indirect_jump): Move.
980
981 2003-10-29  David Edelsohn  <edelsohn@gnu.org>
982
983         * config/rs6000/rs6000.h (UNITS_PER_WORD): Revert to
984         !TARGET_POWERPC64.
985         (UNITS_PER_GPR_WORD): Delete.
986         (HARD_REGNO_NREGS): Revert to UNITS_PER_WORD.
987         (HARD_REGNO_MODE_OK): Same.
988         (CLASS_MAX_NREGS): Same.
989
990 2003-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
991
992         * pa.h (ASM_COMMENT_START): Define.
993
994 2003-10-29  Zack Weinberg  <zack@codesourcery.com>
995
996         * genmodes.c (complete_mode): Record MODE_CC, MODE_INT,
997         MODE_FLOAT, and MODE_PARTIAL_INT modes as having one
998         component, not zero.
999
1000 2003-10-29  Andreas Schwab  <schwab@suse.de>
1001
1002         * config/ia64/t-ia64 (LIB2ADDEH): Add $(srcdir)/gthr-gnat.c.
1003
1004 2003-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
1005
1006         * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]:
1007         Never return 1 for complex integral modes whose size is lesser or
1008         equal to a word.
1009         (function_arg_pass_by_reference) [TARGET_ARCH64]: Mention CTImode
1010         in the comment.
1011         (function_arg_advance) [TARGET_ARCH64]: Don't special-case complex
1012         modes.
1013         (sparc_va_arg) [TARGET_ARCH64]: Handle any types whose size is
1014         greater than 16 bytes by reference.
1015
1016 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1017
1018         * config/ia64/ia64.c (ia64_assemble_integer): Test POINTER_SIZE,
1019         not TARGET_ILP32.
1020         (ia64_initialize_trampoline): Use globalize_label target call.
1021
1022 2003-10-29  Andreas Schwab  <schwab@suse.de>
1023
1024         * doc/install.texi (Building): Add a sentence about building Ada
1025         for a canadian cross.
1026
1027 2003-10-28  Zack Weinberg  <zack@codesourcery.com>
1028
1029         * config/ia64/ia64.c (cmptf_libfunc): New static.
1030         (ia64_expand_compare): Add logic to open-code calls to
1031         _U_Qfcmp for TFmode comparisons.
1032         (ia64_hpux_init_libfuncs): Initialize cmptf_libfunc.
1033         Set libfuncs for TFmode eq/ne/gt/ge/lt/gt to 0; these should
1034         never be generated anymore.
1035         * config/ia64/ia64.md (cmptf): New expander.
1036
1037 2003-10-28  Zack Weinberg  <zack@codesourcery.com>
1038
1039         * ia64.md (UNSPEC_SETF_EXP,UNSPEC_FR_SQRT_RECIP_APPROX): New constants.
1040         (*sqrt_approx): New instruction pattern for approximate square roots.
1041         (*setf_exp_xf): New instruction pattern for exponentiation.
1042         (*maddxf4_alts_truncsf): New instruction pattern for truncation.
1043         (sqrtsf2_internal_thr): New define_and_split implementing
1044         throughput-optimized inline calculation of SFmode square root.
1045         (sqrtdf2_internal_thr): Likewise for DFmode.
1046         (sqrtxf2_internal_thr): Likewise for XFmode.
1047         (sqrtsf2, sqrtdf2, sqrtxf2): New expanders to choose between
1048         latency- and throughput-optimized square root algorithms.
1049         * ia64.h (MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR,
1050         TARGET_INLINE_SQRT_LAT, TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT):
1051         New macros.
1052         (TARGET_SWITCHES): Add -minline-sqrt-min-latency and
1053         -minline-sqrt-max-throughput.
1054         * ia64.c (ia64_override_options): If both -minline-sqrt-min-latency
1055         and -minline-sqrt-max-throughput are given, notify the user
1056         that both options cannot be used simultaneously.
1057         If -minline-sqrt-min-latency is given, notify the user that
1058         this mode is not yet implemented.
1059         (rtx_needs_barrier): Reformat initial comment to obey
1060         72-character width limit.  Support UNSPEC_SETF_EXP and
1061         UNSPEC_FR_SQRT_RECIP_APPROX.
1062
1063 2003-10-29  Alan Modra  <amodra@bigpond.net.au>
1064
1065         * config/rs6000/rs6000.md (movdf_softfloat64): Allow dummy ctr,ctr
1066         moves.
1067
1068 2003-10-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1069
1070         PR target/11598
1071         PR libgcj/10610
1072         * config/rs6000/sysv4.h (PREFERRED_STACK_BOUNDARY): New macro.
1073
1074 2003-10-28  Richard Earnshaw  <rearnsha@arm.com>
1075
1076         * arm.c (arm_output_epilogue): When using a frame pointer, don't emit
1077         an extra stack adjustment insn if the stack pointer is already
1078         pointing at the right place.
1079         (use_return_insn): Allow a return insn to be used when we have a
1080         frame pointer if the stack pointer is in the right place.
1081         (output_return_instruction): Handle it.
1082
1083 2003-10-28  Andreas Jaeger  <aj@suse.de>
1084
1085         * ggc-zone.c (check_cookies): Add missing variable.
1086         Add void to prototypes.
1087
1088 2003-10-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1089
1090         * config/mips/irix6-libc-compat.c (inet_makeaddr): Prototype.
1091         * crtstuff.c (__do_global_ctors_1): Move prototype.
1092         * unwind-dw2.c (NO_SIZE_OF_ENCODED_VALUE): Define when
1093         appropriate.
1094         * unwind-sjlj.c (_Unwind_GetCFA, _Unwind_FindEnclosingFunction):
1095         Mark parameter with __attribute__((unused)).
1096
1097 2003-10-27  Zack Weinberg  <zack@codesourcery.com>
1098
1099         * c-decl.c (pushdecl): Clarify comment.
1100
1101 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
1102
1103         * doc/install.texi: Update instructions for Ada cross builds
1104
1105         PR ada/5909:
1106         * doc/sourcebuild.texi: Document Ada test suite.
1107
1108 2003-10-27  Stephane Carrez  <stcarrez@nerim.fr>
1109
1110         * config/m68hc11/m68hc11.c: Convert to ISO C90.
1111         * config/m68hc11/m68hc11-protos.h: Likewise.
1112
1113 2003-10-27  Jan Hubicka  <jh@suse.cz>
1114             Eric Botcazou  <ebotcazou@libertysurf.fr>
1115
1116         * toplev.c (enum dump_file_index, dump_file): Fix ordering of
1117         webizer pass dump.
1118
1119 2003-10-27  Jakub Jelinek  <jakub@redhat.com>
1120             Jan Hubicka  <jh@suse.cz>
1121
1122         * reload1.c (struct elim_table): Change offset, initial_offset and
1123         previous_offset fields to HOST_WIDE_INT.
1124         (offsets_at): Change from int to HOST_WIDE_INT.
1125         (reload): Adjust offsets_at initialization.
1126         (eliminate_regs_in_insn): Change type of offset to HOST_WIDE_INT.
1127         (verify_initial_elim_offsets): Change type of t to HOST_WIDE_INT.
1128         * config/i386/i386.c (ix86_compute_frame_layout): Change offset type
1129         to HOST_WIDE_INT.  Don't save regs using mov for huge frame sizes
1130         if TARGET_64BIT.
1131         (pro_epilogue_adjust_stack): New function.
1132         (ix86_expand_prologue, ix86_expand_epilogue): Use it.
1133         * config/i386/i386.md (pro_epilogue_adjust_stack): Remove.
1134         (pro_epilogue_adjust_stack_1): Remove * in front of name.
1135         (pro_epilogue_adjust_stack_rex64): Handle -2147483648 properly.
1136         (pro_epilogue_adjust_stack_rex64_2): New insn.
1137
1138         * config/i386/i386.c (ix86_expand_epilogue): Fix comment typo.
1139
1140         * config/i386/i386.c (ix86_expand_call): Replace 40 with
1141         FIRST_REX_INT_REG + 3 /* R11 */.
1142
1143 2003-10-26  Richard Henderson  <rth@redhat.com>
1144
1145         * config/alpha/alpha.md (attr cannot_copy): New.
1146         (call_osf_2_er, call_value_osf_2_er, ldgp_er_1, ldgp_er_2,
1147         prologue_ldgp_er_2, prologue_ldgp_1): Set it.
1148         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Test it.
1149
1150 2003-10-26  Daniel Berlin  <dberlin@dberlin.org>
1151
1152         * ggc-zone.c:  New file, zone allocating collector.
1153         * configure: Accept zone option for --with-gc
1154         * configure.in: Ditto.
1155         * ggc.h (ggc_pch_count_object): Pass bool indicating
1156         stringiness. Update all callers.
1157         (ggc_pch_alloc_object): Ditto.
1158         (ggc_pch_write_object): Ditto.
1159         (ggc_alloc_rtx): Use typed allocation, since all RTX's are of a single
1160         type.
1161         (ggc_alloc_rtvec): Ditto.
1162         (ggc_alloc_tree): Use zone allocation, since some things using this macro
1163         aren't a single typecode.
1164         * ggc-none.c (ggc_alloc_typed): New function.
1165         (ggc_alloc_zone): Ditto.
1166         * ggc-page.c: Ditto on both functions.
1167
1168 2003-10-26  Gunther Nikl  <gni@gecko.de>
1169
1170         * config/m68k/m68k.c (m68k_compute_frame_layout): Ensure FPU related
1171         frame information is always valid.
1172         (m68k_output_function_prologue): Remove superfluous TARGET_68881
1173         test; fix formatting.
1174
1175 2003-10-26  Gunther Nikl  <gni@gecko.de>
1176
1177         * config/m68k/m68k.c (m68k_compute_frame_layout): Swap reg_mask and
1178         reg_rev_mask computation.
1179         (m68k_output_function_prologue): Fix usage of current_frame (one typo
1180         and one missing); use reg_rev_mask not reg_mask.
1181         (m68k_output_function_epilogue): Fix usage of current_frame;
1182         use fpu_rev_mask not fpu_mask.
1183
1184 2003-10-26  Bernardo Innocenti  <bernie@develer.com>
1185
1186         * config/m68k/m68k.c (m68k_output_function_prologue): Eliminate
1187         num_saved_regs, use current_frame.reg_no instead.
1188
1189 2003-10-26  Bernardo Innocenti  <bernie@develer.com>
1190             Paul Dale  <pauli@snapgear.com>
1191
1192         * doc/extend.texi (interrupt_handler): Add m68k to the
1193         list of processors implementing it.
1194         * doc/invoke.texi (-msep-data): Document new m68k option.
1195         (-mno-sep-data): Likewise.
1196         (-mid-shared-library): Likewise.
1197         (-mno-id-shared-library): Likewise.
1198         (-mshared-library-id): Likewise.
1199
1200 2003-10-26  Andreas Jaeger  <aj@suse.de>
1201
1202         * unwind-dw2.c (_Unwind_GetGR): Avoid warning about unsigned
1203         comparison.
1204         (_Unwind_SetGR): Likewise.
1205
1206 2003-10-26  Ottavio Campana <ottavio@campana.vi.it>
1207
1208         PR target/12690
1209         * config/i386/mmintrin.h (_mm_set1_pi8): Fix comment.
1210
1211 2003-10-26  Gunther Nikl  <gni@gecko.de>
1212
1213         * config/m68k/m68k.c (m68k_output_function_prologue): Move front
1214         comment from here to...
1215         (m68k_save_reg): ...here. Fix comment formatting.
1216         (m68k_output_function_prologue): Fix comment formatting.
1217         (m68k_output_function_epilogue): Likewise.
1218         (const_method): Likewise.
1219
1220 2003-10-26  Kazu Hirata  <kazu@cs.umass.edu>
1221
1222         * toplev.c (default_get_pch_validity): Guard the use of
1223         target_options with #ifdef TARGET_OPTIONS.
1224         (default_pch_valid_p): Likewise.
1225
1226 2003-10-26  Andreas Jaeger  <aj@suse.de>
1227             Zack Weinberg  <zack@codesourcery.com>
1228             Andreas Tobler <toa@pop.agri.ch>
1229
1230         * dwarf2out.c (output_cfi): Use HOST_WIDE_INT_PRINT.
1231         (output_die): Likewise.
1232         (print_die): Likewise.
1233
1234 2003-10-26  Andreas Jaeger  <aj@suse.de>
1235
1236         * tree.h (dwarf2out_def_cfa, dwarf2out_args_size,
1237         dwarf2out_reg_save, new_loc_descr): Update prototypes for recent
1238         dwarf2out.c change.
1239
1240         * toplev.c (default_pch_valid_p): Fix warning.
1241
1242 2003-10-25  Roger Sayle  <roger@eyesopen.com>
1243
1244         * simplify-rtx.c (simplify_replace_rtx): Avoid allocating duplicate
1245         RTL nodes.  If an operator's operands are unchanged, return the
1246         original argument unchanged.
1247
1248 2003-10-26  Graham Stott  <graham.stott@btinternet.com>
1249
1250         Fix bootstrap failure.
1251         * expmed.c (store_bit_field): Don't compare bitsize against
1252         modes with zero bit-size.
1253
1254         (extract_bit_field): Likewise
1255
1256 2003-10-25  Jan Hubicka  <jh@suse.cz>
1257
1258         * dwarf2out.c (dw_cfi_oprnd_struct): Offset is HOST_WIDE_INT.
1259         (cfa_loc): Likewise.
1260         (reg_save, stack_adjust_offset, queue_reg_save): Replace long by
1261         HOST_WIDE_INT.
1262         (args_size, old_args_size): change type to HOST_WIDE_INT.
1263         (dwarf2out_def_cfa, dwarf2out_args_size,
1264         dwarf2out_reg_save, new_loc_descr): offset is HOST_WIDE_INT.
1265         (dw_val_struct): integers, unsigneds and offsets are HOST_WIDE_INT.
1266         (add_AT_int, add_AT_unsigned, att_AT_offset, AT_int, AT_unsigned,
1267         AT_offset): Use HOST_WIDE_INT.
1268         (based_loc_descr): offset is HOST_WIDE_INT.
1269         (add_data_member): Likewise.
1270         (add_const_value_attribute): Simplify.
1271
1272 2003-10-25  Richard Henderson  <rth@redhat.com>
1273
1274         * config/i386/i386.c (ix86_eax_live_at_start_p): New.
1275         (ix86_expand_prologue): Save and restore eax around stack probe
1276         if it's live.
1277
1278 2003-10-25  Jan Hubicka  <jh@suse.cz>
1279
1280         * cppcharset.c (one_utf8_to_utf32): Initialize 's' to silence warning.
1281
1282 2003-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
1283
1284         PR target/12712
1285         * reg-stack.c (convert_regs_1): Create an arbitrary input stack
1286         if the block has no predecessors.
1287         (convert_regs_2): Document the problem with successors whose
1288         only predecessor is the block to be processed.
1289         (convert_regs): Don't create the arbitrary input stack here.
1290
1291 2003-10-24  Zack Weinberg  <zack@codesourcery.com>
1292
1293         * genmodes.c (struct mode_data): Add contained and next_cont
1294         fields.
1295         (complete_mode): Maintain linked list of modes that have a
1296         given component.
1297         (emit_mode_unit_size): Delete.
1298         (emit_mode_nunits): New.
1299         (emit_insn_modes_c): Update to match.
1300         (emit_mode_adjustments): Propagate size and alignment
1301         adjustments from component modes to their containers.
1302         * machmode.h (mode_unit_size): Delete.
1303         (mode_nunits): New.
1304         (GET_MODE_NUNITS): Just return the value in the table.
1305         (GET_MODE_UNIT_SIZE): Compute using GET_MODE_INNER and
1306         GET_MODE_SIZE.
1307         * expmed.c (store_bit_field, extract_bit_field): Can use a
1308         plain move instruction if bitsize >= GET_MODE_BITSIZE of
1309         destination/source mode, respectively.
1310         * varasm.c (assemble_real): Write out the full size of the
1311         constant, not just its bitsize.
1312         (output_constant): Honor TYPE_MODE of TREE_REAL_CSTs.
1313
1314         * config/ia64/ia64-modes.def: Define XFmode as well as TFmode.
1315         Use ADJUST_BYTESIZE and ADJUST_ALIGNMENT to set size and
1316         alignment of XF and TF modes in compliance with ia64 ABIs.
1317         Can now hardwire the format of both modes.
1318         * config/ia64/ia64.c: Change TFmode to XFmode wherever appropriate.
1319         (general_tfmode_operand, destination_tfmode_operand)
1320         (tfreg_or_fp01_operand, spill_tfmode_operand): Rename to
1321         general_xfmode_operand, destination_xfmode_operand,
1322         xfreg_or_fp01_operand, spill_xfmode_operand respectively.
1323         (ia64_init_builtins): Make TYPE_PRECISION of fpreg_type
1324         and float80_type be 96 so they get XFmode.  Use !TARGET_HPUX,
1325         not INTEL_EXTENDED_IEEE_FORMAT, to decide how to define
1326         __float128.
1327         * config/ia64/ia64.h: Default TARGET_HPUX to 0.
1328         Change TFmode to XFmode wherever appropriate.  Remove all
1329         references to INTEL_EXTENDED_IEEE_FORMAT.
1330         (LONG_DOUBLE_TYPE_SIZE): Varies with TARGET_HPUX.
1331         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define (always 96).
1332         (PREDICATE_CODES): Update to match function renames.
1333         * config/ia64/ia64.md: Change TF to XF throughout; rename all
1334         patterns to match.  Remove all references to
1335         INTEL_EXTENDED_IEEE_FORMAT.  Update predicate calls to match
1336         function renames.
1337         * config/ia64/ia64-protos.c: Update all prototypes to match
1338         renamed functions.
1339         * config/ia64/hpux.h: Redefine TARGET_HPUX to 1.
1340         Remove all references to INTEL_EXTENDED_IEEE_FORMAT.
1341         * config/ia64/lib1funcs.asm: Add __divxf3 as new name for
1342         __divtf3; keep old name for backward compatibility.
1343         (L__compat): New section providing forwarding stubs for
1344         __fixtfti, __fixunstfti, __floattitf.
1345         * config/ia64/t-ia64: Add __compat to LIB1ASMFUNCS.
1346
1347 2003-10-24  Geoffrey Keating  <geoffk@apple.com>
1348
1349         PR 10757
1350         * c-pch.c: Include target.h.  Improve comments.
1351         (struct c_pch_validity): Add target_data_length.
1352         (pch_init): Add target's validity data.
1353         (c_common_valid_pch): Check target's validity data.
1354         * target-def.h (TARGET_GET_PCH_VALIDITY): New.
1355         (TARGET_PCH_VALID_P): New.
1356         (TARGET_INITIALIZER): Add new fields.
1357         * target.h: Include tm.h.
1358         (struct gcc_target): Add get_pch_validity, pch_valid_p.
1359         * toplev.h (default_get_pch_validity): New prototype.
1360         (default_pch_valid_p): New prototype.
1361         * toplev.c (default_get_pch_validity): New routine.
1362         (default_pch_valid_p): New routine.
1363         * Makefile.in (TARGET_H): Add TM_H.  Replace all users of
1364         target.h with $(TARGET_H).
1365         (c-pch.o): Add TARGET_H.
1366         * doc/tm.texi (PCH Target): New node.
1367         (TARGET_GET_PCH_VALIDITY): Document.
1368         (TARGET_PCH_VALID_P): Document.
1369
1370 2003-10-24  Kelley Cook  <kcook@gcc.gnu.org>
1371
1372         * Makefile.in: Define a vpath for %.texi.  Remove explicit $(docdir)
1373         and $(docdir)/include from any *.texi dependencies.
1374         ($(docobjdir)/%.dvi): Depend on stmp-docobjdir.
1375         ($(docobjdir)/%.1): Depend on .pod instead of .texi.
1376         ($(docobjdir)/%.7): Likewise.
1377         (%.pod): New implicit rule.
1378         (cpp.pod): New dependency only rule.
1379         (gcc.pod): New intermediate rule with dependencies and commands.
1380         (gfdl.pod): Likewise.
1381         (fsf-funding.pod): Likewise.
1382
1383 2003-10-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1384
1385         * fixinc/mkfixinc.sh: Remove special cases for svr4 and ptx, and
1386         related code.
1387         * fixinc/fixinc.ptx: Remove.
1388         * fixinc/fixinc.svr4: Remove.
1389
1390 2003-10-24  Ulrich Weigand  <uweigand@de.ibm.com>
1391
1392         * config/s390/s390.c (load_multiple_operation): Allow both SImode
1393         and DImode if word_mode is DImode.
1394         (store_multiple_operation): Likewise.
1395         * config/s390/s390.md ("load_multiple", "store_multiple"): Likewise.
1396         ("*load_multiple_di"): Allow only if word_mode == DImode.
1397         ("movqi"): Use LLGC whenever TARGET_ZARCH.
1398         ("fix_truncdfsi2"): Fix incorrect temporary size.
1399         ("fix_truncsfsi2"): Likewise.
1400         ("*bras_r", "*brasl_r", "*basr_r"): Remove predicate and constraint
1401         string for function return value operand.
1402         ("*bras_tls", "*brasl_tls", "*basr_tls"): Likewise.
1403
1404 2003-10-24  Joseph S. Myers  <jsm@polyomino.org.uk>
1405
1406         * c-parse.in (array_declarator): Use expr_no_commas.
1407         Fixes PR c/11943.
1408
1409 2003-10-24  Richard Sandiford  <rsandifo@redhat.com>
1410
1411         * config/mips/linux.h: Wrap MD_FALLBACK_FRAME_STATE_FOR and
1412         associated includes in #ifndef inhibit_libc.
1413
1414 2003-10-24  Roger Sayle  <roger@eyesopen.com>
1415
1416         * doc/libgcc.texi: Document some more of the libgcc API.
1417
1418 2003-10-24  Richard Earnshaw  <rearnsha@arm.com>
1419
1420         * arm.c (arm_rtx_costs_1, case TARGET_THUMB): Adjust costs for
1421         comparing a constant with small negative numbers and add costing
1422         for constants in conjunction with AND.
1423         (note_invalid_constants): Tidy previous change.
1424         (thumb_cmp_operand): Tidy.
1425         (thumb_cmpneg_operand): New function.
1426         * arm.h (CONDITIONAL_REGISTER_USAGE): Don't use HI regs if optimizing
1427         for size.
1428         (FIRST_LO_REGNUM, FIRST_HI_REGNUM, LAST_HI_REGNUM): Define.
1429         (PREDICATE_CODES): Add thumb_cmpneg_operand.
1430         * arm.md (cbranchsi4): Convert to define_expand.  Handle comparison
1431         with a negative constant.
1432         (cbranchsi4_insn): Matcher for cbranchsi4.
1433         (cbranchsi4_scratch): Similar, but a scratch is available for
1434         handling negative constants.
1435         (movsi_cbranchsi4): New pattern.
1436         (tstsi3_cbranch): Renamed from andsi3_cbranch_scratch, remove scratch
1437         and use the TST instruction.
1438         (andsi3_cbranch, orrsi3_cbranch, xorsi3_cbranch, cbranchne_decr1)
1439         (addsi3_cbranch, subsi3_cbranch): Ensure that register preferencing
1440         cannot see high regs or memory alternatives.
1441         (bicsi3_cbranch_scratch, bicsi3_cbranch): New patterns.
1442
1443 2003-10-24  Richard Earnshaw  <rearnsha@arm.com>
1444
1445         * arm.c (note_invalid_constants): Try to extract the constant
1446         pool value using avoid_constant_pool_reference; only use
1447         get_pool_constant if that returns the original reference.
1448
1449 2003-10-24  Jan Hubicka  <jh@suse.cz>
1450
1451         PR c++/12624
1452         * varasm.c (notice_global_symbol): Disqualify global registers.
1453
1454 2003-10-23  Roger Sayle  <roger@eyesopen.com>
1455
1456         PR middle-end/11414
1457         * loop.c (load_mems): Use redirect_jump to forward jumps from
1458         the original loop end label to the new "loop sink" block's label.
1459
1460 2003-10-23  Roger Sayle  <roger@eyesopen.com>
1461
1462         PR middle-end/12705
1463         * optabs.c (expand_binop): When expanding complex operations
1464         inline, always calculate result into a new temporary register.
1465         Minor code clean-ups.
1466
1467 2003-10-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1468
1469         * objc/lang-specs.h: Handle -print-objc-runtime-info.
1470         * doc/invoke.texi (Objective-C Dialect Options): Document it.
1471
1472 2003-10-24  Danny Smith  <dannysmith@users.sourceforge.net>
1473
1474         * config/i386/cygwin.asm. Add copyright notice. Add comment
1475         on why this code is needed.
1476
1477 2003-10-23  Kazu Hirata  <kazu@cs.umass.edu>
1478
1479         * config/h8300/clzhi2.c: Fix warnings.
1480         * config/h8300/ctzhi2.c: Likewise.
1481         * config/h8300/fixunssfsi.c: Likewise.
1482         * config/h8300/parityhi2.c: Likewise.
1483         * config/h8300/popcounthi2.c: Likewise.
1484
1485 2003-10-23  James E Wilson  <wilson@specifixinc.com>
1486
1487         * gcc.c (option_map): Delete --target and --use-version.
1488
1489 2003-10-23  Fariborz Jahanian  <fjahanian@apple.com>
1490             David Edelsohn  <edelsohn@gnu.org>
1491
1492         * config/rs6000/rs6000.h (UNITS_PER_WORD): Use TARGET_32BIT, not
1493         TARGET_POWREPC64.
1494         (UNITS_PER_GPR_WORD): Define.
1495         (HARD_REGNO_NREGS): Use UNITS_PER_GPR_WORD.
1496         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
1497         (HARD_REGNO_MODE_OK): Use UNITS_PER_GPR_WORD.
1498         (CLASS_MAX_NREGS): Use UNITS_PER_GPR_WORD.
1499         * config/rs6000/rs6000.c (function_arg): Generate PARALLEL for
1500         DFmode and DImode in 32-bit ABI / 64-bit computation mode.
1501         (rs6000_emit_prologue): Select reg_mode and reg_size using
1502         TARGET_32BIT, not TARGET_POWERPC64.
1503         (rs6000_function_value): Generate PARALLEL for DImode in 32-bit
1504         ABI / 64-bit computation mode
1505
1506 2003-10-22  Andrew Haley  <aph@redhat.com>
1507
1508         * toplev.c (output_file_directive): Allow for null input_name.
1509
1510 2003-10-22  Waldek Hebisch <hebisch@math.uni.wroc.pl>
1511
1512         * config/i386/i386.c (classify_argument): Handle SET_TYPE.
1513
1514 2003-10-22  Chris Demetriou  <cgd@broadcom.com>
1515
1516         * configure.in: In --enable-generated-files-in-srcdir option
1517         handling, fix default case handling.
1518         * configure: Regenerate.
1519
1520 2003-10-22  Phil Edwards  <phil@codesourcery.com>
1521
1522         * config.gcc:  Update *-*-vxworks* generic hook and comments.
1523         (arm-wrs-vxworks, i[4567]86-wrs-vxworks, mips-wrs-vxworks,
1524         mips-wrs-windiss, sh-wrs-vxworks):  New stanzas.
1525         * genmultilib:  Allow the MULTILIB_OSDIRNAMES to be mapped directly.
1526         * config/svr4.h (SWITCH_TAKES_ARG):  Undefine it before redefining it.
1527         * config/windiss.h:  New file.
1528         * config/arm/t-vxworks:  New file.
1529         * config/arm/vxworks.h:  New file.
1530         * config/i386/t-vxworks:  New file.
1531         * config/i386/vxworks.h:  New file.
1532         * config/mips/t-vxworks:  New file.
1533         * config/mips/vxworks.h:  New file.
1534         * config/mips/windiss.h:  New file.
1535         * config/sh/t-vxworks:  New file.
1536         * config/sh/vxworks.h:  New file.
1537
1538 2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
1539
1540         * config/h8300/h8300.c (h8300_output_function_epilogue): Remove.
1541         (h8300_saveall_function_p): New.
1542         (h8300_insert_attributes): Insert the saveall attribute if
1543         #pragma saveall is specified.
1544         (h8300_attribute_table): Add saveall.
1545         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
1546         * doc/extend.texi: Mention the saveall attribute.
1547
1548 2003-10-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1549
1550         * c-typeck.c (pedantic_lvalue_warning): Unconditionally warn of
1551         deprecation of casts as lvalues.
1552         * fixinc/inclhack.def (obstack_lvalue_cast): New fix.
1553         * fixinc/fixincl.x: Regenerate.
1554         * fixinc/tests/base/obstack.h: New test.
1555
1556 2003-10-22  Andreas Schwab  <schwab@suse.de>
1557
1558         PR target/12676
1559         * config/m68k/m68k.c (output_addsi3): Fix range check to work on
1560         LP64 platforms.
1561
1562 2003-10-22  Jan Hubicka  <jh@suse.cz>
1563
1564         * dwarf2out.c (dwarf2out_abstract_function): Use DW_AT to check
1565         presence of DW_AT_inline.
1566         (gen_subprogram_die): Likewise; do not abort instead of emitting
1567         DW_AT_not_inline.
1568
1569 2003-10-22  Jan Hubicka  <jh@suse.cz>
1570
1571         * cgraph.c (cgraph_function_possibly_inlined_p): Be conservative when
1572         global info is not ready.
1573
1574 2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
1575
1576         * doc/extend.texi: Mention H8S wherever H8/300H is mentioned.
1577
1578 2003-10-22  Ulrich Weigand  <uweigand@de.ibm.com>
1579
1580         * config/s390/s390.md ("movstr_short_64", "movstr_short_31"): Merge ...
1581         ("*movstr_short"): ... into this insn pattern.
1582         ("movstr_short"): New expander.
1583         ("*movstr_long_64"): Rename from "movstr_long_64", simplify.
1584         ("*movstr_long_31"): Rename from "movstr_long_31", simplify.
1585         ("movstr_long"): New expander.
1586         ("clrstr_short_64", "clrstr_short_31"): Merge ...
1587         ("*clrstr_short"): ... into this insn pattern.
1588         ("clrstr_short"): New expander.
1589         ("*clrstr_long_64"): Rename from "clrstr_long_64", simplify.
1590         ("*clrstr_long_31"): Rename from "clrstr_long_31", simplify.
1591         ("clrstr_long"): New expander.
1592         ("cmpmem_short_64", "cmpmem_short_31"): Merge ...
1593         ("*cmpmem_short"): ... into this insn pattern.
1594         ("cmpmem_short"): New expander.
1595         ("*cmpmem_long_64"): Rename from "cmpmem_long_64".
1596         ("*cmpmem_long_31"): Rename from "cmpmem_long_31".
1597         ("cmpmem_long"): New expander.
1598         * config/s390/s390.c (s390_expand_movstr): Use new expanders.
1599         (s390_expand_clrstr): Likewise.
1600         (s390_expand_cmpmem): Likewise.
1601
1602 2003-10-22  Mark Mitchell  <mark@codesourcery.com>
1603
1604         * c-pch.c (struct c_pch_validity): Add pch_init field.
1605         (pch_init): Set it.
1606         (c_common_valid_pch): Check it.
1607
1608 2003-10-22  David Taylor <dtaylor@emc.com>
1609
1610         PR debug/12500
1611         * dbxout.c (dbxout_typedefs): Use COMPLETE_OR_VOID_TYPE_P.
1612
1613 2003-10-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1614
1615         * config/alpha/alpha.c (function_value [ENABLE_CHECKING]): Don't call
1616         alpha_return_in_memory if no VALTYPE specified.
1617
1618 2003-10-22  Jan Hubicka  <jh@suse.cz>
1619
1620         PR debug/12389
1621         * Makefile.in (dwarf2out.o): Depend on cgraph.h.
1622         * cgraph.c (cgraph_function_possibly_inlined_p): New function.
1623         * cgraph.h (cgraph_function_possibly_inlined_p): Declare.
1624         (cgraph_global_info): Add flag inlined
1625         * dwarf2out.c (gen_subprogram_die, gen_decl_die): Use
1626         cgraph_function_possibly_inded_p
1627         * cgraphunit.c (mark_inline): Set inlined flag.
1628         * toplev.c (rest_of_decl_compilation): Call outlining_inline_function
1629         only for possibly inlined functions.
1630         * c-decl.c (duplicate_decls): Never output abstract DIE representing old
1631         body of function.
1632
1633 2003-10-22  Andrew Haley  <aph@redhat.com>
1634
1635         * varasm.c (output_constructor): Make constructor annotation
1636         conditional on ASM_COMMENT_START.
1637
1638 2003-10-21  Jason Merrill  <jason@redhat.com>
1639
1640         * tree.c (get_unwidened): Check TREE_UNSIGNED on the field's type.
1641         (get_narrower): Likewise.
1642
1643         * stor-layout.c (layout_decl): Do packed field alignment for
1644         bit-fields, too.
1645
1646 2003-10-21  Eric Christopher  <echristo@redhat.com>
1647
1648         * expr.c (convert_move): Use FLOAT_EXTEND for extensions.
1649
1650 2003-10-21  Geoffrey Keating  <geoffk@apple.com>
1651
1652         * c-pch.c: Add comments in various places.
1653         (struct c_pch_validity): Add the lengths of various strings.
1654         (host_machine): New static.
1655         (target_machine): New static.
1656         (get_ident): Bump version number.
1657         (pch_init): Write out version, host, target validity data.
1658         (c_common_valid_pch): Check version, host, target.
1659         * Makefile.in (c-pch.o): Add version.h; define HOST_MACHINE and
1660         TARGET_MACHINE.
1661
1662 2003-10-21  Jason Merrill  <jason@redhat.com>
1663
1664         * tree.h (IS_EXPR_CODE_CLASS): Use strchr.
1665         (EXPR_P): New macro.
1666
1667 2003-10-21  Zack Weinberg  <zack@codesourcery.com>
1668
1669         * config/ia64/ia64.md (cmpxchg_acq_si): Mark operand 3 as DImode.
1670         * config/ia64/ia64.c (ia64_expand_fetch_and_op,
1671         ia64_expand_op_and_fetch): Make sure the REG for ar.ccv is
1672         DImode.   Use convert_move to load ar.ccv.
1673         (ia64_expand_compare_and_swap): Likewise.
1674         If expand_expr doesn't put 'old' and 'new' in the proper
1675         modes, run them through convert_to_mode.
1676
1677 2003-10-21  Eric Christopher  <echristo@redhat.com>
1678
1679         * config/frv/frv.c (frv_adjust_field_align): Check DECL_ARTIFICIAL
1680         for too large bitfields.
1681
1682 2003-10-21  Mark Mitchell  <mark@codesourcery.com>
1683
1684         * Makefile.in ($(docobjdir)/%.info): Honor BUILD_INFO.
1685
1686 2003-10-21  Andrew Haley  <aph@redhat.com>
1687
1688         * varasm.c (output_constructor): Annotate constructor.
1689
1690 2003-10-21  Mark Mitchell  <mark@codesourcery.com>
1691
1692         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Conditionalize chmod
1693         on existence of destination file.
1694
1695 2003-10-21  Jan Hubicka  <jh@suse.cz>
1696
1697         * haifa-sched.c (choose_ready): Initialize index.
1698
1699 2003-10-21  Jason Merrill  <jason@redhat.com>
1700
1701         * tree.c (build1): Fix off-by-one error.
1702
1703 2003-10-21  Robert Millan  <robertmh@gnu.org>
1704
1705         * config/i386/kfreebsdgnu.h: New. i386-*-kfreebsd-gnu definitions.
1706         * config/kfreebsdgnu.h: New. *-*-kfreebsd-gnu definitions.
1707         * config/t-kfreebsd-gnu: New. *-*-kfreebsd-gnu tmake_file.
1708         * config.gcc: Add *-*-kfreebsd*-gnu and i[34567]86-*-kfreebsd*-gnu.
1709
1710 2003-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1711
1712         * web.c: Fix various comments.
1713
1714 2003-10-20  Nicolas Pitre <nico@cam.org>
1715
1716         * config/arm/arm.c (arm_override_options): Set arm_constant_limit
1717         to 2 instead of 1 when optimize_size is true.  Gather code based on
1718         optimize_size together.  Add comment about XScale load latency.
1719
1720 2003-10-21  Gunther Nikl  <gni@gecko.de>
1721
1722         * config/m68k/m68k.c (m68k_output_function_prologue): Remove
1723         obsolete comments.
1724
1725 2003-10-20  Kelley Cook  <kcook@gcc.gnu.org>
1726
1727         * Makefile.in: Get parsedir and docobjdir from configure.
1728         * configure.in: Recogonize --enable-generated-files-in-srcdir.
1729         Pass along parsedir and docobjdir.
1730         * configure: Regenerate.
1731         * doc/install.texi: Document --enable-generated-files-in-srcdir.
1732
1733 2003-10-20  Kelley Cook  <kcook@gcc.gnu.org>
1734
1735         * Makefile.in: Define $(docdir) before the Make-lang.in fragments are
1736         included.
1737
1738 2003-10-20  Joseph S. Myers  <jsm@polyomino.org.uk>
1739
1740         * c-common.c (expand_tree_builtin): Ensure creal and cimag
1741         functions do not return lvalues.
1742
1743 2003-10-20  Jason Merrill  <jason@redhat.com>
1744
1745         PR c/12553
1746         * tree.c (build1) <ADDR_EXPR>: Set TREE_SIDE_EFFECTS
1747         appropriately.
1748
1749         PR c/11446
1750         * stor-layout.c (layout_decl): Fix alignment handling.
1751
1752 2003-10-20  Joseph S. Myers  <jsm@polyomino.org.uk>
1753
1754         * doc/extend.texi: Deprecate casts as lvalues.
1755
1756 2003-10-20  Jan Hubicka  <jh@suse.cz>
1757
1758         * toplev.c (rest_of_compilation): Fix webizer pass ordering.
1759
1760         * cgraphunit.c (decide_is_function_needed):  Fix test dealing
1761         with functions implicitly made inline.
1762
1763         * cgraphunit.c (cgraph_decide_inlining_incrementally):  New function.
1764         (cgraph_finalize_function): Use it.
1765         (cgraph_mark_inline): Allow incrmental decisions
1766         * invoke.texi (max-inline-slope, min-inline-insns): Kill.
1767         * params.def (PARAM_MAX_INLINE_SLOPE, PARAM_MIN_INLINE_INSNS): Kill.
1768         * tree-inline.c (limits_allow_inlining): Kill.
1769         (expand_call_inline): Always use unit-at-a-time path.
1770
1771 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
1772
1773         * fixinc/inclhack.def (hpux11_snprintf): New edit.
1774         * fixinc/fixincl.x: Regenerate.
1775         * fixinc/tests/base/stdio.h: Add test for hpux11_snprintf.
1776
1777 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
1778
1779         * Makefile.in (install-info): Simplify.
1780         ($(DESTDIR)$(infodir)/%.info): New rule.
1781         * configure.in (target_list): Remove install-info.
1782         * doc/.cvsignore (gcc.info*): Remove.
1783         (gccint.info*): Likewise.
1784         (gccinstall.info*): Likewise.
1785         (cpp.info*): Likewise.
1786         (cppinternals.info*): Likewise.
1787         (*.info*): Add it.
1788         * doc/sourcebuild.texi: Update description of install-info.
1789         * objc/Make-lang.in (objc.install-info): Remove.
1790
1791 2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1792
1793         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Define _ABIO32.
1794         Use it in _MIPS_SIM definition.
1795         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Likewise.
1796
1797 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
1798
1799         * config/i386/i386.c (print_reg): Abort if REGNO (x) is a
1800         virtual register, but only if file == asm_out_file.
1801         * config/i386/i386.h (HI_REGISTER_NAMES): Use "argp", not "",
1802         for ARG_POINTER_REGNUM.
1803
1804 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
1805
1806         * c-common.c (registered_builtin_types): New static.
1807         (c_common_type_for_mode): Consult registered_builtin_types.
1808         (c_register_builtin_type): Add type to registered_builtin_types.
1809         * optabs.c (init_floating_libfuncs): Initialize libfuncs for
1810         all MODE_FLOAT modes, not just the ones corresponding to
1811         float_type_node, double_type_node, and long_double_type_node.
1812
1813 2003-10-20  Richard Henderson  <rth@redhat.com>
1814
1815         * config/alpha/alpha.h (PREDICATE_CODES): Add normal_memory_operand.
1816         * config/alpha/alpha-protos.h: Remove PREDICATE_CODES prototypes.
1817
1818 2003-10-20  Dorit Naishlos  <dorit@il.ibm.com>
1819
1820         * config/rs6000/rs6000.h: (rs6000_sched_insert_nops):
1821         support new flag -minsert-sched-nops.
1822         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Define.
1823         * config/rs6000/rs6000.c: (rs6000_sched_insert_nops):
1824         support new flag -minsert-sched-nops.
1825         (is_cracked_insn, is_microcoded_insn): New functions.
1826         (rs6000_sched_finish): New function.
1827         (rs6000_issue_rate): Return 5 for power4.
1828         (get_next_active_insn, insn_terminates_group_p): New
1829         functions.
1830         (is_costly_group, force_new_group): New functions.
1831         (redefine_groups, pad_groups): New functions.
1832         (rs6000_variable_issue): Use new functions.
1833         * doc/invoke.texi (-minsert-sched-nops): Document new
1834         option.
1835
1836 2003-10-20  David S. Miller  <davem@redhat.com>
1837
1838         * config/sparc/sparc.md (type attribute): Add new insn types
1839         fpa, fpm_pack, fgm_mul, fgm_pdist, and fgm_cmp for VIS.
1840         (patterns emitting VIS insns): Use them.
1841         * config/sparc/ultra1_2.md: Add VIS scheduling rules.
1842         * config/sparc/ultra3.md: Likewise.
1843
1844 2003-10-20  Falk Hueffner  <falk@debian.org>
1845
1846         PR target/12654
1847         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't do
1848         comparison against constant by adjusting the argument except for
1849         EQ and NE.
1850
1851 2003-10-19  Mark Mitchell  <mark@codesourcery.com>
1852
1853         * config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js,
1854         arm1136jfs, and armv6j.
1855         * config/arm/arm.c (FL_ARCH6J): New macro.
1856         (FL_VFPV2): Likewise.
1857         (all_cores): Add entries for arm926ejs, arm1026ejs, arm1136js,
1858         and arm1136jfs.
1859         (all_architectures): Add entry for armv6j.
1860         (arm_override_options): Add entries for arm926ejs, arm1026ejs,
1861         arm1136js, and arm1136jfs.
1862         * config/arm/arm.h (TARGET_CPU_arm926ej_s): New macro.
1863         (TARGET_CPU_arm1026ej_s): Likewise.
1864         (TARGET_CPU_arm1136j_s): Likewise.
1865         (TARGET_CPU_arm1136jf_s): Likewise.
1866         * doc/invoke.texi: Document new ARM cores and architecture
1867         variants.
1868
1869 2003-10-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1870
1871         * Makefile.in (toplev.o): Add value-prof.h dependency.
1872         (value-prof.o): Add REGS_H dependency.
1873         * common.opt (fprofile-values, fvpt): New.
1874         * flags.h (flag_value_profile_transformations): Declare.
1875         * opts.c (common_handle_option): Handle -fprofile_values and
1876         -fvpt.
1877         * profile.c (branch_prob): Don't remove death notes here.
1878         * timevar.def (TV_VPT): New.
1879         * value-prof.c: Include regs.h.
1880         (insn_divmod_values_to_profile, gen_divmod_fixed_value, gen_mod_pow2,
1881         gen_mod_subtract, divmod_fixed_value_transform,mod_pow2_value_transform,
1882         mod_subtract_transform, value_profile_transformations): New.
1883         (insn_values_to_profile): Call insn_divmod_values_to_profile.
1884         (find_values_to_profile): Add dumps.
1885         * value-prof.h (value_profile_transformations): Declare.
1886         * toplev.c: Include value-prof.h.
1887         (rest_of_handle_value_profile_transformations): New.
1888         (enum dump_file_index): Add DFI_vpt.
1889         (dump_file): Add vpt dump.
1890         (flag_value_profile_transformations): New.
1891         (lang_independent_options): Add flag_profile_values and
1892         flag_value_profile_transformations.
1893         (rest_of_compilation): Call
1894         rest_of_handle_value_profile_transformations.
1895         (process_options): Let -fvpt imply -fprofile-values.
1896         * doc/invoke.texi (-fvpt): Document.
1897
1898 2003-10-19  Jan Hubicka  <jh@suse.cz>
1899
1900         * i386.c (print_reg): Do not abort on certain registers.
1901
1902         PR optimization/12612
1903         * reg-stack.c (subst_stack_regs_pat):  Use st(1) for clobbers.
1904         * i386.md (fpatan, fyl2x, fscale patterns and expanders): Use
1905         match_scratch; avoid bogus paralles.
1906
1907         PR target/12674
1908         * i386.c (ix86_function_regparm): Disable implicit register passing
1909         conventions when profiling.
1910
1911 2003-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
1912             Richard Henderson  <rth@redhat.com>
1913
1914         PR optimization/8178
1915         * config/i386/i386.md (*movsi_zero): Delete.
1916         (*ffs_no_cmove): Use ix86_expand_clear to zero the third operand.
1917
1918 2003-10-19  Richard Henderson  <rth@redhat.com>
1919
1920         * config/alpha/alpha.c (fix_operator): New.
1921         (divmod_operator): Tidy.
1922         (alpha_emit_xfloating_cvt): Handle UNSIGNED_FIX.
1923         * config/alpha/alpha.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
1924         (PREDICATE_CODES): Update.
1925         * config/alpha/alpha.md (fix_truncdfsi_ieee): Use match_operator.
1926         (fix_truncdfsi_internal, fix_truncdfdi_ieee): Likewise.
1927         (fix_truncsfsi_ieee, fix_truncsfsi_internal): Likewise.
1928         (fix_truncsfdi_ieee): Likewise.
1929         (fix_truncdfdi2, fix_truncsfdi2): Turn into define_expand.
1930         (fixuns_truncdfdi2, fixuns_truncsfdi2, fixuns_trunctfdi2): New.
1931         * config/alpha/alpha-protos.h: Update.
1932
1933 2003-10-19  Richard Sandiford  <rsandifo@redhat.com>
1934
1935         * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Simplify.
1936         * config/mips/mips.c (mips_load_got): Assume Pmode == ptr_mode.
1937         * config/mips/mips.md (extendsidi2, *extendsidi2): Merge. Don't accept
1938         constant operands.
1939
1940 2003-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1941
1942         * doc/extend.texi: Fix typos.
1943         * doc/invoke.texi: Likewise.
1944
1945 2003-10-18  Nicolas Pitre <nico@cam.org>
1946
1947         * config/arm/arm.c (arm_override_options): Use arm_tune_xscale for
1948         XScale optimizations not arm_arch_xscale.
1949         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR, MOVE_RATIO): Likewise.
1950
1951 2003-10-18  Ulrich Weigand  <uweigand@de.ibm.com>
1952
1953         * config/s390/s390-protos.h (shift_count_operand): Add prototype.
1954         * config/s390/s390.c (shift_count_operand): New function.
1955         (s390_extra_constraint): Use it to implement 'Y' constraint.
1956         (print_shift_count_operand): New function.
1957         (print_operand): Use it to implement '%Y'.
1958         * config/s390/s390.h (EXTRA_ADDRESS_CONSTRAINT): Add 'Y' constraint.
1959         (PREDICATE_CODES): Add shift_count_operand.
1960         * config/s390/s390.md ("rotldi3"): Merge alternatives,
1961         using "shift_count_operand" predicate and "Y" constraint,
1962         and "%Y" to output the combined shift count.
1963         ("rotlsi3"): Likewise.
1964         ("ashldi3", "*ashldi3_31", "*ashldi3_64"): Likewise.
1965         ("ashrdi3", "*ashrdi3_31", "*ashrdi3_64", "*ashrdi3_cc_31",
1966         "*ashrdi3_cc_64", "*ashrdi3_cconly_31", "*ashrdi3_cconly_64"): Likewise.
1967         ("ashlsi3", "ashrsi3", "*ashrsi3_cc", "*ashrsi3_cconly"): Likewise.
1968         ("lshrdi3", "*lshrdi3_31", "*lshrdi3_64"): Likewise.
1969         ("lshrsi3"): Likewise.
1970
1971 2003-10-18  Gunther Nikl  <gni@gecko.de>
1972
1973         * config/m68k/m68k.c (m68k_output_function_epilogue): Add missing
1974         argument to asm_fprintf statement.
1975
1976 2003-10-18  Fariborz Jahanian  <fjahanian@apple.com>
1977
1978         * rs6000.md: Separate TARGET_POWERPC64 patterns for TARGET_64BIT or TARGET_32BIT.
1979         (ashrdisi3_noppc64) Generate more efficient code for 32-bit right-shift of
1980         a "long long" argument.
1981
1982 2003-10-18  Alexandre Oliva  <aoliva@redhat.com>
1983
1984         * final.c (final_scan_insn): Run FINAL_PRESCAN_INSNS on asm insns
1985         as well.
1986
1987 2003-10-18  Richard Sandiford  <rsandifo@redhat.com>
1988
1989         * rtl.h (rtl_size): Declare.
1990         (rtunion): Remove rtwint.
1991         (rtx_def): Replace 'fld' with a union of an rtunion or a HOST_WIDE_INT.
1992         (RTX_HDR_SIZE, RTX_SIZE): New macros.
1993         (RTL_CHECK1): Adjust for new rtx_def layout.
1994         (RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2): Likewise.
1995         (XWINT, XCWINT): Likewise.  Access the rtx structure directly.
1996         (X0WINT): Remove.
1997         (X0ANY): New macro.
1998         * rtl.def: Adjust comments for new rtx_def layout.
1999         * ggc.h (ggc_alloc_rtx): Take the rtx code as argument, not the
2000         number of slots.
2001         * rtl.c (rtx_size): New array.
2002         (rtx_alloc): Adjust call to ggc_alloc_rtx.  Use RTX_HDR_SIZE.
2003         (copy_rtx): Use RTX_HDR_SIZE.  Adjust for new rtx_def layout.
2004         (shallow_copy_rtx): Adjust call to ggc_alloc_rtx.  Use RTX_SIZE.
2005         * integrate.c (copy_rtx_and_substitute): Use X0ANY to copy '0' fields.
2006         * emit-rtl.c (copy_most_rtx): Likewise.
2007         (copy_rtx_if_shared): Use RTX_SIZE.
2008         (copy_insn_1): Use RTX_HDR_SIZE.  Adjust for new rtx_def layout.
2009         * gengenrtl.c (gendef): Adjust ggc_alloc_rtx call.  Use RTX_HDR_SIZE.
2010         * gengtype.c (write_rtx_next): Use RTX_HDR_SIZE.
2011         (adjust_field_rtx_def): Expect "rtx_def" to be a union rather than
2012         an array.  Adjust output for new rtx_def layout.
2013         * ggc-page.c (RTL_SIZE): Use RTX_HDR_SIZE.
2014         * reload1.c (eliminate_regs): Use RTX_SIZE.
2015         * rtlanal.c (loc_mentioned_in_p): Adjust for new rtx_def layout.
2016         * gdbinit.in (pi): Likewise.
2017
2018 2003-10-18  Jan Hubicka  <jh@suse.cz>
2019
2020         * integrate.c (copy_decl_for_inlining): Revert previous patch.
2021
2022 2003-10-18  Jan Hubicka  <jh@suse.cz>
2023
2024         * integrate.c (copy_decl_for_inlining): Fix copying of copies.
2025
2026 2003-10-18  Roger Sayle  <roger@eyesopen.com>
2027
2028         * libgcc.texi: Group multi-word types, such as "long double" and
2029         "unsigned int", using braces in @deftypefn and @deftypefnx nodes.
2030         Document __unord?f2 as returning a non-zero value, not just one.
2031
2032 2003-10-18  Hans-Peter Nilsson  <hp@bitrange.com>
2033
2034         * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Define.
2035         ($(T)crti.o, $(T)crtn.o): Pass CRTSTUFF_T_CFLAGS here too.
2036
2037 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2038
2039         * config/i386/k6.md (k6_alux): Use the 'mode' attribute instead of
2040         match_operand.
2041
2042 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2043
2044         * config/sparc/sparc.c (function_arg_record_value_1): New fourth
2045         parameter packed_p.  Search for a DECL_PACKED field only if
2046         packed_p is false.  Pass packed_p recursively.
2047         (function_arg_record_value_2): Likewise.
2048         (function_arg_record_value): Update calls to
2049         function_arg_record_value_1 and function_arg_record_value_2.
2050
2051 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2052
2053         * cse.c (cse_insn) [src_folded]: Check that the tentative replacement
2054         was successfully forced to memory before using the result.
2055
2056 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2057
2058         PR optimization/8178
2059         * config/i386/i386.md (*movsi_zero): New insn to set
2060         a register to zero on TARGET_USE_MOV0 targets.
2061
2062 2003-10-18  Kelley Cook  <kcook@gcc.gnu.org>
2063
2064         * Makefile.in (Makefile): Depend on the all Make-lang.in fragments.
2065         (POSTSTAGE1_FLAGS_TO_PASS): Pass down MAKEINFO and MAKEINFOFLAGS.
2066
2067 2003-10-17  David Edelsohn  <edelsohn@gnu.org>
2068
2069         * doc/invoke.texi (gcse-las): Fix typo.
2070
2071 2003-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
2072
2073         * doc/install.texi: Remove first part of the sentence for
2074         zsh not working.  Change gcc to GCC.
2075
2076         PR bootstrap/12546
2077         * doc/install.texi: Document that zsh does not work when
2078         configuring gcc.
2079
2080 2003-10-17  Nathanael Nerode  <neroden@gcc.gnu.org>
2081
2082         * config/ptx4.h: Switch to DWARF 2; update comments.
2083
2084 2003-10-17  Segher Boessenkool  <boessen@de.ibm.com>
2085             Hartmut Penner  <hpenner@de.ibm.com>
2086
2087         PR 10404, partial 11591, partial 11601
2088         * config/rs6000/altivec.md ("altivec_dst", "altivec_dstt",
2089         "altivec_dstst", "altivec_dststt", "altivec_lvsl", "altivec_lvsr",
2090         "altivec_lvebx", "altivec_lvehx", "altivec_lvewx", "altivec_lvxl",
2091         "altivec_lvx", "altivec_stvx", "altivec_stvxl", "altivec_stvebx",
2092         "altivec_stvehx", "altivec_stvewx"): Use a memory_operand.
2093         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): New function.
2094         (altivec_expand_stv_builtin): Adjust for the memory_operand.
2095         (altivec_expand_builtin): Call altivec_expand_lv_builtin.
2096         (altivec_init_builtins): Use `long int' for memory offsets.
2097
2098 2003-10-17  Jan Hubicka  <jh@suse.cz>
2099
2100         * opts.c  (common_handle_option): Handle OPT_fweb
2101         * invoke.texi (-fweb): Add missing parts of documentation.
2102
2103 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2104
2105         * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Undef
2106         before redefinition.
2107
2108 2003-10-17  Mostafa Hagog  <mustafa@il.ibm.com>
2109
2110         * common.opt: Add description of the new -fgcse-las flag.
2111         * flags.h (flag_gcse_las): Declaration of global flag_gcse_las.
2112         * gcse.c (hash_scan_set): Handle the case of store expression and
2113         insert the memory expression to the hash table, this way we make it
2114         possible to discover redundant loads after stores and remove them.
2115         (pre_insert_copy_insn): moved the call to update_ld_motion_stores,
2116         to pre_insert_copies, it is not the correct place to call it after
2117         adding stores to be in the available expression hash table.
2118         (pre_insert_copies): Added the call to update_ld_motion_stores when
2119         one or more copies were inserted.
2120         * opts.c (common_handle_option): Handle the -fgcse-las flag.
2121         * toplev.c (flag_gcse_las): Initialization of flag_gcse_las.
2122
2123         * doc/invoke.tex: Document new -fgcse-las flag.
2124
2125 2003-10-18  Alan Modra  <amodra@bigpond.net.au>
2126
2127         * config/rs6000/crtsavres.asm: Correct alignment of powerpc64 code
2128         for posterity, then remove it.
2129
2130 2003-10-17  Richard Earnshaw <rearnsha@arm.com>
2131             Nathan Sidwell  <nathan@codesourcery.com>
2132
2133         * config/arm/arm.c (use_return_insn): Not a single instruction, if
2134         there's a frame pointer.
2135         (arm_output_epilogue): Protect stack pointer from being corrupted
2136         on interrupt.
2137
2138 2003-10-17  Ulrich Weigand  <uweigand@de.ibm.com>
2139
2140         * ifcvt.c (noce_try_addcc): Handle ifs with 'else' case.
2141
2142 2003-10-17  Ulrich Weigand  <uweigand@de.ibm.com>
2143
2144         * combine.c (simplify_set): Do not clear out undobuf.other_insn
2145         already set elsewhere.
2146
2147 2003-10-17  Kelley Cook  <kcook@gcc.gnu.org>
2148
2149         * config/i386/i386.c (ix86_expand_prologue):  Use
2150         gen_allocate_stack_worker.
2151
2152 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2153
2154         * config.gcc (mips-sgi-irix6*o32): Only enable use_collect2
2155         without gas.
2156         (mips-sgi-irix6*): Likewise.
2157
2158         * config/mips/iris6gas.h: New file.
2159         * gcc/config.gcc (mips-sgi-irix6*): Use it.
2160
2161         * config/mips/mips.h (TARGET_IRIX): Provide default.
2162         (TARGET_IRIX5): Likewise.
2163         (TARGET_SGI_O32_AS): Likewise.
2164         * config/mips/iris5.h (TARGET_IRIX): Redefine as 1.
2165         (TARGET_IRIX5): Likewise.
2166         * config/mips/iris6.h (TARGET_IRIX6): Remove.
2167         (TARGET_IRIX5): Redefine as 0.
2168
2169         * config/mips/mips.c (mips_output_external): Test for IRIX 6 O32
2170         linker workaround with TARGET_IRIX and mips_abi instead of
2171         ASM_OUTPUT_UNDEF_FUNCTION.
2172         (mips_file_end): Inline old ASM_OUTPUT_UNDEF_FUNCTION definition,
2173         testing TARGET_IRIX and mips_abi explicitly.
2174         * config/mips/iris5.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove.
2175         * config/mips/iris6.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove undef.
2176
2177         * config/mips/mips.c (irix_output_external_libcall): Renamed from
2178         mips_output_external_libcall.
2179         Use new TARGET_IRIX in guard.
2180         * config/mips/mips-protos.h (irix_output_external_libcall): Match
2181         this.
2182         * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Likewise.
2183
2184         * config/mips/iris5gas.h (HAVE_GAS_SHF_MERGE): Update comment.
2185         Define as 0.
2186
2187         * config/mips/iris6.h (FUNCTION_NAME_ALREADY_DECLARED): Define
2188         depending on mips_abi.
2189         * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Define as 1.
2190         * config/mips/mips.c (mips_output_function_prologue): Test
2191         FUNCTION_NAME_ALREADY_DECLARED at runtime.
2192         (mips_output_function_epilogue): Likewise.
2193         (build_mips16_function_stub): Likewise.
2194         (build_mips16_call_stub): Likewise.
2195         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Provide
2196         default.
2197
2198         * config/mips/iris6.h (DWARF2_UNWIND_INFO): Don't define for native
2199         IRIX 6 O32 assembler.
2200         (SUBTARGET_CC1_SPEC): Enforce mips2 ISA with O32 ABI.
2201         (TARGET_OS_CPP_BUILTINS): Define _ABIO32, use it to define
2202         _MIPS_SIM for O32 ABI.
2203         (DWARF2_FRAME_INFO): Don't define for native IRIX 6 O32 assembler.
2204         (ASM_DECLARE_FUNCTION_NAME): Integrate mips.h version.
2205         (ASM_DECLARE_FUNCTION_SIZE): Move undef before redefinition.
2206         Integrate O32 version.
2207         (SUBTARGET_ASM_SPEC): Handle -mabi=32.
2208         (SUBTARGET_ASM_DEBUGGING_SPEC): Add mdebug_asm_spec for gas with
2209         O32 ABI.
2210         (BSS_SECTION_ASM_OP_32): Define.
2211         (BSS_SECTION_ASM_OP_64): Likewise.
2212         (BSS_SECTION_ASM_OP): Define differently for O32 and N32/N64 ABIs
2213         using them.
2214         (TARGET_ASM_NAMED_SECTION): Reflect renaming.
2215         Move up to allow override for O32 ABI without GNU as.
2216         (EH_FRAME_SECTION_NAME): Define explicitly.
2217         (MUST_USE_SJLJ_EXCEPTIONS): Define.
2218         [_MIPS_SIM == _ABIO32 && !GAS] (CTORS_SECTION_ASM_OP,
2219         DTORS_SECTION_ASM_OP): Dummy definitions.
2220         (TARGET_ASM_NAMED_SECTION): Undef statically.
2221         (EH_FRAME_SECTION_NAME): Likewise.
2222         (ASM_OUTPUT_FILENAME): Integrate mips.h version.
2223         (LINK_SPEC): Only use default options -call_shared -no_unresolved
2224         without -r.
2225         Don't pass -init, -fini with -mabi=32.
2226         (COLLECT_PARSE_FLAG): Define.
2227
2228         * config/mips/mips.c (iris6_asm_named_section_1): Changed guard to
2229         TARGET_IRIX.
2230         Renamed to use irix_ prefix.
2231         (iris6_asm_named_section): Likewise.
2232         (iris_section_align_entry_eq): Likewise.
2233         (iris_section_align_entry_hash): Likewise.
2234         (iris6_file_start): Likewise.
2235         (iris6_section_align_1): Likewise.
2236         (iris6_file_end): Likewise.
2237         (iris6_section_type_flags): Likewise.
2238         (iris_section_align_htab): Likewise.
2239         (iris_orig_asm_out_file): Likewise.
2240         [TARGET_IRIX] (TARGET_ASM_FILE_START): Reflect rename.
2241         (TARGET_ASM_FILE_END): Likewise.
2242         (TARGET_SECTION_TYPE_FLAGS): Likewise.
2243
2244         * config/mips/mips.c [TARGET_IRIX5 && !TARGET_IRIX6]
2245         (TARGET_ASM_UNALIGNED_HI_OP): Use runtime initialization in
2246         override_options instead.
2247         (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
2248         (TARGET_ASM_UNALIGNED_DI_OP): Likewise.
2249         * config/mips/mips.c (override_options) [USE_COLLECT2]: Restore
2250         flag_gnu_linker to defaults without USE_COLLECT2 for non-IRIX O32
2251         assemblers.
2252         Likewise for constructor/destructor handling.
2253         (override_options): Handle IRIX O32 assembler quirks.
2254         [TARGET_IRIX] (irix_asm_named_section): Handle O32 ABI with and
2255         without gas.
2256         (mips_file_start): Use new TARGET_IRIX.
2257         (mips_declare_object_name): No special processing for IRIX O32
2258         assembler.
2259         (mips_finish_declare_object): Likewise.
2260         (irix_asm_output_align): Renamed from iris6_asm_output_align.
2261         Don't record alignment for O32 ABI.
2262         (irix_file_start): Renamed from iris6_file_start.
2263         Return early for O32 ABI.
2264         (irix_file_end): Renamed from iris6_file_end.
2265         Don't emit .section directives for O32 ABI.
2266         * config/mips/iris6.h (ASM_OUTPUT_ALIGN): Reflect renaming.
2267         * config/mips/mips-protos.h (irix_asm_output_align): Likewise.
2268
2269         * config/mips/t-iris6 (MULTILIB_OPTIONS): Add mabi=32.
2270         (MULTILIB_OSDIRNAMES): Likewise.
2271
2272 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2273
2274         * collect2.c (COLLECT_PARSE_FLAG): Provide default.
2275         (main): Use it.
2276         * doc/tm.texi (COLLECT_PARSE_FLAG): Document it.
2277
2278 2003-10-17  Richard Earnshaw  <rearnsha@arm.com>
2279
2280         * arm-modes.def (CC_Nmode): New condition code mode.
2281         * arm.c (thumb_condition_code): Delete.
2282         (arm_select_cc_mode): Handle single-bit test for Thumb.
2283         (arm_print_operand, cases 'd' and 'D'): Don't special case the
2284         condition code logic for Thumb.
2285         (get_arm_condition_code): Handle CC_Nmode.
2286         (thumb_cbrch_target_operand): New function.
2287         * arm.h (PREDICATE_CODES): Add thumb_cbrch_target_operand.
2288         * arm-protos.h (thumb_cbrch_target_operand): Add prototype.
2289         * arm.md: Add Thumb split patterns for zero_extract and
2290         sign_extract.
2291         (tbit_cbranch, andsi3_cbranch_scratch, andsi3_cbranch)
2292         (orrsi3_cbranch_scratch, orrsi3_cbranch, xorsi3_cbranch_scratch)
2293         (xorsi3_cbranch, addsi3_cbranch, addsi3_cbranch_scratch)
2294         (subsi3_cbranch, subsi3_cbranch_scratch): New Thumb patterns.
2295         (cbranchne_decr1): Re-work to use CC_Nmode.
2296
2297         * arm.c (thumb_expand_epilogue): Add clobbers of registers restored
2298         by the return instruction.  Add a use of the link register if it
2299         wasn't stored.
2300
2301 2003-10-17  Richard Earnshaw  <rearnsha@arm.com>
2302
2303         * flow.c (init_propagate_block_info): Don't abort if a conditional
2304         jump is not a comparison of a register.  Instead, just don't record
2305         conditional life information.
2306
2307 2003-10-16  Jan Hubicka  <jh@suse.cz>
2308
2309         PR optimization/12630
2310         * pa.md (movstrsi, movstrsi_internal): Use match_scratch in clobbers
2311         for operands 7 and 8.
2312
2313 2003-10-16  Kelley Cook  <kcook@gcc.gnu.org>
2314
2315         * objc/Make-lang.in (objc-parse.o): Honor $(parsedir) for objc-parse.c.
2316
2317 2003-10-16  Danny Smith  <dannysmith@users.sourceforge.net>
2318
2319         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2320
2321         * config/i386/winnt.c (gen_stdcall_suffix): Make static
2322         (gen_fastcall_suffix): Likewise.
2323         (i386_pe_dllexport_p): Likewise.
2324         (i386_pe_dllimport_p): Likewise.
2325         (i386_pe_mark_dllexport): Likewise.
2326         (i386_pe_mark_dllimport): Likewise.
2327         (i386_pe_asm_named_section): Fix formatting.
2328
2329 2003-10-16  Zack Weinberg  <zack@codesourcery.com>
2330
2331         * configure.in: Add snprintf to gcc_AC_CHECK_DECLS list.
2332         * system.h: Declare snprintf if necessary.
2333         * configure, config.in: Regenerate.
2334
2335 2003-10-15  David Edelsohn  <edelsohn@gnu.org>
2336
2337         * config/rs6000/rs6000.c (rs6000_va_arg): Only align vector
2338         arguments if TARGET_ALTIVEC_ABI.
2339
2340 2003-10-15  Roger Sayle  <roger@eyesopen.com>
2341
2342         * builtins.c (fold_builtin_memcpy, fold_builtin_mempcpy,
2343         fold_builtin_memmove, fold_builtin_strcpy, fold_builtin_strncpy,
2344         fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
2345         New functions.
2346         (expand_builtin_memcpy): Use integer_zerop instead of testing
2347         host_integerp and tree_low_cst directly.  Move misapplied hunk
2348         for optimization wher SRC and DEST point to the same location.
2349         (expand_builtin_mempcpy): From here.
2350         (expand_builtin_memmove): Use integer_zerop instead of testing
2351         host_integerp and tree_low_cst_directly.
2352         (expand_builtin_memset): Likewise.
2353         (expand_builtin_memcmp): Likewise (and for integer_onep).
2354         (expand_builtin_strncmp): Likewise.
2355         (fold_builtin): Call the appropriate fold_builtin_foo functions
2356         to optimize memcpy, mempcpy, memmove, strcpy, strncpy, memcmp,
2357         strcmp and strncmp.
2358
2359 2003-10-15  Geoffrey Keating  <geoffk@apple.com>
2360
2361         * config/darwin-protos.h (machopic_non_lazy_ptr_name): Delete
2362         prototype.  Clean up some whitespace.
2363         * config/darwin.c: Use gen_rtx_FOO (...) rather than
2364         gen_rtx (FOO, ...).
2365         (machopic_non_lazy_ptr_name): Make static.
2366         (name_needs_quotes): Allow '.' and '$' unquoted.
2367         (machopic_legitimize_pic_address): Improve codegen in dynamic-no-pic
2368         case.
2369
2370 2003-10-15  Gábor Lóki  <alga@rgai.hu>
2371
2372         * fold-const.c (tree_swap_operands_p): Disable some features
2373         when optimizing for size.
2374
2375 2003-10-15  David Daney  <ddaney@avtrex.com>
2376
2377         * config/mips/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New
2378         * config/mips/mips.h (DWARF_FRAME_REGNUM): Fixed to allow unwind
2379         from leaf functions.
2380         (DWARF_FRAME_RETURN_COLUMN): Ditto.
2381         (SIGNAL_UNWIND_RETURN_COLUMN): New, used
2382         by MD_FALLBACK_FRAME_STATE_FOR.
2383         * testsuite/gcc.dg/cleanup-9.c: Added mips*-*-linux* target.
2384
2385 2003-10-15  Zack Weinberg  <zack@codesourcery.com>
2386
2387         * genmodes.c: Include hashtab.h.
2388         (modes_by_name, hash_mode, eq_mode, struct mode_adjust)
2389         (adj_bytesize, adj_alignment, adj_format, new_adjust)
2390         (_ADD_ADJUST, ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FORMAT)
2391         (print_maybe_const_decl, emit_mode_adjustments): New.
2392         (known_modes): Rename to modes.
2393         (find_mode): Kill class argument; look up in hash table.
2394         (new_mode): Insert into hash table also.
2395         (new_adjust): New.
2396         (reset_float_format, make_partial_integer_mode)
2397         (make_vector_mode): Tweak error reporting.
2398         (reset_float_format): Correct type of fourth argument.
2399         (emit_insn_modes_h): Add #defines to help make mode_size,
2400         mode_base_align, and real_format_for_mode conditionally const.
2401         (emit_mode_size, emit_mode_base_align): Use print_maybe_const_decl.
2402         (emit_real_format_for_mode): Likewise, but temporarily disabled.
2403         (emit_insn_modes_c): Call emit_mode_adjustments.
2404         (main): Initialize modes_by_name.
2405         * Makefile.in: Update dependencies.
2406         * machmode.def: Document EXPR arguments and new ADJUST_* statements.
2407         * machmode.h: Use CONST_MODE_SIZE and CONST_MODE_BASE_ALIGN in
2408         declarations of mode_size and mode_base_align.  Declare
2409         init_adjust_machine_modes.
2410         * toplev.c (backend_init): Call init_adjust_machine_modes.
2411
2412 2003-10-15  Olivier Hainque  <hainque@act-europe.fr>
2413
2414         * genmodes.c (calc_wider_mode): Allocate enough room for all the
2415         entries we'll possibly assign in the sort buffer.
2416
2417 2003-10-15  Ulrich Weigand  <uweigand@de.ibm.com>
2418
2419         * config.gcc (s390x-ibm-tpf*): New target.
2420         * doc/install.texi: Document it.
2421         * config/s390/t-tpf: New file.
2422         * config/s390/tpf.h: New file.
2423
2424 2003-10-15  Hans-Peter Nilsson  <hp@axis.com>
2425
2426         PR target/12598
2427         * config/cris/cris.md (define_split "*mov_sidesi_biap_mem"+1)
2428         (define_splits "*mov_sidesi_mem"+1, "casesi"+9, +10, +11, +12):
2429         Use cris_mem_op and replace_equiv_address, not gen_rtx_MEM.
2430         ("call", "call_value", define_split "*mov_sidesi_mem"+19, +20)
2431         (define_split "*mov_sidesi_mem"+21, +22, +23, +24, +25, +26, +27)
2432         (define_split "*mov_sidesi_mem"+28, +29, +30): Use
2433         replace_equiv_address, not gen_rtx_MEM.
2434         * config/cris/cris.c (cris_mem_op): New match_operator function.
2435         (cris_notice_update_cc): Use replace_equiv_address, not
2436         gen_rtx_MEM.
2437         * config/cris/cris.h (PREDICATE_CODES): Add cris_mem_op.
2438
2439 2003-10-15  Bernardo Innocenti <bernie@develer.com>
2440
2441         * config/m68k/m68k.h (MASK_SEP_DATA, TARGET_SEP_DATA,
2442         MASK_ID_SHARED_LIBRARY, TARGET_ID_SHARED_LIBRARY): Move
2443         definitions after the other flags.
2444
2445 2003-10-14  Ziemowit Laski  <zlaski@apple.com>
2446
2447         * c-parse.in (methoddef, methodproto): Call objc_add_method()
2448         instead of add_method().
2449         * objc/objc-act.c (objc_check_decl): Do not check for
2450         constant_string_type.
2451         (add_method): Rename to objc_add_method().
2452         (really_start_method): Call objc_add_method() instead of
2453         add_method().
2454         * objc/objc-act.h (add_method): Rename to objc_add_method().
2455
2456 2003-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
2457
2458         * config/s390/s390-protos.h (s390_alc_comparison): Add prototype.
2459         (s390_slb_comparison): Likewise.
2460         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
2461         New functions.
2462         * config/s390/s390.h (PREDICATE_CODES): Add s390_alc_comparison
2463         and s390_slb_comparison.
2464         * config/s390/s390.md ("*adddi3_31", "*subdi3_31"): Do not use on
2465         zSeries machines.
2466         ("*adddi3_31z", "*subdi3_31z"): New insns.
2467         ("*adddi3_alc_cc", "*adddi3_alc", "*subdi3_slb_cc", "*subdi3_slb",
2468         "*addsi3_alc_cc", "*addsi3_alc", "*subsi3_slb_cc", "*subsi3_slb"):
2469         New insns.
2470
2471 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
2472
2473         * configure.in: Clean up some feedback echoes.
2474         * configure: Regenerate.
2475
2476         * aclocal.m4: Properly quote names of macros being defined.
2477
2478         * config.gcc (am33_2.0-*-linux*): Use t-slibgcc-elf-ver.
2479
2480 2003-10-14  Steve Ellcey  <sje@cup.hp.com>
2481
2482         * config/ia64/ia64.c (ia64_expand_call): Force function address
2483         to DImode.
2484         * config/ia64/ia64.md (call_gp): Put DImode on operand 0.
2485
2486 2003-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
2487
2488         * config/s390/s390.md ("muldf3", "*muldf3", "*muldf3_ibm",
2489         "mulsf3", "*mulsf3", "*mulsf3_ibm"): Do not clobber CC.
2490         ("divdf3", "*divdf3", "*divdf3_ibm", "divsf3", "*divsf3",
2491         "*divsf3_ibm"): Likewise.
2492
2493 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
2494
2495         * config.gcc, config/m68hc11/t-m68hc11-gas: Replace uses of
2496         target_alias with target_noncanonical.
2497
2498 2003-10-14  Geoffrey Keating  <geoffk@apple.com>
2499
2500         * expr.c (block_move_libcall_safe_for_call_parm): Clean up,
2501         and add case for machines where outgoing register parameters
2502         get stack space.
2503
2504         * config/darwin.c (machopic_indirect_data_reference): Use a scratch
2505         register when generating indirect address.
2506
2507 2003-10-14  Richard Earnshaw  <rearnsha@arm.com>
2508
2509         * arm.c (arm_addimm_operand): MODE arguemnt is unused.
2510         * arm.md (cbranchne_decr1): Fix bootstrap warning.
2511
2512 2003-10-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2513
2514         * fixinc/inclhack.def (alpha_pthread_gcc): New fix.
2515         * fixinc/fixincl.x: Regenerate.
2516         * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_GCC_CHECK]: New
2517         testcase.
2518         Fixes PR bootstrap/9330.
2519
2520 2003-10-13  Eric Christopher  <echristo@redhat.com>
2521
2522         * config/frv/frv.c (frv_adjust_field_align): Redo check for
2523         too wide bitfields.
2524         (frv_hard_regno_mode_ok): Add SPR_P and AP_FIRST.
2525         * config/frv/frv.h (FUNCTION_PROFILER): Remove abort call.
2526         (SBSS_SECTION_ASM_OP): Remove.
2527         (EXTRA_SECTIONS): Remove in_sbss.
2528         (EXTRA_SECTION_FUNCTIONS): Remove SBSS_SECTION_FUNCTION.
2529         (SBSS_SECTION_FUNCTION, sbss_section): Remove.
2530         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change sbss_section to
2531         named_section.
2532
2533 2003-10-13  Nathanael Nerode  <neroden@gcc.gnu.org>
2534
2535         * Makefile.in, configure.in, config.host, mkheaders.in: Replace
2536         uses of ${target_alias} for directory names (and other places which
2537         won't like the empty string) with ${target_noncanonical}.  Introduce
2538         call early in configure.in to _GCC_TOPLEV_NONCANONICAL_TARGET so it's
2539         available.
2540         * configure: Regenerate.
2541
2542 2003-10-13  Ian Lance Taylor  <ian@wasabisystems.com>
2543
2544         * config/arm/iwmmxt.md (cond_iwmmxt_movsi_insn): New pattern.
2545         * config/arm/arm.md: For splits which rely on conditional moves,
2546         remove ! TARGET_IWMMXT condition.
2547
2548 2003-10-13  David S. Miller  <davem@redhat.com>
2549
2550         * ifcvt.c (num_removed_blocks): Rename to num_true_changes.
2551         (find_cond_trap): Always increment if we emit a conditional
2552         trap insn.
2553
2554 2003-10-13  Zack Weinberg  <zack@codesourcery.com>
2555
2556         * Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o
2557         with min-insn-modes.o.
2558         (STAGESTUFF): Add min-insn-modes.c.
2559         (genobjs): Add genmodes.o.
2560         (print-rtl.o, print-rtl1.o): Depend on $(TM_P_H).
2561         (insn-modes.o): Depend on $(TM_H) not $(GTM_H); also real.h.
2562         (min-insn-modes.c, min-insn-modes.o): New rules.
2563         (s-modes): Also generate min-insn-modes.c.
2564         ($(BUILD_PREFIX_1)insn-modes.o): Kill.
2565         * genmodes.c (struct mode_data): Add format field.
2566         (blank_mode, validate_mode, complete_mode): Update to match.
2567         (make_scalar_mode): Separate into make_int_mode and make_float_mode.
2568         (_SCALAR_MODE): Kill.
2569         (FLOAT_MODE, FRACTIONAL_FLOAT_MODE): Add format argument.
2570         (emit_insn_modes_c_header): Adjust.
2571         (emit_min_insn_modes_c_header, emit_real_format_for_mode)
2572         (emit_min_insn_modes_c): New functions.
2573         (emit_insn_modes_c): Call emit_real_format_for_mode.
2574         (main): Add -m option to generate min-insn-modes.c.
2575         * machmode.h: Update documentation.  Add format argument to
2576         all uses of FLOAT_MODE.
2577         * real.c: Don't define real_format_for_mode here.
2578
2579         * dwarfout.c: Move default definition of PRINT_REG...
2580         * defaults.h: ...here.
2581         * print-rtl.c: Include tm_p.h.
2582         (DEBUG_PRINT_REG, DEBUG_REGISTER_NAMES, debug_reg_names, reg_names):
2583         Kill.
2584         (print_rtx): Use PRINT_REG, not DEBUG_PRINT_REG.  But surround
2585         this entire block with #ifndef GENERATOR_FILE.
2586         * regclass.c: Unconditionally define reg_names.
2587         * config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.h
2588         Don't define DEBUG_REGISTER_NAMES.
2589         * config/rs6000/darwin.h: Don't use DEBUG_REGISTER_NAMES in
2590         redefinition of REGISTER_NAMES.
2591         * config/i386/i386.h: Don't define DEBUG_PRINT_REG.
2592
2593         * combine.c: Change all preprocessor conditionals on
2594         EXTRA_CC_MODES to use SELECT_CC_MODE instead; rearrange a bit
2595         for clarity.
2596         * genopinit.c: Remove mention of EXTRA_CC_MODES in comment.
2597         * configure.in: Don't define EXTRA_CC_MODES.
2598         * configure, config.in: Regenerate.
2599         * doc/tm.texi: Remove documentation of EXTRA_CC_MODES.
2600
2601         * config/arc/arc.c, config/m32r/m32r.c, config/sparc/sparc.c:
2602         May assume that GET_MODE_CLASS is accurate for extra CC modes
2603         at all times.
2604
2605         * config/i860/i860.h (INIT_CUMULATIVE_ARGS): Pass correct
2606         number of arguments to aggregate_value_p.
2607
2608         * genmodes.c (RESET_FLOAT_FORMAT, reset_float_format): New.
2609         * machmode.def: Explain ARCH-modes.def.  Document
2610         RESET_FLOAT_FORMAT.  Improve commentary on various mode
2611         clusters.  Do not define OI, PQI, PHI, PSI, PDI, QF, HF, TQF,
2612         XF, or TF modes here.  Remove backward-compatibility
2613         definition of CC.
2614
2615         * config/alpha/alpha-modes.def: New file; define TF mode.
2616         * config/arc/arm-modes.def: Define XF mode.
2617         * config/c4x/c4x-modes.def: Define QF and HF modes.  Unset
2618         float format for SF and DF modes.
2619         * config/dsp16xx/dsp16xx-modes.def: New file; define HF mode.
2620         * config/i386/i386-modes.def: Define XF and TF modes.
2621         * config/i960/i960-modes.def: Define TF mode.
2622         * config/ia64/ia64-modes.def: Define TF and OI modes.
2623         * config/m68k/m68k-modes.def: New file; define XF mode.
2624         * config/mips/mips-modes.def: New file; define TF mode, reset
2625         formats for SF and DF modes.
2626         * config/pa/pa-modes.def: Define TF mode.
2627         * config/rs6000/rs6000.c: Define TF and PSI modes.
2628         * config/s390/s390-modes.def: Define OI mode.
2629         * config/sh/sh-modes.def: New file; define PSI mode.
2630         * config/sparc/sparc-modes.def: Define TF mode.
2631         * config/vax/vax-modes.def: New file; reset formats for SF and
2632         DF modes.
2633
2634         * config/c4x/c4x.c (c4x_override_options): No need to mess
2635         with real_format_for_mode or set REAL_MODE_FORMATs.
2636         (c4x_immed_int_constant): Don't apply GET_MODE_CLASS to rtx
2637         variable.
2638         * config/i386/i386.c (override_options): No need to set
2639         REAL_MODE_FORMATs here.
2640         * config/i960/i960.c (i960_initialize): Likewise.
2641         * config/m68k/m68k.c (m68k_override_options): Likewise.
2642         * config/ia64/ia64.c (ia64_override_options): Set REAL_MODE_FORMAT
2643         for TFmode only if not the default.
2644         * config/mips/mips.c (override_options): Likewise.
2645         * config/vax/vax.c (override_optionms): Set REAL_MODE_FORMAT for
2646         DFmode only if not the default.
2647
2648         * config/i370/i370.h (RET_REG): Don't consider TFmode.
2649         * config/m68hc11/m68hc11.c (print_operand): Don't consider XFmode.
2650         * config/dsp16xx/dsp16xx.c (hard_regno_mode_ok): #if 0 out use
2651         of modes that don't appear anywhere in the machine description.
2652
2653         * config/arc/arc-modes.def, config/arm/arm-modes.def
2654         * config/c4x/c4x-modes.def, config/frv/frv-modes.def
2655         * config/i386/i386-modes.def, config/i960/i960-modes.def
2656         * config/ia64/ia64-modes.def, config/mmix/mmix-modes.def
2657         * config/pa/pa-modes.def, config/pdp11/pdp11-modes.def
2658         * config/rs6000/rs6000-modes.def, config/s390/s390-modes.def
2659         * config/sparc/sparc-modes.def: Convert to new style for
2660         declaring extra CC modes.
2661
2662 2003-10-13  Zack Weinberg  <zack@codesourcery.com>
2663
2664         * cpplex.c (_cpp_clean_line): In the common case of a line
2665         with no trigraphs and no \-newline, avoid writing to memory.
2666         (_cpp_skip_block_comment): Use a local 'cur' pointer instead
2667         of the buffer member.  Make c an uchar to avoid unnecessary
2668         sign extensions.
2669
2670 2003-10-13  Nathanael Nerode  <neroden@gcc.gnu.org>
2671
2672         * configure.in: Remove unnecessary test.
2673         * configure: Regenerate.
2674
2675         * configure.in: Fix grammatical error.  Move UWIN host error to...
2676         * config.host: Here.
2677         * configure: Regenerate.
2678
2679 2003-10-13  Andreas Krebbel  <krebbel1@de.ibm.com>
2680
2681         * config/s390/s390.md ("*fmadddf4", "*fmsubdf4", "*fmaddsf4",
2682         "*fmsubsf4"): Insns are now dependent on TARGET_FUSED_MADD instead
2683         of flag_unsafe_math_optimizations.
2684         * config/s390/s390.h ("MASK_NO_FUSED_MADD", "TARGET_NO_FUSED_MADD",
2685         "TARGET_FUSED_MADD", "TARGET_SWITCHES"): Introduced new target flags
2686         fused-madd and no-fused-madd.
2687         * doc/invoke.texi: Documented the new options fused-madd and
2688         no-fused-madd for S/390.
2689
2690 2003-10-14  Alan Modra  <amodra@bigpond.net.au>
2691
2692         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Choose
2693         MASK_ALIGN_NATURAL if rs6000_alignment_string not given.  Don't
2694         assign DEFAULT_ABI.
2695         (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Update comment.
2696         * config/rs6000/rs6000.c: Formatting.
2697         (rs6000_parse_alignment_option): Only set rs6000_alignment_flags
2698         when rs6000_alignment_string given.
2699
2700 2003-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2701
2702         PR target/12538
2703         * config/sparc/sparc.c (MUST_SAVE_REGISTER): Delete.
2704         (sparc_flat_must_save_register_p): New function to decide whether
2705         a register must be saved/restored in the function prologue/epilogue.
2706         (sparc_flat_compute_frame_size): Use it instead of MUST_SAVE_REGISTER.
2707
2708 2003-10-12  Steven Bosscher  <steven@gcc.gnu.org>
2709
2710         * config/avr/avr.c, config/avr/avr-protos.h: Convert to
2711         ISO C90 function declarations and definitions.
2712         * config/sh/sh.c, config/sh/sh-protos.h: Likewise.
2713
2714 2003-10-12  Nathanael Nerode  <neroden@gcc.gnu.org>
2715
2716         * config.gcc (*-*-freebsd*): Use tm_defines instead of tiny
2717         config files which do the same thing.
2718         * config/freebsd3.h, config/freebsd4.h, config/freebsd5.h,
2719         config/freebsd6.h: Remove now unnecessary files.
2720
2721 2003-10-12  Steven Bosscher  <steven@gcc.gnu.org>
2722
2723         * c-common.c (c_common_truthvalue_conversion): Warn if the
2724         address of a non-weak function is used as a truth value.
2725
2726 2003-10-12  Kazu Hirata  <kazu@cs.umass.edu>
2727
2728         * config/h8300/h8300.c (WORD_REG_USED): Use SP_REG instead of
2729         a literal.
2730         * config/h8300/h8300.h (REGNO_OK_FOR_BASE_P): Use MAC_REG
2731         instead of a literal.
2732
2733 2003-10-12  Hans-Peter Nilsson  <hp@bitrange.com>
2734
2735         * doc/extend.texi (Function Attributes): Mention the exceptional
2736         path for noreturn-marked functions.
2737
2738 2003-10-12  Jan Hubicka  <jh@suse.cz>
2739
2740         * cgraphunit.c (cgraph_decide_inlining): Fix uninitialized variable
2741         warning.
2742
2743 2003-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
2744
2745         * config/i386/i386.c (x86_this_parameter): Fix typo.
2746
2747 2003-10-11  Jan Hubicka  <jh@suse.cz>
2748
2749         * Makefile.in (web.o): New.
2750         * web.c: New file.
2751         * rtl.h (web_main): Declare.
2752         * timervar.def (TV_WEB): New.
2753         * toplev.c (dump_file_index, dump_file_info): Add DFI_web.
2754         (rest_of_hanle_web): New.
2755         (flag_web): New static variable.
2756         (lang_independent_options): Add "web".
2757         (rest_of_compilation): Call rest_of_handle_web.
2758         * invoke.texi (-fweb): Document.
2759         * common.opt (fweb): New.
2760         * flags.h (flag_web): New.
2761         * opts.c (decode_options): Set flag_web at -O3.
2762
2763         * passes.texi (web construction):  Document.
2764         * invoke.texi (-O3): Document that -fweb is enabled.
2765
2766         * regrename.c (regrename_optimize): Deal better with situation when
2767         replacement failed.
2768
2769         * sched-ebb.c: Include params.h and profile.h
2770         (schedule_ebbs):  Use tracer parameters to discover superblocks
2771         * Makefile.in (sched-ebb.o):  Add dependencies.
2772
2773 2003-10-11  Roger Sayle  <roger@eyesopen.com>
2774
2775         * fold-const.c (negate_mathfn_p): New function to determine whether
2776         a built-in mathematical function is sign preserving, f(-x) == -f(x).
2777         Add support for BUILT_IN_ASIN, BUILT_IN_ASINF and BUILT_IN_ASINL.
2778         (tree_swap_operands_p): Change API to take an additional argument
2779         indicating that the swapped operands evaluate in reverse order.
2780         Canonicalize VAR_DECLs and PARM_DECLs last if we can, i.e. neither
2781         operand side-effects or we don't care about flag_evaluation_order.
2782         (reorder_operands_p): New function to check whether its safe to
2783         evaluate the given operands in reverse order.
2784         (negate_expr_p):  We can always negate integer constants unless
2785         we honor -ftrapv and the signed type would overflow.  Only allow
2786         -(A-B) into B-A if reorder_operands_p says that its OK.  Allow
2787         negation of COMPLEX_CST if both real and imaginary parts can be
2788         negated.  Allow negation through floating point extensions and
2789         sign-preserving built-in functions.
2790         (negate_expr):  Move the code to negate integers from "fold" to
2791         here.  Always negate integer constants unless we honor -ftrapv
2792         and the signed type would overflow.  Always negate real constants
2793         unless we honor -ftrapping-math.  Only convert -(A-B) into B-A
2794         if allowed by reorder_operands_p.  Add support for COMPLEX_CST.
2795         Optimize negation through floating point extensions and
2796         sign-preserving built-in functions (as defined by negate_mathfn_p).
2797         (fold): Adjust calls to tree_swap_operands_p.
2798         (fold <NEGATE_EXPR>): Move the remaining negation optimizations
2799         to negate_expr_p/negate_expr.
2800         (fold <MINUS_EXPR>): Use reorder_operands_p to check whether we're
2801         allowed to convert (-A) - B into (-B) - A.
2802
2803 2003-10-11  Roger Sayle  <roger@eyesopen.com>
2804
2805         * builtins.c (expand_builtin_strcmp): Defend against the possibility
2806         that gen_cmpstrsi may fail: Stabilize the argument list against
2807         re-evaluation and expand the library call directly using this saved
2808         argument list if a cmpstrsi sequence can't be generated.
2809         (expand_builtin_strncmp): Likewise.
2810
2811         * config/i386/i386.md (cmpstrsi, movstrsi): Disable with -Os.
2812
2813 2003-10-11  Roger Sayle  <roger@eyesopen.com>
2814
2815         PR optimization/12260
2816         * simplify-rtx.c (simplify_unary_operation): Simplify all unary
2817         operations through CONST nodes.  Optimize (neg (plus X C)) as
2818         (minus -C X) for constant values C.
2819         (simplify_binary_operation): Optimize (minus (neg X) C) as
2820         (minus -C X) for constant values C.
2821         (simplify_plus_minus): Avoid creating (neg (const (plus X C)),
2822         instead create (minus -C X).
2823
2824 2003-10-11  Roger Sayle  <roger@eyesopen.com>
2825
2826         * expr.c (expand_expr <PLUS_EXPR>): Let expand_operands call
2827         safe_from_p for us, once it chooses an evaluation order.
2828         (expand_expr <MULT_EXPR>): Likewise.
2829         (expand_expr <MIN_EXPR> <MAX_EXPR>): Likewise.  If expand_operands
2830         places the second operand in "target", swap the operands.
2831         (do_store_flag): Let expand_operands call safe_from_p for us.
2832
2833 2003-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
2834
2835         PR optimization/12544
2836         * function.c (put_var_into_stack): Don't generate ADDRESSOFs
2837         for DECL_NONLOCAL decls.
2838
2839 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
2840
2841         * expr.c: Follow spelling conventions.
2842         * final.c: Likewise.
2843         * optabs.c: Likewise.
2844         * sched-deps.c: Likewise.
2845         * sdbout.c: Likewise.
2846
2847 Sat Oct 11 12:24:23 CEST 2003  Jan Hubicka  <jh@suse.cz>
2848
2849         * varasm.c (notice_global_symbol):  Fix handling of variables; avoid
2850         re-computing of variable.
2851
2852 2003-10-11  Richard Henderson  <rth@redhat.com>
2853
2854         * config/alpha/alpha.c (alpha_return_in_memory): Rename from
2855         return_in_memory, make static, change signature to match target hook.
2856         (alpha_setup_incoming_varargs): Make static, change signature to
2857         match target hook, add code for vms and unicos.
2858         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2859         TARGET_PROMOTE_PROTOTYPES, TARGET_STRUCT_VALUE_RTX,
2860         TARGET_RETURN_IN_MEMORY, TARGET_SETUP_INCOMING_VARARGS,
2861         TARGET_STRICT_ARGUMENT_NAMING,
2862         TARGET_PRETEND_OUTGOING_VARARGS_NAMED): New.
2863         * config/alpha/alpha-protos.h: Update.
2864         * config/alpha/alpha.h (PROMOTE_FUNCTION_ARGS,
2865         PROMOTE_FUNCTION_RETURN, RETURN_IN_MEMORY,
2866         SETUP_INCOMING_VARARGS): Remove.
2867         * config/alpha/unicosmk.h (SETUP_INCOMING_VARARGS): Remove.
2868         * config/alpha/vms.h (SETUP_INCOMING_VARARGS): Remove.
2869
2870 2003-10-11  Ian Lance Taylor  <ian@wasabisystems.com>
2871
2872         * config/arm/arm.c (arm_regno_class): Handle IWMMXT_GR_REGS.
2873
2874 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
2875
2876         * config/m68k/lb1sf68.asm: Follow spelling conventions.
2877         * config/m68k/m68k.c: Likewise.
2878         * config/m68k/m68k.h: Likewise.
2879         * config/m68k/m68k.md: Likewise.
2880
2881 2003-10-11  Roger Sayle  <roger@eyesopen.com>
2882
2883         * builtins.c (expand_builtin_memcpy): Optimize case when the two
2884         pointer arguments are the equal, non-volatile and side-effect free.
2885         (expand_builtin_mempcpy): Likewise.
2886         (expand_builtin_memmove): Likewise.
2887         (expand_builtin_strcpy): Likewise.
2888         (expand_builtin_memcmp): Likewise.
2889         (expand_builtin_strcmp): Likewise.
2890         (expand_builtin_strncmp): Likewise.
2891
2892 2003-10-11  Roger Sayle  <roger@eyesopen.com>
2893
2894         * combine.c (apply_distributive_law): Enable "distributive" floating
2895         point optimizations with -funsafe-math-optimizations.
2896
2897 2003-10-11  Andrew Pinski <pinskia@physics.uc.edu>
2898
2899         * genmodes.c (emit_mode_mask) Change MASK to MODE_MASK.
2900
2901 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
2902
2903         * config/m68k/m68k-protos.h: Remove the prototype for
2904         finalize_pic.
2905
2906 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
2907
2908         * config/m68k/m68k.c: Fix comment typos.
2909
2910 2003-10-11  Bernardo Innocenti  <bernie@develer.com>
2911
2912         * config/m68k/m68k-protos.h (use_return_insn): Change return type from
2913         int to bool.
2914         * config/m68k/m68k.c (struct m68k_frame): Add funcdef_no member.
2915         (current_frame): New global var.
2916         (m68k_compute_frame_layout): Cache computations in current_frame.
2917         (m68k_initial_elimination_offset): Use values from current_frame
2918         instead of recomputing them.
2919         (use_return_insn): Likewise.
2920         (m68k_output_function_prologue): Likewise.
2921         (m68k_output_function_epilogue): Likewise.
2922         * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Fold __PIC__ handling
2923         inside the block for __pic__.
2924
2925 2003-10-11  Peter Barada <peter@baradas.org>
2926             Bernardo Innocenti  <bernie@develer.com>
2927
2928         * config/m68k/m68k.c (m68k_frame): Move before protos referencing it.
2929         (m68k_save_reg): Add boolean parameter `interrupt_handler'.
2930         (m68k_interrupt_function_p): New function.
2931         (m68k_handle_fndecl_attribute): Ditto.
2932         (m68k_compute_frame_layout): Ditto.
2933         (m68k_attribute_table): Define back-end specific attributes.
2934         (m68k_output_function_epilogue): Emit RTE instruction for interrupt
2935         functions.
2936
2937 2003-10-11  Bernardo Innocenti  <bernie@develer.com>
2938
2939         * config/m68k/t-uclinux: New target Makefile fragment.
2940         * config/m68k/uclinux.h: New target macro file.
2941         * config.gcc (m68k-*-uclinux): New target definition.
2942
2943 2003-10-10  Roger Sayle  <roger@eyesopen.com>
2944
2945         * builtins.c (builtin_mathfn_code): Generalize to check whether
2946         the call is to any built-in function by comparing the call's
2947         argument list against the builtin decl's function type.
2948
2949 2003-10-10  Roger Sayle  <roger@eyesopen.com>
2950
2951         * cse.c (constant_pool_entries_regcost): New global variable to
2952         hold the register cost component of constant_pool_entries_cost.
2953         (fold_rtx): Calculate constant_pool_entries_regcost at the same
2954         time as constant_pool_entries_cost.
2955         (cse_insn): Set both src_folded_cost and src_folded_regcost from
2956         constant_pool_entries_cost and constant_pool_entries_regcost.
2957         (cse_main): Initialize constant_pool_entries_regcost to zero.
2958
2959         * optabs.c (expand_unop): Attach a REG_EQUAL note describing
2960         the semantics of the sequence of bit operations used to negate
2961         a floating-point value.
2962         (expand_abs_nojump): Likewise attach a REG_EQUAL note describing
2963         the semantics of the bit operations used to abs a floating point
2964         value.
2965
2966 2003-10-11  Bernardo Innocenti  <bernie@develer.com>
2967             Paul Dale  <pauli@snapgear.com>
2968
2969         * config/m68k/lb1sf68.asm: Add __PIC__ and __ID_SHARED_LIBRARY__
2970         support.
2971         * config/m68k/m68k-none.h (ASM_SPEC): Pass --pcrel to assembler on
2972         -fpic, -fPIC, -msep-data and -mid-shared-library.
2973         * config/m68k/m68k.c (m68k_library_id_string): New global variable.
2974         (override_options): Add -msep-data and -mshared-library-id support.
2975         (m68k_output_function_prologue): Generate code to load A5 for
2976         TARGET_ID_SHARED_LIBRARY and TARGET_SEP_DATA.
2977         (m68k_output_mi_thunk): Emit indirect jump on TARGET_ID_SHARED_LIBRARY.
2978         (m68k_output_pic_call): New function.
2979         * gcc/config/m68k/m68k.h (TARGET_SEP_DATA): New target flag.
2980         (TARGET_ID_SHARED_LIBRARY): Ditto.
2981         (TARGET_SWITCHES): Add switches for -mid-shared-library and -msep-data.
2982         * gcc/config/m68k/m68k.md (call): Call m68k_output_pic_call().
2983         (call_value): Likewise.
2984
2985 2003-10-10  Zack Weinberg  <zack@codesourcery.com>
2986
2987         * gengenrtl.c (find_formats, genheader): Make i an unsigned
2988         int, remove cast of NUM_RTX_CODE.
2989         * machmode.h: Make the HAVE_MACHINE_MODES #ifdef encompass the
2990         entire file.  Remove the #ifs on GET_MODE_MASK etc and
2991         GET_MODE_WIDER_MODE etc.
2992
2993 2003-10-10  Eric Christopher  <echristo@redhat.com>
2994
2995         * lcm.c (optimize_mode_switching): Change NORMAL_MODE
2996         to MODE_ENTRY and MODE_EXIT. Add MODE_AFTER for insns
2997         that set mode.
2998         * config/sh/sh.h (MODE_ENTRY): New macro.
2999         (MODE_EXIT): Ditto.
3000         (MODE_AFTER): Ditto.
3001         * config/sh/sh.md: Change for MODE_AFTER. Add
3002         fp_set attribute.
3003         * doc/tm.texi: Document MODE_AFTER, MODE_ENTRY, and MODE_EXIT.
3004
3005 2003-10-10  Zack Weinberg  <zack@codesourcery.com>
3006
3007         * genmodes.c, mode-classes.def: New files.
3008         * machmode.def: Rewritten to genmodes.c interface.
3009         * Makefile.in (extra_modes_file): New substitution variable.
3010         (MACHMODE_H): No longer includes machmode.def or
3011         @extra_modes_file@; instead, mode-classes.def and insn-modes.h.
3012         (BUILD_RTL): Add $(BUILD_PREFIX)insn-modes.o.
3013         (OBJS-common): Add insn-modes.o.
3014         (STAGESTUFF): Add insn-modes.c, insn-modes.h, s-modes, and
3015         genmodes$(build_exeext).
3016         (insn-modes.o, insn-modes.c, insn-modes.h, s-modes, genmodes.o,
3017         genmodes$(build_exeext), $(BUILD_PREFIX_1)insn-modes.o): New targets.
3018         (s-genrtl): Don't depend on $(RTL_BASE_H).
3019         (gengenrtl.o): Don't depend on coretypes.h, $(GTM_H), real.h,
3020         or $(RTL_BASE_H); just rtl.def.
3021         * gengenrtl.c: Don't include coretypes.h, tm.h, rtl.h, or
3022         real.h.  Give fake definition of CONST_DOUBLE_FORMAT and
3023         substitute definition of NUM_RTX_CODE.  Add casts to avoid
3024         warnings.
3025         * machmode.h: Include insn-modes.h, not machmode.def.  Include
3026         mode-classes.def to define enum mode_class.  Tweak definitions
3027         of GET_MODE_CLASS, GET_MODE_SIZE, GET_MODE_BITSIZE, GET_MODE_MASK,
3028         GET_MODE_INNER, GET_MODE_WIDER_MODE, GET_CLASS_NARROWEST_MODE.
3029         (inner_mode_array): Renamed mode_inner.
3030         (mode_base_align): New.
3031         * rtl.c (mode_name, mode_class, mode_bitsize, mode_size,
3032         mode_unit_size, mode_wider_mode, mode_mask_array,
3033         inner_mode_array, class_narrowest_mode): Delete definitions.
3034         * stor-layout.c (get_mode_alignment): Use mode_base_align.
3035         * real.h: Use MIN_MODE_FLOAT and MAX_MODE_FLOAT, not QFmode
3036         and TFmode, in real_format_for_mode and REAL_MODE_FORMAT.
3037
3038         * config/ip2k/ip2k.h, config/iq2000/iq2000.h:
3039         No need to define BITS_PER_UNIT.
3040
3041 2003-10-10  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3042
3043         * config/ia64/ia64.c (ia64_vms_init_libfuncs): New function.
3044         (ia64_output_function_prologue): Only write .prologue if --with-gnu-as.
3045         (ia64_initialize_trampoline): If not using GAS, declare trampoline
3046         as global.
3047         * config/ia64/ia64.h (ASM_APP_ON, ASM_APP_OFF): Add vers for not GAS.
3048         (ASM_OUTPUT_DEBUG_LABEL): Likewise.
3049
3050         * stor-layout.c (compute_record_mode): Don't force BLKmode if
3051         field is zero-length BLKmode.
3052         * expr.c (expand_expr, case COMPONENT_REF): Handle case of BLKmode
3053         zero-size references.
3054
3055         * combine.c (distribute_links): Properly test for REG being set.
3056
3057         * config/alpha/alpha.c (alpha_expand_block_mode): Don't use
3058         gen_lowpart and company except for REG.
3059
3060 2003-10-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3061
3062         * pa64-hpux.h (LINK_SPEC): Use `-z' option with HP ld.
3063
3064 2003-10-10  Nathanael Nerode  <neroden@gcc.gnu.org>
3065
3066         * config.gcc (mips*-*-netbsd*): Remove content-free line.
3067
3068 2003-10-10  Herman A.J. ten Brugge <hermantenbrugge@home.nl>
3069
3070         * gcov-io.h: Check BITS_PER_UNIT when defining gcov_unsigned_t,
3071         gcov_position_t and gcov_type.
3072
3073 2003-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>
3074
3075         * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
3076         * configure: Regenerate.
3077
3078 2003-10-09  Kazu Hirata  <kazu@cs.umass.edu>
3079
3080         * config/h8300/h8300.md (define_asm_attributes): Specify
3081         the length of an asm insn more precisely.
3082
3083 2003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3084
3085         * config/mips/iris6.h (SUBTARGET_CPP_SPEC): Define.
3086
3087 2003-10-09  Bob Wilson  <bob.wilson@acm.org>
3088
3089         * config/xtensa/xtensa.c (xtensa_dbx_register_number): Change first
3090         FP register number to 48 and MAC16 accumulator to 0x210.
3091
3092 2003-10-09  Nathanael Nerode  <neroden@gcc.gnu.org>
3093
3094         * config.gcc: Remove redundant thread_file setting clauses for
3095         various *-*-linux* targets.
3096
3097 2003-10-09  Kazu Hirata  <kazu@cs.umass.edu>
3098
3099         * config/h8300/h8300.md (define_asm_attributes): New.
3100
3101 2003-10-09  Roger Sayle  <roger@eyesopen.com>
3102
3103         * optabs.c (prepare_float_lib_cmp): Always attach a REG_EQUAL note
3104         to the comparison, as emit_libcall_block calls copy_rtx on equiv.
3105
3106 2003-10-09  Dorit Naishlos  <dorit@il.ibm.com>
3107
3108         * haifa-sched.c (ok_for_early_schedule): New function.
3109         (early_queue_to_ready): New function.
3110         (schedule_block): Allow early removal of insns from Q.
3111         (schedule_insn): Update INSN_TICK in case of premature
3112         issue.
3113         * common.opt (sched_stalled_insns): New flag.
3114         (sched_stalled_insns_dep): New flag.
3115         * flags.h: Same above flags.
3116         * opts.c: Same as above.
3117         * toplev.c: Same as above.
3118         * target.h (targetm.sched.is_costly_dependence): New
3119         hook.
3120         * target-def.h: Same as above.
3121         * config/rs6000/rs6000.h: (rs6000_sched_costly_dep):
3122         Support new flag -msched-costly-dep.
3123         (DEFAULT_SCHED_COSTLY_DEP): Define.
3124         * config/rs6000/rs6000.c:
3125         (rs6000_is_costly_dependence): New function.
3126         (is_load_insn, is_store_insn): New functions.
3127         (is_load_insn1, is_store_insn1, is_mem_ref): New
3128         functions.
3129         * doc/invoke.texi (-fsched-stalled-insns-dep)
3130         (-fsched-stalled-insns, -msched-costly-dep): Document
3131         options.
3132         * doc/tm.texi (is_costly_dependence): Define new
3133         scheduler target hook.
3134
3135 2003-10-09  Jason Merrill  <jason@redhat.com>
3136
3137         PR c++/6392
3138         * c-common.c (c_build_qualified_type): Look through arrays first.
3139         (c_apply_type_quals_to_decl): Look through arrays.
3140
3141         * c-common.c (c_apply_type_quals_to_decl): Unset TREE_READONLY for
3142         types with constructors.
3143
3144         * coverage.c (build_ctr_info_value): Use build_decl to make a
3145         VAR_DECL.
3146         (create_coverage): Likewise.
3147
3148         * stmt.c (resolve_asm_operand_names): Call check_unique_operand_names
3149         here.
3150         (expand_asm_operands): Not here.
3151         (parse_input_constraint): No longer static.
3152         * tree.h: Declare it.
3153
3154 2003-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
3155
3156         * config/sh/t-linux (SHLIB_LINK): Override to use a linker script
3157         libgcc_s.so.
3158         (SHLIB_INSTALL): Likewise.
3159
3160 2003-10-08  Nathanael Nerode  <neroden@gcc.gnu.org>
3161
3162         * doc/install.texi: Remove reference to removed 'pthreads' thread
3163         option.
3164
3165 2003-10-08  Aldy Hernandez  <aldyh@redhat.com>
3166
3167         * config/rs6000/rs6000.md ("abssi2_isel"): Add early clobber to
3168         operand 2.
3169
3170 2003-10-08  Nathanael Nerode  <neroden@gcc.gnu.org>
3171
3172         * config.gcc: Don't accept --enable-threads=pthreads.  Clean
3173         up related case statements.
3174         * configure.in: Don't accept --enable-threads=pthreads,
3175         decosf1, mach, or os2 (none of which work anyway).  Alphabetize
3176         supported thread files in case clause.
3177         * configure: Regenerate.
3178
3179 2003-10-08  Geoffrey Keating  <geoffk@apple.com>
3180
3181         * function.c (pad_to_arg_alignment): Move 'boundary_in_bytes'
3182         definition to above SPARC_STACK_BOUNDARY_HACK.
3183
3184 2003-10-08  Jason Merrill  <jason@redhat.com>
3185
3186         * c-pretty-print.c (pp_c_postfix_expression)
3187         <COMPOUND_LITERAL_EXPR>: Fix thinko.
3188
3189 2003-10-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3190
3191         * mklibgcc.in: Don't hide undefined or typeless symbols.
3192
3193 2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3194
3195         PR optimization/12142
3196         * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
3197         uses of the register in the SET_SRC.  Remove unnecessary argument.
3198         * pa.c (legitimize_pic_address): Before reload, use a scratch register
3199         for the intermediate result in loading the address of a SYMBOL_REF.
3200         Set the MEM_NOTRAP_P flag for the MEM.  Add a REG_EQUAL to the insn
3201         which loads the SYMBOL_REF address.
3202
3203 2003-10-08  Timo Kokkonen  <tjko@iki.fi>
3204             Eric Botcazou  <ebotcazou@libertysurf.fr>
3205
3206         PR bootstrap/12490
3207         * scan-decls.c (MAX_EXTERN_C_BRACES): New preprocessor constant
3208         to define the size of the extern_C_braces array.  Set it to 200.
3209         (scan_decls): Abort when extern_C_braces_length is out-of-bounds.
3210
3211 2003-10-08  Carlo Wood  <carlo@alinoe.com>
3212
3213         * Makefile.in (gengtype-lex.c): flex 2.5.4[a] doesn't understand
3214         a space after the -o option.  flex 2.5.31 understands both, with
3215         and without the space. Removed that space.
3216
3217 2003-10-08  Richard Sandiford  <rsandifo@redhat.com>
3218
3219         * config/mips/mips.c (mips_frame_info): Add cprestore_size field.
3220         (compute_frame_size): Initialize it.  Remove the .cprestore slot
3221         from args_size.
3222         (mips_output_function_prologue): Simplify accordingly.
3223         (mips_debugger_offset): Change the mips16 frame pointer offset from
3224         current_function_outgoing_args to cfun->machine->frame.args_size.
3225         (mips_initial_elimination_offset): Likewise.
3226         (mips_expand_prologue): Likewise.
3227         (mips_expand_epilogue): Likewise.
3228
3229 2003-10-08  Richard Sandiford  <rsandifo@redhat.com>
3230
3231         * config/mips/mips.h (EXTRA_CONSTRAINT): Add 'W' constraint.
3232         (EXTRA_MEMORY_CONSTRAINT): Define.
3233         (CAN_ELIMINATE): Remove lwu workaround.
3234         * config/mips/mips.md (*zero_extendsidi2_mem): Enable for mips16 too.
3235         Use a 'W' constraint for the source operand.
3236
3237 2003-10-08  Kazu Hirata  <kazu@cs.umass.edu>
3238
3239         * genopinit.c (main): Output code to declare undefined
3240         variables.
3241
3242 2003-10-07  Kelley Cook  <kcook@gcc.gnu.org>
3243
3244         * gengtype-lex.l: Remove -Wtraditional cruft.
3245         * Makefile.in (gengtype-lex.c): Likewise.
3246
3247 2003-10-07  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3248
3249         * cfgloopmanip.c (fix_irreducible_loops): Initialize e correctly.
3250
3251 2003-10-07  Jason Merrill  <jason@redhat.com>
3252
3253         PR c++/12519
3254         * c-semantics.c (genrtl_cleanup_stmt): Ignore the CLEANUP_DECL if
3255         it isn't a decl.
3256
3257 2003-10-07  Alexandre Oliva  <aoliva@redhat.com>
3258
3259         * gcc.c (cpp_options): Only pass -fworking-directory for -g* if
3260         not overridden.
3261         Fixes PR bootstrap/12173.
3262
3263 2003-10-07  Zack Weinberg  <zack@codesourcery.com>
3264
3265         * errors.c: Don't include coretypes.h or tm.h.
3266         (trim_filename): Use IS_DIR_SEPARATOR.
3267         * Makefile.in: Update dependencies of errors.o and
3268         $(BUILD_PREFIX_1)errors.o.
3269
3270 2003-10-07  Geoffrey Keating  <geoffk@apple.com>
3271
3272         * function.c (pad_to_arg_alignment): Take STACK_POINTER_OFFSET into
3273         account when aligning arguments.
3274         * calls.c (STACK_POINTER_OFFSET): Move default from here ...
3275         * defaults.h (STACK_POINTER_OFFSET): ... to here.
3276         * config/sparc/sparc.h (STACK_BOUNDARY): Add comment about how
3277         it's wrong when TARGET_ARCH64 && TARGET_STACK_BIAS.
3278         (SPARC_STACK_BOUNDARY_HACK): Define.
3279         * config/rs6000/rs6000.c (function_arg): On non-SVR4 systems,
3280         arrange for vector parameters to varargs functions to be passed
3281         in both memory and GPRs when appropriate.
3282         (rs6000_va_arg): Vector arguments passed in memory are 16-byte
3283         aligned.
3284
3285         * hooks.c (hook_bool_tree_true): New.
3286         (hook_rtx_tree_int_null): New.
3287         (hook_rtx_rtx_null): Use NULL, not 0.
3288         * hooks.h: Add 'extern' to everything.
3289         (hook_bool_tree_true): New.
3290         (hook_rtx_tree_int_null): New.
3291         * targhooks.c (hook_bool_CUMULATIVE_ARGS_true): New.
3292         * targhooks.h (hook_bool_CUMULATIVE_ARGS_true): New.
3293         * config/rs6000/rs6000-protos.h (setup_incoming_varargs): Remove
3294         prototype.
3295         * config/rs6000/rs6000.c (rs6000_return_in_memory): New.
3296         (setup_incoming_varargs): Prototype.
3297         (TARGET_PROMOTE_FUNCTION_ARGS): Define.
3298         (TARGET_PROMOTE_FUNCTION_RETURN): Define.
3299         (TARGET_STRUCT_VALUE_RTX): Define.
3300         (TARGET_RETURN_IN_MEMORY): Define.
3301         (TARGET_SETUP_INCOMING_VARARGS): Define.
3302         (TARGET_STRICT_ARGUMENT_NAMING): Define.
3303         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Define.
3304         (init_cumulative_args): Use rs6000_return_in_memory.
3305         (setup_incoming_varargs): Make 'static'.
3306         * config/rs6000/rs6000.h (PROMOTE_FUNCTION_ARGS): Delete.
3307         (PROMOTE_FUNCTION_RETURN): Delete.
3308         (STRUCT_VALUE): Delete.
3309         (RETURN_IN_MEMORY): Delete.
3310         (SETUP_INCOMING_VARARGS): Delete.
3311
3312 2003-10-07  Gerald Pfeifer  <gerald@pfeifer.com>
3313
3314         * doc/invoke.texi (Warning Options): Simplify and clarify the
3315         descriptions of -Wnonnull and -Winit-self.
3316
3317 2003-10-07  Richard Earnshaw  <rearnsha@arm.com>
3318
3319         * optabs.c (init_intraclass_conv_libfuncs): Fix order of array
3320         indicees for floating-point conversersion libcalls.
3321
3322 2003-10-07  Nathanael Nerode  <neroden@gcc.gnu.org>
3323
3324         * Makefile.in: Add more comments separating large conceptually
3325         separate sections.
3326
3327         * configure.in: Clean up thread file logic.
3328         * configure: Regenerate.
3329
3330 2003-10-07  Danny Smith  <dannysmith@users.sourceforge.net>
3331
3332         * config/i386/cygming.h (READONLY_DATA_SECTION_ASM_OP): Define.
3333         (switch_to_section): Handle in_readonly_data.
3334         * config/i386/winnt.c (i386_pe_asm_named_section): Handle
3335         readonly data.
3336
3337 2003-10-07  Richard Earnshaw  <rearnsha@arm.com>
3338
3339         * arm.md (cmpsi2_addneg): New ARM pattern. Add peephole2 to generate
3340         it.
3341         (cbranchne_decr1): New Thumb pattern.
3342         * arm.c (arm_addimm_operand): New insn predicate.
3343         * arm-protos.h: Add a prototype for it.
3344         * arm.h (PREDICATE_CODES): Add it.
3345
3346 2003-10-07  Dorit Naishlos <dorit@il.ibm.com>
3347
3348         * sched-int.h (sched_info): New field
3349         sched_max_insns_priority.
3350         * sched-rgn.c (init_ready_list): Add invocations to
3351         targetm.sched.adjust_priority.
3352         (sched_max_insns_priority): Init new field.
3353         * sched-ebb.c (sched_max_insns_priority): Init new field.
3354         * haifa-sched.c (set_priorities): Set
3355         sched_info->sched_max_insns_priority.
3356         * config/rs6000/rs6000.h:
3357         (rs6000_sched_restricted_insns_priority_str): Support new
3358         flag -mprioritize-restricted-insns.
3359         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Define.
3360         * config/rs6000/rs6000.c (is_dispatch_slot_restricted): New
3361         function.
3362         (rs6000_adjust_priority): Change priority of restricted
3363         insns, using above new function and new flag.
3364         * doc/invoke.texi (-mprioritize-restricted-insns): Document
3365         new option.
3366
3367 2003-10-07  Zack Weinberg  <zack@codesourcery.com>
3368
3369         * expr.c (cmpstr_optab, cmpmem_optab): New.
3370         * genopinit.c: Initialize them.
3371         * optabs.h: Declare them.
3372         * optabs.c (init_optabs): Clear them.
3373         (prepare_cmp_insn):  Use cmpstr_optab and cmpmem_optab to find
3374         block memory compare insns, not conditional chains.  Restructure
3375         the fallback generation of a call to memcmp/bcmp for better
3376         readability.
3377
3378 2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
3379
3380         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): New macro.
3381         (mips_save_restore_fn): New typedef.
3382         (mips_add_large_offset_to_sp, mips_emit_frame_related_store): Remove.
3383         (mips_set_frame_expr, mips_frame_set): Move above prologue code.
3384         (save_restore_insns): Remove, replacing with...
3385         (mips_save_restore_reg, mips_for_each_saved_reg): ...these new fns.
3386         (mips_save_reg, mips_restore_reg): New function.
3387         (mips_expand_prologue, mips_expand_epilogue): Rework.
3388         * config/mips/mips.h (MIPS_TEMP1_REGNUM, MIPS_TEMP2_REGNUM): Remove.
3389         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): New macros.
3390         (MIPS_PROLOGUE_TEMP, MIPS_EPILOGUE_TEMP): New macros.
3391
3392 2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
3393
3394         * config/mips/mips.c (mips_expand_prologue): Remove unused
3395         traversal of function arguments.
3396
3397 2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
3398
3399         * doc/invoke.texi: Remove documentation of -mentry.
3400         * config/mips/mips.c (mips_entry_string, mips_entry): Remove.
3401         (override_options, mips_save_reg_p): Remove handling.
3402         (compute_frame_size, mips_output_function_prologue): Likewise.
3403         (mips_expand_prologue, mips_expand_epilogue): Likewise.
3404         * config/mips/mips.h (mips_entry_string): Remove declaration.
3405         (TARGET_OPTIONS): Remove -mentry.
3406         * config/mips/mips16.S: Remove mention of -mentry.
3407
3408 2003-10-06  Zack Weinberg  <zack@codesourcery.com>
3409
3410         * libfuncs.h (LTI_extendsfdf2, LTI_extendsfxf2, LTI_extendsftf2)
3411         (LTI_extenddfxf2, LTI_extenddftf2, LTI_truncdfsf2, LTI_truncxfsf2)
3412         (LTI_trunctfsf2, LTI_truncxfdf2, LTI_trunctfdf2, LTI_floatsisf)
3413         (LTI_floatdisf, LTI_floattisf, LTI_floatsidf, LTI_floatdidf)
3414         (LTI_floattidf, LTI_floatsixf, LTI_floatdixf, LTI_floattixf)
3415         (LTI_floatsitf, LTI_floatditf, LTI_floattitf, LTI_fixsfsi, LTI_fixsfdi)
3416         (LTI_fixsfti, LTI_fixdfsi, LTI_fixdfdi, LTI_fixdfti, LTI_fixxfsi)
3417         (LTI_fixxfdi, LTI_fixxfti, LTI_fixtfsi, LTI_fixtfdi, LTI_fixtfti)
3418         (LTI_fixunssfsi, LTI_fixunssfdi, LTI_fixunssfti, LTI_fixunsdfsi)
3419         (LTI_fixunsdfdi, LTI_fixunsdfti, LTI_fixunsxfsi, LTI_fixunsxfdi)
3420         (LTI_fixunsxfti, LTI_fixunstfsi, LTI_fixunstfdi, LTI_fixunstfti)
3421         (extendsfdf2_libfunc, extendsfxf2_libfunc, extendsftf2_libfunc)
3422         (extenddfxf2_libfunc, extenddftf2_libfunc, truncdfsf2_libfunc)
3423         (truncxfsf2_libfunc, trunctfsf2_libfunc, truncxfdf2_libfunc)
3424         (trunctfdf2_libfunc, floatsisf_libfunc, floatdisf_libfunc)
3425         (floattisf_libfunc, floatsidf_libfunc, floatdidf_libfunc)
3426         (floattidf_libfunc, floatsixf_libfunc, floatdixf_libfunc)
3427         (floattixf_libfunc, floatsitf_libfunc, floatditf_libfunc)
3428         (floattitf_libfunc, fixsfsi_libfunc, fixsfdi_libfunc, fixsfti_libfunc)
3429         (fixdfsi_libfunc, fixdfdi_libfunc, fixdfti_libfunc, fixxfsi_libfunc)
3430         (fixxfdi_libfunc, fixxfti_libfunc, fixtfsi_libfunc, fixtfdi_libfunc)
3431         (fixtfti_libfunc, fixunssfsi_libfunc, fixunssfdi_libfunc)
3432         (fixunssfti_libfunc, fixunsdfsi_libfunc, fixunsdfdi_libfunc)
3433         (fixunsdfti_libfunc, fixunsxfsi_libfunc, fixunsxfdi_libfunc)
3434         (fixunsxfti_libfunc, fixunstfsi_libfunc, fixunstfdi_libfunc)
3435         (fixunstfti_libfunc): Delete.
3436         * optabs.h (struct optab_handlers): Break out of struct optab.
3437         (struct convert_optab, convert_optab, enum convert_optab_index,
3438         convert_optab_table, sext_optab, zext_optab, trunc_optab,
3439         sfix_optab, ufix_optab, sfixtrunc_optab, ufixtrunc_optab,
3440         sfloat_optab, ufloat_optab): New.
3441         (set_conv_libfunc): Prototype.
3442         (GEN_FCN): Use C90 indirect call syntax, remove unnecessary cast.
3443         (trunc_optab): Renamed btrunc_optab.
3444  &nb