OSDN Git Service

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