OSDN Git Service

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