OSDN Git Service

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