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