1 2004-05-3 Mike Stump <mrs@apple.com>
3 * doc/invoke.texi (Directory Options): Document -iquote.
4 * doc/cpp.texi: Likewise.
5 * doc/cppopts.texi: Likewise.
6 * c-opts.c (c_common_missing_argument): Add -iquote processing.
7 (c_common_handle_option): Likewise.
9 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
10 * c-incpath.c (merge_include_chains): Update comment to use -iquote.
12 * c-opts.c (case OPT_I): Deprecate -I- support.
13 * doc/invoke.texi: Likewise.
14 * doc/cpp.texi: Likewise.
15 * doc/cppopts.texi: Likewise.
17 2004-05-05 Steven Bosscher <stevenb@suse.de>
19 * basic-block.h (free_basic_block_vars): Update prototype.
20 * flow.c (free_basic_block_vars): Remove the keep_head_end_p
22 (life_analysis): Update call.
23 * ifcvt.c (if_convert): Likewise.
24 * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
25 * passes.c (rest_of_handle_final): Likewise.
26 (rest_of_compilation): Likewise.
27 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
29 * emit-rtl.c (next_real_insn): Use INSN_P.
30 (prev_real_insn): Likewise.
32 2004-05-05 Eric Christopher <echristo@redhat.com>
34 * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
37 2004-05-05 Paolo Bonzini <bonzini@gnu.org>
39 * config/rs6000/rs6000.c (build_opaque_vector_type):
41 (rs6000_init_builtins): Use it.
43 2004-05-04 Bernard Giroud <bgiroud2@free.fr>
45 * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
46 (func_table): Change type from char ** to vms_func_ref.
47 (write_rtnbeg): Update to reflect func_table change. Use
48 fde->funcdef_number instead of rtnnum in output.
49 (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
51 2004-05-04 Paolo Bonzini <bonzini@gnu.org>
52 Richard Henderson <rth@redhat.com>
56 * c-common.c (vector_types_convertible_p): New function.
57 * c-typeck.c (comptypes): Recurse on vector types.
58 (convert_for_assignment): Use vector_types_convertible_p.
59 (digest_init): Use vector_types_convertible_p to check
60 validness of constant vector initializers; otherwise treat
62 * tree.c (make_or_reuse_type): New.
63 (build_common_tree_nodes): Use it.
64 * cp/call.c (standard_conversion): Likewise.
65 * cp/typeck.c (comptypes): Recurse on vector types.
66 (convert_for_assignment): Use vector_types_convertible_p.
68 2004-05-04 Chris Demetriou <cgd@broadcom.com>
70 * config/mips/mips.c (override_options): Default to no
71 generation of branch-likely operations when tuning for
72 CPUs where they tend to have a negative performance impact
75 2004-05-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
77 * expr.c (store_constructor_field): Don't call store_constructor
78 if bitsize is not a multiple of a byte.
80 2004-05-04 Richard Sandiford <rsandifo@redhat.com>
82 * reload1.c (inherit_piecemeal_p): New function.
83 (emit_reload_insns): When reloading a group of hard registers, use
84 inherit_piecemeal_p to decide whether the values of individual hard
85 registers can be inherited.
87 2004-05-04 H.J. Lu <hongjiu.lu@intel.com>
89 * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
90 * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
91 * config/t-linux (LIB2ADDEHDEP): Likewise.
93 2004-05-04 Paul Brook <paul@codesourcery.com>
95 * config/arm/crti.asm: Push an even number of registers.
96 * config/arm/crtn.asm: And restore them. Load via sp.
98 2004-05-04 Paolo Bonzini <bonzini@gnu.org>
100 * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
101 Collect overhead information.
102 (ggc_alloc_stat): New name of ggc_alloc. Add MEM_STAT_DECL
103 parameter and pass it through.
104 (ggc_alloc_typed_stat): New name of ggc_alloc_typed. Add
105 MEM_STAT_DECL parameter and pass it through.
106 (ggc_alloc_zone_stat): New name of ggc_alloc_zone. Add
107 MEM_STAT_DECL parameter and pass it through.
109 2004-05-03 Aldy Hernandez <aldyh@redhat.com>
111 * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
113 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
115 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
116 rs6000_hard_regno_nregs.
118 2004-05-03 Eric Christopher <echristo@redhat.com>
120 * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
121 prologue insn instead of setting up call.
122 (s390_emit_epilogue): Ditto.
123 * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
124 (define_constants): Add numbers for above patterns.
126 2004-05-03 Eric Christopher <echristo@redhat.com>
128 * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
129 * config/s390/s390.c (s390_conditional_register_usage): ...here.
130 * config/s390/s390-protos.h: Prototype.
132 2004-05-03 Joe Buck <jbuck@welsh-buck.org>
134 * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
137 2004-05-03 Eric Christopher <echristo@redhat.com>
139 * config/mips/mips.md: Fix branch length attribute definition.
141 2004-05-03 Aldy Hernandez <aldyh@redhat.com>
143 * config.gcc: Remove --enable-altivec support.
145 * config/rs6000/altivec-defs.h: Remove.
147 2004-05-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
149 * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
150 * fixinc/fixincl.x: Regenerate.
152 2004-05-03 Uros Bizjak <uros@kss-loka.si>
154 * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
156 (log?f2, log10?f2, log2?f2): Reimplement expanders with
158 (*fxtractsf3, *fxtractdf3): Remove insn definition.
159 (logb?f2): Reimplement expanders with float_truncate insn.
161 2004-05-03 Graham Stott <graham.stott@btinternet.com>
164 * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
165 force_type_die for CONST_DECL.
167 2004-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
168 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
170 * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
171 tm-dwarf2.h to tm_file.
172 (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
173 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
174 (ASM_DEBUG_SPEC): Delete.
176 2004-05-03 Uros Bizjak <uros@kss-loka.si>
178 * optabs.h (enum optab_index): Add new OTI_expm1.
179 (expm1_optab): Define corresponding macro.
180 * optabs.c (init_optabs): Initialize expm1_optab.
181 * genopinit.c (optabs): Implement expm1_optab using expm1?f2
183 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
185 (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
186 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
188 * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
189 to implement expm1, expm1f and expm1l built-ins as inline x87
192 2004-05-02 Alexandre Oliva <aoliva@redhat.com>
194 2003-11-19 Richard Sandiford <rsandifo@redhat.com>
195 * config/frv/frv.md (*return_true, *return_false): New patterns.
197 2004-05-02 Kazu Hirata <kazu@cs.umass.edu>
199 * rtl.h (PHI_NODE_P): Remove.
201 2004-05-02 Eric Botcazou <ebotcazou@act-europe.fr>
204 * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
205 when passed -2 as 'align'.
206 (put_var_into_stack): Use 'bool' as the type for the three local
207 predicates. Adjust calls to put_reg_into_stack.
208 When passed a CONCAT, instruct put_reg_into_stack to use
209 a consecutive stack slot for the second part.
210 (put_reg_into_stack): Remove 'promoted_mode' parameter, add
211 'consecutive_p' parameter. Turn the three predicates into 'bool'
212 parameters. Retrieve the register mode from 'reg'.
213 When consecutive_p is true, instruct assign_stack_local_1 to use
214 BITS_PER_UNIT alignment.
215 (put_addressof_into_stack): Use 'bool' as the type for the two
216 local predicates. Adjust call to put_reg_into_stack.
218 2004-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
220 * fold-const.c (fold_convert_const, fold): Add missing
223 2004-05-02 Alexandre Oliva <aoliva@redhat.com>
225 * configure.ac (FLEX, BISON): Only use tools from the build tree
226 if build equals host.
227 * configure: Rebuilt.
229 * config/frv/frv-protos.h (frv_expand_epilogue,
230 frv_expand_fdpic_call): Add bool argument.
231 * config/frv/frv.c (frv_function_ok_for_sibcall): New.
232 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
233 (frv_expand_epilogue): Use new argument to decide whether to emit
234 return instruction or copy the return address to LR.
235 (frv_expand_fdpic_call): Inline PLT entry when emitting direct
237 (sibcall_operand): New.
238 * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
239 PLUS nor LABEL_REF. Add sibcall_operand.
240 * config/frv/frv.md (call, call_value): Pass false to
241 frv_expand_fdpic_call.
242 (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
243 (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
244 sibcall_value_internal, sibcall_value_fdpicdi): New.
245 (return_unsigned_true, return_unsigned_false): New.
246 (epilogue): Adjust call to frv_expand_epilogue.
247 (sibcall_epilogue): New.
249 * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
250 (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
251 before redefining them.
253 2004-05-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
255 * builtins.c (fold_fixed_mathfn): New function.
256 (fold_builtin_lround, fold_builtin): Use it.
258 2004-05-01 Jakub Jelinek <jakub@redhat.com>
260 * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
261 also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
263 2004-05-01 Kazu Hirata <kazu@cs.umass.edu>
265 * config/cris/cris.h: Revert my "fix comment typos" patch.
267 2004-05-01 Richard Sandiford <rsandifo@redhat.com>
269 * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
271 2004-05-01 Falk Hueffner <falk@debian.org>
273 * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
274 builtin_insll): Disallow 0 as first input operand.
276 2004-05-01 Falk Hueffner <falk@debian.org>
278 * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
280 2004-05-01 Ulrich Weigand <uweigand@de.ibm.com>
283 * expr.c (expand_expr_real): Do not call preserve_temp_slots
284 on a TARGET_EXPR temp.
285 * function.c (assign_stack_temp_for_type): Set 'keep' flag for
286 TARGET_EXPR temp slots.
288 2004-05-01 Paolo Bonzini <bonzini@gnu.org>
290 * simplify-rtx.c (simplify_ternary_operation): When
291 converting an IF_THEN_ELSE to a relational op, return
294 2004-04-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
296 * builtins.c (fold_builtin_round): Fix comment typo.
297 (fold_builtin_lround): New function.
298 (fold_builtin): Use it.
300 2004-04-20 Andrew Pinski <pinskia@physics.uc.edu>
303 * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
304 more like the one in config/dbxelf.h.
306 2004-04-30 Zack Weinberg <zack@codesourcery.com>
308 * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
309 and adjust definition accordingly.
310 (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
311 (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
312 * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
315 2004-04-30 Jason Merrill <jason@redhat.com>
318 * config/i386/winnt.c (associated_type): Look for attributes on
319 the TYPE_MAIN_VARIANT of *this.
320 * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
321 apply the attributes to the variants.
323 2004-04-30 Paul Brook <paul@codesourcery.com>
325 * config.gcc: Simplify arm --with-{cpu,tune} test.
326 * config/arm/arm-cores.def: Document whitespace restrictions.
328 2004-04-30 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
331 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
333 2004-04-30 Brian Ford <ford@vss.fsi.com>
334 DJ Delorie <dj@redhat.com>
336 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
337 (DWARF2_DEBUGGING_INFO): Define to enable.
338 (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
340 * configure.ac (Target-specific assembler checks)
341 <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
343 * configure: Regenerate.
344 * config.in: Likewise.
346 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
347 (ASM_OUPUT_DWARF_OFFSET): Define.
349 2004-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
351 * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
352 (s390_emit_call): New function prototype added.
353 (s390_tls_get_offset): Function removed.
354 * config/s390/s390.c (s390_function_ok_for_sibcall,
355 s390_call_saved_register_used_p): New functions.
356 (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
357 (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
358 (s390_emit_tls_call_insn): New function.
359 (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
361 (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
362 (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
364 * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
365 register number used to hold the target address for sibcalls.
366 * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
368 ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
369 "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
370 ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
372 ("call", "call_value"): Call s390_emit_call to emit the call patterns.
373 ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
374 "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
375 ("epilogue"): Changed the call to s390_emit_epilogue to use the
378 2004-04-30 Kazu Hirata <kazu@cs.umass.edu>
380 * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
381 cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
382 reg-stack.c, varasm.c, config/alpha/ev4.md,
383 config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
384 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
385 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
386 config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
387 config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
388 config/ia64/itanium2.md, config/ip2k/ip2k.c,
389 config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
390 config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
393 2004-04-30 Paul Brook <paul@codesourcery.com>
395 * config.gcc: Default ep9312 to hard-float.
396 * config/arm/arm-cores.def: Add ARCH field.
397 * config/arm/arm.c (FL_FOR_ARCH*): Define.
398 (arm_arch_cirrus): New variable.
399 (all_cores): Set and use arch.
400 (all_architectures): Ditto.
401 (arm_arch_name): New variable.
402 (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
403 Set and use arm_arch_cirrus.
404 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
405 (enum processor_type): Update ARM_CORE define.
406 (enum target_cpus): Add. Replaces TARGET_CPU_* defines.
407 (CPP_SPEC): Remove %(cpp_cpu_arch).
408 (CPP_ARCH_DEFAULT_SPEC): Remove.
409 (CPP_CPU_ARCH_SPEC): Remove.
410 (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
411 (FPUTYPE_DEFAULT): Don't define here.
413 2004-04-30 J"orn Rennecke <joern.rennecke@superh.com>
415 * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
418 2004-04-30 Paul Brook <paul@codesourcery.com>
420 * arm.c (arm_needs_doubleword_align): Use mode alignment.
422 2004-04-30 Paolo Bonzini <bonzini@gnu.org>
424 * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
426 [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
429 2004-04-30 Uros Bizjak <uros@kss-loka.si>
431 * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
434 2004-04-29 Nick Clifton <nickc@redhat.com>
437 * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
438 * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
439 Delete static from definition.
440 * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
442 2004-04-30 Uros Bizjak <uros@kss-loka.si>
444 * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
445 UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
446 <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
447 <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
449 2004-04-29 Richard Guenther <richard.guenther@uni-tuebingen.de>
451 * commom.opt (Wfatal-errors): Add it.
452 * diagnostic.c (flag_fatal_errors): Define it.
453 (diagnostic_action_after_output): Check for flag_fatal_errors.
454 * flags.h (flag_fatal_errors): Declare it.
455 * opts.c (common_handle_option): Add OPT_Wfatal_errors.
456 * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
458 2004-04-30 Josef Zlomek <zlomekj@suse.cz>
460 * gcse.c (remove_reachable_equiv_notes): Delete notes also in
461 blocks which have kill flag set.
463 2004-04-29 Ben Elliston <bje@au.ibm.com>
465 * configure.ac (--with-as): Abort if user-supplied assembler
467 (--with-ld): Likewise for the linker.
468 * configure: Regenerate.
470 2004-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
472 * convert.c (convert_to_integer): Ensure `long_integer_type_node'
473 isn't NULL before using it.
475 2004-04-29 Richard Sandiford <rsandifo@redhat.com>
478 * config/mips/mips.md (load_df_low): Use default length.
479 (load_df_high, store_df_high): Likewise.
481 2004-04-29 Kazu Hirata <kazu@cs.umass.edu>
483 * config/mips/mips.md, config/mips/sb1.md,
484 config/rs6000/rs6000.c: Fix comment typos.
486 2004-04-29 Kazu Hirata <kazu@cs.umass.edu>
488 * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
491 2004-04-29 Douglas B Rupp <rupp@gnat.com>
493 * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
494 (delete_if_ordinary): Use above macro.
495 * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
497 * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
499 2004-04-29 Richard Earnshaw <rearnsha@arm.com>
501 * c-decl.c (get_parm_info): Use the correct tag keywords when
502 warning about type declarations in prototypes.
504 2004-04-29 Paul Brook <paul@codesourcery.com>
506 * config.gcc: Pull list of cores from arm-cores.def.
508 2004-04-29 Paolo Bonzini <bonzini@gnu.org>
510 * combine.c (combine_simplify_rtx): Adjust call to use
511 simplify_relational_operation. Do not use SELECT_CC_MODE
512 when a comparison already has a MODE_CC mode.
514 2004-04-29 Paolo Bonzini <bonzini@gnu.org>
516 (simplify_set): simplify_relational_operation may now
517 return another relational expression.
518 * cse.c (fold_rtx): simplify_relational_operation now
519 takes of computing the comparison mode.
520 * dojump.c (compare_from_rtx): Use simplify_relational_operation,
522 (do_compare_rtx_and_jump): Likewise.
523 * integrate.c (subst_constants): simplify_relational_operation
524 may now return another relational expression.
525 * simplify-rtx.c (simplify_gen_relational): Move most code to
526 the new simplify_relational_operation and
527 simplify_relational_operation_1 functions.
528 (simplify_relational_operation): Rewritten.
529 (simplify_relational_operation_1): New function.
530 (simplify_ternary_operation): simplify_relational_operation
531 may now return another relational expression.
532 (simplify_rtx): Remove unnecessary temp variable.
534 2004-04-29 Uros Bizjak <uros@kss-loka.si>
536 * reg-stack.c (swap_to_top): New function.
537 (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
539 (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
540 (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
543 * config/i386/i386.md (UNSPEC_FSCALE): Remove.
544 (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
545 (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
547 (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
548 (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
551 2004-04-28 Serge Belyshev <1319@bot.ru>
554 * coverage.c (read_counts_file): Fix usage of warning () call.
555 * pretty-print.c (pp_base_format_text): Fix typo in the comment.
557 2004-04-28 Ben Elliston <bje@au.ibm.com>
559 * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
560 options with "-" in the option index.
561 (SPARC Options): Likewise.
562 (M32R/D Options): Likewise.
564 2004-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
566 * convert.c (convert_to_integer): Convert (long)round -> lround,
569 2004-04-28 Andrew Pinski <pinskia@physics.uc.edu>
571 * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
572 Return false if we do not have fp register.
573 (addrs_ok_for_quad_peep): Rename to ...
574 (mems_ok_for_quad_peep): this.
575 Add check for volatile memory.
576 * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
578 (mems_ok_for_quad_peep): this.
579 * config/rs6000/rs6000.md: Change peephole's for lfq/stq
581 (lfq_power2): New instruction.
582 (stfq_power2): Likewise.
584 2004-04-28 Jan Hubicka <jh@suse.cz>
587 * function.c (do_warn_unused_parameter): Break out form ...
588 (expand_function_end): ... here; warn only when not using cgraphunit.
589 * function.h (do_warn_unused_parameter): Declare.
590 * cgraphunit.c: Include function.h.
591 (cgraph_finalize_function): Do unused parameter warning.
592 * Makefile.in (cgraphunit.o): Depend on function.h
594 2004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
596 * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
597 calling install-info on $(DESTDIR)$(infodir)/dir already being
600 2004-04-28 Paul Brook <paul@codesourcery.com>
602 * dwarf2out.c (mem_loc_descriptor): Handle shifts.
604 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
606 * gcse.c (find_moveable_store): Do not accept store insns with
609 2004-04-28 Paul Brook <paul@codesourcery.com>
611 * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
612 * function.c (assign_temp): Ditto.
613 * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
615 2004-04-28 Paul Brook <paul@codesourcery.com>
617 * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
619 2004-04-28 Josef Zlomek <zlomekj@suse.cz>
621 * var-tracking.c (variable_different_p): Add a parameter
622 compare_current_location, compare current location of variable parts
624 (dataflow_set_different_1): Pass compare_current_location == false.
625 (dataflow_set_different_2): Pass compare_current_location == false.
626 (emit_notes_for_differences_1): Pass compare_current_location == true.
628 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
630 * config/s390/s390.md ("casesi"): Mark jump table access as
631 non-trapping and unchanging.
633 2004-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
636 * dwarf2out.c (reg_number): Rename to dbx_reg_number. Adjust all
638 (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
639 number for indexing hard_regno_nregs array.
641 2004-04-27 Geoffrey Keating <geoffk@apple.com>
643 * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
644 * config/darwin-crt2.c: Only have contents on __ppc__.
646 2004-04-27 Bob Wilson <bob.wilson@acm.org>
648 * config/xtensa/xtensa.c (call_insn_operand): Check
649 SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
650 * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
651 * config/xtensa/xtensa.md (call, call_value): Likewise.
653 2004-04-27 Wu Yongwei <adah@sh163.net>
655 * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
656 (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
657 (__gthread_mutex_init_function): Replace CreateMutex with
658 initialization of custom mutex using CreateSemaphore.
659 (__gthread_mutex_lock): Use InterlockedIncrement.
660 (__gthread_mutex_trylock): Use InterlockedCompareExchange.
661 (__gthread_mutex_unlock): Use InterlockedDecrement and
662 ReleaseSemaphore to unlock
663 * config/i386/gthr-win32.c (__gthread_mutex_init_function,
664 __gthread_mutex_lock, __gthread_mutex_trylock,
665 __gthread_mutex_unlock): Adjust to match inline versions in
668 2004-04-27 Paul Brook <paul@codesourcery.com>
670 * config/arm/arm.c (arm_promote_prototypes): New function.
671 (TARGET_PROMOTE_PROTOTYPES): Use it.
673 2004-04-27 Paul Brook <paul@codesourcery.com>
675 * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
677 2004-04-26 Bernard Giroud <bgiroud@free.fr>
679 * config/alpha.c (alpha_end_function): For OpenVMS gas,
680 correctly output .pdesc directive before .end.
682 2004-04-26 James E Wilson <wilson@specifixinc.com>
685 * config/ia64/ia64.md (movxf): New local op0. Handle case where
686 operands[0] is a SUBREG. Handle case where operands[1] is a GR reg.
688 2004-04-26 Zack Weinberg <zack@codesourcery.com>
690 * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
691 * config/pa/pa-hpux10.h: Likewise.
692 * config/pa/pa-hpux11.h: Likewise.
694 2004-04-26 Geoffrey Keating <geoffk@apple.com>
696 * doc/invoke.texi (Overall Options): Document default for -o
699 2004-04-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
701 * builtins.c (expand_builtin_update_setjmp_buf): New function.
702 (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
703 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
705 2004-04-26 Paul Brook <paul@codesourcery.com>
707 * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
709 2004-04-26 Paul Brook <paul@codesourcery.com>
711 * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
713 2004-04-25 Roger Sayle <roger@eyesopen.com>
715 * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
716 fold (build1 (NEGATE_EXPR, ...)). Optimize X / -1 as -X and
719 2004-04-26 Hans-Peter Nilsson <hp@bitrange.com>
722 * except.c (connect_post_landing_pads): Delete insns after the
723 barrier when generating a unwind_resume_libfunc call.
725 2004-04-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
728 * tree.c (substitute_placeholder_in_expr, case 4): New case,
731 2004-04-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
733 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
734 __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
735 inhibit_libc is defined.
737 2004-04-25 Richard Sandiford <rsandifo@redhat.com>
739 * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
740 * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
741 * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
742 (TARGET_SCHED_VARIABLE_ISSUE): Define.
743 (mips_adjust_cost): Move later in file, next to other sched hooks.
744 (mips_macc_chains_last_hilo): New variable.
745 (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
746 (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
747 * config/mips/mips.md (may_clobber_hilo): New attribute.
749 2004-04-24 Roger Sayle <roger@eyesopen.com>
750 Bruce Korb <bkorb@gnu.org>
752 * fixinc/inclhack.def (aix_syswait_2): New fix.
753 * fixinc/fixincl.x: Regenerate.
754 * fixinc/tests/base/sys/wait.h: Update for new test.
756 2004-04-24 Alan Modra <amodra@bigpond.net.au>
759 * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
760 to non_fixed_size, and leave out fixed_size from the sum.
761 (generate_set_vrsave): Correct clobbers.
762 (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
763 (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
764 (rs6000_libcall_value): Likewise.
765 * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
766 (FUNCTION_ARG_REGNO_P): Likewise.
768 2004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
770 * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
772 (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
773 with NARROW_OP1 instead of OP1.
775 2004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
777 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
780 2004-03-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
782 * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
783 _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
784 * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
785 BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
786 BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
787 * builtins.c (expand_builtin_fork_or_exec): New.
788 (expand_builtin): Call it.
789 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
790 BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
791 * c-common.c (PID_TYPE): New macro.
792 (c_common_nodes_and_builtins): Initialize pid_type_node.
793 * calls.c (special_function_p): Do not handle fork and exec.
794 (expand_call): Do not handle ECF_FORK_OR_EXEC.
795 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
796 __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
797 * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
798 __gcov_execv, __gcov_execvp, __gcov_execve): New.
799 * tree.h (enum tree_index): Add TI_PID_TYPE.
800 (pid_type_node): New macro.
801 (ECF_FORK_OR_EXEC): Removed.
803 2004-04-23 Eric Botcazou <ebotcazou@libertysurf.fr>
805 PR optimization/13985
806 * cfgloopmanip.c (fix_loop_placements): New prototype.
807 Call fix_bb_placements on the preheader of loops that have
809 (remove_path): Adjust call to fix_loop_placements.
811 2004-04-23 Andrew Pinski <pinskia@physics.uc.edu>
813 * config/darwin7.h: New file.
814 * config.gcc (*-*-darwin*): Add darwin7.h if the
815 version is greater than 6.
816 * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
817 (MATH_LIBRARY): Wrap in ifdefs.
819 2004-04-23 Daniel Jacobowitz <drow@mvista.com>
821 * config/arm/arm.c (arm_output_epilogue): Reverse the order of
822 loading iWMMXt registers with a frame pointer. Use post-increment
823 without a frame pointer.
824 (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
826 2004-04-23 Paolo Bonzini <bonzini@gnu.org>
828 * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
829 mode" rather than "-funit-at-a-time" since -O2 enables it
830 without requiring -f* options. Refer to -fprofile-generate and
831 -fprofile-use correctly. Move -funit-at-a-time among options
832 enabled by -O. Add information about unit-at-a-time caveats.
834 2004-04-22 Per Bothner <per@bothner.com>
836 * line-map.h (struct line_maps): New field highest_line.
837 (linemap_position_for_column): Make non-inline function.
838 (LINEMAP_POSITION_FOR_COLUMN): New macro.
839 * line-map.c (linemap_init): Clear highest_line field.
840 (linemap_add): Set highest_line field.
841 (linemap_line_start): Minor optimization - use highest_line field.
842 Reduce maximum column hint to 10000. Update highest_line field.
843 (linemap_position_for_column): Moved from line-map.h. Optimize a bit.
844 * cpphash.h (struct cpp_reader): Remove line field - instead use
845 line_table->highest_line.
846 (saved_line): Remove unused field.
847 (CPP_INCREMENT_FILE): Don't do linemap_lookup - just use newest map.
848 Use line_table's highest_line field instead of cpp_reader's line.
849 * cpplib.c (start_directive): Likewise use highest_line field.
850 (do_line, do_linemarker): Likewise just use newest map.
851 (_cpp_do_file_change): Don't need to set cpp_reader's line field.
852 * cpperror.c (cpp_error): Likewise use highest_line field.
853 * cppfiles.c (open_file_failed: Likewise.
854 (cpp_make_system_header): Likewise use newest map and highest_line.
855 * cppinit.c (cpp_create_reader): Don't initialize removed field.
856 * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
857 skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
858 _cpp_lex_direct): Likewise use highest_line.
859 (_cpp_lex_direct): Use new LINEMAP_POSITION_FOR_COLUMN macro.
860 * cppmacro.c (_cpp_builtin_macro_text): Likewise use highest_line,
862 * cpppch.c (cpp_read_state): Don't save+restore cpp_reader's line.
863 * cpptrad.c (_cpp_overlay_buffer): Don't save cpp_reader's line.
864 (copy_comment, _cpp_scan_out_logical_line): Likewise use highest_line.
866 2004-04-23 Alan Modra <amodra@bigpond.net.au>
869 * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
870 * config/linux.h (USE_LD_AS_NEEDED): Define.
871 * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
872 * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
873 * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
874 * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
875 * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
876 * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
877 * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
879 2004-04-22 Per Bothner <per@bothner.com>
881 * cppinit.c (cpp_read_main_file): Return NULL rather than false.
882 Fixes PR preprocessor/15067.
884 2004-04-23 Andreas Schwab <schwab@suse.de>
886 * config/ia64/ia64intrin.h: Add intermediate cast to void * to
887 avoid aliasing warning.
889 2004-04-22 Jan Hubicka <jh@suse.cz>
890 Mostafa Hagog <mustafa@il.ibm.com>
892 * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
893 * cfgloopanal.c (expected_loop_iterations): Change the return value
895 2004-04-22 Jakub Jelinek <jakub@redhat.com>
897 * cselib.h (struct elt_loc_list): Remove canon_loc field.
898 * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
899 (cselib_invalidate_mem): Remove all canon_loc and canon_x
902 2004-04-22 Josef Zlomek <zlomekj@suse.cz>
905 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
907 * var-tracking.c (variable_part_different_p): Variable parts
908 differ when the most recent locations differ.
910 2004-04-22 Richard Sandiford <rsandifo@redhat.com>
912 * doc/invoke.texi: Remove the MIPS -membedded-pic option.
913 * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
914 (embedded_pic_offset): Delete.
915 * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete. Shuffle other
917 (TARGET_EMBEDDED_PIC): Delete.
918 (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
919 (ASM_SPEC): Remove -membedded-pic.
920 (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
921 (ASM_OUTPUT_CASE_LABEL): Likewise.
922 * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
923 * config/mips/windiss.h (ASM_SPEC): Likewise.
924 * config/mips/mips.c (struct machine_function): Remove
925 embedded_pic_fnaddr_rtx.
926 (TARGET_ENCODE_SECTION_INFO): Remove override.
927 (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
928 (override_options): Remove -membedded-pic handling.
929 (print_operand): Remove handling of '%S'.
930 (mips_select_section: Remove -membedded-pic handling.
931 (mips_encode_section_info): Delete.
932 (mips_output_conditional_branch): Remove mention of -membedded-pic.
933 * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
934 -membedded-pic handling.
935 (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
937 2004-04-22 Alan Modra <amodra@bigpond.net.au>
939 * var-tracking.c (frame_base_decl): Remove useless GTY.
941 2004-04-21 Aldy Hernandez <aldyh@redhat.com>
943 * config/rs6000/rs6000.c (rs6000_override_options): Error when
944 user wants altivec and e500 instructions.
946 2004-04-21 H.J. Lu <hongjiu.lu@intel.com>
949 * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
950 in .init_array section to ...
951 * config/ia64/crtbegin.asm: Here.
953 * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
954 and hidden if HAVE_INITFINI_ARRAY is defined.
956 2004-04-21 James E Wilson <wilson@specifixinc.com>
958 * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
959 * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
960 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
961 (fp_register_operand, lo_operand): New.
962 (mips_rtx_costs): Add TUNE_SB1 support.
963 (mips_issue_rate): Add comment. Add PROCESSOR_SB1 support.
964 (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
965 (mips_multipass_dfa_lookahead): New.
966 * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
968 (TARGET_SWITCHES): Add -mfp-exceptions support.
969 (TARGET_FP_EXCEPTIONS_DEFAULT): New.
970 (BRANCH_COST): Fix whitespace.
971 * config/mips/mips.md: Include sb1.md.
972 * config/mips/sb1.md: New file.
973 * doc/invoke.texi: Document -mfp-exceptions.
975 * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS. Fix
977 * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
978 (fixincl.o-warn): Delete.
980 2004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
982 * config/rs6000/rs6000 (print_operand) ['z']:
983 Change ifdef of TARGET_MACHO to if TARGET_MACHO.
985 2004-04-21 Daniel Jacobowitz <drow@mvista.com>
987 * config.gcc: Support --with-arch=iwmmxt for ARM.
989 2004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
991 * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
992 in two more places; remove unneeded force_reg
994 2004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
996 * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
998 (print_operand): For TARGET_MACHO check to see if we need a stub
999 and output one if we need it.
1002 * dwarf2out.c (rtl_for_decl_location): Check for NULL
1005 2004-04-20 James E Wilson <wilson@specifixinc.com>
1007 * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
1008 (vall_value_gp): Likewise.
1010 2004-04-20 DJ Delorie <dj@redhat.com>
1012 * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
1013 variables stored in word registers, then in memory.
1015 2004-04-20 Eric Christopher <echristo@redhat.com>
1017 * cp/parser.c (cp_parser_declaration): Move translate
1018 up before tokens are lexed.
1020 2004-04-20 Uros Bizjak <uros@kss-loka.si>
1022 * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
1023 (asin_optab, acos_optab): Define corresponding macros.
1024 * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
1025 * genopinit.c (optabs): Implement asin_optab and acos_optab
1026 using asin?f2 and acos?f2 patterns.
1027 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
1028 using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
1029 (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
1030 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1032 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
1033 acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
1034 acos, acosf and acosl built-ins as inline x87 intrinsics.
1036 2004-04-20 Paul Brook <paul@codesourcery.com>
1038 * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
1040 2004-04-20 Paul Brook <paul@codesourcery.com>
1042 * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
1044 2004-04-20 Paolo Bonzini <bonzini@gnu.org>
1046 Revert part of 2004-04-17 change that moved -frename-registers
1047 to -O1. -frename-registers is buggy.
1049 * toplev.c (flag_rename_registers): Initialize to 0.
1050 * doc/invoke.texi (Optimize options): Move -frename-registers
1051 to "Not triggered by any -O level" section. Adjust commentary
1054 2004-04-20 Anil Paranjpe <anilp1@kpitcummins.com>
1056 * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
1058 2004-04-20 Richard Sandiford <rsandifo@redhat.com>
1060 * config/mips/mips.c (mips_legitimize_move): Generate special patterns
1061 for mflo and mfhi instructions.
1062 (mips_output_move): Remove mflo and mfhi handling.
1063 * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
1064 (*mulsidi3_64bit): Update for new mfhi/mflo representation.
1065 Likewise various define_peephole2s.
1066 (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
1068 (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
1069 (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
1070 (mfhilo_di, mfhilo_si): New patterns.
1072 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
1074 * function.c (assign_parms): Force
1075 MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
1077 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
1079 * var-tracking.c (variable_part_different_p): Variable parts differ
1080 when the most recent locations differ.
1082 2004-04-19 James E Wilson <wilson@specifixinc.com>
1084 * rtl.h (reg_set_last): Delete declaration.
1085 * rtlanal.c (reg_set_last): Delete.
1087 2004-04-19 Roger Sayle <roger@eyesopen.com>
1089 * fold-const.c (fold_convert): Make function extern/public.
1090 * tree.h (fold_convert): Prototype here.
1091 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
1092 expand_builtin_strrchr, expand_builtin_strpbrk,
1093 expand_builtin_mempcpy, expand_builtin_bcopy,
1094 expand_builtin_bzero, expand_builtin_memcmp,
1095 expand_builtin_strcmp, expand_builtin_strncmp,
1096 stabilize_va_list, expand_builtin_sprintf,
1097 fold_trunc_transparent_mathfn, fold_builtin_logarithm,
1098 fold_builtin_exponent, fold_builtin_mempcpy,
1099 fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
1100 fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
1101 fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
1103 2004-04-19 Aldy Hernandez <aldyh@redhat.com>
1105 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
1106 (move_from_CR_gt_bit): New.
1107 (cceq_ior_compare): Name previously unnamed pattern. Disable for
1109 (cceq_rev_compare): Name previously unnamed pattern. Allow for
1112 * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
1113 (tstsfeq_gpr): Same.
1114 (cmpsfgt_gpr): Same.
1115 (tstsfgt_gpr): Same.
1116 (cmpsflt_gpr): Same.
1117 (tstsflt_gpr): Same.
1118 (e500_cceq_ior_compare): New.
1119 (e500_flip_gt_bit): New.
1121 * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
1122 (print_operand): Add 'c' and 'D'.
1123 (rs6000_generate_compare): Rewrite to generate correct rtl.
1124 (rs6000_emit_sCOND): Handle E500.
1125 (output_cbranch): Adjust for changes in rs6000_generate_compare.
1126 (output_e500_flip_gt_bit): New.
1128 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
1131 2004-04-19 Eric Christopher <echristo@redhat.com>
1133 * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
1135 2004-04-19 David Edelsohn <edelsohn@gnu.org>
1137 * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
1140 2004-04-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1142 * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
1145 2004-04-19 Daniel Jacobowitz <drow@mvista.com>
1147 * stor-layout.c (layout_decl): Check DECL_PACKED before calling
1148 ADJUST_FIELD_ALIGN. Check maximum_field_alignment after.
1150 2004-04-19 Andrew PInski <pinskia@physics.uc.edu>
1152 * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
1153 (fold_builtin): Update caller to match.
1156 * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
1159 * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
1161 2004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1163 * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
1165 * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
1166 (expand_mult_highpart_optab): Likewise.
1167 (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
1169 2004-04-19 Paul Brook <paul@codesourcery.com>
1171 * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
1172 floatunssisf2, floatunssidf2): New patterns.
1174 2004-04-18 Mark Mitchell <mark@codesourcery.com>
1177 * doc/invoke.texi (-fprofile-generate): Document requirement to
1178 use -fprofile-generate when linking.
1180 * doc/extend.texi (Strong Using): Warn users against using this
1183 2004-04-18 Richard Sandiford <rsandifo@redhat.com>
1185 * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
1186 * config/mips/mips.h (mips_entry, mips_string_length): Delete.
1187 (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
1188 * config/mips/mips.c (struct mips16_constant): Renamed from struct
1189 constant. Propogate change throughout file.
1190 (struct machine_function): Remove insns_len.
1191 (mips_string_length, mips16_strings, string_constants): Delete.
1192 (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
1193 when generating mips16 code. Remove special mips16 treatment of
1195 (mips_symbolic_constant_p): Allow mips16 constant pool accesses
1196 to have the form LABEL+CONSTANT.
1197 (mips_symbolic_address_p): Fix comment.
1198 (m16_usym8_4, m16_usym5_4): Delete.
1199 (mips_output_function_epilogue): Remove mips16 string handling.
1200 (mips_output_mi_thunk): Call mips16_lay_out_constants.
1201 (mips_select_section, mips_encode_section_info): Remove mips16
1203 (struct mips16_constant_pool): New.
1204 (add_constant): Take a mips16_constant_pool structure. Keep pool
1205 sorted into order of ascending mode size. Keep track of the highest
1206 possible start address, taking padding and the masking of the base PC
1208 (dump_constants_1): New function, split out from dump_constants.
1209 Handle vector constants. Use gen_consttable_{int,float} rather than
1210 separate functions for each mode.
1211 (dump_constants): Simplify. Use GET_MODE_ALIGNMENT. Use gen_align
1212 rather than separate functions for each alignment.
1213 (mips_find_symbol): Delete.
1214 (mips16_insn_length): New function, split out from
1215 mips16_lay_out_constants.
1216 (mips16_rewrite_pool_refs): New function.
1217 (mips16_lay_out_constants): Rework. Remove string handling.
1218 Always create an inline constant pool.
1219 * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
1220 (UNSPEC_ALIGN): New constants.
1221 (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
1222 (UNSPEC_ALIGN_[248]): Delete.
1223 (consttable_int, consttable_float, align): New patterns.
1224 (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
1226 2004-04-17 Aldy Hernandez <aldyh@redhat.com>
1228 * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
1231 2004-04-17 Alan Modra <amodra@bigpond.net.au>
1234 * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
1235 with STARTING_FRAME_OFFSET.
1237 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
1239 * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
1240 * config/mips/mips.c (macc_msac_operand): New function.
1241 * config/mips/mips.md (*msac): Move after *macc.
1242 (*msac2): New. Generalize macc-related peepholes so that they apply
1245 2004-04-17 Paolo Bonzini <bonzini@gnu.org>
1247 * opts.c (decode_options): Do not enable flag_rename_registers
1248 and flag_web at -O3.
1249 * toplev.c (flag_rename_registers): Initialize
1250 flag_rename_registers and flag_web to
1251 AUTODETECT_FLAG_VAR_TRACKING.
1252 (default_debug_hooks): New global.
1253 (process_options): Initialize default_debug_hooks. Warn if
1254 -fvar-tracking specified but not supported by the current
1255 debug format. Do not run var tracking at -O0 or if not
1256 supported by the current debug format, even if
1257 -fvar-tracking was given. If -fno-rename-registers
1258 is not specified, always run register renaming if var
1259 tracking is supported by the default debugging information
1260 format for the target, and we are at -O1 or higher; similarly
1261 for -fweb, but only at -O2 or higher.
1262 * doc/invoke.texi (Optimize Options): Document this.
1264 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
1266 * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
1267 * configure: Regenerate.
1269 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
1271 * gcc.c (used_arg): Check whether an option has been removed.
1273 2004-04-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1275 * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
1276 debugging on Solaris 7 and up.
1278 2004-04-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1280 * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
1282 Remove -save-temps workaround, handled automatically.
1283 Require GNU binutils 2.15 for debugging.
1284 Remove SGI make warnings since GNU make is now required.
1285 (Specific, mips-sgi-irix6): Some markup fixes.
1286 Describe MIPSpro C problems and workarounds.
1287 Mention working O32 ABI support.
1288 Recommend GNU as 2.15 for O32 with debugging.
1289 Remove description of fixed structure pass/return bug.
1291 2004-04-16 DJ Delorie <dj@redhat.com>
1293 * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
1295 (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
1297 2004-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1299 * pa.md: Remove unnecessary declarations for asm_out_file.
1301 * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
1302 SAR register. Fix comment.
1303 (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
1306 * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
1308 2004-04-16 Nick Clifton <nickc@redhat.com>
1310 * config/arm/arm.c (arm_override_options): Revert previous patch.
1311 * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
1314 2004-04-16 Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
1316 * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
1318 (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
1319 TARGET_DEFAULT): Changed. Ditto.
1320 (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
1321 TARGET_ENDIAN_DEFAULT): Added. Ditto.
1322 * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
1323 (TARGET_ENDIAN_DEFAULT): Added.
1325 2004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1327 * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
1328 ATTR_CONST_NOTHROW_LIST.
1330 2004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1333 * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
1336 2004-04-15 Pat Haugen <pthaugen@us.ibm.com>
1338 * ra-debug.c (ra_print_rtx): Add break's to case legs.
1340 2004-04-14 James E Wilson <wilson@specifixinc.com>
1342 * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
1344 2004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
1346 * libada-mk.in: New file.
1347 * configure.ac: Create libada-mk from libada-mk.in.
1348 * configure: Regenerate.
1350 2004-04-14 Uros Bizjak <uros@kss-loka.si>
1352 * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
1353 (logb_optab, ilogb_optab): Define corresponding macros.
1354 * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
1355 * genopinit.c (optabs): Implement logb_optab and ilogb_optab
1356 using logb?f2 and ilogb?i2 patterns.
1357 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
1358 using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
1359 (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
1360 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1362 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
1363 and UNSPEC_XTRACT_EXP.
1365 * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
1366 patterns to implement fxtract x87 instruction.
1367 (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
1368 logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
1370 (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
1373 2004-04-14 Eric Christopher <echristo@redhat.com>
1375 * config/mips/t-elf: Enable multilibs by default.
1377 2004-04-14 Andreas Tobler <a.tobler@schweiz.ch>
1379 * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
1380 previous fix to check HAVE_return at runtime too.
1382 2004-04-14 Nick Clifton <nickc@redhat.com>
1384 * config/arm/arm.c (arm_override_options): If the user has not
1385 specified an ABI, then default to AAPCS for the iWMMXt processor.
1386 * config/arm/t-xscale-elf: Remove redundant multilib specifications.
1387 * config/arm/t-xscale-coff: Likewise.
1389 2004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1391 * builtins.c (fold_builtin_isdigit): New.
1392 (fold_builtin): Handle BUILT_IN_ISDIGIT.
1393 * defaults.h: Add TARGET_DIGIT0 and sort.
1394 * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
1396 2004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1398 * builtins.c (fold_builtin_cabs, fold_builtin): Use
1399 `mathfn_built_in' to determine the new builtin.
1400 * fold-const.c (fold): Likewise.
1402 2004-04-14 Richard Sandiford <rsandifo@redhat.com>
1404 * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
1405 * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
1406 (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
1407 (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
1408 (ASM_SPEC): Update accordingly.
1409 * config/mips/mips.c: Update after above renaming.
1410 * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
1411 * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
1413 2004-04-13 James E Wilson <wilson@specifixinc.com>
1415 * c-opt.c (c_common_post_options): If this_input_filename is NULL,
1416 increment errorcount and return false instead of true.
1418 2004-04-13 Uros Bizjak <uros@kss-loka.si>:
1420 * optabs.c (expand_twoval_unop): Reorder function arguments.
1421 * builtins.c (expand_builtin_mathfn_3): Update calls to
1424 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
1425 and UNSPEC_TAN_TAN. Add missing comment.
1427 * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
1428 patterns to implement fptan x87 instruction.
1429 (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
1430 and tanl built-ins as inline x87 intrinsics. Define corresponding
1431 peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
1432 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
1435 2004-03-13 Richard Henderson <rth@redhat.com>
1437 * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
1440 * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
1441 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
1442 * doc/invoke.texi: Update to match.
1444 * varasm.c (unlikely_text_section): Use assemble_align instead of
1445 ASM_OUTPUT_ALIGN. Use it in the correct place with an approximately
1446 correct alignment argument.
1448 2004-04-13 Ulrich Weigand <uweigand@de.ibm.com>
1450 * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
1451 after setting reg_last_reload_reg for optional output reloads.
1453 2004-04-12 Fariborz Jahanian <fjahanian@apple.com>
1455 * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
1456 Definition of these two macros are corrected by adding
1457 matchine right paren.
1459 2004-04-12 Jonathan Larmour <jifl@eCosCentric.com>
1461 * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
1463 2004-04-12 Roger Sayle <roger@eyesopen.com>
1465 * config/i386/i386.c (output_387_reg_move): New function.
1466 * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
1467 * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
1468 *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
1469 *extendsfdf2_1, *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
1470 truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
1472 2004-04-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1474 * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
1476 * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
1477 * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
1478 * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
1479 Use skip_simple_arithmetic to find SAVE_EXPR.
1480 (force_type_save_exprs, force_type_save_exprs_1): New functions.
1481 * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
1482 Properly chain multiple pointers.
1483 (copy_tree_r): Copy a TYPE_DECL.
1484 * tree.c (variably_modified_type_p): Add some missing tests and
1485 make some other minor changes.
1486 * tree.h (force_type_save_exprs): New declaration.
1488 2004-04-12 Roger Sayle <roger@eyesopen.com>
1490 * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
1491 Remove fall throughs. Convert 0/x and 0%x into x&0 when x has
1492 side-effects. Don't convert x/1.0 into x if we honor signaling NaNs.
1493 Convert x/-1.0 into -x if we don't honor signaling NaNs. Convert
1494 x/-1 into -x. Optimize x%1 into x&0 if x has side-effects. Optimize
1495 x%-1 into 0 (or x&0 if x has side-effects).
1497 2004-04-11 Aldy Hernandez <aldyh@redhat.com>
1499 * config/rs6000/rs6000.md: Document why a pattern is not
1502 * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
1503 of floats on the E500.
1504 (branch_positive_comparison_operator): Do not allow NE even on the
1507 2004-04-11 Aldy Hernandez <aldyh@redhat.com>
1509 * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
1510 in_text_unlikely_section to in_unlikely_text_section.
1512 2004-04-11 Roger Sayle <roger@eyesopen.com>
1514 * fold-const.c (fold_binary_op_with_conditional_arg): Tweak
1515 calling convention to allow a NULL_TREE to be returned. Factor
1516 sanity checks from callers, return NULL_TREE when appropriate.
1517 (fold): Handle COMPOUND_EXPR operands of binary expressions
1518 before COND_EXPR operands. Use reorder_operands_p(a,b) to check
1519 whether a op (b,c) can be rewritten as (b, a op c). Simplify
1520 calls to fold_binary_op_with_conditional_arg.
1522 2004-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1524 * config/mips/iris5.h (current_section_flags): Add
1525 in_unlikely_executed_text and default case.
1527 2004-04-11 Andreas Tobler <a.tobler@schweiz.ch>
1529 * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
1530 failure on solaris. Place ifdef HAVE_return around gen_ret call.
1531 * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
1532 HAVE_return and place it around the place where it is needed.
1534 2004-04-11 Andrew Pinski <pinskia@physics.uc.edu>
1536 * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
1537 ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
1538 and NORMAL_TEXT_SECTION_NAME.
1539 (unlikely_text_section): Check targetm.have_named_sections
1540 instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
1541 instead of SECTION_FORMAT_STRING.
1542 * config/mips/iris5.h (current_section_name): Add
1543 in_unlikely_executed_text case and move the abort into the switch.
1544 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
1545 (NORMAL_TEXT_SECTION_NAME): Remove.
1546 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1547 (SECTION_FORMAT_STRING): Remove.
1548 * defaults.h (SECTION_FORMAT_STRING): Remove.
1549 * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
1550 (SECTION_FORMAT_STRING): Remove.
1552 2004-04-10 Joseph S. Myers <jsm@polyomino.org.uk>
1554 * c-typeck.c (common_type): Prefer long long to long when same
1557 2004-04-09 Zack Weinberg <zack@codesourcery.com>
1560 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
1562 * config/ia64/ia64.c (ia64_hpux_file_end): Check
1563 TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
1565 2004-04-09 Roger Sayle <roger@eyesopen.com>
1567 * simplify-rtx.c (mode_signbit_p): New function to check whether
1568 an RTX is an immediate constant that represents the most significant
1569 bit of a given machine mode.
1570 (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
1572 (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
1573 when C2 is the sign bit.
1574 (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
1575 is the sign bit. Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
1578 2004-04-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1580 * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
1583 2004-04-09 Andrew Pinski <pinskia@physics.uc.edu>
1585 * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
1586 of TREE_READONLY for types.
1588 2004-04-09 Caroline Tice <ctice@apple.com>
1590 * basic-block.h (struct edge_def): Add new field, crossing_edge.
1591 (struct basic_block_def): Add new field, partition.
1592 (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro
1594 (partition_hot_cold_basic_blocks): Add extern function
1596 * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new
1598 (N_ROUNDS): Increase the maximum number of rounds by 1.
1599 (branch_threshold): Add array value for new round.
1600 (exec_threshold): Add array value for new round.
1601 (push_to_next_round_p): New function.
1602 (add_unlikely_executed_notes): New function.
1603 (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
1604 (mark_bb_for_unlikely_executed_section): New function.
1605 (add_labels_and_missing_jumps): New function.
1606 (add_reg_crossing_jump_notes): New function.
1607 (fix_up_fall_thru_edges): New function.
1608 (find_jump_block): New function.
1609 (fix_crossing_conditional_branches): New function.
1610 (fix_crossing_unconditional_branches): New function.
1611 (fix_edges_for_rarely_executed_code): New function.
1612 (partition_hot_cold_basic_blocks): New function.
1613 (find_traces): Add an extra round for partitioning hot/cold
1615 (find_traces_1_round): Add a parameter. Modify to push all cold blocks,
1616 and only cold blocks, into the last (extra) round of collecting traces.
1617 (better_edge_p): Add a parameter. Modify to favor non-crossing edges
1618 over crossing edges.
1619 (bb_to_key): Add code to correctly identify cold blocks when
1621 (connect_traces): Modify to connect all the non-cold traces first, then
1622 go back and connect up all the cold traces.
1623 (reorder_basic_blocks): Add call to add_unlikely_executed_notes.
1624 * cfg.c (entry_exit_blocks): Add initialization for partition field in
1625 entry and exit blocks.
1626 * cfgbuild.c (make_edges): Update current_function_has_computed_jump
1627 if we are doing hot/cold partitioning.
1628 * cfgcleanup.c (cfglayout.h): Add new include statement.
1629 (try_simplify_condjump): Modify to not attempt on blocks with jumps
1630 that cross section boundaries.
1631 (try_forward_edges): Likewise.
1632 (merge_blocks_move_predecessor_nojumps): Likewise.
1633 (merge_blocks_move_successor_nojumps): Likewise.
1634 (merge_blocks_move): Likewise.
1635 (try_crossjump_to_edge): Modify to not attempt after we have done
1636 the block partitioning.
1637 (try_crossjump_bb): Modify to not attempt on blocks with jumps that
1638 cross section boundaries.
1639 (try_optimize_cfg): Likewise.
1640 * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
1641 jumps that cross section boundaries.
1642 * cfglayout.c (flags.h): Add new include statement.
1643 (update_unlikely_executed_notes): New function.
1644 (fixup_reorder_chain): Add code so when a new jumping basic block is
1645 added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
1646 updated appropriately.
1647 (duplicate_insn_chain): Add code to duplicate the new NOTE insn
1648 introduced by this optimization.
1649 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new
1650 extern function declaration.
1651 * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
1652 list of notes that can be deleted.
1653 (create_basic_block_structure): Add initialization for partition field.
1654 (rtl_can_merge_blocks): Modify to test blocks for jumps that cross
1656 (try_redirect_by_replacing_jump): Modify to not attempt on jumps that
1657 cross section boundaries.
1658 (commit_one_edge_insertion): Add code so newly created basic block
1659 ends up in correct (hot or cold) section. Modify to disallow
1660 insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
1661 (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge
1662 crosses section boundaries.
1663 (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
1664 cross section boundaries.
1665 (force_nonfallthru_and_redirect): Modify to make sure new basic block
1666 ends up in correct section, with correct notes attached.
1667 * common.opt (freorder-blocks-and-partition): Add new flag for this
1669 * dbxout.c (dbx_function_end): Add code to make sure scope labels at
1670 the end of functions are written into the correct (hot or cold)
1672 (dbx_source_file): Add code so writing debug file information
1673 doesn't incorrectly change sections.
1674 * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
1675 in partitioning hot/cold basic blocks into separate sections.
1676 (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
1677 section partitioning.
1678 (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
1679 conditional branches can span all of memory.
1680 (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
1681 unconditional branches can span all of memory.
1682 * final.c (scan_ahead_for_unlikely_executed_note): New function.
1683 (final_scan_insn): Add code to check for NOTE instruction indicating
1684 whether basic block belongs in hot or cold section, and to make sure
1685 the current basic block is being written to the appropriate section.
1686 Also added code to ensure that jump table basic blocks end up in the
1688 * flags.h (flag_reorder_blocks_and_partition): New flag.
1689 * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if
1690 one of the branches has a jump that crosses between sections.
1691 (find_if_case_2): Likewise.
1692 (ifcvt): Modify to not attempt to mark loop exit edges after
1693 hot/cold partitioning has occurred.
1694 * opts.c (decode_options): Code to handle new flag,
1695 flag_reorder_blocks_and_partition; also to turn it off if
1696 flag_exceptions is on.
1697 (common_handle_option): Code to handle new flag,
1698 flag_reorder_blocks_and_partition.
1699 * output.h (unlikely_text_section): New extern function declaration.
1700 (in_unlikely_text_section): New extern function declaration.
1701 * passes.c (rest_of_handle_stack_regs): Add
1702 flag_reorder_blocks_and_partition as an 'or' condition for calling
1703 reorder_basic_blocks.
1704 (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition
1705 as an 'or' condition for calling reorder_basic_blocks.
1706 (rest_of_compilation): Add call to partition_hot_cold_basic_blocks.
1707 * print-rtl.c (print_rtx): Add code for handling new note,
1708 NOTE_INSN_UNLIKELY_EXECUTED_CODE
1709 * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
1710 (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
1711 cross between section boundaries.
1712 * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction,
1713 indicating the basic block containing it belongs in the cold section.
1714 (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
1715 between hot and cold sections.
1716 * toplev.c (flag_reorder_blocks_and_partition): Add code to
1717 initialize this flag, and to tie it to the command-line option
1718 freorder-blocks-and-partition.
1719 * varasm.c (cfglayout.h): Add new include statement.
1720 (unlikely_section_label_printed): New global variable, used for
1721 determining when to output section name labels for cold sections.
1722 (in_section): Add in_unlikely_executed_text to enum data structure.
1723 (text_section): Modify code to use SECTION_FORMAT_STRING and
1724 NORMAL_TEXT_SECTION_NAME macros.
1725 (unlikely_text_section): New function.
1726 (in_unlikely_text_section): New function.
1727 (function_section): Add code to make sure beginning of function is
1728 written into correct section (hot or cold).
1729 (assemble_start_function): Add code to make sure stuff is written to
1730 the correct section.
1731 (assemble_zeros): Add in_unlikely_text_section as an 'or' condition
1732 to an if statement that was checking 'in_text_section'.
1733 (assemble_variable): Add 'in_unlikely_text_section' as an 'or'
1734 condition to an if statement that was checking 'in_text_section'.
1735 (default_section_type_flags_1): Add check: if in cold section
1736 flags = SECTION_CODE.
1737 * config/darwin.c (darwin_asm_named_section): Modify to use
1738 SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
1739 * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
1740 specifically for the i386.
1741 (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386.
1742 * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
1743 text string to something more informative.
1744 (NORMAL_TEXT_SECTION_NAME): Add new definition.
1745 (SECTION_FORMAT_STRING): Add new definition.
1746 * config/rs6000/rs6000.c (rs6000_assemble_integer): Add
1747 '!in_unlikely_text_section' as an 'and' condition to an if statement
1748 that was already checking '!in_text_section'.
1749 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
1750 UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
1751 sure these are properly defined for linux on ppc.
1752 * doc/invoke.texi (freorder-blocks-and-partition): Add documentation
1754 * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new
1756 * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
1757 HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
1760 2004-04-08 Roger Sayle <roger@eyesopen.com>
1762 * function.c (gen_mem_addressof): When changing the RTX from a REG
1763 to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
1765 2004-04-08 Roger Sayle <roger@eyesopen.com>
1768 * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
1769 truncxfdf2_noop): Provide dummy "fmov" implementations.
1771 2004-04-08 Ian Lance Taylor <ian@wasabisystems.com>
1773 * gcc.c (default_compilers): Add missing initializers.
1775 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
1776 Return 1 if file was successfully mapped.
1778 2004-04-08 Geoffrey Keating <geoffk@apple.com>
1783 * doc/invoke.texi (Precompiled Headers): Suggest -o
1784 to put an output file in a particular place. Be more detailed
1785 about which options affect PCH validity and which options
1787 * c-pch.c (pch_matching): New.
1789 (struct c_pch_validity): New field 'match'.
1790 (pch_init): Handle pch_matching.
1791 (c_common_valid_pch): Check pch_matching.
1793 * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
1795 2004-04-08 Mark Mitchell <mark@codesourcery.com>
1797 * doc/invoke.texi (Precompiled Headers): Warn about known
1800 2004-04-08 Danny Smith <dannysmith@users.sourceforge.net>
1803 * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
1804 to 1 if ASM_OUTPUT_DEF is defined.
1805 * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
1806 * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
1807 Set to non-zero iff not a one_only decl.
1809 2004-04-08 Paul Brook <paul@codesourcery.com>
1811 * arm.h (CLASS_LIKELY_SPILLED_P): Define.
1813 2004-04-08 Paul Brook <paul@codesourcery.com>
1815 * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
1816 PROMOTE_FOR_CALL_ONLY.
1817 * config/arm/arm-protos.h (arm_function_value): Declare.
1818 * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
1819 (TARGET_PROMOTE_PROTOTYPES): Return false.
1820 (arm_function_value): New function.
1821 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
1822 (FUNCTION_VALUE): Call arm_function_value.
1823 * config/cris/cris.h (PROMOTE_MODE): Rename ...
1824 (PROMOTE_FUNCTION_MODE): ... to this.
1825 (PROMOTE_FOR_CALL_ONLY): Remove.
1826 * config/mmix/mmix.h: Likewise.
1827 * config/s390/s390.h: Likewise.
1828 * config/sparc/sparc.h: Likewise.
1829 * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
1830 * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
1831 (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
1832 (PROMOTE_FOR_CALL_ONLY): Remove.
1834 2004-04-08 Joel Sherrill <joel@oarcorp.com>
1837 * ada/5rosinte.adb: Remove fake mprotect() body.
1838 * ada/5rosinte.ads: Add SA_SIGINFO.
1839 * ada/5rtpopsp.adb: Rewrite to use new interface.
1840 * ada/init.c: Reorder so the simple single OS conditional __rtems__
1841 is tested before more complex ones which mix UNIX and embedded
1842 systems in the conditional.
1844 2004-04-08 Joel Sherrill <joel@oarcorp.com>
1847 * ada/osint.adb (Find_Program_Name): Rework to properly handle
1848 filenames which end in .exe or have versioning suffixes like VMS.
1850 2004-04-08 Andrew Pinski <pinskia@physics.uc.edu>
1853 * config/darwin.c (darwin_encode_section_info): When the decl has
1854 a DECL_INITIAL, it is only defined also when it is not a common.
1856 2004-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1858 * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
1859 (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
1861 2004-04-07 H.J. Lu <hongjiu.lu@intel.com>
1863 * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
1864 global register variables.
1866 2004-04-07 Joseph S. Myers <jsm@polyomino.org.uk>
1868 * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
1869 rpc_xdr_lvalue_cast_b): New fixes.
1870 * fixinc/fixincl.x: Regenerate.
1871 * fixinc/tests/base/rpc/xdr.h: Add new tests.
1873 2004-04-07 David Edelsohn <edelsohn@gnu.org>
1875 * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
1876 to power4 and power5 entries.
1878 2004-04-06 Geoffrey Keating <geoffk@apple.com>
1880 * c-common.h (pending_lang_change): Mark for PCH.
1882 2004-04-07 Caroline Tice <ctice@apple.com>
1884 * gcc.c (main): Move 'break' in main loops (on an error)
1885 to wait until error processing has occurred.
1887 2004-04-06 Nathanael Nerode <neroden@gcc.gnu.org>
1889 * config.gcc: Stop changing enable_threads midstream.
1890 Replace uses of enable_threads_flag with enable_threads.
1891 * configure.ac: Replace uses of enable_threads_flag with
1892 enable_threads. Improve autoconf quotation in one place.
1893 * configure: Regenerate.
1895 2004-04-06 Uros Bizjak <uros@kss-loka.si>
1897 * builtins.c: Implement support for sincos function.
1898 (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
1900 (expand_builtin_mathfn_3): New function.
1901 (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
1902 BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
1903 flag_unsafe_math_optimization is set.
1905 * optabs.h (enum optab_index): Add new OTI_sincos.
1906 (sincos_optab): Define corresponding macro.
1908 * optabs.c (init_optabs): Initialize sincos_optab.
1909 (expand_twoval_unop): New function.
1911 * genopinit.c (optabs): Implement sincos_optab using sincos?f3
1914 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
1915 and UNSPEC_SINCOS_SIN.
1917 * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
1918 sincosxf3): New patterns to implement sincos, sincosf and sincosl
1919 built-ins as inline x87 intrinsics. Define splits for
1920 sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
1921 cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
1923 (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
1924 (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
1926 (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
1929 2004-04-06 Devang Patel <dpatel@apple.com>
1932 * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
1934 2004-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1936 * doc/install.texi: Update HP-UX 11 installation procedure.
1938 2004-04-06 Paul Brook <paul@codesourcery.com>
1940 * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
1942 2004-04-05 Kaz Kojima <kkojima@gcc.gnu.org>
1944 * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
1945 when the TLS address is generated by a function call.
1946 * config/sh/sh.md (tls_global_dynamic): Use a call expression.
1947 (tls_local_dynamic): Likewise.
1949 2004-04-05 Andrew Pinski <pinskia@physics.uc.edu>
1951 * tree.c (reconstruct_complex_type): Use TYPE_READONLY
1954 2004-04-05 Caroline Tice <ctice@apple.com>
1956 * gcc.c (combine_flag): New global variable, for new driver option.
1957 (struct compiler): Add two new fields, to be used when
1958 combining multiple input files in a single pass (IMA).
1959 (default_compilers): Add values for the new fields to all
1960 compiler entries. Modify the "@c" compiler entry for doing IMA
1961 properly with "-save-temps" and the "combine" flag.
1962 (option_map): Add new driver option, "--combine", to tell driver
1963 to pass multiple input files to compiler at one time.
1964 (have_o_argbuf_index): New global variable.
1965 (store_arg): Modify to assign value to have_o_argbuf_index.
1966 (struct infile): Add three new fields, to help with IMA.
1967 (display_help): Add help for new "combine" option.
1968 (process_command): Remove local variable have_o; add code to check
1969 for new "combine" option; remove assignment to combine_inputs.
1970 (do_spec_1): Modify to deal with IMA better.
1971 (main): Make variable 'lang_n_infiles' local to entire function
1972 rather than to a single block. Use flag combine_flag to
1973 determine whether to do IMA or not; Modify loop initializing
1974 infiles to deal properly with linker files.
1975 Add code for doing preprocessing in presence of
1976 IMA with "-save-temps" flag. Modify "main" loop to handle
1977 multiple input files, in multiple languages, with or without
1978 preprocessing, gracefully.
1979 * toplev.c (set_src_pwd): Modify to not complain if attempting to
1980 re-set it to same directory it's previously been set to (avoid
1981 irritating, meaningless warning messages when doing IMA with
1983 * doc/invoke.texi: Add "-combine" to list of Overall Options;
1984 remove documentation about IMA that is no longer accurate; Add
1985 documentation explaining what "-combine" does.
1986 * ada/lang-specs.h: Add initialization values for new fields in
1988 * cp/lang-specs.h: Likewise.
1989 * f/lang-specs.h: Likewise.
1990 * java/lang-specs.h: Likewise.
1991 * objc/lang-specs.h: Likewise.
1992 * treelang/lang-specs.h: Likewise.
1994 2004-04-05 David Edelsohn
1996 * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
1999 2004-04-05 Jakub Jelinek <jakub@redhat.com>
2000 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2002 PR optimization/13424 (hppa), bootstrap/14462, c/14828
2003 * pa.md: Use replace_equiv_address to retain the attributes of the
2004 memory operands used in the split and peephole2 patterns for optimizing
2005 the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
2007 2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2009 * c-decl.c (build_compound_literal): Use TYPE_READONLY.
2010 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2011 * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
2012 * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
2014 * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
2016 * print-tree.c (print_node): Properly handle side-effects, readonly,
2018 * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
2019 and TREE_CONSTANT if not a type.
2020 * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
2021 (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
2022 (NON_TYPE_CHECK): New macro.
2023 (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
2025 2004-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
2027 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
2028 to DWARF2_DEBUG unconditionally.
2029 (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
2031 2004-04-04 Ian Lance Taylor <ian@wasabisystems.com>
2032 Nathanael Nerode <neroden@gcc.gnu.org>
2035 * config.host: Set the shell variable host_can_use_collect2.
2036 Set it to yes by default, and to no for alpha*-dec-*vms*,
2037 i[34567]86-*-mingw32*, and powerpc-*-beos*.
2038 * configure.ac: Set and substitute the shell variable collect2.
2039 Give an error if use_collect2 is yes and host_can_use_collect2 is
2041 * Makefile.in (COLLECT2): Rename from USE_COLLECT2. Change all
2042 uses. Initialize to @collect2@.
2043 (STAGESTUFF): Remove $(USE_COLLECT2).
2044 * config/alpha/x-vms (USE_COLLECT2): Don't set.
2045 * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
2046 * config/rs6000/t-beos (USE_COLLECT2): Likewise.
2047 * config/pa/t-pa64: Remove commented out USE_COLLECT2.
2048 * configure: Regenerate.
2050 2004-04-04 Roger Sayle <roger@eyesopen.com>
2052 * simplify-rtx.c (simplify_binary_operation): Constant fold
2053 DIV, MOD, UDIV and UMOD using div_and_round_double.
2055 2004-04-04 Mark Mitchell <mark@codesourcery.com>
2058 * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
2061 2004-04-04 Mark Mitchell <mark@codesourcery.com>
2063 * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
2066 2004-04-04 Roger Sayle <roger@eyesopen.com>
2068 * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
2069 updating the REG_EQUAL note on an insn's libcall_insn.
2071 2004-04-04 Roger Sayle <roger@eyesopen.com>
2073 * df.h: Tidy up whitespace in the definitions of the DF_ flags.
2075 2004-04-03 Roger Sayle <roger@eyesopen.com>
2077 * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
2078 with reorder_operands_p.
2080 2004-04-03 Jan Hubicka <jh@suse.cz>
2082 * md.texi (vec_set, vec_extract, vec_init): Document.
2084 2004-04-02 Gabor Loki <loki@inf.u-szeged.hu>
2086 * opts.c (decode_options): Do function inlining with very small
2087 max-inline-insns-* parameters when optimizing for size.
2089 2004-04-02 Vladimir Makarov <vmakarov@redhat.com>
2091 * config/i386/i386.h (TARGET_NOCONA): New macro.
2092 (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
2093 (processor_type): Add PROCESSOR_NOCONA.
2095 * config/i386/i386.md (cpu): Add nocona to the attribute values.
2097 * config/i386/i386.c (nocona_cost): New variable.
2098 (m_NOCONA): New macro.
2099 (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
2100 x86_branch_hints, x86_use_sahf, x86_single_stringop,
2101 x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
2102 x86_integer_DFmode_moves, x86_partial_reg_dependency,
2103 x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
2104 x86_decompose_lea, x86_arch_always_fancy_math_387,
2105 x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
2106 x86_ext_80387_constants, x86_four_jump_limit):
2107 (override_options): Add nocona_cost to processor_target_table.
2108 Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
2109 (incdec_operand): Prevent inc/dec generation for Nocona too.
2110 (ix86_issue_rate): Add PROCESSOR_NOCONA.
2112 2004-04-01 Andrew Pinski <pinskia@physics.uc.edu>
2114 * rtlanal.c (find_reg_note): Manually
2117 2004-04-01 Mark Mitchell <mark@codesourcery.com>
2119 * genemit.c (gen_split): Change prototype of generated code.
2120 * genrecog.c (write_action): Adjust prototype for and calls to
2122 * gensupport.c (struct queue_elem): Add split field.
2123 (queue_pattern): Return a value. Clear the split field.
2124 (process_rtx): Maintain an association between an insn and the
2125 split generated from it for a define_insn_and_split.
2126 (process_one_cond_exec): Generate a new split for a
2127 define_insn_and_split.
2128 * config/arm/arm-protos.h (arm_split_constant): Add insn
2130 (emit_constant_insn): New function.
2131 (arm_gen_constant): Use it.
2132 * config/arm/arm.md: Adjust calls to arm_split_constant.
2134 2004-04-02 Jan Hubicka <jh@suse.cz>
2136 * cgraph.c: Add overall comment.
2137 (cgraph_inline_hash): New global variable.
2138 (cgraph_create_node): Break out from ...
2139 (cgraph_node): ... here.
2140 (cgraph_edge): New function.
2141 (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
2142 (cgraph_remove_edge): Accept edge, intead of source and destination.
2143 (cgraph_redirect_edge_callee): New.
2144 (cgraph_remove_node): Update all new datastructures.
2145 (cgraph_record_call, cgraph_remove_call): Kill.
2146 (dump_cgraph_node): Break out from ... ; dump new datastructures.
2147 (dump_cgraph): ... here.
2148 (cgraph_function_possibly_inlined_p): Use new hashtable.
2149 (cgraph_clone_edge, cgraph_clone_node): New.
2150 * cgraph.h: Include hashtab.h
2151 (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
2152 fields, add inlined_to pointer.
2153 (cgraph_node): Add pointer to next_clone.
2154 (cgraph_remove_edge, cgraph_create_edge): Update prototype.
2155 (cgraph_remove_call, cgraph_record_call): Kill.
2156 (cgraph_inline_hash): Declare.
2157 (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
2158 cgraph_redirect_edge_callee): Declare.
2159 (cgraph_create_edges, cgraph_inline_p): Update prorotype.
2160 (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
2161 cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
2162 * cgraphunit.c: Add overall comment.
2163 (cgraph_optimize_function): Kill.
2164 (cgraph_assemble_pending_functions): Do not assemble inline clones.
2165 (cgraph_finalize_function): Update call of cgraph_remove_node
2166 (record_call_1): Record call sites.
2167 (cgraph_create_edges): Accept node instead of decl argument.
2168 (error_found): New static variable.
2169 (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
2170 (cgraph_analyze_function): Update for new datastructures.
2171 (cgraph_finalize_compilation_unit): Plug memory leak.
2172 (cgraph_optimize_function): Kill.
2173 (cgraph_expand_function): Do not use cgraph_optimize_function.
2174 (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
2175 cgraph_inlined_callees): Kill.
2176 (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
2178 (estimate_growth): Simplify.
2179 (cgraph_clone_inlined_nodes): New function.
2180 (cgraph_mark_inline_edge): Re-implement.
2181 (cgraph_mark_inline): Likewise.
2182 (cgraph_check_inline_limits): Simplify.
2183 (cgraph_recursive_inlining_p): New.
2184 (update_callee_keys): Break out from ...
2185 (cgraph_decide_inlining_of_small_functions): ... here; simplify.
2186 (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
2188 (cgraph_expand_all_functions): Remove inline clones from the ordered
2190 (cgraph_preserve_function_body_p): New predicate.
2191 (cgraph_optimize): Verify cgraph.
2192 * function.h (struct function): Add fields saved_tree/saved_args.
2193 * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
2194 * toplev.c (rest_of_compilation): Do not free cfun.
2195 * tree-inline.c: Include function.h
2196 (struct inline_data): Add saving_p field; replace decl/current_decl by
2198 (insert_decl_map): New function.
2199 (copy_body_r): Handle saving; update cgraph datastructure.
2200 (copy_body): Handle recursive inlining.
2201 (initialize_inlined_parameters): Likewise.
2202 (expand_call_inline): Propagate node attributes; update cgraph.
2203 (optimize_inline_calls): Verify that datastructure still match.
2204 (save_body): New function.
2205 * tree-inline.h (save_body): New.
2206 * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
2207 * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
2208 * langhooks.c (lang_hooks): Add update_decl_after_saving.
2210 2004-04-01 Serge Belyshev <1319@bot.ru>
2213 * config/i386/i386.md: fix source operand constraints in
2214 mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
2216 2004-04-01 Waldek Hebisch <hebisch@math.uni.wroc.pl>
2218 * fold-const.c (folda): Preserve types of comparisons.
2220 2004-04-01 Richard Henderson <rth@redhat.com>
2222 * toplev.c (backend_init): Move init_optimization_passes call ...
2223 (lang_dependent_init): ... here.
2225 2004-04-01 Alan Modra <amodra@bigpond.net.au>
2226 Jakub Jelinek <jakub@redhat.com>
2228 * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
2229 -lgcc --as-needed -lgcc_s --no-as-needed by default.
2230 * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
2231 * configure: Rebuilt.
2232 * config.in: Rebuilt.
2233 * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
2234 (stage2-start, stage3-start, stage4-start): Likewise.
2235 (stageprofile-start, stagefeedback-start): Likewise.
2237 2004-04-01 Jakub Jelinek <jakub@redhat.com>
2239 * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
2240 * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2241 * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2242 * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2243 (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
2244 * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
2245 with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
2246 * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
2247 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
2248 * config/sparc/t-linux: Removed.
2250 2004-04-01 Jakub Jelinek <jakub@redhat.com>
2253 * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
2254 "bitfld++ == const" to "++bitfld == const + incr" transformations.
2256 2004-04-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2258 * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
2259 * stor-layout.c (layout_decl): Likewise.
2260 * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
2261 * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
2262 * print-tree.c (print_node): Handle various used of unsigned_flag.
2263 * tree.def (BIT_FIELD_REF): Update comment.
2264 * tree.h (TREE_UNSIGNED): Deleted.
2265 (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
2267 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2269 * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
2270 Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
2271 * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
2272 * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
2273 * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
2274 * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
2275 * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
2276 * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
2277 * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
2278 * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
2279 REAL_TYPE, not INTEGER_TYPE.
2280 (layout_type, case VECTOR_TYPE): Simplify code.
2281 * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
2282 * tree.h: Update comments.
2283 (STRIP_NOPS): Use TYPE_UNSIGNED.
2284 (TYPE_UNSIGNED): New macro.
2285 (TYPE_TRAP_SIGNED): Remove now redundant check.
2286 (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
2288 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2290 * function.c (put_var_into_stack): Properly set orig_reg for indirect.
2292 2004-03-31 Andrew Pinski <pinskia@physics.uc.edu>
2294 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
2295 Add darwin-fpsave.asm, darwin-vecsave.asm,
2296 and darwin-world.asm.
2297 (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
2298 as the asm files contain altivec instructions.
2299 * config/rs6000/darwin-fpsave.asm: New file.
2300 * config/rs6000/darwin-vecsave.asm: New file.
2301 * config/rs6000/darwin-world.asm: New file.
2303 2004-03-31 Zack Weinberg <zack@codesourcery.com>
2305 * gengtype-yacc.y (option, stringseq): Add missing
2306 terminating semicolon.
2308 2004-03-30 David Edelsohn <edelsohn@gnu.org>
2310 * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
2311 tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
2312 tls_dtprel_ha_32, tls_dtprel_ha_64,
2313 tls_dtprel_lo_32, tls_dtprel_lo_64,
2314 tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
2315 tls_tprel_ha_32, tls_tprel_ha_64,
2316 tls_tprel_lo_32, tls_tprel_lo_64,
2317 tls_got_tprel_32, tls_got_tprel_64,
2318 tls_tls_32, tls_tls_64): Replace register_operand with
2321 2004-03-30 Mostafa Hagog <mustafa@il.ibm.com>
2323 * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
2324 *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
2325 *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
2326 *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
2327 *ctrdi_internal6): Replace register_operand with
2328 nonimmediate_operand.
2330 2004-03-29 Fariborz Jahanian <fjahanian@apple.com>
2332 * fold-const.c (fold): Reassociate multiply expression
2333 with an adjacent non-multiply expression to use
2334 architecture's multiply-add instruction.
2336 2004-03-30 Zack Weinberg <zack@codesourcery.com>
2338 * gengtype.c (create_option): New function.
2339 * gengtype.h: Prototype it.
2340 * gengtype-yacc.y (stringseq): New rule.
2341 (option): Use create_option. Add new bare ID production. Use
2342 stringseq, not STRING directly.
2344 * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
2345 * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
2346 * varray.h, config/alpha/alpha.c:
2347 Use new shorter form of GTY markers.
2349 * doc/gty.texi: Rewrite.
2351 2004-03-30 Andrew Pinski <pinskia@physics.uc.edu>
2353 * config/darwin.c (machopic_function_base_name):
2354 Remove current_name and getting the name of the
2357 2004-03-30 Nick Clifton <nickc@redhat.com>
2359 * config/arm/arm.md (thumb_jump): Reduce the backward branch
2360 range, and increase the forward branch range, to allow for
2361 the fact that the PC will be off by 4.
2363 2004-03-30 Alan Modra <amodra@bigpond.net.au>
2365 * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
2367 2004-03-30 Hartmut Penner <hpenner@de.ibm.com>
2369 * config/rs6000/rs6000.c (output_vec_const_move):
2370 Find all cases of EASY_VECTOR_15_ADD_SELF.
2371 (easy_vector_constant_add_self): Accept
2372 all vector constant loadable by vsplt* and vadd*.
2373 (easy_vector_same): Use easy_vector_splat_const.
2374 (easy_vector_const): Use easy_vector_splat_const.
2375 (easy_vector_splat_const): New function.
2376 (gen_easy_vector_constant_add_self): New function.
2378 * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
2381 * config/rs6000/altivec.md (movv4si splitter): Change to
2382 emit move insn with halfed vector constant.
2383 (*movv8hi splitter): Likewise.
2384 (*movv16qi splitter): Likewise.
2386 2004-03-30 Hartmut Penner <hpenner@de.ibm.com>
2389 * config/rs6000/rs6000.c (rs6000_legitimate_address):
2390 Allow any offset to argument pointer in no-strict case.
2392 2004-03-30 Jan Hubicka <jh@suse.cz>
2394 * toplev.c (backend_init): Add missing call to inint_optimization_passes.
2395 * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
2396 dump file in non-unit-at-a-time mode.
2398 2004-03-29 Hans-Peter Nilsson <hp@axis.com>
2400 * config/cris/cris.h: Correct #ifdef to test for
2401 HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
2402 HAVE_AS_MUL_BUG_ABORT_OPTION.
2404 2004-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2406 * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
2407 the address inside the old RTL.
2409 2004-03-28 Zack Weinberg <zack@codesourcery.com>
2411 * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
2412 (struct c_binding, struct c_scope): Add chain_next
2413 attributes to GTY markers.
2414 (struct lang_identifier, struct lang_tree_node): Define
2416 * c-tree.h: ... not here. No longer need to declare struct
2417 c_binding either. Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
2418 * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
2419 to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
2422 * c-decl.c (get_parm_info): If error_mark_node is encountered
2423 in the bindings chain, unbind and discard it; don't abort.
2425 2004-03-28 Olga Golovonevsky <olga@il.ibm.com>
2426 Dorit Naishlos <dorit@il.ibm.com>
2428 * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
2429 one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
2431 2004-03-28 Stephane Carrez <stcarrez@nerim.fr>
2433 * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
2435 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
2436 (m68hc11_attribute_table): New attribute "page0" to mark a global
2437 variable as being allocated from within page0 section.
2438 (m68hc11_encode_label): New function.
2439 (m68hc11_strip_name_encoding): New function.
2440 (m68hc11_page0_symbol_p): New function.
2441 (m68hc11_indirect_p): Accept global variables marked in page0.
2442 (m68hc11_encode_section_info): Lookup "page0" attribute.
2444 * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
2445 represents access to page0 variables.
2447 * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
2448 ("*logicalsi3_silshl16_zext"): Likewise.
2449 ("*ashldi3_const32"): Likewise.
2450 (peephole2 ashift): Likewise.
2452 2004-03-28 Joseph S. Myers <jsm@polyomino.org.uk>
2454 * c-tree.h (C_DECL_REGISTER): New.
2455 * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
2456 finish_decl, grokdeclarator, get_parm_info), c-typeck.c
2457 (build_array_ref, c_mark_addressable): Set and use it.
2458 * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
2459 Allow structures with volatile fields to be declared register.
2460 Don't check TREE_ADDRESSABLE before warning about taking address
2462 * c-decl.c (finish_decl): Don't allow structures with volatile
2463 fields to be placed in named register.
2464 * doc/trouble.texi: Remove reference to structures with volatile
2465 fields in registers.
2467 2004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
2469 * function.c (thread_prologue_and_epilogue): Move
2470 NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
2471 before the epilogue.
2473 2004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
2475 * expr.c (store_constructor): Use gen_int_mode to correctly
2476 sign-extend CONST_INT value.
2478 2004-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2480 * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
2481 * builtins.def (DEF_C94_BUILTIN): New. Add wctype builtins.
2482 * doc/extend.texi: Likewise.
2484 2004-03-26 Diego Novillo <dnovillo@redhat.com>
2486 * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
2487 with TYPE_ORIG_SIZE_TYPE.
2489 2004-03-25 Aldy Hernandez <aldyh@redhat.com>
2492 * c-typeck.c (build_binary_op): Do not allow comparisons of
2495 2004-03-26 James A. Morrison <ja2morri@uwaterloo.ca>
2497 * config.gcc: Remove sparc-tti-*.
2498 * config/sparc/pbd.h: Delete.
2500 * config/sparc/sol2.h: Remove note about Sun OS 4.x.
2501 * config/sparc/aout.h: Likewise.
2503 * config/sparc/sparc.h: Remove if 0'd code.
2504 * config/sparc/sparc.md (call): Remove if 0'd code.
2505 (call_value): Likewise.
2506 (nonlocal_goto): Likewise.
2507 (unimp_insn): Delete.
2509 2004-03-25 Roger Sayle <roger@eyesopen.com>
2511 * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
2512 BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
2514 2004-03-25 Richard Henderson <rth@redhat.com>
2517 * c-typeck.c (pop_init_level): Emit pending init elements earlier
2520 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2522 * builtins.c (fold_builtin): Fix error in last change.
2524 2004-03-25 Richard Sandiford <rsandifo@redhat.com>
2526 * config/mips/mips.h: Formatting fix.
2528 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2530 * builtins.def: Add ctype builtins.
2531 * doc/extend.texi: Likewise.
2533 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2535 * builtins.c (fold_builtin): Add new builtin optimizations for
2537 * fold-const.c (fold): Likewise.
2539 2004-03-25 David Edelsohn <edelsohn@gnu.org>
2541 * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
2542 (rs6000_sched_groups): New variable.
2543 (processor_target_table): Add power5.
2544 (rs6000_override_options): Set rs6000_sched_insert_nops,
2545 rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
2546 from rs6000_sched_groups.
2547 (output_cbranch): Use rs6000_always_hint.
2548 (rs6000_variable_issue): Use rs6000_sched_groups.
2549 (rs6000_adjust_cost): Add CPU_POWER5.
2550 (is_microcoded_insn): Use rs6000_sched_groups.
2551 (is_dispatch_slot_restricted): Use rs6000_sched_groups.
2552 Return 2 for POWER5 cracked instructions.
2553 (is_cracked_insn): Use rs6000_sched_groups.
2554 (is_branch_slot_insn): Use rs6000_sched_groups.
2555 (rs6000_issue_rate): Add CPU_POWER5.
2556 (rs6000_sched_finish): Use rs6000_sched_groups.
2557 (rs6000_rtx_costs): Add PROCESSOR_POWER5.
2558 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
2559 (DEFAULT_SCHED_COSTLY_DEP): Delete.
2560 (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
2561 (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
2562 * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
2563 * config/rs6000/power5.md: New file.
2564 * doc/invoke.texi: Add power5 option.
2566 2004-03-25 Kazu Hirata <kazu@cs.umass.edu>
2568 * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
2569 config/arm/arm.c, objc/objc-act.c: Fix comment typos.
2570 * doc/invoke.texi: Fix a typo.
2572 2004-03-25 Kazu Hirata <kazu@cs.umass.edu>
2574 PR optimization/9707.
2575 * stmt.c (emit_case_nodes): Emit equality comparisons instead
2576 of recursing if both children are single-valued cases with no
2579 2004-03-25 Paul Brook <paul@codesourcery.com>
2581 * config/arm/arm.c (vfp_print_multi): Remove.
2582 (arm_output_fldmx): New function.
2583 (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
2584 (arm_expand_prologue): Update to match.
2585 (arm_get_vfp_saved_size): New Function.
2586 (arm_get_frame_offsets): Use it.
2587 (arm_output_epilogue): Use new functions.
2589 2004-03-24 Richard Henderson <rth@redhat.com>
2591 * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
2592 (reg_known_value, reg_known_value_size): Likewise; make static.
2593 (reg_known_equiv_p): Make static.
2594 (clear_reg_alias_info): Update for new indexing.
2595 (get_reg_known_value, set_reg_known_value): New.
2596 (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
2597 (canon_rtx): Use them.
2598 (init_alias_analysis): Likewise. Allocate reg_known_value with gc.
2599 Don't play queer offsetting games with reg_known_value and
2601 (end_alias_analysis): Free reg_known_value with gc.
2602 * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
2603 * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
2604 (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
2607 2004-03-24 Kazu Hirata <kazu@cs.umass.edu>
2609 * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
2610 config/i386/mmintrin.h: Update copyright.
2612 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
2614 * configure.ac: Add --enable-werror-always (for top level bootstrap
2616 * configure: Regenerate.
2618 2004-03-24 Ziemowit Laski <zlaski@apple.com>
2620 * objc/objc-act.c (objc_comptypes): Treat comparisons
2621 between 'Class' and '<class> *' as explicitly invalid.
2623 2004-03-24 David Edelsohn <edelsohn@gnu.org>
2625 * doc/invoke.texi (-frename-registers: Add enabled at -O3.
2626 (-fprofile-values): Add enabled with profile-{generate,use}.
2628 (-ftracer): Add enabled with profile-use.
2629 (-funit-at-a-time): Add enabled at -O2,-O3.
2630 (-funroll-loops): Add enabled with profile-use.
2631 (-funswitch-loops): Add enabled with profile-use. Remove duplicates.
2632 (max-gcse-passes): Mention default.
2633 (max-cse-path-length): Mention default.
2635 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
2637 * Makefile.in (STRICT2_WARN): Reorder.
2638 * configure.ac: Check for -Wold-style-definition, and use it
2639 in strict1_warn if it's available.
2640 * configure: Regnerate.
2642 2004-03-24 Paul Brook <paul@nowt.org>
2644 * config.gcc <arm>: Add --with-abi=
2645 * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
2646 thumb_far_jump_used): Remove prototypes.
2647 (arm_needs_doubleword_align): Add prototype.
2648 (thumb_compute_initial_elimination_offset): Ditto.
2649 * config/arm/arm.c (arm_get_frame_offsets): New function.
2650 (use_return_insn, output_return_instruction, arm_output_epilogue,
2651 arm_output_function_epilogue, arm_compute_initial_elimination_offset,
2652 arm_expand_prologue, thumb_expand_epilogue): Use it.
2653 (arm_abi, target_abi_name, all_arm_abis): New variables.
2654 (arm_override_options): Set them. Set structure padding for AAPCS.
2655 (arm_return_in_memory): Update ABI check.
2656 (arm_init_cumulative_args): Initialize can_split.
2657 (arm_needs_doubleword_align): New function.
2658 (arm_function_arg): Don't split args after pushing to stack. Handle
2659 doubleword/even reg alignment.
2660 (arm_va_arg): Handle all doubleword aligned args.
2661 (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
2663 (arm_compute_save_reg0_reg12_mask): Fix comment.
2664 (thumb_get_frame_size, thumb_get_frame_size): Remove.
2665 (thumb_jump_far_used_p): Remove superfluous argument. Return save
2666 value for alignment.
2667 (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
2669 (thumb_compute_initial_elimination_offset): New function.
2670 (thumb_expand_prologue): Use arm_get_frame_offsets. Remove
2671 unneccessary rounding.
2672 * config/arm/arm.h (target_abi_name): Declare.
2673 (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
2674 arm_abi_type, ARM_DEFAULT_ABI): Define.
2675 (ARM_FLAG_ATPCS): Remove.
2676 (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
2677 (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
2678 (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
2679 TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
2680 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
2681 Contitionalize on ABI, not CPU.
2682 (struct arm_stack_offsets): Define.
2683 (struct machine_function): Add stack_offsets. Remove frame_size.
2684 (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
2686 (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
2687 doubleword alignment.
2688 (THUMB_INITIAL_ELIMINATION_OFFSET,
2689 ARM_INITIAL_ELIMINATION_OFFSET): Remove.
2690 (INITIAL_ELIMINATION_OFFSET): Call functions directly.
2691 * config/arm/arm.md (align_8): Enable for all targets.
2692 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
2693 (ARM_DEFAULT_ABI): Define.
2694 * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
2695 -mstructure-size-boundary.
2697 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
2699 * configure.ac: Check for -Wno-variadic-macros; don't use
2700 -pedantic (in stage 1 or a simple 'make all') unless it's available,
2701 and if it's available, use it. Also, clean up check for
2703 * configure: Regenerate.
2705 2004-03-24 Richard Sandiford <rsandifo@redhat.com>
2707 * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
2708 * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
2709 (MULTILIB_DEFAULTS): Use it.
2710 (MIPS_CPU_STRING_DEFAULT): Remove.
2711 (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
2712 (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make
2713 EABI64 -mlong32 the default ABI. Enforce the default architecture.
2714 * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
2715 march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
2716 (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
2717 (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments
2720 2004-03-24 DJ Delorie <dj@redhat.com>
2721 Richard Sandiford <rsandifo@redhat.com>
2723 * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
2724 (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
2725 (ASM_SPEC): Pass down -mfix-vr4122-bugs.
2726 * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
2727 in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
2728 (mips_init_libfuncs): Use special functions for divsi3 and modsi3
2729 if TARGET_FIX_VR4122.
2730 * config/mips/mips.md (define_attr length): Account for nops inserted
2731 after macc and dmult when using -mfix-vr4122-bugs.
2732 (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
2733 * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
2734 LIB2FUNCS_EXTRA. Add config/mips/vr4122-div.S.
2735 * config/mips/vr4122-div.S: New file.
2736 * doc/invoke.texi: Document -mfix-vr4122-bugs.
2738 2004-03-24 Richard Sandiford <rsandifo@redhat.com>
2740 * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
2741 (TARGET_MIPS4130): New macro.
2742 (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
2743 * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
2744 (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
2745 with PROCESSOR_R4130.
2746 * config/mips/mips.md (define_attr cpu): Add r4130.
2747 * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
2749 2004-03-24 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
2750 Richard Sandiford <rsandifo@redhat.com>
2752 * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
2754 2004-03-24 Alexandre Oliva <aoliva@redhat.com>
2756 PR preprocessor/14438
2757 * cpplib.c (do_pragma): Remove line_change call after pragma
2760 2004-03-23 Ian Lance Taylor <ian@wasabisystems.com>
2762 * doc/extend.texi (ARM Built-in Functions): Replace with correct
2765 2004-03-23 Roger Sayle <roger@eyesopen.com>
2767 * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
2768 if flag_unsafe_math_optimizations.
2769 * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
2770 and TARGET_80387 expand using truncdfsf2_noop pattern.
2771 (truncxfsf2): Likewise using truncxfsf2_noop.
2772 (truncxfdf2): Likewise using truncxfdf2_noop.
2773 (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
2775 2004-03-23 Ziemowit Laski <zlaski@apple.com>
2777 * hooks.c (hook_constcharptr_tree_null): New hook.
2778 * hooks.h (hook_constcharptr_tree_null): New prototype.
2779 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
2780 * target.h (mangle_fundamental_type): New target hook.
2781 * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
2782 target hook at rs6000_mangle_fundamental_type.
2783 (rs6000_mangle_fundamental_type): New function.
2784 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
2786 2004-03-23 Zack Weinberg <zack@codesourcery.com>
2788 PR 12267, 12391, 12560, 13129, 14114, 14133
2789 * c-tree.h: Forward declare struct c_binding. Declare
2790 c_override_bindings_to_false. Update prototypes.
2791 (struct lang_identifier): Update comments. Change fields to be
2793 (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
2794 (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
2795 (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
2796 (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
2797 * c-common.h: Update prototypes.
2798 * c-decl.c (struct c_scope): Update commentary. Remove names,
2799 names_last, parms, parms_last, tags, and shadowed fields. Add
2800 bindings and depth fields.
2801 (scope_freelist): Move to more appropriate location.
2802 (c_print_identifier): Update for changes to struct lang_identifier.
2803 (objc_mark_locals_volatile): Update for new bindings structures.
2804 (global_bindings_p): Honor c_override_global_bindings_to_false.
2805 (pushlevel): Rename to push_scope; take no arguments; use the
2806 scope_freelist; initialize scope->depth and check for overflow.
2807 (poplevel): Rename to pop_scope; totally rewritten for new bindings
2809 (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
2810 C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
2811 Improve some commentary. Adjust handling of forward parm decls.
2812 (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
2813 Preserve C_DECL_IN_EXTERNAL_SCOPE.
2814 (warn_if_shadowing): Correct indentation. Improve diagnostics.
2815 (pushdecl): Remove unnecessary assertion. Short-circuit anonymous
2816 decls. Rewrite for new bindings structures. Improve commentary.
2817 Eliminate the copy_node call.
2818 (implicit_decl_warning): Use the "diag" idiom (as seen in
2819 locate_old_decl) to reduce code duplication; call locate_old_decl
2820 if appropriate. Relocate to remove need for forward declaration.
2821 (implicitly_declare): Adjust for new bindings structures. Kludge
2822 around Objective-C not-really-builtin functions.
2823 (undeclared_variable): Improve diagnostics. If current_function_decl
2824 is nonnull but current_function_scope is null, use current_scope.
2826 (lookup_tag): Adjust for new bindings structures. Kludge around
2827 Objective-C's tag declarations that wind up in the external scope.
2828 (lookup_name): Adjust for new bindings structures. Kludge around
2829 c-common.c's pseudo-typedefs that wind up in the external scope.
2830 (lookup_name_current_level): Rename lookup_name_in_scope; take a
2831 second argument indicating the scope to examine; rewrite for
2832 new bindings structures.
2833 (c_init_decl_processing): Adjust for renamed functions. Do not
2834 initialize current_file_decl, first_builtin_decl, last_builtin_decl.
2835 First scope pushed is the external scope, not the global scope.
2836 (builtin_function): Use bind, not pushdecl. Adjust other bits
2837 for new data structures. Keep track of builtins that should be
2838 made visible automatically.
2839 (start_decl): Adjust diagnostics. Remove unnecessary call to
2841 (grokparms): Return 0 if arg_types is error_mark_node.
2842 (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
2843 reversed sense. Rewrite for new bindings structures. Do not
2844 leave any decls in the scope, to prevent pop_scope from doing
2845 contradictory things with them.
2846 (finish_struct, finish_enum): Remove redundant diagnostics.
2847 (build_enumerator): Don't cascade diagnostics for error_mark_node.
2848 Mark location where -pedantic changes the meaning of the program.
2849 (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
2850 parameter decls into the function's scope structure using bind.
2851 Warn here about function definitions in the wrong style.
2853 (store_parm_decls): Correct the determination of whether a
2854 function was defined with a prototype.
2855 (c_write_global_declarations): Operate on all file decls and on
2856 the external scope. Split body of the loop to...
2857 (c_write_global_declarations_1): ... this new function, to avoid
2859 (truly_local_externals, first_builtin_decl, last_builtin_decl)
2860 (make_scope, pop_scope, in_parm_level_p, set_block)
2861 (any_external_decl, record_external_decl, bind_label, getdecls)
2862 (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
2863 (c_reset_state): Delete.
2864 (visible_builtins, c_override_global_bindings_to_false)
2865 (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
2866 (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
2867 (external_scope, binding_freelist, bind, free_binding_and_advance)
2868 (push_file_scope, pop_file_scope): New.
2869 (pushtag, pushdecl_top_level, lookup_label, declare_label)
2870 (define_label, c_make_fname_decl, finish_decl)
2871 (mark_forward_parm_decls, build_compound_literal)
2872 (grokdeclarator, start_function, check_for_loop_decls)
2873 (identifier_global_value, record_builtin_type): Minor adjustments
2874 for new bindings structures. Improve diagnostics and commentary.
2875 * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
2876 pushlevel/poplevel respectively.
2877 (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
2878 * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
2879 Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
2880 correct loop over multiple translation units; call fatal_error if
2881 requested to compile more than one file at once. (This disables
2882 IMA temporarily - an up-front error being preferable to a crash.)
2883 * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
2884 (all actions): Adjust calls to pushlevel/poplevel.
2885 (parsing_iso_function_signature): Delete.
2886 (extdef_1): Fold into extdef.
2887 (old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
2888 warn here about function definitions in the wrong style.
2889 (after_tyle_declarator, parm_declarator_starttypename)
2890 (parm_declarator_nostarttypename, notype_declarator): Remove
2891 commented-out productions.
2892 (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
2893 an empty TREE_LIST node. Adjust calls to get_parm_info.
2894 (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
2895 to suppress -Wold-style-definition after this error.
2896 (c_parse_file): Don't clear the binding stack or call
2897 finish_fname_decls here. Correct comment.
2898 * c-typeck.c (same_translation_unit_p): Export.
2899 (common_type): Use c_override_global_bindings_to_false, not
2900 pushlevel/poplevel/declare_parm_level.
2901 * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
2902 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
2903 and LANG_HOOKS_GETDECLS with do-nothing stubs.
2904 * objc/objc-lang.c: Likewise.
2905 * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
2907 (OBJC_VOID_AT_END): Delete; replace all uses
2908 with void_list_node.
2909 (generate_forward_declaration_to_string_table): Delete.
2910 * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
2912 * coverage.c (create_coverage): Don't pushdecl anything.
2913 * langhooks.c (lhd_clear_binding_stack): Call
2914 lang_hooks.decls.poplevel, not poplevel.
2915 * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
2916 circular list rather than going into an infinite loop.
2918 2004-03-23 Olivier Hainque <hainque@act-europe.fr>
2920 * optabs.c (expand_binop): When synthesizing double word rotates
2921 from single word shifts, use a new register target if the provided
2922 target is not a REG already.
2924 2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2926 * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
2927 * c-common.c (handle_mode_attribute): Add extra arg to
2928 build_pointer_type_for_mode and build_reference_type_for_mode.
2929 * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
2931 * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
2932 Chain pointers via TYPE_NEXT_PTR_TO.
2933 (build_reference_type_for_mode): Similarly.
2934 (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
2935 and build_reference_type_for_mode.
2936 (tree_check4_failed): New function.
2937 * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
2938 (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
2939 (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
2942 2004-03-23 Roger Sayle <roger@eyesopen.com>
2944 * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
2945 A is nonnegative or B is nonnegative. Similarly A|B is nonnegative
2946 when both A and B are nonnegative.
2947 (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
2950 2004-03-23 Kazu Hirata <kazu@cs.umass.edu>
2952 * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
2953 VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
2955 2004-03-23 Kazu Hirata <kazu@cs.umass.edu>
2957 PR optimization/14669
2958 * fold-const.c (fold): Only unwiden integer comparisons for equality
2959 and inequality operators, or when the signedness doesn't change.
2961 2004-03-23 Jakub Jelinek <jakub@redhat.com>
2963 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
2964 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
2965 * config/sparc/t-linux: New file.
2967 2004-03-23 Richard Sandiford <rsandifo@redhat.com>
2969 * gcse.c (can_assign_to_reg_p): New function, split out from...
2970 (want_to_gcse_p): ...here.
2971 (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
2974 2004-03-22 Diego Novillo <dnovillo@redhat.com>
2976 * c-typeck.c (same_translation_unit_p): Fix pasto.
2978 2004-03-22 David Edelsohn <edelsohn@gnu.org>
2980 * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
2981 (PARAM_MAX_SCHED_REGION_INSNS): New.
2982 * sched-rgn.c: Include params.h
2983 (MAX_RGN_BLOCKS): Delete.
2984 (MAX_RGN_INSNS): Delete.
2985 (too_large): Return bool. Convert to PARAM_VALUE.
2986 * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
2987 * doc/invoke.texi (param): Document max-sched-region-blocks and
2988 max-sched-region-insns.
2990 2004-03-22 Joel Brobecker <brobecker@gnat.com>
2992 * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
2995 2004-03-22 Joel Brobecker <brobecker@gnat.com>
2997 * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
3000 2004-03-22 Jakub Jelinek <jakub@redhat.com>
3003 * c-decl.c (finish_struct): Change type of incorrect flexible array
3004 field into error_mark_node.
3006 2004-03-22 Andrew Pinski <pinskia@physics.uc.edu>
3009 * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
3010 who are not local for Darwin PIC.
3012 2004-03-22 Ulrich Weigand <uweigand@de.ibm.com>
3014 * regrename.c (regrename_optimize): Set regs_ever_live for all
3015 registers introduced as replacement.
3017 2004-03-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3020 * expr.c (mark_queue): New function.
3021 (emit_insns_enqueued_after_mark): New function replacing
3022 emit_queue. Clear the body of emitted queued insns.
3023 (emit_queue): Call emit_insns_enqueued_after_mark.
3024 (store_expr): Mark the increment queue on entry. Emit
3025 only the incrementations queued when expanding the source.
3027 2004-03-22 Nathanael Nerode <neroden@gcc.gnu.org>
3029 * configure.ac: Allow --disable-coverage-flags (for the future benefit
3030 of top level bootstrap, and consistency). Reindent.
3031 * configure: Regenerate.
3033 2004-03-21 Kazu Hirata <kazu@cs.umass.edu>
3035 * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
3036 ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
3039 2004-03-22 Danny Smith <dannysmith@users.sourceforge.net>
3042 * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
3045 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
3047 * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
3048 to nonimmediate_operand.
3049 ("*doloop_di"): Likewise.
3051 2004-03-21 Alexandre Oliva <aoliva@redhat.com>
3053 * real.h (struct real_value): Use the same type for all
3054 bitfields. Rename exp to uexp.
3055 (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
3056 Adjust all uses of exp...
3057 * builtins.c: ... here, ...
3058 * emit-rtl.c: ... here, and ...
3059 * real.c: ... and here.
3061 2004-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
3063 * pretty-print.c (pp_base_maybe_space): New function.
3064 * pretty-print.h (pp_base_maybe_space): Declare.
3065 (pp_maybe_space): New macro.
3067 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
3069 * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
3071 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
3073 * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
3074 of using register multiplication cost.
3075 (expand_mult): Adapt choose_mult_variant call.
3076 (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
3077 of MODE; pass appropriate cost bound. Adjust result when
3078 performing signed multiplication by a negative constant.
3079 Don't use intermediate modes larger than word_mode.
3081 2004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3083 * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
3084 * emit-rtl.c (component_ref_for_mem_expr): Likewise.
3085 (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
3086 * explow.c (expr_size): Likewise.
3087 * expr.h (placeholder_list, find_placeholder): Deleted.
3088 * expr.c (store_constructor): Likewise.
3089 (get_inner_reference): Likewise. Also don't call find_placeholder.
3090 (placeholder_list, find_placeholder): Deleted.
3091 (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
3092 (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
3093 (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
3094 * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
3095 * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
3097 * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
3098 (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
3099 * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
3100 (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
3101 Clean up by using first_rtl_op.
3102 (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
3103 (substitute_placeholder_in_expr): New function.
3104 * tree.def (WITH_RECORD_EXPR): Deleted.
3105 * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
3106 (substitute_placeholder_in_expr): New.
3108 2004-03-21 Andrew Pinski <pinskia@gcc.gnu.org>
3110 * dojump.c (prefer_and_bit_test): Fix which part of
3111 the and_test is replaced.
3113 2004-03-21 Joseph S. Myers <jsm@polyomino.org.uk>
3115 * frontends.texi: Add missing line.
3117 2004-03-21 Zack Weinberg <zack@codesourcery.com>
3118 Chris Devers <cdevers@pobox.com>
3119 Joseph S. Myers <jsm@polyomino.org.uk>
3121 * doc/frontends.texi: Rewrite.
3122 * doc/gcc.texi: Update last modification date.
3124 2004-03-21 Josef Zlomek <zlomekj@suse.cz>
3126 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
3127 message before redirecting the edge.
3129 2004-03-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3131 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
3133 * explow.c (force_not_mem): Set REG_POINTER flag according to
3135 * rtl.h (MEM_POINTER): New macro.
3136 (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
3139 2004-03-20 Roger Sayle <roger@eyesopen.com>
3142 * cse.c (fold_rtx): Avoid substituting constants into unary
3143 conversion operations.
3145 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
3147 * fold-const.c (fold): Replace "expr" with "t".
3149 2004-03-20 Ian Lance Taylor <ian@wasabisystems.com>
3152 * c-typeck.c (tagged_types_tu_compatible_p): Don't use
3153 DECL_ORIGINAL_TYPE if there isn't one.
3155 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
3157 * fold-const.c (fold): Replace "final_type" with "type".
3158 Remove variable "final_type".
3160 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
3162 * fold-const.c (fold): Constify "type".
3163 Replace "TREE_TYPE (t)" with "type".
3165 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
3167 * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
3168 dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
3169 via (*targetm.foo) () with targetm.foo ().
3171 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
3174 * doc/install.texi: Add info directory category and entry.
3176 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
3178 * fold-const.c (fold): Replace "t" with "tem" where it is used
3179 as a temporary variable. Remove "orig_t" and all of its uses.
3181 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
3183 * fold-const.c (fold): Remove variable "invert".
3184 Move the handling of relational expressions that can be folded
3186 (fold_relational_const): ... here.
3187 (tree_expr_nonzero_p): New.
3189 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
3192 * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
3195 2004-03-20 Richard Sandiford <rsandifo@redhat.com>
3197 * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
3198 (GTFILES): Add $(srcdir)/dojump.h.
3199 (gt-dojump.h): New dependency.
3200 * dojump.c (and_reg, and_test, shift_test): New static variables.
3201 (prefer_and_bit_test): New function.
3202 (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
3204 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
3206 * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
3207 expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
3208 reorg.c, tree.h: Fix comment typos.
3210 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
3212 * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
3213 c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
3214 cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
3215 haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
3216 sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
3217 vmsdbgout.c: Replace calls via (*targetm.foo) () with
3220 2004-03-19 Ziemowit Laski <zlaski@apple.com>
3222 * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
3223 vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
3224 always_inline attribute.
3225 * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
3226 Treat expansion as completed even if literal argument is
3227 invalid (so that other expansions are not tried in vain).
3229 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
3231 * loop-doloop.c (add_test): Replace GEN_INT (0) with
3234 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
3236 * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
3238 (fold_abs_const): ... here.
3240 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3242 * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
3244 2004-03-19 Denis Chertykov <denisc@overta.ru>
3247 * config/avr/avr.md ("call_insn"): Handle explicit integer
3249 (call_value_insn): Likewise.
3251 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3253 * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
3255 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
3257 * fold-const.c (negate_expr): Move the handling of constants
3259 (fold_negate_const): ... here.
3261 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3263 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
3264 * langhooks.h (struct lang_hooks_for_types): New field hash_types.
3265 * tree.c (debug_no_type_hash): Deleted.
3266 (type_hash_canon): Abort if passed a variant.
3267 Check lang_hooks.types.hash_types.
3268 (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
3269 (build_array_type): Remove unnecessary allocation of pointer type.
3270 (build_complex_type): Properly qualify resulting type.
3272 2004-03-19 Paolo Bonzini <bonzini@gnu.org>
3274 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
3276 2004-03-19 Richard Sandiford <rsandifo@redhat.com>
3278 * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
3279 (expand_mult): ...here.
3280 (extract_high_half): New, split out from expand_mult_highpart.
3281 (expand_highpart_optab): Likewise. Don't clobber target prematurely.
3282 (expand_highpart): Evaluate the cost of a shift/add sequence,
3283 then see if any of the specialized optabs are cheaper.
3285 2004-03-18 Ian Lance Taylor <ian@wasabisystems.com>
3287 * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
3289 2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3291 * convert.c (convert_to_real): Add more math builtins.
3293 2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3295 * convert.c (convert_to_real): Reformat using switch stmt.
3297 2004-03-18 Mark Mitchell <mark@codesourcery.com>
3299 * c-common.c (pointer_int_sum): Do not complain about using
3300 pointers to pointers-to-members.
3302 2004-03-18 Kazu Hirata <kazu@cs.umass.edu>
3304 * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
3305 have moved to the target hooks structure".
3307 2004-03-18 James E Wilson <wilson@specifixinc.com>
3309 * config/mips/mips.md (type): Split move into arith and fmove. Split
3310 hilo into mthilo and mfhilo. Add trap. Delete icmp. Fix all uses.
3311 * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
3313 * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
3315 * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
3316 rm7_fp_quick): Likewise.
3317 * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
3318 rm9k_fquick): Likewise.
3319 * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
3321 (ir_sr70_icmp): Delete.
3323 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3325 * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
3326 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
3327 (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
3328 (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
3329 (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
3330 Protect with proper check.
3331 (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
3332 (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
3333 * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
3334 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
3335 * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
3336 * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
3338 * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
3340 2004-03-18 Mostafa Hagog <mustafa@il.ibm.com>
3342 * gcse.c (eliminate_partially_redundant_loads): Reject change if
3343 dest is set between beginning and current insn.
3345 2004-03-18 Mark Mitchell <mark@codesourcery.com>
3347 * c-decl.c (grokdeclarator): Do not complain about redeclaring
3348 visible "static" identifiers "extern" in a local scope.
3349 * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
3350 post-increments/decrements.
3352 2004-03-18 Bob Wilson <bob.wilson@acm.org>
3354 * config/xtensa/xtensa.c (current_function_arg_words): Delete.
3355 (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
3356 (xtensa_va_start): Remove assignment to current_function_arg_words.
3358 2004-03-18 Richard Sandiford <rsandifo@redhat.com>
3360 * alias.c (record_set): Detect the case where a register is assigned
3361 a new value that has the same base term as the old one.
3363 2004-03-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3365 * doloop.c: Removed.
3366 * loop-doloop.c: New file.
3367 * Makefile.in (doloop.o): Remove.
3368 (loop-doloop.o): New.
3369 * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
3370 * cfgloopanal.c (get_loop_level): New function.
3371 * loop-iv.c (iv_number_of_iterations): Handle case when loop
3372 is leaved immediatelly.
3373 * loop.c (strength_reduce): Do not call doloop optimization.
3374 * loop.h (LOOP_BCT): Removed.
3375 * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
3376 (rest_of_handle_loop2): Call doloop_optimize_loops.
3377 (rest_of_compilation): Test for optimizations moved to
3378 rest_of_handle_loop2.
3380 2004-03-17 Fariborz Jahanian <fjahanian@apple.com>
3382 * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
3384 (rs6000_emit_prologue): Ditto.
3385 (rs6000_emit_epilogue): Ditto.
3386 * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
3387 macro for mixed mode.
3389 2004-03-18 Jan Hubicka <jh@suse.cz>
3391 * predict.c (propagate_freq): Compute correctly frequency of
3394 2004-03-17 Eric Christopher <echristo@redhat.com>
3396 * builtins.c (apply_args_size): Use reg_raw_mode.
3397 (apply_result_size): Ditto.
3399 2004-03-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3402 * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
3404 2004-03-17 Jakub Jelinek <jakub@redhat.com>
3406 * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
3407 32-bit builds when defaulting to 32-bit.
3409 2004-03-17 Jan Hubicka <jh@suse.cz>
3411 * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
3414 2004-03-17 James E Wilson <wilson@specifixinc.com>
3416 * config/mips/mips.md (zero_extendsidi2): Add length attribute.
3417 (hazard_nop): Change type to nop.
3418 (type): Split arith into arith, shift, slt, clz. Delete darith.
3419 Fix all uses. Change arith to multi if more than one insn emitted.
3420 * config/mips/5400.md (ir_vr54_arith): Likewise.
3421 * config/mips/5500.md (ir_vr55_arith): Likewise.
3422 * config/mips/7000.md (rm7_int_other): Likewise.
3423 * config/mips/9000.md (rm9k_int): Likewise.
3424 * config/mips/sr71k.md (ir_sr70_arith): Likewise.
3426 2004-03-17 Joel Brobecker <brobecker@gnat.com>
3428 * dwarf2out.c (subrange_type_die): Define new variable "subtype"
3429 to hold the subtype tree instead of recomputing it several times.
3431 2004-03-17 Kazu Hirata <kazu@cs.umass.edu>
3433 * config/mn10300/mn10300.c (notice_update_cc): Don't handle
3435 * config/mn10300/mn10300.md (cc): Remove "invert".
3437 2004-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3439 * builtins.c (integer_valued_real_p): Add builtin rint.
3440 (fold_builtin): Likewise.
3441 * convert.c (convert_to_real): Likewise.
3443 * convert.c (convert_to_real): Fix typos in `long double'
3446 2004-03-16 Mark Mitchell <mark@codesourcery.com>
3449 * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
3450 generated COMPOUND_EXPRs.
3452 2004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3454 * config/h8300/t-rtems (h8300-*-rtems*): New.
3456 2004-03-16 Eric Christopher <echristo@redhat.com>
3458 * doc/cppopts.texi(fwide-exec-charset): Fix typo.
3460 2004-03-16 Kazu Hirata <kazu@cs.umass.edu>
3462 * config/i386/i386-protos.h: Add a prototype for
3463 ix86_reverse_condition.
3464 * config/i386/i386.c (ix86_reverse_condition): New.
3465 * config/i386/i386.h (REVERSE_CONDITION): Use
3466 ix86_reverse_condition.
3467 * config/i386/i386.md: Use ix86_reverse_condition instead of
3470 2004-03-16 J. Brobecker <brobecker@gnat.com>
3472 * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
3474 2004-03-16 Nathanael Nerode <neroden@gcc.gnu.org>
3477 * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
3479 2004-03-16 Paolo Bonzini <bonzini@gnu.org>
3481 * c-common.c (c_common_type_for_mode): Build vector types on
3483 (handle_mode_attribute): Deprecate using the mode attribute
3484 to create vector types. Fix indentation.
3485 (vector_type_node_list): Remove.
3486 (handle_vector_size_attribute): Create vector types on demand.
3487 Strip a NON_LVALUE_EXPR from the attribute if there is one.
3488 * c-typeck.c (comptypes): Make vector types compatible if they
3489 have the same underlying mode.
3490 (convert_for_assignment): Use comptypes to convert between
3492 * tree.c (build_common_tree_nodes_2): Do not create vector types.
3493 * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
3495 * tree.h: Remove vector types.
3496 * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
3497 * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
3498 (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
3499 V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
3500 * doc/extend.texi (Vector Types): Document how to use the
3501 vector_size attribute to create vectors, rather than mode.
3503 * config/arm/mmintrin.h: Use vector_size attribute, not mode.
3504 * config/i386/emmintrin.h: Likewise.
3505 * config/i386/mmintrin.h: Likewise.
3506 * config/i386/xmmintrin.h: Likewise.
3507 * config/sh/ushmedia.h: Likewise.
3509 2004-03-16 Kazu Hirata <kazu@cs.umass.edu>
3511 * config/freebsd-spec.h, config/arc/arc-protos.h,
3512 config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
3513 config/arm/linux-gas.h, config/arm/semi.h,
3514 config/cris/cris-protos.h, config/i386/xm-djgpp.h,
3515 config/ia64/freebsd.h, config/mips/7000.md,
3516 config/mips/9000.md, config/ns32k/ns32k-protos.h,
3517 config/sparc/pbd.h: Update copyright.
3519 2004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3522 * config.gcc: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff.
3524 2004-03-16 Paolo Bonzini <bonzini@gnu.org>
3526 * combine.c (combine_simplify_rtx): Remove the "last"
3527 parameter and its documentation. Adjust recursive calls.
3528 (simplify_logical): Always perform the only simplification
3529 controlled by "last", if the simplified expression is
3531 (try_combine): Do not pass the "last" parameter to
3532 combine_simplify_rtx.
3534 2004-03-16 Richard Sandiford <rsandifo@redhat.com>
3537 * config/mips/mips.md (UNSPEC_GP): New constant.
3538 * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
3539 an UNSPEC instead of (reg $gp).
3540 (mips16_gp_pseudo_reg): Change accordingly.
3541 (print_operand): Print $gp directly when handling CONST_GP_P.
3543 2004-03-16 Richard Zidlicky <rz@linux-m68k.org>
3545 * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
3546 * longlong.h: Make code 68060 clean when compiling for m68060.
3548 2004-03-16 Richard Zidlicky <rz@linux-m68k.org>
3550 * config/m68k/m68k.md: Fix constraints for bitfield instructions.
3551 * doc/md.texi: Clarify description of "i" constraint.
3553 2004-03-15 James E Wilson <wilson@specifixinc.com>
3555 * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
3556 Split store into store, fpstore, fpidxstore. Fix all uses.
3557 * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
3559 * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
3560 * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
3561 * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
3562 * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
3563 ir_sr70_fstore): Likewise.
3565 2004-03-15 Richard Henderson <rth@redhat.com>
3568 * except.c (collect_one_action_chain): Record action for cleanup
3569 outer of exception spec.
3571 2004-03-15 Ian Lance Taylor <ian@wasabisystems.com>
3573 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3574 Fix the check for abort and only do the mmap if we can.
3576 2004-03-15 Eric Botcazou <ebotcazou@act-europe.fr>
3578 * config/sparc/sparc.h: Rework comments about the code model
3579 in 64-bit environment and the mode 'Pmode'.
3580 * doc/invoke.texi (SPARC options): Rework description of the
3581 different code models supported in 64-bit environment.
3583 2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
3585 * defaults.h (REVERSIBLE_CC_MODE): Define.
3586 * jump.c (reversed_comparison_code_parts): Don't check if
3587 REVERSIBLE_CC_MODE is defined.
3589 2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
3591 * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
3592 et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
3593 hosthooks.h, params.h, ra-colorize.c, web.c,
3594 config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
3595 config/avr/avr-protos.h, config/avr/avr.md,
3596 config/fr30/fr30-protos.h, config/fr30/fr30.md,
3597 config/h8300/fixunssfsi.c, config/i386/darwin.h,
3598 config/i386/freebsd.h, config/i386/freebsd64.h,
3599 config/ia64/hpux.h, config/ia64/unwind-ia64.c,
3600 config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
3601 config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
3602 config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
3603 config/pa/pa64-regs.h, config/rs6000/aix41.h,
3604 config/rs6000/aix43.h, config/rs6000/host-darwin.c,
3605 config/sparc/aout.h, config/sparc/freebsd.h,
3606 config/sparc/litecoff.h, config/vax/vax-protos.h,
3607 doc/hostconfig.texi, doc/include/gcc-common.texi: Update
3610 2004-03-15 Paul Brook <paul@codesourcery.com>
3612 * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
3614 2004-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
3616 * c-pretty-print.c (pp_c_semicolon): Fix formatting.
3617 (pp_c_cv_qualifier): Document.
3618 (pp_c_space_for_pointer_operator): Likewise.
3619 (pp_c_integer_constant): Likewise.
3620 (pp_c_identifier): Likewise.
3621 (pp_c_init_declarator): Don't print function body.
3623 2004-03-14 Joseph S. Myers <jsm@polyomino.org.uk>
3625 * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
3626 doc/install.texi, doc/invoke.texi, doc/makefile.texi,
3627 doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
3628 "gcc", "g++" and "g77" or mark up with appropriate markup. Adjust
3629 wording and grammar.
3631 2004-03-14 Roger Sayle <roger@eyesopen.com>
3633 * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
3634 with lang_hooks.foo ().
3635 * builtins.c (expand_builtin_va_arg): Likewise.
3636 * c-common.c (fname_as_string, c_common_truthvalue_conversion,
3637 c_common_type_for_mode, c_common_nodes_and_builtins,
3638 handle_mode_attribute, handle_vector_size_attribute): Likewise.
3639 * c-convert.c (convert): Likewise.
3640 * c-format.c (check_format_types): Likewise.
3641 * c-objc-common.c (c_tree_printer): Likewise.
3642 * c-typeck.c (build_unary_op, build_conditional_expr,
3643 build_binary_op): Likewise.
3644 * calls.c (try_to_integrate, expand_call,
3645 emit_library_call_value_1): Likewise.
3646 * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
3648 * cgraphunit.c (record_call_1, cgraph_analyze_function,
3649 cgraph_expand_function): Likewise.
3650 * convert.c (convert_to_pointer, convert_to_integer): Likewise.
3651 * coverage.c (build_fn_info_type, build_ctr_info_type,
3652 build_gcov_info, create_coverage): Likewise.
3653 * dbxout.c (dbxout_init): Likewise.
3654 * diagnostic.c (diagnostic_report_current_function): Likewise.
3655 * dojump.c (do_jump): Likewise.
3656 * dwarf2out.c (dwarf2_name): Likewise.
3657 * except.c (init_eh): Likewise.
3658 * explow.c (expr_size, int_expr_size): Likewise.
3659 * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
3661 * expr.c (store_expr, store_constructor, safe_from_p,
3662 expand_expr_real, do_store_flag, try_casesi): Likewise.
3663 * function.c (push_function_context_to, pop_function_context_from,
3664 free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
3665 put_var_into_stack, allocate_struct_function, current_function_name):
3667 * integrate.c (copy_decl_for_inlining, expand_inline_function):
3669 * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
3670 lhd_print_error_function): Likewise.
3671 * opts.c (handle_option, decode_options): Likewise.
3672 * passes.c (open_dump_file): Likewise.
3673 * print-tree.c (print_node): Likewise.
3674 * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
3675 expand_decl_cleanup, emit_case_nodes): Likewise.
3676 * stor-layout.c (variable_size): Likewise.
3677 * toplev.c (announce_function, wrapup_global_declarations,
3678 check_global_declarations, compile_file, default_tree_printer,
3679 process_options, lang_dependent_init, finalize): Likewise.
3680 * tree-dump.c (dequeue_and_dump): Likewise.
3681 * tree-inline.c (remap_decl, remap_block, copy_body_r,
3682 initialize_inlined_parameters, declare_return_variable,
3683 inlinable_function_p, expand_call_inline, optimize_inline_calls,
3684 walk_tree, copy_tree_r): Likewise.
3685 * tree-optimize.c (tree_rest_of_compilation): Likewise.
3686 * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
3687 unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
3688 variably_modified_type_p, dump_tree_statistics): Likewise.
3689 * varasm.c (assemble_variable, compare_constant, copy_constant,
3690 force_const_mem, compute_reloc_for_constant, output_constant,
3691 output_addressed_constants, initializer_constant_valid_p): Likewise.
3693 2004-03-14 Kelley Cook <kcook@gcc.gnu.org>
3695 * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
3697 2004-03-14 Andreas Tobler <a.tobler@schweiz.ch>
3699 * doc/install.texi: Reflect autoconf and automake version for
3700 libffi. Update autoconf version to 2.59.
3702 2004-03-13 Roger Sayle <roger@eyesopen.com>
3704 * fold-const.c (negate_expr, operand_equal_for_comparison_p,
3705 optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
3706 make_range, build_range_check, fold_range_test, unextend,
3707 constant_boolean_node, fold_binary_op_with_conditional_arg,
3708 fold_truthop, fold_mathfn_compare, fold_inf_compare,
3709 fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
3710 with lang_hooks.foo ().
3712 2004-03-14 Richard Earnshaw <rearnsha@arm.com>
3714 * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
3716 2004-03-13 Dara Hazeghi <dhazeghi@yahoo.com>
3718 * doc/install.texi: Note status of -fnew-ra.
3720 2004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
3723 * expr.c (store_expr): Call emit_queue before generating the move
3724 from the temporary to the original target. Protect the temporary
3727 2004-03-13 Jakub Jelinek <jakub@redhat.com>
3730 * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
3731 other than UNSPEC_GOTOFF.
3733 2004-03-13 Richard Earnshaw <rearnsha@arm.com>
3735 * arm.c (arm_legitimate_address_p): New argument, OUTER. Pass through
3736 to arm_legitimate_index_p. Update all callers with SET as default
3738 (arm_legitimate_index_p): New argument, OUTER. Restrict the index
3739 range if OUTER is a sign-extend operation on QImode. Correctly
3740 reject shift operations on sign-extended QImode addresses.
3741 (bad_signed_byte_operand): Delete.
3742 (arm_extendqisi_mem_op): New function.
3743 * arm.h (EXTRA_CONSTRAINT_ARM): Delete. Replace with...
3744 (EXTRA_CONSTRAINT_STR_ARM): ... this. Handle extended address
3746 (CONSTRAINT_LEN): New.
3747 (EXTRA_CONSTRAINT): Delete. Replace with...
3748 (EXTRA_CONSTRAINT_STR): ... this.
3749 (PREDICATE_CODES): Remove bad_signed_byte_operand.
3750 * arm.md (extendqihi_insn): Use new constraint Uq. Rework. Length
3751 is now always default.
3752 (define_splits for bad sign-extend loads): Delete.
3753 (arm_extendqisi, arm_extendqisi_v5): Likewise.
3754 * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
3755 Rework 'U' constraint to 'Uv'.
3756 * arm-protos.h: Remove bad_signed_byte_operand. Add
3757 arm_extendqisi_mem_op.
3758 * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
3761 2004-03-13 Alan Modra <amodra@bigpond.net.au>
3763 * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
3764 with targetm version.
3767 * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
3768 (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
3769 * config/rs6000/rs6000.c (rs6000_arg_size): New function.
3770 Update all users of RS6000_ARG_SIZE.
3771 (function_arg_advance): Count fregno using mode size.
3772 (function_arg): Handle long double split over regs and memory.
3773 (function_arg_partial_nregs): Likewise.
3774 (rs6000_va_arg): Repackage complex args.
3776 2004-03-13 Dean Ferreyra <dferreyra@igc.org>
3779 * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
3780 (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
3781 * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
3783 2004-03-12 Jakub Jelinek <jakub@redhat.com>
3785 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
3787 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
3788 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3790 2003-03-12 Andrew Pinski <apinski@apple.com>
3792 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3793 Use ret instead of result. Use addr instead of base.
3795 2004-03-12 David Edelsohn <edelsohn@gnu.org>
3797 * doc/install.texi (*-ibm-aix*): Document assembler and achiver
3798 fixes required by libstdc++ and update installation instructions
3801 2004-03-12 Danny Smith <dannysmith@users.sourceforge.net>
3803 * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
3804 leading '@' on fastcall symbols before stripping suffix.
3806 2004-03-12 Roger Sayle <roger@eyesopen.com>
3808 * combine.c (unmentioned_reg_p): New function to check whether an
3809 expression is a "specialization" of another, i.e. that there are
3810 no registers or memory references mentioned in the first that don't
3811 appear in the second.
3812 (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
3813 (combine_instructions): Also try combining instructions using the
3814 REG_EQUAL note from a preceding log-linked instruction.
3816 2004-03-12 Roger Sayle <roger@eyesopen.com>
3818 * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
3820 2004-03-12 Matt Austern <austern@apple.com>
3822 * target.h (struct gcc_target): New target hook, unwind_label.
3823 * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
3824 * output.h (default_emit_unwind_label): New function.
3825 * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
3826 (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
3827 (TARGET_SUPPORTS_HIDDEN): New target macro.
3828 * dwarf2out.c (struct dw_fde_struct): Add field for function decl
3829 that corresponds to this FDE.
3830 (FRAME_BEGIN_LABEL): Allow target to override default label.
3831 (output_call_frame_info): If FDEs are linknonce, then use extra
3832 indirection for FDE encoding, output a label for each FDE, and
3833 output an empty label for each function without an FDE.
3834 (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
3835 * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
3836 decls with DECL_ONE_ONLY set, if that macro is defined.
3837 (make_decl_one_only): Don't use DECL_COMMON if we're compiling
3838 for a SUPPORTS_ONE_ONLY target.
3839 * config/darwin-protos.h (darwin_unique_section): Declare.
3840 (darwin_asm_named_section): Likewise.
3841 (darwin_section_type_flags): Likewise.
3842 (darwin_non_lazy_pcrel): Likewise.
3843 (darwin_emit_unwind_label): Likewise.
3844 (darwin_make_decl_one_only): Likewise.
3845 * config/darwin.c (machopic_finish): Get rid of tweak that
3846 eliminate stubs for symbols that are defined.
3847 (darwin_encode_section_info): Don't treat weak functions as defined.
3848 (darwin_make_decl_one_only): Define.
3849 (darwin_asm_named_section): Likewise.
3850 (darwin_section_type_flags): Likewise.
3851 (darwin_unique_section): Likewise.
3852 (darwin_emit_unwind_label): Likewise.
3853 (darwin_non_lazy_pcrel): Likewise.
3854 (darwin_asm_output_dwarf_delta): Difference between two labels is
3855 local only if both labels are local.
3856 * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
3857 (ASM_MAKE_LABEL_LINKONCE): Likewise.
3858 (TARGET_SUPPORTS_HIDDEN): Likewise.
3859 (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
3860 (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
3861 (FRAME_BEGIN_LABEL): Likewise.
3862 (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
3863 (ASM_DECLARE_FUNCTION_NAME): Likewise.
3864 (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
3865 (TARGET_ASM_UNIQUE_SECTION): Define.
3866 (EH_FRAME_SECTION_NAME): Define.
3867 (EH_FRAME_SECTION_ATTR): Likewise.
3868 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
3869 (TARGET_ASM_NAMED_SECTION): Likewise.
3870 (TARGET_SECTION_TYPE_FLAGS): Likewise.
3871 * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
3872 TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
3873 TARGET_ASM_EMIT_UNWIND_LABEL.
3875 2004-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3877 * builtins.c (expand_builtin_mathfn): Add pow10* to the
3878 existing exp10* case.
3879 (expand_builtin): Likewise.
3881 2004-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3883 * doc/tm.texi (registers) <Values in Registers>: Add
3884 entry for REGMODE_NATURAL_SIZE.
3886 2004-03-12 Richard Henderson <rth@redhat.com>
3889 * target.h (struct gcc_target): Move calls substructure before
3890 booleans. Add split_complex_arg.
3891 * function.c (assign_parms, split_complex_args): Use it.
3892 * calls.c (expand_call): Likewise.
3893 (split_complex_values): Likewise. Check for splittable types
3894 before allocating memory.
3895 (split_complex_types): Likewise.
3896 * system.h (SPLIT_COMPLEX_ARGS): Poison.
3897 * expr.h (SPLIT_COMPLEX_ARGS): Remove.
3898 * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
3899 * config/alpha/alpha.c (alpha_split_complex_arg): New.
3900 (TARGET_SPLIT_COMPLEX_ARG): New.
3901 * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
3902 * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
3903 (rs6000_override_options): Zap it for non-AIX.
3904 (rs6000_function_value): Use targetm.calls.split_complex_arg.
3905 * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
3906 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
3907 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
3908 * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
3909 SPLIT_COMPLEX_ARGS entry.
3911 2004-03-11 Richard Henderson <rth@redhat.com>
3913 * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
3914 (alpha_lookup_xfloating_lib_func): Use them, return rtx.
3915 (alpha_emit_xfloating_arith): Update to match.
3916 (alpha_emit_xfloating_compare): Likewise.
3917 (alpha_emit_xfloating_cvt): Likewise.
3918 (alpha_emit_xfloating_libcall): Take already built symbol,
3920 * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
3923 2004-03-11 Richard Henderson <rth@redhat.com>
3926 * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
3928 * simplify-rtx.c (simplify_relational_operation): Fix typo.
3930 2004-03-11 Richard Henderson <rth@redhat.com>
3933 * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
3935 2004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
3938 * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
3939 defined, pass small BLKmode values in registers in the low-order part.
3941 2004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
3943 * combine.c (if_then_else_cond): Check for NULL return value of
3944 simplify_gen_subreg.
3946 2004-03-11 Richard Sandiford <rsandifo@redhat.com>
3949 * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
3950 TARGET_SINGLE_FLOAT.
3952 2004-03-11 Steve Ellcey <sje@cup.hp.com>
3954 * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
3955 * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
3956 * config/ia64/ia64.c (ia64_init_libfuncs): New.
3957 (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
3959 2004-03-11 Roger Sayle <roger@eyesopen.com>
3961 * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
3962 -((int)X>>C) where C is an integer constant one bit less than the
3963 size of X into (unsigned)X>>C. Similarly for unsigned->signed.
3964 (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
3966 * simplify-rtx.c (simplify_unary_operation): Also implement the
3967 above transformations at the RTL level.
3969 2004-03-11 Alan Modra <amodra@bigpond.net.au>
3971 * real.c (encode_ibm_extended): Do round low word.
3973 2004-03-11 Ben Elliston <bje@wasabisystems.com>
3975 * config/arm/arm.md (is_xscale): Comment this attribute and move
3976 it a bit further up in the file, closer to related attributes.
3978 2004-03-11 Eric Botcazou <ebotcazou@libertysurf.fr>
3980 * config/host-solaris.c (sol_gt_pch_use_address): Add
3981 missing terminating marker to comment.
3983 2004-03-11 Richard Sandiford <rsandifo@redhat.com>
3985 * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
3986 (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
3987 (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
3988 (*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use
3989 move_operand as source predicate in all cases.
3990 (*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint.
3991 Test reg_or_0_operand. Use move_operand as source predicate.
3992 (*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand.
3993 (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
3994 (*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand.
3995 (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
3996 (*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand.
3997 Use move_operand as source predicate. Remove 'K' constraint.
3998 (*movqi_internal): Likewise movqi_internal.
3999 (*movsf_hardfloat): Renamed from movsf_internal1. Test
4000 reg_or_0_operand. Use move_operand as source predicate.
4001 (*movsf_softfloat): Likewise movsf_internal2.
4002 (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
4003 (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
4004 (*movdf_softfloat): Likewise movdf_internal2.
4005 * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
4006 for DImode if !TARGET_64BIT.
4007 (mips_legitimize_move): Simplify accordingly.
4009 2004-03-11 Josef Zlomek <zlomekj@suse.cz>
4012 * var-tracking.c (struct variable_def): Added field refcount.
4013 (variable_htab_free): Decrease the refcount and delete variable
4014 only if there are no more references.
4015 (unshare_variable): New function.
4016 (vars_copy_1): Increase refcount instead of copying the variable.
4017 (variable_union): Share the variables where possible, unshare
4018 the variables if needed.
4019 (variable_different_p): Return false if var1 and var2 are
4021 (variable_was_changed): Init the refcount of new variable.
4022 (set_frame_base_location): Unshare variable if needed.
4023 (set_variable_part): Init the refcount of new variable.
4024 Unshare the variables if needed.
4025 (delete_variable_part): Unshare the variables if needed.
4026 (emit_notes_for_differences_1): Init the refcount of new variable.
4027 (vt_add_function_parameters): Do not add function parameters to
4028 IN set of ENTRY_BLOCK_PTR because it is unused anyway.
4029 (vt_initialize): Do not add frame_base_decl to IN set of
4030 ENTRY_BLOCK_PTR because it is unused anyway.
4032 2004-03-11 Josef Zlomek <zlomekj@suse.cz>
4034 * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
4035 (vars_copy): Likewise.
4036 (variable_union): Likewise.
4037 (set_variable_part): Likewise.
4038 (delete_variable_part): Likewise.
4040 2004-03-11 Kazu Hirata <kazu@cs.umass.edu>
4042 * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
4043 ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
4044 config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
4045 config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
4046 config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
4047 config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
4048 config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
4049 config/pdp11/pdp11.h, config/rs6000/rs6000.c,
4050 config/stormy16/stormy16.c: Fix comment typos and formatting.
4052 2004-03-11 Nathanael Nerode <neroden@gcc.gnu.org>
4054 * configure: Regenerate, since I forgot to while committing Paolo's
4057 2004-03-08 Paolo Bonzini <bonzini@gnu.org>
4060 Move language detection to the top level.
4061 * configure.ac: Remove code to detect languages,
4062 it now lives exclusively in the top level.
4063 * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
4064 top level, renamed to ACX_PROG_GNAT.
4066 2004-03-10 Richard Henderson <rth@redhat.com>
4068 * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
4070 * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
4071 and host_xmake_file fragments.
4072 * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
4073 (gt_pch_restore): Similarly for gt_pch_use_address.
4074 (default_gt_pch_get_address): New.
4075 (mmap_gt_pch_get_address): Split out of gt_pch_save.
4076 (default_gt_pch_use_address): Split out of gt_pch_restore.
4077 (mmap_gt_pch_use_address): Likewise.
4078 * hooks.c (hook_voidp_size_t_null): Remove.
4079 (hook_bool_voidp_size_t_false): Remove.
4080 * hooks.h: Likewise.
4081 * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
4082 default_ or mmap_ definitions.
4083 (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
4084 * hosthooks.h (struct host_hooks): Update gt_pch_get_address
4085 and gt_pch_use_address.
4086 * config/host-linux.c, config/host-solaris.c: New files.
4087 * config/x-linux, config/x-solaris: New files.
4088 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
4089 Update for changed definition.
4090 (darwin_rs6000_gt_pch_use_address): Likewise.
4091 * doc/hostconfig.texi: Update docs.
4093 2004-03-10 Richard Henderson <rth@redhat.com>
4096 * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
4097 except for pedantic c90 mode.
4099 2004-03-10 Kelley Cook <kcook@gcc.gnu.org>
4101 * configure.ac: Bump AC_PREREQ to 2.59.
4102 * configure: Regenerate.
4104 2004-03-10 Uros Bizjak <uros@kss-loka.si>
4106 * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
4107 (exp10_optab, exp2_optab): Define corresponding macros.
4108 * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
4109 * genopinit.c (optabs): Implement exp10_optab and exp2_optab
4110 using exp10?f2 and exp2?f2 patterns.
4111 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
4112 using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
4113 (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
4114 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4116 * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
4117 exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
4118 exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
4120 2004-03-10 Anthony Green <green@redhat.com>
4122 * doc/invoke.texi (ARM Options): Fix -mpfu typo.
4124 2004-03-10 David Edelsohn <edelsohn@gnu.org>
4126 * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
4127 (TARGET_OS_AIX_CPP_BUILTINS): this. Conditionally define
4129 * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
4130 TARGET_OS_AIX_CPP_BUILTINS.
4131 * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
4132 * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
4133 * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
4134 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
4137 2004-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4139 * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
4141 2004-03-10 David Edelsohn <edelsohn@gnu.org>
4143 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
4144 __LONGDOUBLE128 on AIX.
4146 2004-03-10 Andrew Haley <aph@redhat.com>
4148 PR optimization/14381
4149 * function.c (expand_function_end): Emit a blockage insn before
4150 the epilogue when -fnon-call-exceptions is used.
4152 * except.c (expand_start_all_catch): Make comment more accurate.
4154 2004-03-08 Joel Sherrill <joel@oarcorp.com>
4157 * config/rs6000/t-rtems: Add missing file on branch.
4159 2004-03-10 Ulrich Weigand <uweigand@de.ibm.com>
4161 * dbxout.c (dbxout_symbol_location): Do not output references
4162 to optimized-out constant pool symbols.
4164 2004-03-10 Andreas Schwab <schwab@suse.de>
4166 * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
4169 2004-03-09 James E Wilson <wilson@specifixinc.com>
4171 * alias.c (alias_sets_might_conflict_p): New.
4172 * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
4173 * common.opt (Wstrict-aliasing=): New.
4174 * flags.h (warn_strict_aliasing): Change type to int.
4175 * opts.c (warn_strict_aliasing): Change type to int.
4176 (common_handle_option): Handle OPT_Wstrict_aliasing_.
4177 * tree.h (alias_sets_might_conflict_p): Declare it.
4178 * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
4180 2004-03-10 Roman Zippel <zippel@linux-m68k.org>
4183 * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
4184 (CALL_USED_REGISTERS): Likewise.
4185 (REG_CLASS_CONTENTS): Likewise.
4186 (REG_ALLOC_ORDER): New.
4187 (REGNO_REG_CLASS): Use regno_reg_class.
4188 * config/m68k/m68k.c: Add regno_reg_class array.
4190 2004-03-09 Steve Ellcey <sje@cup.hp.com>
4192 * config/ia64/ia64.md (divsi3): Fix algorithm.
4194 (setf_exp_xf): Remove '*' from name.
4195 * testsuite/gcc.dg/20040309-1.c: New test.
4197 2004-03-09 Ian Lance Taylor <ian@wasabisystems.com>
4199 * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
4200 * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
4201 * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
4202 * config/sparc/sparc.c (sparc_aout_select_section): Remove.
4203 (sparc_aout_select_rtx_section): Don't check
4204 SUNOS4_SHARED_LIBRARIES.
4205 * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
4207 2004-03-10 Hans-Peter Nilsson <hp@axis.com>
4210 * doc/md.texi (Pattern Ordering, Dependent Patterns)
4211 (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
4214 2004-03-09 Zack Weinberg <zack@codesourcery.com>
4216 * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
4217 (LIBGCC_SPEC): Update to match.
4219 2004-03-09 Zack Weinberg <zack@codesourcery.com>
4221 * c-decl.c (last_function_parms, last_function_parm_tags)
4222 (last_function_parm_others, current_function_parms)
4223 (current_function_parm_tags, current_function_parm_others):
4225 (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
4227 (grokdeclarator): For function definitions, save the arg-info
4228 block from the declarator in DECL_ARGUMENTS.
4229 (grokparms): Do not write to last_function_parm*. Use ARG_INFO_*
4230 macros to operate on arg-info block. Can assume ARG_INFO_PARMS
4231 contains only PARM_DECLs. Improve diagnostics.
4232 (get_parm_info): Use ARG_INFO_* macros. Improve comments and
4233 diagnostics. Disable some expensive checks if not ENABLE_CHECKING.
4234 (store_parm_decls_newstyle): Take the function to operate on,
4235 and an arg-info block, as arguments; don't get anything from
4236 current_function_* globals.
4237 (store_parm_decls_oldstyle): Likewise.
4238 (store_parm_decls): Pass fndecl and its arg-info block down to
4239 store_parm_decls_newstyle/oldstyle. Send functions with empty
4240 argument lists through store_parm_decls_newstyle to reduce
4242 (pushdecl): Comment on the problems with the call to copy_node.
4243 Clear DECL_ARGUMENTS of the old node after copying it, if it
4244 is an arg-info block instead of a chain of decls.
4245 (start_function): Do not manipulate current_function_parm* or
4246 last_function_parm*.
4248 2004-03-09 Roger Sayle <roger@eyesopen.com>
4249 Andrew Pinski <pinskia@physics.uc.edu>
4251 * ifcvt.c (noce_try_sign_mask): New function to transform
4252 "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
4253 (noce_process_if_block): Call noce_try_sign_mask.
4255 2004-03-09 Andrew Pinski <apinski@apple.com>
4257 * c-typeck.c (tagged_types_tu_compatible_p):
4260 2004-03-09 Roger Sayle <roger@eyesopen.com>
4262 * simplify-rtx.c (simplify_const_relational_operation): New function
4263 renamed from simplify_relational_operation.
4264 (simplify_relational_operation): Change prototype to accept an
4265 additional mode argument. Call simplify_const_relational_operation.
4266 (simplify_gen_relational): Update simplify_relational_operation call.
4267 (simplify_ternary_operation): Update simplify_relational_operation
4268 subroutine call to use simplify_const_relational_operation instead.
4270 * rtl.h (simplify_const_relational_operation): Prototype here.
4271 (simplify_relational_operation): Add addtional mode argument.
4273 * combine.c (combine_simplify_rtx): Update calls to
4274 simplify_relational_operation.
4275 (simplify_set): Likewise.
4276 (gen_binary): Likewise.
4277 * cse.c (fold_rtx): Likewise.
4278 * dojump.c (compare_from_rtx): Likewise.
4279 (do_compare_rtx_and_jump): Likewise.
4280 * integrate.c (subst_constants): Likewise.
4281 * unroll.c (simplify_cmp_and_jump_insns): Likewise.
4283 2004-03-09 Kazu Hirata <kazu@cs.umass.edu>
4285 * config/m32r/m32r.md: Remove all define_peephole's.
4287 2004-03-09 Alan Modra <amodra@bigpond.net.au>
4289 * config/rs6000/rs6000.md: Remove trailing whitespace.
4291 2004-03-08 Eric Christopher <echristo@redhat.com>
4293 * Makefile.in (site.exp): Add libiconv variable definition.
4295 2004-03-09 Hans-Peter Nilsson <hp@axis.com>
4297 * configure: Regenerate for config/accross.m4 correction.
4299 2004-03-08 Joel Sherrill <joel@oarcorp.com>
4302 * config/rs6000/t-rtems: Add missing file on branch.
4304 2004-03-08 Roger Sayle <roger@eyesopen.com>
4307 * c-typeck.c (c_mark_addressable): A register variable should
4308 be considered global if its not automatic, i.e. TREE_PUBLIC,
4309 TREE_STATIC or DECL_EXTERNAL.
4310 * function.c (put_var_into_stack): Call abort when placing a
4311 hard register into the stack, if x_parm_reg_stack_loc is NULL.
4313 2004-03-08 Ulrich Weigand <uweigand@de.ibm.com>
4315 * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
4316 ("*extendqisi2_short_displ"): Likewise.
4318 2004-03-08 Kazu Hirata <kazu@cs.umass.edu>
4320 * config/pdp11/pdp11.c (comparison_operator_index): Remove.
4321 (comp_operator): Likewise.
4322 * config/pdp11/pdp11-protos.h: Remove corresponding
4325 2004-03-08 Eric Botcazou <ebotcazou@act-europe.fr>
4327 * expr.c (highest_pow2_factor_for_type): Rename into
4328 highest_pow2_factor_for_target. Use DECL_ALIGN instead of
4329 TYPE_ALIGN when the target is a COMPONENT_REF.
4330 (expand_assignment): Ajust call to highest_pow2_factor_for_type.
4332 2004-03-08 Alan Modra <amodra@bigpond.net.au>
4334 * config/rs6000/rs6000.c: Formatting fix.
4335 (legitimate_offset_address_p): Correct offset range check.
4337 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
4338 -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE
4341 2004-03-07 Aldy Hernandez <aldyh@redhat.com>
4343 * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
4345 ("ashrdi3_no_power"): Disable for little endian.
4348 2004-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4350 * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
4353 2004-03-08 Hans-Peter Nilsson <hp@axis.com>
4356 * configure.ac (Target-specific assembler checks) <cris-*-*>: New
4357 case, checking for -no-mul-bug-abort option.
4358 * configure, config.in: Regenerate.
4359 * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
4360 and -mno-mul-bug-workaround.
4361 * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
4362 ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
4363 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
4364 Ditto. Make attribute "slottable" dependent on TARGET_MUL_BUG.
4365 * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
4366 sure mulu.d is not last on cache-line.
4367 * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
4368 into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
4369 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
4370 (TARGET_SWITCHES): New options -mmul-bug-workaround and
4371 -mno-mul-bug-workaround.
4372 (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
4373 (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
4374 * config/cris/cris.c (cris_operand_extend_operator): Clarify
4375 relation to MULT in head comment.
4376 (cris_op_str): Abort for MULT.
4377 (cris_print_operand) <case '!'>: New case.
4379 2004-03-08 Alan Modra <amodra@bigpond.net.au>
4382 * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
4383 dw_val_class_vec. Replace use throughout file.
4384 (dw_float_const): Delete.
4385 (dw_vec_const): New.
4386 (dw_val_struct_union): Rename val_float to val_vec. Replace use
4388 (add_AT_vec): Rename from add_AT_float. Add elt_size param.
4389 (same_dw_val_p): Adjust vec comparison. Use memcmp.
4390 (size_of_die): Adjust dw_val_class_vec sizing.
4391 (output_die): Output dw_val_class_vec.
4392 (insert_int, extract_int, insert_float): New functions.
4393 (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
4394 Handle CONST_VECTOR.
4395 (add_location_or_const_value_attribute): Handle CONST_VECTOR.
4397 2004-03-07 Aldy Hernandez <aldyh@redhat.com>
4399 * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
4400 AltiVec abi cannot co-exist.
4402 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
4404 2004-03-07 Jan Hubicka <jh@suse.cz>
4406 * except.c (emit_to_new_bb_before): Break fallthru edges.
4408 2004-03-07 Stephane Carrez <stcarrez@nerim.fr>
4410 * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
4411 ("*lshrsi3"): Also accept an immediate for 68HC12.
4412 ("*ashrsi3_const"): Likewise.
4413 ("*ashrsi3"): Likewise.
4414 ("*ashlsi3_const"): Likewise.
4415 ("*ashlsi3"): Likewise.
4416 ("cmphi_1_hc12"): Compare two hard register by pushing them and
4417 comparing with a pop; don't use a split for that.
4418 ("cmphi split"): Disable compare split for 68HC12.
4420 * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
4421 the status operands if they have side effects.
4423 2004-03-07 Kazu Hirata <kazu@cs.umass.edu>
4425 * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
4427 * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
4428 config/h8300/h8300.h, config/ia64/ia64.h,
4429 config/mcore/mcore.h, config/mmix/mmix.h,
4430 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
4431 config/stormy16/stormy16.h, config/v850/v850.h,
4432 config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
4433 * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
4436 2004-03-07 Roger Sayle <roger@eyesopen.com>
4438 * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
4439 <XOR_EXPR>: Fold x ^ x as zero.
4440 <AND_EXPR>: Fold x & x as x.
4442 2004-03-07 Roger Sayle <roger@eyesopen.com>
4444 * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
4445 "foo++ == const" into "++foo == const+incr".
4447 2004-03-07 Richard Sandiford <rsandifo@redhat.com>
4449 * config/mips/mips.c (mips_in_small_data_p): Return false if
4452 2004-03-06 Stephane Carrez <stcarrez@nerim.fr>
4454 * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
4456 (expand_prologue): Don't make an interrupt or a trap handler a far
4458 (m68hc11_initial_elimination_offset): Likewise.
4460 2004-03-06 Richard Henderson <rth@redhat.com>
4462 * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
4464 2004-03-06 Kazu Hirata <kazu@cs.umass.edu>
4466 * config/ns32k/ns32k-protos.h: Add a prototype for
4467 ns32k_notice_update_cc.
4468 * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
4469 * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
4470 ns32k_notice_update_cc.
4472 2004-03-06 Ulrich Weigand <uweigand@de.ibm.com>
4474 * config/s390/s390.md ("load_multiple", "*load_multiple_di",
4475 "*load_multiple_si"): Allow only if reload_completed.
4476 ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
4479 2004-03-06 Kazu Hirata <kazu@cs.umass.edu>
4481 * config/vax/vax-protos.h: Add a prototype for
4482 vax_notice_update_cc.
4483 * config/vax/vax.c (vax_notice_update_cc): New.
4484 * config/vax/vax.h (NOTICE_UPDATE_CC): Call
4485 vax_notice_update_cc.
4487 2004-03-06 David Edelsohn <edelsohn@gnu.org>
4489 * collect2.c (main): Only export initfunc and finifunc if
4490 LD_INIT_SWITCH not defined.
4491 (scan_prog_file): Only export constructors and destructors if
4492 LD_INIT_SWITCH not defined. Only export symbols not found in
4495 2004-03-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4497 * pa.md (icacheflush): Reorder operands to make match_scratch operand
4499 * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
4500 from calls to gen_icacheflush.
4502 2004-03-06 Richard Henderson <rth@redhat.com>
4504 * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
4505 (TARGET_LONG_DOUBLE_128): New.
4506 (TARGET_SWITCHES): Add long-double-{128,64}.
4507 (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
4508 (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
4509 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
4510 (WIDEST_HARDWARE_FP_SIZE): New.
4511 (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
4512 * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
4513 if TARGET_VAX_FLOAT.
4514 * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
4515 (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
4517 2004-03-06 Richard Henderson <rth@redhat.com>
4519 * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
4520 botched rtx class conversion.
4522 2004-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4524 * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
4525 BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
4527 * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
4529 * fold-const.c (fold_mathfn_compare, fold): Likewise.
4531 2004-03-06 Eric Botcazou <ebotcazou@libertysurf.fr>
4534 * config/i386/i386.md (movv2di_internal): Conditionalize on
4535 TARGET_SSE, not TARGET_SSE2.
4537 2004-03-05 Chris Demetriou <cgd@broadcom.com>
4539 * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
4542 2004-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4544 * builtins.c: Consistently use logN not log* in comments.
4546 2004-03-05 Andreas Krebbel <krebbel1@de.ibm.com>
4548 * rtl.h (mem_expr_equal_p): Function prototype added.
4549 * cfgcleanup.c (merge_memattrs): New function.
4550 (flow_find_cross_jump): Call merge_memattrs for matching insns.
4551 * emit-rtl.c (mem_expr_equal_p): New function.
4553 2004-03-05 Ziemowit Laski <zlaski@apple.com>
4555 * objc/objc-act.c (synth_module_prologue): Const-qualify
4556 objc_selector type if using the GNU runtime; fix generated
4557 signatures for objc_msg_lookup and objc_msg_lookup_super
4558 to match what GNU ObjC headers provide; reformat and clean up.
4559 (synth_self_and_ucmd_args): Use previously constructed (and
4560 hence possibly const-qualified) objc_selector type.
4562 2004-03-05 Kazu Hirata <kazu@cs.umass.edu>
4564 * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
4566 2004-03-05 Jason Merrill <jason@redhat.com>
4568 * tree.h (TYPE_HASH): Use TYPE_UID.
4569 (TREE_HASH): New macro with old definition of TYPE_HASH.
4570 * tree.c (build_type_attribute_variant): Use iterative_hash_object.
4571 (build_array_type, build_function_type): Likewise.
4572 (build_method_type_directly): Likewise.
4573 (build_offset_type, build_complex_type): Likewise.
4574 (type_hash_list, attribute_hash_list): Likewise. Now static.
4575 * except.c: s/TYPE_HASH/TREE_HASH/.
4577 2004-03-05 Bob Wilson <bob.wilson@acm.org>
4579 * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
4580 (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32). Adjust
4581 __va_ndx by 2 words when referencing an argument on the stack.
4582 (xtensa_va_arg): Handle 16-byte aligned args. Adjust __va_ndx by 2
4583 words when an arg on the stack is first seen.
4585 2004-03-05 Paul Brook <paul@codesourcery.com>
4587 * arm.h (ARM_FLAG_VFP): Remove.
4588 (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
4589 * netbsd-elf.h (ARM_FLAG_VFP): Remove.
4591 2004-03-05 Paul Brook <paul@codesourcery.com>
4593 * function.c (assign_parms): Include pretend alignment offset.
4595 2004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4597 * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
4598 FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
4600 2004-03-05 Ian Lance Taylor <ian@wasabisystems.com>
4602 * configure.ac: When passing --enable-languages to subdir
4603 configure when host != build, make sure we don't pass an empty
4605 * configure: Regenerate.
4607 2004-03-05 Nathan Sidwell <nathan@codesourcery.com>
4610 * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
4613 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
4615 * simplify-rtx.c (simplify_relational_operation): If
4616 flag_wrapv is set, do not move terms between the two
4617 side of a relational operator.
4619 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
4621 * rtlanal.c: Include target.h and output.h
4622 (rtx_cost, address_cost, default_address_cost): Move from...
4623 * cse.c (rtx_cost, address_cost, default_address_cost):
4625 * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
4626 * Makefile.in: Adjust dependencies.
4628 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
4630 * cse.c (cse_end_of_basic_block): Make static.
4631 * local-alloc.c (function_invariant_p): Move to
4633 * loop.c (libcall_other_reg, record_excess_regs):
4635 * reload1.c (function_invariant_p): Moved here
4636 from local-alloc.c, made static.
4637 * rtl.h (cse_end_of_basic_block, function_invariant_p,
4638 libcall_other_reg, record_excess_regs): Remove
4641 2004-03-05 Kazu Hirata <kazu@cs.umass.edu>
4643 * config/m32r/m32r.c (signed_comparison_operator): Add a
4644 missing parenthesis.
4646 2004-03-04 Ian Lance Taylor <ian@wasabisystems.com>
4648 * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
4649 going to call mmap again. Read the file into the right place.
4650 Give a fatal error if we have to relocate.
4652 2004-03-04 Bob Wilson <bob.wilson@acm.org>
4654 * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
4655 (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
4657 2004-03-05 Hans-Peter Nilsson <hp@axis.com>
4660 * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
4661 round the same. When rounding, clear bits that would cause a
4662 second rounding in pack_d.
4663 (_fpmul_parts): Ditto. Remove #if 0:d code.
4665 2004-03-04 Ziemowit Laski <zlaski@apple.com>
4667 PR c++/14425, c++/14426
4668 * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
4669 vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
4670 Change C++ definitions to accept a 'const int' argument;
4671 the prototypes already do.
4672 * config/rs6000/rs6000.c (rs6000_common_init_builtins):
4673 Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
4674 v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
4675 v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
4676 v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
4677 v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
4678 end in ..._int; change them to accept an int instead of a char
4679 as the last parameter.
4681 2004-03-04 Phil Edwards <phil@codesourcery.com>
4683 * genmultilib: Change '=' to '-' when translating option names
4686 2004-03-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4688 * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
4689 stack slot for temp used for result of BLKmode but in integral mode.
4691 2004-03-04 Jan Hubicka <jh@suse.cz>
4693 * reload.c (find_reloads): Reorganize if seqeunce to switch.
4695 * cfgrtl.c (rtl_redirect_edge_and_branch): Set the source BB as dirty.
4696 (cfglayout_redirect_edge_and_branch): Set the source BB as dirty.
4698 2004-03-04 Steve Ellcey <sje@cup.hp.com>
4700 * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
4701 * testsuite/gcc.dg/20040303-1.c: New test.
4703 2004-03-04 Steven Bosscher <stevenb@suse.de>
4705 * ppro.md: Rewrite as a DFA pipeline description.
4706 * i386.md: Remove all uses of the ppro_uops attribute.
4707 * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
4708 ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
4709 ix86_sched_reorder, ix86_variable_issue,
4710 struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
4711 TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
4712 (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
4713 (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
4714 * athlon.md (athlon_ssecmp_load): Fix comment
4716 2004-03-04 Stuart Hastings <stuart@apple.com>
4718 * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
4720 2004-03-04 Stuart Hastings <stuart@apple.com>
4722 * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
4723 686, tell Darwin assembler to allow prefetch insns, non-empty def
4724 of SUBTARGET_OPTION_TRANSLATE_TABLE.
4726 2004-03-04 DJ Delorie <dj@redhat.com>
4728 PR optimization/14282
4729 * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
4730 between a call and the assignment of its return value.
4732 2004-03-04 Kazu Hirata <kazu@cs.umass.edu>
4734 * config/h8300/h8300.c: Put a comment for every function.
4736 2004-03-04 Kazu Hirata <kazu@cs.umass.edu>
4738 * config/h8300/h8300.md: Add comments about peephole2's.
4740 2004-03-04 Steven Bosscher <stevenb@suse.de>
4742 * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
4744 2004-03-04 Jan Hubicka <jh@suse.cz>
4746 * cfgcleanup.c (thread_jump): Update call of cselib_init.
4747 * cselib.c (cselib_record_memory): New static variable.
4748 (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
4749 Give up on memories when asked for.
4750 (cselib_init): Accept new argument.
4751 * cselib.h (cselib_init): Update prototype.
4752 * gcse.c (local_cprop_pass): Update call of cselib_init.
4753 * loop.c (load_mems): Update call of cselib_init.
4754 * postreload.c (reload_cse_regs_1): Update call of cselib_init.
4755 * sched-deps.c (sched_analyze): Update call of cselib_init.
4757 2004-03-04 David Edelsohn <edelsohn@gnu.org>
4760 * config/rs6000/rs6000.c (output_function_profiler): Append @plt
4763 2004-03-04 Josef Zlomek <zlomekj@suse.cz>
4766 * var-tracking.c (track_expr_p): Do not track variables which
4767 should be ignored for debugging purposes.
4769 2004-03-04 Alan Modra <amodra@bigpond.net.au>
4771 * real.c (encode_ibm_extended): Don't bother rounding low double.
4772 * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
4773 when fmt->pnan < fmt->p.
4775 2004-03-04 Eric Christopher <echristo@redhat.com>
4777 * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
4778 only range of valid arg registers and fixed_regs.
4780 2004-03-04 Alan Modra <amodra@bigpond.net.au>
4783 * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
4784 (abstf2, abstf2_internal): New define_expand.
4786 2004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
4788 PR optimization/14235
4789 * expr.c (convert_move): Copy the source to a new pseudo
4790 when converting from a sub-word source to a larger-than-word
4791 register which conflicts with the source.
4793 2004-03-03 Zack Weinberg <zack@codesourcery.com>
4796 * c-decl.c (diagnose_mismatched_decls): Issue an error for two
4797 parameters with the same name, unless one is a forward decl.
4798 Do not issue a redundant-redeclaration warning for forward
4799 decls of parameters.
4801 2004-03-04 David Edelsohn <edelsohn@gnu.org>
4803 * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
4806 2004-03-03 Ian Lance Taylor <ian@wasabisystems.com>
4808 * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
4810 2004-03-04 Alan Modra <amodra@bigpond.net.au>
4812 * target-def.h (TARGET_OPTF): Delete.
4813 * c-opts.c (TARGET_OPTF): Define.
4815 2004-03-04 Jan Hubicka <jh@suse.cz>
4817 * cselib.c (cselib_finish): Fix another miss-application of my previous
4820 2004-03-03 Mike Stump <mrs@apple.com>
4822 Add framework support for darwin.
4824 * c-incpath.c: Include target.h and machmode.h.
4825 (add_path): Use a consistent style for cpp_dir. Initialize
4827 (add_cpp_dir_path): New.
4828 (register_include_chains): Add use of extra_includes callback.
4829 (hook_void_int): Add.
4830 (target_c_incpath): Add.
4831 * c-incpath.h (add_cpp_dir_path): New.
4832 (target_c_incpath_s): Add.
4833 (target_c_incpath): Add.
4834 (C_INCPATH_INIT): Add.
4835 * c-opts.c (c_common_missing_argument,
4836 c_common_handle_option): Add -F argument processing.
4837 * c.opt: Add -F argument processing.
4838 * gcc.c (trad_capable_cpp): Add -F argument processing.
4839 * cppfiles.c (find_file_in_dir): Update to use construct
4841 (search_path_exhausted, cpp_get_path, cpp_get_buffer,
4843 (_cpp_find_file): Use search_path_exhausted.
4844 (make_cpp_dir): Initialize construct to 0.
4845 * cpplib.h (missing_header_cb
4846 cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
4847 (cpp_callbacks): Add missing_header
4848 (cpp_dir): Add construct.
4849 * target-def.h: (TARGET_OPTF): New.
4850 * hooks.c (hook_void_int, hook_void_charptr): Add.
4851 * hooks.h (hook_void_int, hook_void_charptr): Add.
4852 * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
4853 $(MACHMODE_H) dependencies.
4854 * doc/invoke.texi (Darwin Options): Document -F.
4855 * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
4857 * fix-header.c (target_c_incpath): Add.
4859 * config/darwin-c.c: Add c-incpath.h include.
4860 (using_frameworks, find_subframework_file,
4861 find_subframework_header, add_system_framework_path,
4862 frameworks_in_use, num_frameworks, max_frameworks,
4863 add_framework, find_framework, struct framework_header,
4864 framework_header_dirs, framework_construct_pathname,
4865 find_subframework_file, add_system_framework_path,
4866 add_framework_path, framework_defaults,
4867 darwin_register_frameworks, find_subframework_header): Add.
4868 * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
4869 (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
4870 (CPP_SPEC): Add __APPLE_CC__ support.
4871 * t-darwin (darwin-c.o): Add c-incpath.h dependency.
4873 2004-03-04 Jan Hubicka <jh@suse.cz>
4875 * cselib.c (cselib_finish): Fix miss-application of my previous
4878 2004-03-03 Kazu Hirata <kazu@cs.umass.edu>
4880 * hooks.c (hook_tree_tree_identity): New.
4881 * hooks.h: Add a prototype for hook_tree_tree_identity.
4882 * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
4883 instead of MD_ASM_CLOBBERS.
4884 * system.h (MD_ASM_CLOBBERS): Poison.
4885 * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
4886 (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
4887 * target.h (gcc_target): Add md_asm_clobbers.
4888 * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
4889 (ix86_md_asm_clobbers): New.
4890 * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
4891 * doc/tm.texi (MD_ASM_CLOBBERS): Change to
4892 TARGET_MD_ASM_CLOBBERS.
4894 2004-03-03 Stuart Hastings <stuart@apple.com>
4896 * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
4898 2004-03-03 Eric Botcazou <ebotcazou@libertysurf.fr>
4900 * config/sparc/sparc.c (noov_compare64_op): Fix typo.
4902 * config/sparc/sparc.h (ASM_FLOAT): Delete.
4903 (ASM_DOUBLE): Likewise.
4904 (ASM_LONGDOUBLE): Likewise.
4905 * config/sparc/pbd.h (ASM_INT_OP): Delete.
4907 2003-03-03 Richard Henderson <rth@redhat.com>
4910 * cselib.c (cselib_record_sets): Don't record multiple sets in
4913 2004-03-03 Mostafa Hagog <mustafa@il.ibm.com>
4915 * common.opt: Add description of the new -fgcse-after-reload flag.
4917 * flags.h (flag_gcse_after_reload): Declaration of global variable.
4919 * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
4920 reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
4921 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
4922 get_bb_avail_insn, hash_scan_set_after_reload,
4923 compute_hash_table_after_reload, eliminate_partially_redundant_loads,
4924 gcse_after_reload, get_bb_avail_insn): New functions to implement
4926 (gcse_after_reload_main): New function, the main entry point to
4929 * rtl.h (gcse_after_reload_main): Declaration of the new function.
4931 * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
4933 * toplev.c (flag_gcse_after_reload): Initialization.
4935 * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
4937 * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
4938 PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
4939 the gcse after reload optimization.
4941 * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
4942 GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
4945 * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
4947 2004-03-03 Nicolas Pitre <nico@cam.org>
4949 * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
4950 small negative values.
4952 2004-03-03 Jan Hubicka <jh@suse.cz>
4954 * cselib.c (hash_table): Remove GTY marker.
4955 (reg_values): Turn into array.
4956 (used_regs): Likewise.
4957 (n_used_regs): New static variable.
4958 (reg_values_old): Kill.
4959 (clear_table): Update uses of arrays.
4960 (cselib_lookup): Likewise.
4961 (cselib_record_set): Likewise.
4962 (cselib_init): Likewise.
4963 (cselib_finish): Likewise.
4964 (cselib_udpate_varray_sizes): Kill.
4965 * cselib.h (cselib_update_varray_sizes): Kill.
4967 2004-03-03 Paul Brook <paul@codesourcery.com>
4969 * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
4971 2004-03-03 Jan Hubicka <jh@suse.cz>
4973 * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
4974 Rename from ...; make statistics transparent.
4975 (ggc_alloc_cleared, ggc_realloc_stat): ... these.
4976 (loc_descriptor): New structure.
4977 (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
4979 New static function.
4980 (ggc_record_overhead, dump_statistics): New global function.
4981 * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
4982 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
4983 from ...; accept locations
4984 (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
4985 ggc_realloc, ggc_alloc_typed): ... this one.
4986 from ...; accept locations
4987 * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
4988 ggc_alloc_stat): Rename from ... ; pass locations
4989 * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
4991 (ggc_alloc_stat): Record overehead.
4992 * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
4993 ggc_realloc, ggc_alloc_typed): Turn to macros
4994 (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
4995 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
4996 (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
4997 * langhooks.h (lhd_make_node): Declare.
4998 (LANG_HOOKS_MAKE_TYPE): Default to new function,
4999 * langhooks.c (lhd_make_node): New.
5000 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
5002 (rtx_alloc, swallow_copy_rtx): ... this one.
5003 * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
5004 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
5005 * toplpev.c (finalize): Dump stats.
5006 * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
5007 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
5008 Rename from ... ; pass locators.
5009 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
5010 build?, build_decl): Declare.
5011 * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
5012 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
5014 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
5015 build?, build_decl): New macros.
5016 * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
5017 * statistics.h: New file.
5019 2004-03-03 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
5020 Richard Sandiford <rsandifo@redhat.com>
5022 * config/mips/mips.h (MASK_FIX_SB1): Bump.
5023 (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
5024 (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
5025 * config/mips/mips.c (mips_output_division): Fill the branch delay
5026 slot with a nop if TARGET_FIX_R4000. Extend R4000 workarounds to
5028 (mips_output_division): Adjust accordingly.
5029 (override_options): Make -march=r4400 imply -mfix-r4400 by default.
5030 * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
5032 2004-03-03 Paolo Bonzini <bonzini@gnu.org>
5034 * alias.c (rtx_equal_for_memref_p): Use predicates
5035 to test rtx classes and new rtx class codes, possibly
5036 splitting conditionals that tested against '<' and 'o'.
5037 * caller-save.c (save_call_clobbered_regs): Likewise.
5038 * combine.c (contains_muldiv, find_split_point, subst,
5039 combine_simplify_rtx, simplify_if_then_else,
5040 simplify_set, simplify_logical, expand_compound_operation,
5041 make_compound_operation, if_then_else_cond, known_cond,
5042 apply_distributive_law, cached_nonzero_bits,
5043 cached_num_sign_bit_copies, simplify_shift_const,
5044 gen_binary, simplify_comparison, update_table_tick,
5045 record_value_for_reg, get_lsat_value_validate): Likewise.
5046 * cse.c (mention_regs, find_best_addr, find_comparison_args,
5047 fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
5049 * emit-rtl.c (copy_insn_1): Likewise.
5050 * expr.c (force_operand): Likewise.
5051 * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
5052 * flow.c (notice_stack_pointer_modification_1,
5053 invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
5054 and_reg_cond, elim_reg_cond): Likewise.
5055 * function.c (update_epilogue_consts): Likewise.
5056 * genattrtab.c (attr_rtx_1): Likewise.
5057 * genopinit.c (gen_insn): Likewise.
5058 * integrate.c (subst_constants): Likewise.
5059 * jump.c (reversed_comparison_code_parts,
5060 reversed_comparison_code, delete_related_insns,
5061 rtx_renumbered_equal_p): Likewise.
5062 * local-alloc.c (block_alloc): Likewise.
5063 * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
5064 canonicalize_condition): Likewise.
5065 * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
5067 * optabs.c (add_equal_node, expand_binop): Likewise.
5068 * predict.c (estimate_probability): Likewise.
5069 * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
5070 * recog.c (validate_replace_rtx_1, comparison_operator,
5071 offsettable_address_p, constrain_operands): Likewise.
5072 * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
5074 * regclass.c (scan_one_insn): Likewise.
5075 * regmove.c (stable_and_no_regs_but_for_p): Likewise.
5076 * regrename.c (kill_autoinc_value): Likewise.
5077 * reload.c (find_reusable_reload, find_reloads,
5078 reg_overlap_mentioned_for_reload_p): Likewise.
5079 * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
5080 * rtl.c (copy_rtx): Likewise.
5081 * rtl.h (CONSTANT_P, INSN_P): Likewise.
5082 * rtlanal.c (commutative_operand_precedence): Likewise.
5083 * sched-deps.c (conditions_mutex_p): Likewise.
5084 * sched-rgn.c (is_cfg_nonregular): Likewise.
5085 * simplify-rtx.c (simplify_gen_binary,
5086 simplify_gen_relational, simplify_replace_rtx,
5087 simplify_unary_operation, simplify_binary_operation,
5088 simplify_ternary_operation, simplify_rtx): Likewise.
5089 * unroll.c (reg_dead_after_loop): Likewise.
5090 * config/alpha/alpha.c (alpha_swapped_comparison_operator,
5091 print_operand): Likewise.
5092 * config/arc/arc.c (proper_comparison_operator): Likewise.
5093 * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
5095 * config/avr/avr.c (_reg_unused_after): Likewise.
5096 * config/frv/frv.c (frv_ifcvt_modify_tests,
5097 frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
5098 * config/i386/i386.c (ix86_comparison_operator,
5099 ix86_carry_flag_operator, fcmov_comparison_operator,
5100 arith_or_logical_operator, print_operand,
5101 ix86_expand_binary_operator, ix86_binary_operator_ok):
5103 * config/i386/i386.md: Likewise.
5104 * config/ia64/ia64.c (not_postinc_memory_operand,
5105 ia64_print_operand, update_set_flags, errata_emit_nops):
5107 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
5108 CONSTRAINT_OK_FOR_S): Likewise.
5109 * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
5110 mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
5111 ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
5112 ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
5114 * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
5115 eqne_comparison_operator, signed_comparison_operator):
5117 * config/mips/mips.c (cmp_op, symbolic_expression_p):
5119 * config/mmix/mmix (mmix_foldable_comparison_operator,
5120 mmix_comparison_operator): Likewise.
5121 * config/pa/pa.c (hppa_legitimize_address): Likewise.
5122 * config/rs6000/rs6000.c (stmw_operation,
5123 branch_comparison_operator, trap_comparison_operator,
5125 * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
5126 * config/s390/s390.c (s390_alc_comparison,
5127 s390_slb_comparison):L Likewise.
5128 * config/sh/sh.c (gen_block_redirect, reg_unused_after):
5130 * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
5131 noov_compare_op, noov_compare64_op, v9_regcmp_op,
5132 emit_hard_tfmode_operation, reg_unused_after)
5133 * doc/md.texi, doc/rtl.texi: Likewise.
5135 * ra-debug.c: Add 2004 to list of copyright years.
5136 * unroll.c: Likewise.
5138 * combine.c (simplify_logical): Remove dummy test,
5139 (apply_distributive_law): Fix typo in comment.
5140 GET_CODE (x) == AND so x is a commutative binary op.
5141 * jump.c (delete_related_insns): simplify loop
5142 condition, move testing of RTX codes inside the loop.
5143 (rtx_renumbered_equal_p): do not use RTX_CODE.
5144 * rtl.c (rtx_class): Declare as enum rtx_class.
5145 * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
5146 Move to RTX_COMM_COMPARE class.
5147 (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
5148 Move to RTX_CONST_OBJ class.
5149 * rtl.h (enum rtx_class): New declaration,
5150 (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
5151 RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
5152 RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
5153 RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
5154 RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
5155 ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
5156 SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
5157 OBJECT_P): New macros.
5158 * config/sparc/sparc.c (noov_compare_op): Remove register
5161 2004-03-03 Kazu Hirata <kazu@cs.umass.edu>
5163 * target.h: Remove texi jargons in comments.
5165 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
5167 * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
5171 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
5172 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
5174 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
5175 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
5177 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
5179 * doc/md.texi (cbranchmode4): New.
5181 2004-03-02 Eric Christopher <echristo@redhat.com>
5183 * config/mips/mips16.S: Change fixsfsi and fixdfsi to
5185 * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
5186 * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
5187 * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
5188 * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
5190 2004-03-02 Richard Henderson <rth@redhat.com>
5193 * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
5194 * optabs.c (prepare_cmp_insn): Force trapping memories to registers
5195 before the compare, if flag_non_call_exceptions.
5197 2004-03-02 Richard Henderson <rth@redhat.com>
5200 * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
5201 emitting the label, not after.
5203 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
5205 * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
5206 (m68hc11_mov_addr_mode): Likewise.
5207 (m68hc11_override_options): Initialize them based on target.
5208 (register_indirect_p): Allow a MEM for indirect addressing modes and
5209 use flags to control what is allowed.
5210 (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
5211 supported addressing modes.
5212 (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
5213 (go_if_legitimate_address_internal): Likewise.
5214 (m68hc11_indirect_p): Likewise and check the mode.
5215 (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
5217 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
5219 * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
5220 (expand_builtin_setjmp_setup): Use
5221 targetm.builtin_setjmp_frame_value instead of
5222 BUILTIN_SETJMP_FRAME_VALUE.
5223 * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
5224 * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
5225 (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
5226 * target.h (gcc_target): Add builtin_setjmp_frame_value.
5227 * targhooks.c (default_builtin_setjmp_frame_value): New.
5228 * targhooks.h: Add a prototype for
5229 default_builtin_setjmp_frame_value.
5230 * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
5231 TARGET_BUILTIN_SETJMP_FRAME_VALUE.
5233 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
5235 * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
5237 (add peepholes): New peepholes to optimize sequences adding small
5239 (bset peepholes): New peepholes to transform an OR in a bset form
5240 (bclr peepholes): Likewise for bclr form.
5241 (cmp peepholes): New peepholes to avoid register copies when comparing.
5243 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
5245 * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
5246 to separate push from moves.
5247 ("*pushdf_internal"): Likewise.
5248 ("*pushsf_internal"): Likewise.
5249 ("*pushsi_internal"): Likewise.
5250 ("movdi_internal"): Use define_insn_and_split; non push operand.
5251 ("movdf_internal"): Likewise.
5252 ("movsf_internal"): Likewise.
5253 ("movsi_internal"): Likewise.
5254 ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
5255 ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
5256 ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
5258 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
5260 * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
5261 ("cmphi_z_used", "cmpqi_z_used"): Likewise.
5262 ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
5263 ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
5264 ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
5265 ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
5266 ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
5267 ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
5268 ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
5269 ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
5270 ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
5272 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
5274 * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
5275 (SOFT_XY_REGNUM): Define.
5276 (cmp split): Use the above instead of hard coded numbers.
5277 (8-bit op split): No need to check the mode; allow Q_REG.
5278 (ashift split): Adjust the first operand if it uses the SP and we
5279 are pushing the shifted value.
5280 (plus shift split): Fix when a source is in register D+X.
5281 ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
5283 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
5285 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
5286 comparing with Z register.
5288 2004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5290 * cfgloop.h (struct loop_desc): Removed.
5291 (struct loop): Fields simple, desc and has_desc removed.
5292 (simple_loop_p, count_loop_iterations): Declaration removed.
5293 * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
5294 (unmark_altered, blocks_invariant_registers, unmark_altered_insn
5295 blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
5296 invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
5297 simple_loop_exit_p, variable_initial_value, variable_initial_values,
5298 simple_condition_p, simple_increment, count_strange_loop_iterations,
5299 inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
5301 * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
5303 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
5305 * genattrtab.c: Don't handle MATCH_INSN.
5306 * genrecog.c: Likewise.
5307 * gensupport.c: Likewise.
5308 * rtl.def (match_insn): Remove.
5309 * doc/md.texi (match_insn, match_insn2): Remove.
5311 2004-03-02 Mark Mitchell <mark@codesourcery.com>
5313 * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
5314 macro results in memory allocation.
5316 2004-03-02 David O'Brien <obrien@FreeBSD.org>
5318 * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
5319 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
5320 %(fbsd_dynamic_linker),
5321 (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
5322 config/i386/freebsd.h
5323 * config/arm/freebsd.h: Ditto.
5324 * config/i386/freebsd.h: Ditto.
5325 * config/i386/freebsd64.h: Ditto.
5326 * config/ia64/freebsd.h: Ditto.
5327 * config/rs6000/sysv4.h: Ditto.
5328 * config/sparc/freebsd.h: Ditto.
5330 2004-03-02 Loren James Rittle <ljrittle@acm.org>
5332 * gcc/doc/install.texi (*-*-freebsd*): Update target information.
5334 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
5336 * rtl.def (define_combine): Remove.
5338 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
5340 * config/h8300/h8300.md: Tweak formatting.
5342 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
5344 * config/h8300/h8300.md (*cmphi_h8300): Rename to
5346 (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
5348 2004-03-01 Mark Mitchell <mark@codesourcery.com>
5351 * gcc.c (process_command): Remove const-qualification from argv.
5354 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
5356 * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
5357 pushqi1_h8300hs_advanced. Adjust its caller.
5358 (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
5361 2004-03-02 Nicolas Roche <roche@act-europe.fr>
5363 * Makefile.in (install-libgcc, install-multilib): Pass
5364 mkinstalldirs var to libgcc.mk.
5366 2004-03-01 Kazu Hirata <kazu@cs.umass.edu>
5368 * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
5369 * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
5371 2004-03-01 Kazu Hirata <kazu@cs.umass.edu>
5373 * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
5374 * config/h8300/h8300.md: Split several peephole2's, each into
5377 2004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5379 * dominance.c (recount_dominator): Handle postdominators.
5381 2004-03-01 Richard Sandiford <rsandifo@redhat.com>
5383 * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
5384 (NUM_SYMBOL_TYPES): Likewise.
5385 (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
5386 (mips_unspec_address): Declare.
5387 (mips_gotoff_page, mips_gotoff_global): Delete.
5388 * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
5389 * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
5390 (mips_symbolic_constant_p, mips_symbolic_address_p)
5391 (mips_symbol_insns): Handle new symbol types.
5392 (general_symbolic_operand): New predicate.
5393 (mips_unspec_address): Make extern.
5394 (mips_gotoff_page, mips_gotoff_global): Delete.
5395 (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
5396 Handle new symbol types.
5397 * config/mips/mips.md (*lea_high64, *lea64): New patterns.
5398 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
5399 mips_unspec_address directly.
5400 * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
5401 the documentation of -mexplicit-relocs.
5403 2004-03-01 Jeff Law <law@redhat.com>
5405 * fold-const.c (fold): An equality comparison of a non-weak object
5406 against zero has a known result. Similarly an equality comparison
5407 of the address of two non-weak, unaliased symbols has a known result.
5409 * ggc-page.c (struct page_entry): New field PREV.
5410 (ggc_alloc): Update PREV field appropriately.
5411 (sweep_pages): Likewise.
5412 (ggc_free): Likewise. Use PREV field rather than loop to
5413 improve ggc_free performance.
5415 2004-03-01 Richard Sandiford <rsandifo@redhat.com>
5417 * config/mips/mips.c (mips_output_division): Use the division
5418 instruction to fill the delay slot of a zero check.
5419 (mips_idiv_insns): Adjust accordingly.
5421 2004-03-01 Nathanael Nerode <neroden@gcc.gnu.org>
5423 * config.gcc: Create a default tmake_file for linux, and use
5424 it in all but two linux clauses. Comment those two.
5426 2004-03-01 Paolo Bonzini <bonzini@gnu.org>
5428 * combine.c (try_combine): Do not refer to is_replaced.
5429 (gen_lowpart_for_combine): Perverse subregs now have a
5430 more politically correct name.
5431 * cse.c (cse_insn): Likewise.
5432 * jump.c: Fix bogus reference to delete_insn.
5434 2004-02-29 Mark Mitchell <mark@codesourcery.com>
5437 * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
5438 constants as signed values.
5441 * c-tree.h (readonly_warning): Rename to ...
5442 (readonly_error): ... this.
5443 * c-typeck.c (build_unary_op): Adjust accordingly.
5444 (readonly_warning): Rename to ...
5445 (readonly_error): ... this and issue errors, not warnings.
5446 (build_modify_expr): Call readonly_error, not readonly_warning.
5447 (c_expand_asm_operands): Likewise.
5448 * tree-inline.c (optimize_inline_calls): Do not inline functions
5449 after errors have occurred.
5451 2004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
5453 * configure.ac: Rearrange some threading code for clarity;
5454 add section comment.
5455 * configure: Regenerate.
5457 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
5459 * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
5461 * doc/cppopts.texi: Fix a typo.
5463 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
5465 * config/i386/i386.md: Fix formatting.
5467 2004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
5469 * configure.ac: Add some comments delineating sections of code.
5471 * doc/install.texi: Note that libada uses autoconf 2.57 also.
5473 * doc/install.texi: Fix idiot typo in previous commit.
5475 * doc/install.texi: Update for conversion of intl to autoconf 2.57.
5477 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
5479 * config/h8300/h8300.md: Add comments about peephole2's.
5481 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
5483 * config/h8300/h8300.md: Tweak operand numbers of some
5486 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
5488 * config/h8300/h8300.md: Tweak comments about peephole2's.
5490 2004-02-29 Waldek Hebisch <hebisch@math.uni.wroc.pl>
5493 * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
5494 instead of testing whether DECL_RTL is not NULL.
5496 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
5498 * config/sh/sh.c: Fix formatting.
5500 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
5502 * config/sh/sh.c: Convert to ISO-C.
5504 2004-02-28 Andrew Pinski <pinskia@physics.uc.edu>
5506 * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
5509 * config/darwin.h (machopic_finish): Output stub even if the
5510 symbol is already defined.
5512 2004-02-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5514 * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
5516 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
5518 * genattr.c (main): Don't define
5519 TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
5520 * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
5521 (DFA_PIPELINE_INTERFACE): Likewise.
5522 * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
5523 (DFA_PIPELINE_INTERFACE): Likewise.
5525 2004-02-28 Richard Sandiford <rsandifo@redhat.com>
5527 * config/mips/mips.md (tstsi, tstdi): Delete.
5529 2004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
5531 * config/mips/mips.c (override_options): Remove an obsolete
5532 duplicate definition of the "e" constraint.
5533 * config/mips/mips.h: Update a comment accordingly.
5535 2004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
5537 * config/mips/mips.md: Complete the unfinished R4000
5538 multiply/shift errata workaround. Improve documentation.
5539 (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
5541 (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
5542 (muldi3, muldi3_internal): Likewise.
5543 (muldi3_internal2): Remove, replacing with...
5544 (muldi3_mult3, muldi3_r4000): ...these new patterns.
5545 (mulsidi3): Take the errata into account.
5546 (mulsidi3_32bit): Remove, replacing with...
5547 (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
5548 (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
5549 (umulsidi3): Take the errata into account.
5550 (umulsidi3_32bit): Remove, replacing with..
5551 (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
5552 (umulsi3_highpart, umulsi3_highpart_internal): Disable if
5554 (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
5555 (smuldi3_highpart, umuldi3_highpart): Likewise.
5556 * doc/invoke.texi: Document the errata workaround.
5558 2004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
5560 * config/mips/mips-protos.h (mips_idiv_insns): Declare.
5561 * config/mips/mips.h (MASK_FIX_SB1): Bump.
5562 (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
5563 (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
5564 * config/mips/mips.c (mips_idiv_insns): New function.
5565 (override_options): Make -march=r4000 imply -mfix-r4000 by default.
5566 (mips_output_division): Add a workaround for the R4000 divide/shift
5568 * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
5569 the length of an "idiv" instruction.
5570 * doc/invoke.texi: Document the new switches.
5572 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
5574 * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
5575 TARGET_SCHED_IS_COSTLY_DEPENDENCE.
5577 2004-02-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5579 PR optimization/14229
5580 * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
5582 2004-02-28 Eric Botcazou <ebotcazou@act-europe.fr>
5584 * fold-const.c (fold): Strip NOPs that change the signedness
5585 for RSHIFT too. Expand comment.
5587 2004-02-27 Ian Lance Taylor <ian@wasabisystems.com>
5589 PR optimization/7871
5590 * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
5591 from or to call insns.
5593 2004-02-27 Eric Botcazou <ebotcazou@libertysurf.fr>
5595 PR optimization/7871
5596 * flow.c (propagate_one_insn): Interpret calls as setting global
5597 registers, not merely clobbering them.
5599 2004-02-27 Dale Johannesen <dalej@apple.com>
5601 * config/darwin.c (machopic_output_possible_stub_label): Remove.
5602 config/darwin-protos.h: Ditto.
5603 config/darwin.h: Remove call to it.
5604 * combine.c (distribute_notes): Do not place a REG_DEAD note
5605 when value is both set and used.
5607 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
5609 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
5611 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
5612 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
5614 2004-02-27 Andrew Pinski <apinski@apple.com>
5616 * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
5617 Speedup common case of the type values being in the same order.
5619 2004-02-27 Steve Ellcey <sje@cup.hp.com>
5621 * config/ia64/ia64.h (no-inline-float-divide): New option.
5622 * config/ia64/ia64.h (no-inline-int-divide): New option.
5623 * config/ia64/ia64.h (no-inline-sqrt): New option.
5624 (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
5625 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
5626 * config/ia64/ia64.c (ia64_override_options): Modify error
5627 checking for inlined division/sqrt.
5629 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
5631 * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
5632 ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
5633 value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
5634 config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
5637 2004-02-27 Paul Brook <paul@codesourcery.com>
5639 * function.c (assign_parms): Don't count pretend args for alignment.
5641 2004-02-27 Richard Henderson <rth@redhat.com>
5643 * passes.c: New file.
5644 * Makefile.in (OBJS-common): Add it.
5645 * diagnostic.c (rtl_dump_and_exit): Move decl ...
5646 * flags.h (rtl_dump_and_exit): ... here.
5647 * output.h (size_directive_output, last_assemble_variable_decl):
5649 * rtl.h (reg_alloc): Move from toplev.c.
5650 * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
5651 struct dump_file_info, enum dump_file_index, dump_file_tbl,
5652 open_dump_file, close_dump_file, rest_of_decl_compilation,
5653 rest_of_type_compilation, rest_of_handle_final,
5654 rest_of_handle_delay_slots, rest_of_handle_stack_regs,
5655 rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
5656 rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
5657 rest_of_handle_regrename, rest_of_handle_reorder_blocks,
5658 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
5659 rest_of_handle_tracer, rest_of_handle_if_conversion,
5660 rest_of_handle_if_after_combine, rest_of_handle_web,
5661 rest_of_handle_branch_prob,
5662 rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
5663 rest_of_handle_addressof, rest_of_handle_sibling_calls,
5664 rest_of_handle_jump_bypass, rest_of_handle_inlining,
5665 rest_of_handle_null_pointer, rest_of_handle_combine,
5666 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
5667 rest_of_handle_gcse, rest_of_handle_loop_optimize,
5668 rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
5669 (decode_d_option): Use enable_rtl_dump_file.
5670 (compile_file, finalize, do_compile): Move profile+combine+graph
5671 cleanup to finish_optimization_passes.
5672 * toplev.h (init_optimization_passes, finish_optimization_passes,
5673 enable_rtl_dump_file): Declare.
5675 2004-02-27 Eric Botcazou <ebotcazou@act-europe.fr>
5676 Roger Sayle <roger@eyesopen.com>
5678 * fold-const.c (fold): Revert 2004-02-25 change. Use the original
5679 operands to build a tree with swapped operands.
5680 * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
5681 'unsignedp' predicate to specify the signedness.
5683 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
5685 * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
5686 expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
5687 params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
5688 comment typos and formatting. Follow spelling conventions.
5690 2004-02-26 Aldy Hernandez <aldyh@redhat.com>
5692 * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
5695 * config/rs6000/spe.md: Delete spe_efsctuiz.
5696 Add spe_fixuns_truncsfsi2.
5697 Add spe_fix_truncsfsi2.
5699 2004-02-26 Eric Christopher <echristo@redhat.com>
5701 * c-lex.c (c_lex_string_translate): New variable.
5702 (lex_string): Use to determine string translation.
5703 * c-pragma.h: Prototype.
5704 * c-parse.in (start_string_translation): New. Set above.
5705 (stop_string_translation): Ditto.
5706 (attribute, attribute_list, asm_def, asm_stmt,
5707 asm_operand): Use above functions.
5708 * cp/parser.c (cp_parser_declaration): Translate strings
5709 unless token is RID_EXTERN. Set c_lex_string_translate
5711 (cp_parser_asm_definition): Only translate argument strings
5713 (cp_parser_asm_operand_list): Ditto.
5714 (cp_parser_attribute_list): Do not translate attribute strings.
5716 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
5718 * stmt.c (expand_start_case_dummy): Remove.
5719 * tree.h: Remove the corresponding prototype.
5721 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
5723 * builtins.c (apply_args_register_offset): Remove.
5724 * tree.h: Remove the corresponding prototype.
5726 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
5728 * stor-layout.c (is_pending_size): Remove.
5729 * tree.h: Remove the corresponding prototype.
5731 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
5733 * recog.c (validate_replace_src): Remove.
5734 * recog.h: Remove the corresponding prototype.
5736 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
5738 * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
5739 MAYBE_REG_PARM_STACK_SPACE.
5740 * function.c: Likewise.
5741 * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
5742 (MAYBE_REG_PARM_STACK_SPACE): Likewise.
5743 * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
5744 (MAYBE_REG_PARM_STACK_SPACE): Likewise.
5746 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
5748 * c-decl.c (c_expand_deferred_function): Remove.
5749 * c-tree.h: Remove the corresponding prototype.
5751 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
5753 * postreload.c (reload_cse_move2add): Generate just a PLUS
5754 instead of an entire SET.
5756 2004-02-26 Jan Hubicka <jh@suse.cz>
5758 * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
5760 * i386.c (override_options): Add support for new CPUs.
5761 * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
5762 (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
5764 * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
5766 2004-02-26 Bob Wilson <bob.wilson@acm.org>
5768 * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
5770 2004-02-26 Eric Botcazou <ebotcazou@act-europe.fr>
5772 * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
5773 (sparc_emit_fixunsdi): New prototype.
5774 * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
5775 (sparc_emit_fixunsdi): New function.
5776 * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
5777 operand 1. Pass SFmode to sparc_emit_floatunsdi.
5778 (floatunsdidf2): Use 'general_operand' for operand 1. Pass DFmode
5779 to sparc_emit_floatunsdi.
5780 (fixuns_truncsfdi2): New expander.
5781 (fixuns_truncdfdi2): Likewise.
5783 2004-02-26 Alan Modra <amodra@bigpond.net.au>
5785 * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
5788 2004-02-25 Richard Henderson <rth@redhat.com>
5790 * explow.c (force_reg): Call mark_reg_pointer as appropriate.
5791 * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
5792 use (op0-op1) == 0 if op0 is a pointer.
5793 * config/alpha/alpha.md (cmpdi): Use some_operand.
5794 (three comparison combine splits): Remove.
5796 2004-02-25 Richard Henderson <rth@redhat.com>
5799 * c-common.c (handle_alias_attribute): Reject the attribute if
5800 current_function_decl is set.
5802 2004-02-25 Kelley Cook <kcook@gcc.gnu.org>
5804 * config.gcc: Add comment describing extra_gcc_objs.
5805 i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
5806 * configure.ac (extra_gcc_objs): New substitution variable.
5807 (host_extra_gcc_objs): Don't substitute.
5808 * configure: Regenerate.
5809 * Makefile.in: Use extra_gcc_objs.
5811 2004-02-25 Kelley Cook <kcook@gcc.gnu.org>
5813 * doc/contrib.texi: Add an entry for myself.
5815 2004-02-25 Jan Hubicka <jh@suse.cz>
5817 * basic-block.h (make_eh_edge, break_superblocks): Declare.
5818 * cfgbuild.c (make_eh_edge): Make global.
5819 * cfglayout.c (break_superblocks): Likewise; fix memory leak.
5820 * except.c (build_post_landing_pads, connect_post_landing_pads,
5821 dw2_build_landing_pads, sjlj_emit_function_enter,
5822 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5823 sjlj_build_landing_pads): Update CFG.
5824 (emit_to_new_bb_before): New function.
5825 (finish_eh_generation): Do not rebuild the CFG.
5827 2004-02-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5829 * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
5830 target_cpu_default defines.
5831 * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
5832 * pa.h (TARGET_DEFAULT): Likewise.
5834 2004-02-25 Eric Botcazou <ebotcazou@act-europe.fr>
5836 * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
5837 comparisons with regard to signedness.
5839 2004-02-25 Richard Earnshaw <rearnsha@arm.com>
5841 * arm.c (thumb_legitimize_address): New function.
5842 * arm-protos.h: Prototype it.
5843 * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
5844 (LEGITIMIZE_ADDRESS): Use it.
5846 2004-02-25 J"orn Rennecke <joern.rennecke@superh.com>
5848 * reload1.c (reload): Only spill eliminable register with multiple
5849 adjacent elimination alternatives if all alternatives fail.
5851 2004-02-25 Richard Earnshaw <rearnsha@arm.com>
5853 * arm.c (arm_legitimate_index_p): For QImode the range of an offset
5854 is -4095...+4095 inclusive.
5856 2004-02-25 Eric Botcazou <ebotcazou@libertysurf.fr>
5858 * doc/install.texi (sparc-sun-solaris2* specific notes): Document
5859 the bootstrap failure with Sun CC 5.4 and 5.5.
5861 2004-02-24 Kazu Hirata <kazu@cs.umass.edu>
5863 * cse.c (cse_change_cc_mode_insns): Stop at any instruction
5864 which modifies NEWREG.
5865 (cse_condition_code_reg): Update the mode of CC_REG in
5866 CC_SRC_INSN on our own.
5868 2004-02-24 Michael Matz <matz@suse.de>
5870 * config/i386/i386.c (ix86_comp_type_attributes): Check for
5873 2004-02-24 Richard Henderson <rth@redhat.com>
5875 * toplev.c (dump_file_tbl): Rename from dump_file.
5876 * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
5877 cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
5878 config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
5879 config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
5880 loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
5881 ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
5882 toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
5883 s/rtl_dump_file/dump_file/g.
5885 2004-02-24 Aldy Hernandez <aldyh@redhat.com>
5887 * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
5888 (spe_fixuns_truncsfsi2): Delete.
5890 * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
5891 (fixuns_truncsfsi2): Delete.
5893 2004-02-24 Josef Zlomek <zlomekj@suse.cz>
5896 * rtlanal.c (replace_label): Fix replacing labels in constant pool.
5898 2004-02-24 Geoffrey Keating <geoffk@apple.com>
5900 * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
5902 2004-02-24 Jason Merrill <jason@redhat.com>
5904 * tree.c (check_qualified_type): New fn.
5905 (get_qualified_type): Use it. If type already has the desired
5906 quals, just return it.
5907 * tree.h: Declare it.
5909 2003-02-24 Sanjiv Kumar Gupta <sanjivg@noida.hcltech.com>
5911 * target-def.h (TARGET_SCHED_INIT_GLOBAL,
5912 TARGET_SCHED_FINISH_GLOBAL): New macros.
5914 * target.h (md_init_global, md_finish_global): Function
5915 declarations corresponding to new target macros.
5917 * haifa-sched.c (sched_init, sched_finish): Allow target to
5918 call the new schedular hooks.
5920 * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
5921 call to update_life_info.
5923 * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
5924 flag_schedule_insns for SH4.
5926 * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
5927 find_set_regmode_weight, find_insn_regmode_weight,
5928 find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
5929 sh_variable_issue, high_pressure, ready_reorder,
5930 rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
5931 functions used to throttle the insn movement in first
5932 scheduling pass for SH.
5934 * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
5935 TARGET_SCHED_FINISH_GLOBAL.
5937 2004-02-24 Alexandre Oliva <aoliva@redhat.com>
5939 Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
5940 2004-02-05 Alexandre Oliva <aoliva@redhat.com>
5941 * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
5942 symbols in sections named by the user.
5943 2004-01-30 Alexandre Oliva <aoliva@redhat.com>
5944 * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
5945 2004-01-27 Alexandre Oliva <aoliva@redhat.com>
5946 * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
5947 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
5949 2004-01-20 Alexandre Oliva <aoliva@redhat.com>
5950 * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
5951 one more pseudo to further improve code generation.
5952 2004-01-19 Alexandre Oliva <aoliva@redhat.com>
5953 * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
5955 2004-01-16 Alexandre Oliva <aoliva@redhat.com>
5956 * config/frv/frv.c (frv_legitimate_address_p): Added
5957 allow_double_reg_p argument. Adjust all callers. Use it to
5958 decide whether to enable double-register indirect addressing.
5959 (frv_funcdesc_alias_set): Remove.
5960 (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
5961 register. Emit movdi_ldd.
5962 (ldd_address_operand): New.
5963 * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
5964 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
5965 (PREDICATE_CODES): Add ldd_address_operand.
5966 * config/frv/frv.md (movdi_ldd): New.
5967 (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
5968 intermediate computations if possible.
5969 (symGOTOFF2reg_i): Fix harmless typo.
5970 2003-12-18 Alexandre Oliva <aoliva@redhat.com>
5971 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
5972 relocated p_vaddr to vaddr type.
5973 * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
5974 * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
5975 (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
5976 MEM, or use a funcdesc alias set. Use regular move instead of
5978 (dbl_memory_one_insn_operand): Recognize function descriptors by
5979 type or by alias set, and don't split them.
5980 * config/frv/frv.md (call, call_value): Never use call_internal
5982 (call_internal, call_value_internal): Never match for FDPIC.
5983 (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
5984 call_value_fdpicsi): Require FDPIC.
5986 2003-12-17 Alexandre Oliva <aoliva@redhat.com>
5987 * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
5988 * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
5989 (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
5990 FDPIC. Compute data base address.
5991 * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
5992 before the other self-specs are processed.
5993 * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
5995 2003-12-15 Alexandre Oliva <aoliva@redhat.com>
5996 * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
5997 inhibit_libc is defined.
5998 2003-12-12 Alexandre Oliva <aoliva@redhat.com>
5999 * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
6001 (__RELOC_POINTER): Define.
6002 (_Unwind_IteratePhdrCallback): Use it.
6003 * config/frv/frv.h (Twrite): Define.
6004 (TRANSFER_FROM_TRAMPOLINE): Use it.
6005 * config/frv/linux.h (INVOKE__main): Undefine.
6007 2003-12-05 Richard Sandiford <rsandifo@redhat.com>
6008 * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
6009 (-mlibrary-pic): Emphasize that this option generates EABI code.
6012 2003-11-30 Alexandre Oliva <aoliva@redhat.com>
6013 * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
6014 and CONSTs in FDPIC mode.
6015 * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
6016 2003-11-29 Richard Sandiford <rsandifo@redhat.com>
6017 * config/frv/frv.c (move_source_operand): Don't accept symbolic
6019 * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
6020 rather than 'i' constraint for the 2-instruction alternative.
6021 (*movsi_2word): New, incorporating existing int_2word_operand splitter.
6022 2003-11-29 Richard Sandiford <rsandifo@redhat.com>
6023 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
6024 EXTRA_CONSTRAINT_FOR_Y.
6025 (EXTRA_CONSTRAINT): Remove handling of 'Y'.
6026 * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
6027 (addsi3): Change 'Y' constraint to 'Q'.
6028 2003-11-27 Richard Sandiford <rsandifo@redhat.com>
6029 * reload.c (CONST_POOL_OK_P): New macro.
6030 (find_reloads): Use it to decide whether a constant can be forced
6032 * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
6033 constant satisfies got12_operand.
6034 (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
6035 (frv_legitimate_address_p): Check for valid unspec offsets using
6036 got12_operand rather than frv_legitimate_fdpic_operand_p.
6037 (frv_legitimate_fdpic_operand_p): Delete.
6038 (frv_emit_movsi): Abort if we try to use the FDPIC register during
6040 (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
6042 * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
6043 2003-11-19 Richard Sandiford <rsandifo@redhat.com>
6044 * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
6045 (frv_fdpic_fptr_operand): Don't declare here.
6046 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
6047 rather than fdpic_got12_operand.
6048 (PREDICATE_CODES): Remove symbolic_operand entry. Add entries for
6049 got12_operand and const_unspec_operand.
6050 * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
6051 (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
6052 (symbolic_operand): Remove.
6053 (const_unspec_operand): New predicate.
6054 * config/frv/frv.md (*movsi_got): Use got12_operand.
6055 (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
6056 2003-11-18 Richard Sandiford <rsandifo@redhat.com>
6057 * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
6058 * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
6059 * config/frv/frv.c (frv_unspec): New structure.
6060 (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
6061 (frv_print_operand_memory_reference): Use frv_const_unspec_p to
6062 validate CONST indices. Use frv_output_const_unspec to print them.
6063 (frv_print_operand): Update call to unspec_got_name. Use
6064 frv_output_const_unspec to print constant unspecs.
6065 (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
6066 Reject UNSPECs otherwise.
6067 (unspec_got_name): Take the relocation number as argument, not an
6069 (frv_output_addr_const_extra): Remove, replacing with...
6070 (frv_output_const_unspec): ...this new function.
6071 (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
6072 (gpr_or_int12_operand): Use fdpic_got12_operand.
6073 (dbl_memory_one_insn_operand): Likewise.
6074 (fdpic_got12_operand): Use frv_const_unspec_p.
6075 (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
6076 are already legitimate. Use frv_small_data_reloc_p when deciding
6077 whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
6078 2003-11-18 Alexandre Oliva <aoliva@redhat.com>
6079 * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
6080 * config/frv/libgcc-frv.ver: ... frv-specific symbols. New file.
6081 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
6082 label, for real this time.
6083 * config/frv/frv.c (frv_local_funcdesc_p): Update to new
6084 representation of visibility.
6085 (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
6087 2003-11-17 Richard Sandiford <rsandifo@redhat.com>
6088 * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
6089 (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
6090 * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
6091 it was explicitly disabled.
6092 (frv_stack_info): There is no need to save the link register in every
6093 frame unless TARGET_LINKED_FP is true.
6094 (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
6095 frame pointer if the stack pointer might change value.
6096 (frv_return_addr_rtx): Check and process "count" argument.
6097 2003-11-14 Richard Sandiford <rsandifo@redhat.com>
6098 * config/frv/frv-protos.h (frv_legitimize_address): Remove.
6099 (frv_find_base_term): Declare.
6100 * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
6101 (FIND_BASE_TERM): Define.
6102 (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
6103 small_data_register_operand, small_data_symbolic_operand. Add
6105 * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
6106 (frv_print_operand_memory_reference, output_move_single): Remove
6107 special handling for unlegitimized sdata addresses.
6108 (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
6109 and symbolic addresses.
6110 (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
6111 (frv_find_base_term): New function.
6112 (int_2word_operand): Check specifically for symbolic address constants.
6113 (pic_register_operand, pic_symbolic_operand): Delete.
6114 (small_data_register_operand, small_data_symbolic_operand): Delete.
6115 (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
6116 Allow UNSPEC_GOT constants if !TARGET_FDPIC.
6117 (move_source_operand): Only accept CONSTs if they're a two-insn
6119 (fdpic_got12_operand): Don't require TARGET_FDPIC.
6120 (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
6121 using gen_symGOTOFF2reg*.
6122 (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
6123 (frv_rtx_costs): Give all MEM addresses a cost of 0. Give MEMs
6124 themselves a cost of 3 insns.
6125 * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
6126 Change predicate to symbolic_operand.
6127 (*movsi_high_got, *movsi_lo_sum_got): Likewise.
6128 (*movsi_lda_sdata): Delete.
6129 (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
6130 2003-11-05 Alexandre Oliva <aoliva@redhat.com>
6131 * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
6133 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
6135 * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
6136 -multilib-library-pic.
6137 (LINK_SPEC): Add -z text for -mfdpic.
6138 * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
6139 * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
6140 * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
6142 (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
6143 FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
6144 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
6145 crtstuff-generated files.
6146 2003-10-31 Alexandre Oliva <aoliva@redhat.com>
6147 * config.gcc: Add frv-*-*linux*.
6148 * config/frv/linux.h, config/frv/t-linux: New.
6149 2003-10-06 Alexandre Oliva <aoliva@redhat.com>
6150 * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
6151 when -mfdpic even if a linker script is explicitly listed.
6152 2003-10-02 Alexandre Oliva <aoliva@redhat.com>
6153 * config/frv/frv.c (frv_override_options): Clear asm_out
6154 unaligned_op for SImode on FDPIC.
6155 (frv_emit_movsi): Use compute_reloc_for_constant to compute the
6156 argument passed to decl_readonly_section.
6157 (frv_assemble_integer): Revert 2003-09-30's change, but make the
6158 whole block run with FDPIC even with -fno-PIC.
6159 2003-10-02 Alexandre Oliva <aoliva@redhat.com>
6160 * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
6161 symbol or label plus offset to memory.
6162 (frv_emit_movsi): Emit GPREL only if -mgprel-ro. Emit 32-bit
6163 GOTOFF and GPREL for LABEL_REF.
6164 * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
6165 -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
6166 (MASK_GPREL_RO, TARGET_GPREL_RO): New.
6167 (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
6168 * doc/invoke.texi: Document them.
6169 2003-09-30 Alexandre Oliva <aoliva@redhat.com>
6170 * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
6171 (frv_splittable_got_operand): Removed.
6172 * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
6173 LO_SUM. Add comments.
6174 (frv_override_options): Moved enabling of FDPIC to
6175 DRIVER_SELF_SPECS. Don't enable MASK_DWORD.
6176 (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
6177 (frv_legitimize_fdpic_address): Don't duplicate logic in
6179 (frv_gen_GPsym2reg): New.
6180 (unspec_got_name): Added gprel.
6181 (frv_expand_fdpic_call): Add support for inlining PLTs.
6182 (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
6183 (gpr_or_int12_operand): Added GPREL12.
6184 (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
6185 (small_data_symbolic_operand): Fail if FDPIC.
6186 (fdpic_splittable_got_operand): Removed.
6187 (fdpic_got12_operand): Added GPREL12.
6188 (frv_emit_movsi): Reorganize to avoid duplication. Emit GPREL
6189 when appropriate. Fix sdata GOTOFF.
6190 (frv_legitimate_constant_p): Require legitimate PIC operand for
6191 FDPIC with pic, but only a legitimate fdpic operand for non-pic.
6192 (frv_assemble_integer): Move FDPIC funcdesc handling out of
6194 (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
6195 frv_assemble_integer fails.
6196 * config/frv/frv.h (DRIVER_SELF_SPECS): New.
6197 (SUBTARGET_DRIVER_SELF_SPECS): New.
6198 (ASM_SPEC): Don't pass -mno-fdpic.
6199 (LINK_SPEC): Pass -melf32frvfd for FDPIC.
6200 (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
6201 (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
6202 -multilib-library-pic.
6203 (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
6204 condexec_si_media_operator, condexec_sf_add_operator and
6205 condexec_sf_conv_operator. Removed condexec_sf_binary_operator
6206 and condexec_sf_unary_operator.
6207 * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
6209 (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
6210 movsi_internal. Give them internal names. movsi_got has type
6212 (fdpic got splitters): Remove.
6213 (symGPREL2reg, symGPREL2reg_hilo): New.
6214 * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
6215 to -mlibrary-pic. Map -multilib-library-pic to it.
6216 * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
6218 2003-09-28 Alexandre Oliva <aoliva@redhat.com>
6219 * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
6220 (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
6221 (frv_cannot_force_const_mem): New function.
6222 (const_small_data_p, plus_small_data_p): Update comments on sdata
6224 (frv_override_options): Set flag_pie for FDPIC too.
6225 (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
6226 call-saved registers on FDPIC.
6227 (frv_stack_info): Don't preserve the PIC register on FDPIC, and
6228 don't force LR to be preserved.
6229 (frv_expand_prologue): Likewise.
6230 (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
6231 (frv_frame_pointer_required): Don't force it just because the
6232 FDPIC register is used.
6233 (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
6234 operand only if !condexec_p.
6235 (frv_legitimize_address): Return the FDPIC-legitimized address.
6236 Don't match small data here on FDPIC.
6237 (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
6238 symbols. Use TRUE/FALSE instead of 1/0.
6239 (frv_local_funcdesc_p): New.
6240 (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
6241 immediates when possible.
6242 (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
6243 (dbl_memory_one_insn_operand): Accept addresses that add a REG and
6245 (frv_emit_movsi): Handle FDPIC before small data. Use GOTOFF and
6246 12-bit immediates when possible.
6247 (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
6248 are not legitimate pic operands.
6249 (frv_in_small_data_p): Re-enable for FDPIC.
6250 * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
6251 (FRV_GLOBAL_P): Removed.
6252 * config/frv/frv.md: Add modes to CONSTs.
6254 (movsi_lo_sum_got): Use separate matches instead of match_dup.
6255 (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
6256 (fdpic splittable operations): Match on flag_pic != 1.
6257 2003-09-22 Alexandre Oliva <aoliva@redhat.com>
6258 * config/frv/frv.c (frv_asm_out_constructor,
6259 frv_asm_out_destructor): Pass to frv_assemble_integer the size in
6261 2003-09-19 Alexandre Oliva <aoliva@redhat.com>
6262 * config/frv/frv.c (frv_assemble_integer): Reject complex
6263 expressions referencing function SYMBOL_REFs.
6264 * config/frv/frv.c (frv_function_symbol_referenced_p): New.
6265 (move_source_operand): Reject CONSTs that reference function
6266 SYMBOL_REFs on FDPIC.
6267 (frv_emit_movsi): If we get such a CONST, break it up.
6268 * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
6269 (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
6270 * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
6272 (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
6273 (frv_trampoline_size): Increase for FDPIC.
6274 * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
6275 (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
6276 * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
6277 Disable use of GOTOFF for now.
6278 (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
6279 Disable use of small data in FDPIC for now.
6280 (frv_asm_output_mi_thunk): Implement for FDPIC.
6281 * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
6282 * config/frv/frv.c (frv_asm_out_constructor): Use
6283 frv_assemble_integer for FDPIC pointers.
6284 (frv_asm_out_destructor): Likewise.
6285 * config/frv/frv.md (ldd): Fix order of operands. Use
6286 address_operand for input.
6287 2003-09-18 DJ Delorie <dj@redhat.com>
6288 * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
6289 (unspec_got_name): Correct typo.
6290 (frv_emit_movsi): Pre-expand splittable GOTs.
6291 (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
6292 * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
6293 (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
6294 * config/frv/t-frv: Add -mfdpic multilibs.
6295 * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
6296 (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
6297 * config/frv/frv.c (frv_override_options): -mfdpic assumes
6298 flag_pic, default to 32-bit pics, require DWORD ops.
6299 (frv_override_options): Add W and Z constraints.
6300 (frv_expand_prologue): No pic prologue for -mfdpic.
6301 (frv_asm_output_mi_thunk): Support -mfdpic (soon).
6302 (frv_print_operand_memory_reference): Handle GOT constants.
6303 (frv_legitimate_address_p): Allow GOT constants.
6304 (frv_legitimize_address): Handle GOT addresses too.
6305 (frv_legitimate_fdpic_operand_p): New.
6306 (frv_legitimize_fdpic_address): New.
6307 (unspec_got_name): New.
6308 (frv_output_addr_const_extra): New.
6309 (frv_expand_fdpic_call): New.
6310 (frv_fdpic_fptr_operand): New.
6311 (gpr_or_int12_operand): Handle GOT operands.
6312 (int_2word_operand): Handle GOT operands.
6313 (fdpic_operand): New.
6314 (fdpic_splittable_got_operand): New.
6315 (fdpic_got12_operand): New.
6316 (frv_emit_movsi): Handle GOT operands.
6317 (frv_assemble_integer): -mfdpic doesn't use rofixups.
6318 (frv_print_operand): Support 'g' code for GOT operands.
6319 * config/frv/frv-protos.h: Add prototypes as needed.
6320 * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
6321 R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
6322 R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
6323 R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
6324 R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
6325 R_FRV_GOTOFFLO): New.
6326 (movsi_high_got, movsi_lo_sum_got): New.
6327 (*movsi_pic): Don't use this splitter for -mfdpic.
6328 (addsi3): Allow GOT references also.
6329 (call, call_value): Handle -mfdpic separately.
6330 (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
6331 call_value_fdpicsi): New.
6332 (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
6333 symGOTOFF2reg_i): New.
6334 * config/frv/frv.h (MASK_FDPIC): New.
6335 (TARGET_FDPIC): New.
6336 (TARGET_SWITCHES): Add -mfdpic.
6337 (FDPIC_FPTR_REGNO): New.
6339 (OUR_FDPIC_REG): New.
6340 (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
6342 (REG_CLASS_NAMES): Likewise.
6343 (REG_CLASS_CONTENTS): Likewise.
6344 (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
6345 (EXTRA_CONSTRAINT): Add it here.
6346 (FRV_GLOBAL_P): New.
6347 (OUTPUT_ADDR_CONST_EXTRA): New.
6349 2004-02-24 Kazu Hirata <kazu@cs.umass.edu>
6351 * config/sparc/sparc.h: Remove commented-out definitions of
6352 TARGET_EDOM and GEN_ERRNO_RTX.
6354 2004-02-24 Kazu Hirata <kazu@cs.umass.edu>
6356 * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
6357 df_analyse with df_analyze.
6359 2004-02-24 Alan Modra <amodra@bigpond.net.au>
6361 * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
6364 2004-02-23 James E Wilson <wilson@specifixinc.com>
6366 * calls.c (precompute_arguments): Update comment.
6368 2004-02-23 Kazu Hirata <kazu@cs.umass.edu>
6370 * et-forest.c: Replace et_occurences with et_occurrences.
6372 2004-02-23 Kazu Hirata <kazu@cs.umass.edu>
6374 * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
6377 2004-02-23 Kelley Cook <kcook@gcc.gnu.org>
6379 * config/i386/i386.c: Rename pni to sse3.
6380 * config/i386/i386.h: Likewise.
6381 * config/i386/i386.md: Likewise.
6382 * config/i386/pmmintrin.h: Likewise.
6383 * doc/extend.texi: Likewise.
6384 * doc/invoke.texi: Likewise.
6386 2004-02-23 Zack Weinberg <zack@codesourcery.com>
6387 Kazu Hirata <kazu@cs.umass.edu>
6389 Remove -fwritable-strings.
6390 * c-common.c (fix_string_type): Don't check
6391 flag_writable_strings.
6392 (fix_string_type): Likewise.
6393 * c-opts.c (set_std_c89): Don't initialize
6394 flag_writable_strings.
6395 (set_std_c99): Likewise.
6396 * common.opt (fwritable-strings): Remove.
6397 * flags.h: Remove the external declaration of
6398 flag_writable_strings.
6399 * opts.c (common_handle_option) <OPT_fwritable_strings>:
6401 * toplev.c (flag_writable_strings): Remove.
6402 (f_options): Remove an entry for writable-strings.
6403 * varasm.c (const_hash_1) <STRING_CST>: Don't check
6404 flag_writable_strings.
6405 (compare_constant) <STRING_CST>: Likewise.
6406 (build_constant_desc): Likewise.
6407 * config/darwin.c (machopic_select_section): Likewise.
6408 * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
6409 * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
6410 * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
6411 * config/mips/mips.c (mips_select_section): Likewise.
6412 (mips_encode_section_info): Likewise.
6413 * config/pa/pa.c (pa_select_section): Likewise.
6414 * config/pa/pa.h (TEXT_SPACE_P): Likewise.
6415 * config/v850/v850.c (v850_select_section): Likewise.
6416 * doc/invoke.texi (-fwritable-strings): Remove.
6417 (-fno-const-strings): Don't mention -fwritable-strings.
6418 * doc/trouble.texi: Don't mention -fwritable-strings.
6420 2003-02-23 Nathanael Nerode <neroden@gcc.gnu.org>
6422 * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
6424 2004-02-23 Dale Johannesen <dalej@apple.com>
6426 * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
6427 (movdf_hardfloat64): Ditto.
6428 (movdf_softfloat64): Ditto.
6430 2004-02-23 Fariborz Jahanian <fjahanian@apple.com>
6431 * config/rs6000/rs6000.c (function_arg): call to
6432 rs6000_mixed_function_arg for DFmode moved to allow
6433 normal DFmode incoming register assignment.
6435 2004-02-23 Dale Johannesen <dalej@apple.com>
6437 * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
6438 (movdf_hardfloat64): Ditto.
6440 2004-02-23 Kazu Hirata <kazu@cs.umass.edu>
6442 * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
6443 config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
6446 2004-02-23 Andrew Pinski <pinskia@physics.uc.edu>
6449 * c-typeck.c (c_expand_return): Change check for VAR_DECL
6450 to use DECL_P instead.
6452 * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
6453 * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
6455 2004-02-23 Kazu Hirata <kazu@cs.umass.edu>
6457 * Makefile.in (opts.o): Depend on target.h.
6458 * opts.c (decode_options): Use targetm.default_short_enums
6459 instead of DEFAULT_SHORT_ENUMS.
6460 * system.h (DEFAULT_SHORT_ENUMS): Poison.
6461 * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
6462 (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
6463 * target.h (gcc_target): Add default_short_enums.
6464 * config/cris/cris.h: Remove a comment about
6465 DEFAULT_SHORT_ENUMS.
6466 * config/ip2k/ip2k.h: Likewise.
6467 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
6468 TARGET_DEFAULT_SHORT_ENUMS. Update the description.
6470 2004-02-23 Eric Botcazou <ebotcazou@libertysurf.fr>
6471 Falk Hueffner <falk@debian.org>
6474 * builtins.c (expand_builtin_va_arg): Emit an informative message
6475 if a trap is generated.
6476 * c-typeck.c (build_function_call): Likewise.
6478 2004-02-22 Jakub Jelinek <jakub@redhat.com>
6480 * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
6482 * libgcov.c: Include sys/stat.h.
6483 * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
6484 * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
6485 * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
6486 * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
6488 2004-02-22 Kazu Hirata <kazu@cs.umass.edu>
6490 * reorg.c: Remove comments about dead ports.
6492 2004-02-22 Christopher Faylor <cgf@redhat.com>
6494 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
6495 extra host object file when targetting cygwin rather than generic
6498 2004-02-22 Josef Zlomek <zlomekj@suse.cz>
6500 Merge from tree-ssa:
6501 2003-11-20 Richard Henderson <rth@redhat.com>
6503 * tree-inline.c (insert_decl_map): New.
6504 (remap_decl, remap_type, remap_block, copy_body_r,
6505 initialize_inlined_parameters, declare_return_variable,
6506 remap_save_expr): Use it.
6508 * function.c (copy_body_r): Add mapping from id->ret_label to
6509 id->ret_label. Revert test for ret_label.
6511 2004-02-22 Jakub Jelinek <jakub@redhat.com>
6513 * genoutput.c (process_template): Strip trailing whitespace in @
6514 templates and issue a warning if there was any.
6516 2004-02-21 Christopher Faylor <cgf@redhat.com>
6518 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
6519 object file when targetting cygwin.
6520 * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
6521 overridden by top-level Makefile.
6523 2004-02-21 Roger Sayle <roger@eyesopen.com>
6525 * config/i386/i386.c (standard_80387_constant_p): Also prefer
6526 the x87's load constant instructions when optimizing for size.
6528 2004-02-21 Kazu Hirata <kazu@cs.umass.edu>
6530 * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
6531 * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
6532 * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
6533 * fold-const.c: Likewise.
6534 * simplify-rtx.c: Likewise.
6536 2004-02-21 Alan Modra <amodra@bigpond.net.au>
6538 * combine.c (can_combine_p): Don't ignore SETs marked with
6539 REG_EH_REGION notes.
6540 (try_combine): When attemting to fix unrecognized insns, don't
6541 split a PARALLEL that contains the original i2.
6543 2004-02-21 Ziemowit Laski <zlaski@apple.com>
6545 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
6546 SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
6547 * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
6548 * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
6549 (vector, pixel, bool): #define to __vector, __pixel and __bool.
6550 (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
6552 (__altivec_link_error_invalid_argument): Remove prototype; will use
6553 __builtin_altivec_compiletime_error("vec_*") instead.
6554 (vec_*): Fix/complete set of available operation overloads given the
6555 existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
6556 cv-correctness of pointer arguments; in C, always check for correct
6557 argument types before macro expansion.
6558 * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
6559 defining Darwin/PowerPC-specific '-f[no-]altivec' and
6560 '-W[no-]altivec-long-deprecated' switches.
6561 * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
6562 '__vector', '__pixel' and '__bool' macros using
6563 '__attribute__((altivec(...)))' types.
6564 * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
6565 bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
6566 bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
6568 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
6569 handling '-W[no-]altivec-long-deprecated'.
6570 (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
6571 (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
6572 altivec_expand_dst_builtin): Remove casts from integer literals.
6573 (altivec_expand_builtin): Likewise; handle expansion of new
6574 '__builtin_altivec_compiletime_error' function.
6575 (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
6576 types, and make them distinct from other vector types; register
6577 '__builtin_altivec_compiletime_error' function.
6578 (print_operand): For 'P', print a full target register name instead of
6580 (rs6000_attribute_table): Add "altivec" attribute.
6581 (rs6000_handle_altivec_attribute): New function.
6582 * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
6583 '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
6585 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
6587 (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
6589 2004-02-20 James E Wilson <wilson@specifixinc.com>
6591 * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
6593 (shift_mix4left+2): Delete redundant pattern.
6595 2004-02-20 Kazu Hirata <kazu@cs.umass.edu>
6597 * alias.c (OUTGOING_REGNO): Don't define the default.
6598 * builtins.c (OUTGOING_REGNO): Likewise.
6599 (INCOMING_REGNO): Likewise.
6600 (apply_args_register_offset): Always use OUTGOING_REGNO.
6601 * combine.c (OUTGOING_REGNO): Likewise.
6602 * sibcall.c (OUTGOING_REGNO): Likewise.
6603 * defaults.h (INCOMING_REGNO): Provide the default.
6604 (OUTGOING_REGNO): Likewise.
6606 2004-02-21 Jan Hubicka <jh@suse.cz>
6608 * params.def (max-peeled-insns, max-completely-peeled-insns,
6609 max-once-peeled-insns): Set to 400.
6611 2004-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6614 * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
6615 are set for parameters before outputing debugging information.
6617 2004-02-20 Falk Hueffner <falk@debian.org>
6620 * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
6623 2004-02-20 Per Bothner <per@bothner.com>
6625 * input.h: Don't #include line-map.h. It may cause link problems
6626 with undefined linemap_line_start when line-map.h is included but
6627 line-map.o is not linked, as currently happens with gengtype on
6628 compilers that don't support inline.
6629 * toplev.c: So we do have to explicitly #include line-map.h here.
6631 2004-02-20 Richard Henderson <rth@redhat.com>
6633 * doc/invoke.texi: Add -Wvariadic-macros.
6635 2004-02-20 Kazu Hirata <kazu@cs.umass.edu>
6637 * haifa-sched.c (sched_emit_insn): Remove.
6638 * sched-int.h: Remove the corresponding prototype.
6640 2004-02-20 Kazu Hirata <kazu@cs.umass.edu>
6643 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
6644 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
6645 * system.h (DEFAULT_SHORT_ENUMS): Poison.
6646 * config/cris/cris.h: Remove a comment about
6647 DEFAULT_SHORT_ENUMS.
6648 * config/ip2k/ip2k.h: Likewise.
6649 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
6651 2004-02-20 Mohan Embar <gnustuff@thisiscool.com>
6652 Tom Tromey <tromey@redhat.com>
6654 * doc/install.texi: Moved --disable-libgcj and
6655 --with-system-zlib documentation to new section for
6656 Java-specific options.
6657 Added explicit Cross-Compiler-Specific Options subheading.
6658 Added section for Java-specific options.
6660 2004-02-20 Matt Kraai <kraai@alumni.cmu.edu>
6662 * doc/install.texi (Building the Ada compiler): Remove
6665 2004-02-20 James E Wilson <wilson@specifixinc.com>
6667 * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
6669 2004-02-20 Kazu Hirata <kazu@cs.umass.edu>
6671 * gcc.c (process_command): Allow translation of the copyright
6672 symbol but not the rest of the copyright message.
6673 * gcov.c (print_version): Likewise. Allow translation of the
6674 message about warranty.
6676 2004-02-20 Hans-Peter Nilsson <hp@axis.com>
6678 * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
6680 ("*andsi_clear"): Tweak constraints to not match postincrement.
6681 Adjust the predicate to exclude a volatile memory reference.
6682 ("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed".
6683 ("*andhi_clear_unsigned"): Remove, non-matching pattern.
6685 2004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
6687 * move-if-change: Remove.
6688 * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
6689 (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
6690 (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
6691 (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
6692 (s-gtyp-gen, s-iov): Use the top level move-if-change.
6693 * objc/Make-lang.in (objc/objc-parse.y): Likewise.
6695 2004-02-19 James E Wilson <wilson@specifixinc.com>
6697 * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
6698 for operand2. Add condition that requires register_operand operand2
6701 2004-02-19 Richard Sandiford <rsandifo@redhat.com>
6702 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
6704 * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
6705 * config/mips/mips.md: Expand comment above unaligned loads and stores.
6707 2004-02-19 Richard Henderson <rth@redhat.com>
6709 * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
6710 * tree.c (build0, build1, build2, build3, build4): Split out from...
6711 (build): ... here. Call them.
6712 * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
6714 * convert.c (convert_to_integer): Remove extra build argument.
6715 * tree-inline.c (expand_call_inline): Likewise.
6717 2004-02-19 Richard Henderson <rth@redhat.com>
6719 * c-opts.c (warn_variadic_macros): New.
6720 (c_common_handle_option): Set it.
6721 (sanitize_cpp_opts): Copy it to cpp_opts.
6722 * c.opt (Wvariadic-macros): New.
6723 * cpplib.h (struct cpp_options): Add warn_variadic_macros.
6724 * cppinit.c (cpp_create_reader): Initialize it.
6725 * cppmacro.c (parse_params): Check it.
6727 2004-02-19 David Daney <ddaney@avtrex.com>
6729 PR preprocessor/14198
6730 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
6731 builtin_assert ("machine=mips")
6733 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
6735 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
6736 * system.h (DEFAULT_SHORT_ENUMS): Poison.
6737 * config/cris/cris.h: Remove a comment about
6738 DEFAULT_SHORT_ENUMS.
6739 * config/ip2k/ip2k.h: Likewise.
6740 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
6742 2004-02-19 Zack Weinberg <zack@codesourcery.com>
6744 * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
6745 when passing single SFmode quantities in general registers,
6746 put them in the high half.
6748 2004-02-19 Aldy Hernandez <aldyh@redhat.com>
6750 * doc/md.texi (Standard Names): Document additional dependency on
6753 * optabs.c (ftruncify): Remove.
6754 (expand_fix): Manually inline ftruncify above.
6755 (can_fix_p): Add FIXME note.
6757 2004-02-19 Aldy Hernandez <aldyh@redhat.com>
6759 * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
6760 spe_fixuns_truncsfsi2.
6762 * config/rs6000/rs6000.md (fixunssfsi2): Rename to
6765 2004-02-19 Steve Ellcey <sje@cup.hp.com>
6767 * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
6768 * testsuite/gcc.dg/20040219-1.c: New test.
6770 2004-02-19 Ulrich Weigand <uweigand@de.ibm.com>
6772 * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
6773 "*subsf3_cconly"): Subtraction is not commutative.
6775 2004-02-19 Zack Weinberg <zack@codesourcery.com>
6777 * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
6778 (sdbout_symbol): If called before sdbout_init, queue DECL for
6780 (sdbout_init): Set sdbout_initialized true, process decls
6781 queued earlier by sdbout_symbol.
6782 (sdbout_finish): Use size_t for index variable.
6784 2004-02-19 Jeff Law <law@redhat.com>
6786 * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
6787 for unordered comparison codes.
6789 2004-02-19 Ian Lance Taylor <ian@wasabisystems.com>
6791 * reload1.c (reload): Correct comment.
6792 (scan_paradoxical_subregs): Remove #if 0 and old comment.
6793 * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
6794 register variables are not used by reload.
6796 2004-02-19 Hans-Peter Nilsson <hp@axis.com>
6799 * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
6800 constraints to not match postincrement. Adjust the predicate to
6801 exclude a volatile memory reference.
6803 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
6805 * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
6807 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
6809 * hooks.c (hook_void_tree_int): Remove.
6810 (hook_void_constcharptr): Likewise.
6811 (hook_int_void_0): Likewise.
6812 * hooks.h: Remove the prototypes for the above three
6814 * targhooks.c (hook_bool_machine_mode_true): Remove.
6815 * targhooks.h: Remove the prototype for
6816 hook_bool_machine_mode_true.
6818 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
6820 * emit-rtl.c (subreg_realpart_p): Remove.
6821 (reorder_insns_with_line_notes): Likewise.
6822 (end_full_sequence): Likewise.
6823 * rtl.h: Remove the prototype for the above functions.
6825 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
6827 * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
6828 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
6829 config/iq2000/iq2000.h, config/m32r/m32r.h,
6830 config/pdp11/pdp11.h, config/sparc/sparc.h,
6831 config/xtensa/xtensa.h: Remove commented-out or useless
6832 definitions of CASE_VECTOR_PC_RELATIVE.
6834 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
6836 * loop.c (all_sets_invariant_p): Remove.
6838 2004-02-19 Eric Botcazou <ebotcazou@libertysurf.fr>
6841 * config/sparc/sparc.h (NPARM_REGS): Delete.
6842 (BASE_RETURN_VALUE_REG): Likewise.
6843 (BASE_OUTGOING_VALUE_REG): Likewise.
6844 (BASE_PASSING_ARG_REG): Likewise.
6845 (BASE_INCOMING_ARG_REG): Likewise.
6846 * config/sparc/sparc.c (sparc_strict_argument_naming): Test
6847 TARGET_ARCH64, not TARGET_V9.
6848 (function_arg_slotno): Dispatch based on the mode class.
6849 Handle vector modes like floating-point modes.
6850 (function_arg_record_value_1): Handle vector types like
6851 floating-point types.
6852 (function_arg_record_value_2): Likewise.
6853 Calculate regno after mode transformation.
6854 (function_arg): Handle vector modes like floating-point modes.
6855 (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
6856 If ARCH64, do not recheck alignment.
6857 (function_arg_pass_by_reference): Reorder the conditions.
6858 (sparc_return_in_memory): Move after function_arg_padding.
6859 Implement calling conventions for vector modes.
6860 (sparc_struct_value_rtx): Move after sparc_return_in_memory.
6861 (function_value): Move scope of 'regbase'.
6862 Implement calling conventions for vector modes.
6863 (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
6864 and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
6865 (sparc_va_arg): Use function_arg_pass_by_reference to test whether
6866 the argument is passed by reference.
6867 (sparc_type_code): Handle vector types.
6869 2004-02-19 Alan Modra <amodra@bigpond.net.au>
6871 * function.c (assign_parms): When building decl_rtl for
6872 SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
6874 2004-02-19 Olivier Hainque <hainque@act-europe.fr>
6876 * expr.c (is_aligning_offset): Check if we are aligning the
6877 expressions's address over BIGGEST_ALIGNMENT in bytes, not
6880 2003-02-18 Matt Austern <austern@apple.com>
6882 * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
6883 LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
6884 (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
6885 defined. Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
6887 * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
6889 2004-02-18 Zack Weinberg <zack@codesourcery.com>
6891 * dwarf2out.c (loclabel_num): Move outside #ifdef
6892 DWARF2_DEBUGGING_INFO and mark with GTY(()).
6893 * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
6895 (ia64_hpux_add_extern_decl): Save the decl, not the name string.
6896 Allocate memory with ggc_alloc. No need to copy anything.
6897 (ia64_hpux_file_end): Update to match.
6899 2004-02-18 Jakub Jelinek <jakub@redhat.com>
6901 * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
6904 2004-02-18 Ulrich Weigand <uweigand@de.ibm.com>
6906 * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
6907 ("divmodtisi3"): Likewise.
6908 ("udivmoddi4", "udivmodtidi3"): Likewise.
6909 ("divmodsi4", "divmoddisi3"): Likewise.
6910 ("udivmodsi4", "udivmoddisi3"): Likewise.
6911 ("udivsi3", "umodsi3"): Likewise.
6913 2004-02-18 Ulrich Weigand <uweigand@de.ibm.com>
6915 * config/s390/s390.c (s390_mainpool_start): Delete the main pool
6916 placeholder insn when chunkifying the pool.
6918 2004-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6920 * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
6921 generating PIC code.
6923 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
6925 * config/h8300/h8300-protos.h: Add a prototype for
6926 h8300_expand_branch.
6927 * config/h8300/h8300.c (h8300_expand_branch): New.
6928 * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
6929 bgtu, beq, bne): Call h8300_expand_branch().
6931 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
6933 * config/h8300/h8300-protos.h: Add prototypes for
6934 h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
6935 * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
6936 (h8300_hard_regno_mode_ok): Likewise.
6937 * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
6938 h8300_hard_regno_nregs().
6939 (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
6941 2004-02-18 Per Bothner <per@bothner.com>
6943 * cpphash.h (struct cpp_buffer): Restore return_at_eof field. This
6944 partly reverts my 2003-10-01 change, because we're back to logically
6945 including <command line> inside the main line.
6946 * cpplex.c (_cpp_get_fresh_line): Check return_at_eof field.
6947 * cppmacro.c (cpp_scan_nooutput): Set return_at_eof of current buffer.
6948 Fixes PR preprocessor/14103.
6950 * cppfiles.c (_cpp_stack_include): When appropriate decrement
6951 line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
6952 (cpp_push_include): Don't need to increment pfile's line field.
6953 * line-map.h (LAST_SOURCE_LINE_LOCATION): Only decrement by 1.
6955 * c-ppoutput.c (print struct): New first_time field.
6956 (init_pp_output): Set print.first_time.
6957 (pp_file_change): Use print.first_time, rather than MAIN_FILE_P,
6958 which is set also for (say) <command line>. Clear print.first_time.
6960 * cppfiles.c (struct _cpp_file): Comment and type for pch field
6961 does not match the code, so fix both.
6962 (should_stack_file): Inline include_pch_p function.
6963 (include_pch_p): Remove pointless function.
6965 * cpphash.h (struct cpp_buffer): Remove unused search_cached field.
6967 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
6969 * config/h8300/h8300.md (four define_peephole2's): Use
6970 h8300_regs_ok_for_stm().
6972 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
6974 * config/h8300/h8300-protos.h: Update the prototype for
6976 * config/h8300/h8300.c (expand_a_rotate): Remove the first
6978 * config/h8300/h8300.md: Update all callers.
6980 2004-02-18 Jan Hubicka <jh@suse.cz>
6982 * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
6984 (simplify_binary_operation): Deal with logicals on floats.
6986 * i386.md (SSE fabs splitters): Emit new patterns.
6987 (SSE cmov splitters): Likewise.
6988 (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
6989 (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
6991 (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
6992 (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
6994 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
6996 * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
6998 (output_a_rotate): Tweak a comment.
6999 * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
7000 (*rotlhi3_1): Change to rotlhi3_1.
7001 (*rotlsi3_1): Change to rotlsi3_1.
7003 2004-02-18 Richard Earnshaw <rearnsha@arm.com>
7006 * arm.c (load_multiple_operation): Don't insist that the source reg
7007 of a post-increment component is the same as the destination.
7008 (store_multiple_operation): Likewise.
7010 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
7012 * config/h8300/h8300.md: Move movsf patterns into one section
7015 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
7017 * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
7018 loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
7019 xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
7020 config/mips/linux64.h, config/pa/pa-64.h,
7021 config/rs6000/aix51.h, config/rs6000/aix52.h,
7022 config/rs6000/spe.md, config/sparc/linux.h,
7023 config/sparc/linux64.h: Update copyright.
7025 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
7027 * config/h8300/h8300.md: Move push patterns into one
7028 section of the file.
7030 2004-02-18 Mark Mitchell <mark@codesourcery.com>
7033 * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
7036 2004-02-18 Paul Brook <paul@codesourcery.com>
7038 * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
7040 2004-02-18 Paul Brook <paul@codesourcery.com>
7043 * dwarf2out.c (loc_descriptor_from_tree): Handle
7044 EXPR_WITH_FILE_LOCATION.
7046 2004-02-18 Jakub Jelinek <jakub@redhat.com>
7048 * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
7049 testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
7050 trailing whitespace from instructions.
7052 2004-02-17 Geoffrey Keating <geoffk@apple.com>
7054 * configure.ac: When generating auto-build.h, pass
7055 --enable-languages to the sub-configure.
7056 Put quotes around ${program_transform_name} when generating
7057 name of as, ld, nm, objdump.
7058 * configure: Regenerate.
7060 2004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
7062 * Makefile.in (s-check, s-config, s-conditions, s-flags)
7063 (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
7064 (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
7065 (s-preds, s-iov): Do not depend on move-if-change.
7067 2004-02-17 James E Wilson <wilson@specifixinc.com>
7069 * caller-save.c (insert_restore): Pass mem through copy_rtx.
7070 (insert_save): Likewise.
7072 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
7074 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
7077 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
7079 * config/h8300/h8300.md (*one_complsi2_h8300): Change to
7081 (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
7083 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
7085 * config/h8300/h8300-protos.h: Update the prototype of
7087 * config/h8300/h8300.c (fix_bit_operand): Remove the second
7089 * config/h8300/h8300.md: Update all callers.
7091 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
7093 * config/h8300/h8300.c (fix_bit_operand): Change the name of
7094 the last argument to "code" from "type".
7096 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
7098 * config/h8300/h8300.c: Remove an extern declaration of
7099 rtx_equal_function_value_matters.
7101 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
7103 * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
7105 * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
7106 (*iorqi3_1): Change to iorqi3_1.
7107 (*xorqi3_1): Change to xorqi3_1.
7109 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
7111 * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
7114 2004-02-17 Jan Hubicka <jh@suse.cz>
7116 * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
7118 2004-02-18 Alan Modra <amodra@bigpond.net.au>
7120 PR optimization/14119
7121 * combine.c (try_combine): When attemting to fix unrecognized insns,
7122 don't delete SETs marked with REG_EH_REGION notes.
7124 2004-02-17 Ulrich Weigand <uweigand@de.ibm.com>
7126 * combine.c (simplify_if_then_else): Do not replace
7127 (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
7130 2004-02017 Steven Bosscher <stevenb@suse.de>
7132 * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
7133 function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
7134 tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
7135 * ada/utils.c: Likewise.
7136 * cp/decl.c: Likewise.
7137 * f/com.c: Likewise.
7138 * java/class.c: Likewise.
7140 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
7142 * config/h8300/h8300.md: Fix comment typos.
7144 2004-02-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7146 * config/mips/t-iris6gld: Renamed to ...
7147 * config/mips/t-irix-gld: ... this.
7148 * config.gcc (mips-sgi-irix6*): Reflect this
7149 (mips-sgi-irix5*): Use it with GNU ld.
7151 * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
7153 * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
7154 * config/mips/t-irix-gld: Reflect this.
7155 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
7157 * config/mips/iris5gld.h: New file.
7158 * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
7159 Only use collect2 without gas.
7161 * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
7162 Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
7163 (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
7164 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
7166 * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
7167 * config/mips/iris5.h: ... here.
7169 * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
7170 IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
7171 (STARTFILE_SPEC, ENDFILE_SPEC): Define.
7173 * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
7174 using irix_startfile_spec, irix_endfile_spec.
7176 2004-02-16 Gunther Nikl <gni@gecko.de>
7178 * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
7180 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
7182 * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
7185 2004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7187 * cfghooks.c (split_edge): Speed up updating of dominators.
7189 2004-02-17 Mark Mitchell <mark@codesourcery.com>
7192 * c-common.c (flag_abi_version): Remove.
7193 * c-common.h (flag_abi_version): Likewise.
7194 * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
7195 * c.opt (fabi-version): Remove.
7196 * calls.c (expand_call): Always pass a function type to
7197 struct_value_rtx. Use convert_memory_address.
7198 * common.opt (fabi-version): Add it.
7199 * flags.h (flag_abi_version): Likewise.
7200 (abi_version_at_least): New macro.
7201 * opts.c (common_handle_option): Add OPT_fabi_version.
7202 * toplev.c (flag_abi_version): Define it.
7203 * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
7205 (ia64_output_mi_thunk): Use it.
7206 (ia64_struct_value_rtx): Likewise.
7208 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
7210 * config/h8300/h8300.c (h8300_emit_stack_adjustment):
7211 Don't generate insns by hand.
7213 2004-02-17 Andrew Pinski <pinskia@physics.uc.edu>
7216 * doc/invoke.texi (fabi-version): The default is 2 now.
7218 2004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7220 * loop-iv.c: New file.
7221 * Makefile.in (loop-iv.o): New.
7222 * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
7223 * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
7224 num_loop_branches): New functions.
7225 * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
7226 iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
7227 find_simple_exit, iv_number_of_iterations, iv_analysis_done,
7228 get_simple_loop_desc, free_simple_loop_desc): Declare.
7229 (simple_loop_desc): New inline function.
7230 (struct rtx_iv, struct niter_desc): New.
7231 * cfgloopmanip.c (loopify): Specify semantics more precisely.
7232 * expr.c (force_operand): Handle subregs of expressions created by
7234 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
7235 parts of the initialization to toplev.c
7236 * loop-unroll.c (loop_exit_at_end_p): New.
7237 (unroll_and_peel_loops): Call iv_analysis_done.
7238 (decide_peel_once_rolling, decide_peel_completely,
7239 decide_unroll_stupid, decide_unroll_constant_iterations,
7240 decide_unroll_runtime_iterations, decide_peel_simple,
7241 peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
7242 unroll_loop_runtime_iterations): Use new simple loop analysis.
7243 * loop-unswitch.c (compare_and_jump_seq): New.
7244 (may_unswitch_on_p): Renamed to ...
7245 (may_unswitch_on): Use new iv analysis.
7246 (reversed_condition): Export.
7247 (unswitch_single_loop, unswitch_loop): Use new iv analysis.
7248 * predict.c (estimate_probability): Use new simple loop analysis.
7249 * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
7250 canon_condition, simplify_using_condition): Declare.
7251 * stor-layout.c (get_mode_bounds): New.
7252 * toplev.c (rest_of_handle_loop2): Some parts of
7253 initialization/finalization moved here from loop-init.c.
7255 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
7257 * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
7259 (CALL_USED_REGISTERS): Likewise.
7260 (REG_ALLOC_ORDER): Likewise.
7261 (REG_CLASS) <GENERAL_REGS>: Likewise.
7263 2004-02-16 Geoffrey Keating <geoffk@apple.com>
7265 * doc/md.texi (Insn Canonicalizations): Document left-chaining
7266 in associative operators.
7267 * rtlanal.c (commutative_operand_precedence): Create some new
7268 variables. Prefer a commutative operand on the left, then
7269 binary expressions, then NEG and NOT.
7271 2004-02-16 Matthias Klose <doko@debian.org>
7273 * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
7274 in terms of SHLIB_SOVERSION.
7275 * config/m68k/t-slibgcc-elf-ver: New file.
7276 * config/pa/t-slibgcc-elf-ver: New file.
7277 * config.gcc (m68k-linux, parisc-linux): Use them when not
7278 sjlj exceptions are not configured.
7280 2004-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
7282 * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
7284 2004-02-16 Zack Weinberg <zack@codesourcery.com>
7286 * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
7288 2004-02-16 Joseph S. Myers <jsm@polyomino.org.uk>
7290 * doc/sourcebuild.texi: Mention backends.html.
7292 2004-02-16 Kazu Hirata <kazu@cs.umass.edu>
7294 * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
7295 line-map.c, line-map.h, var-tracking.c: Fix comment
7298 2004-02-16 Richard Henderson <rth@redhat.com>
7300 * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
7302 * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
7304 2004-02-15 Kazu Hirata <kazu@cs.umass.edu>
7306 * config/h8300/h8300.md: Remove unnecessary parallels from
7307 all define_insn and define_split patterns.
7309 2004-02-15 Kazu Hirata <kazu@cs.umass.edu>
7311 * config/h8300/h8300.md: Remove explicit (set_attr "cc"
7314 2004-02-15 Bernardo Innocenti <bernie@develer.com>
7316 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
7319 2004-02-15 Kazu Hirata <kazu@cs.umass.edu>
7321 * config/ia64/ia64.c, config/mips/mips.c,
7322 config/mmix/mmix-modes.def: Fix comment typos.
7324 2004-02-15 Roger Sayle <roger@eyesopen.com>
7326 * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
7327 (get_directive_line): Remove unused function prototype.
7329 2004-02-14 Josef Zlomek <zlomekj@suse.cz>
7331 * tree-inline.c (copy_body_r): Do not replace ret_label.
7333 2004-02-14 Jan Hubicka <jh@suse.cz>
7335 * i386.c (x86_four_jump_limit): New variable.
7336 (k8_avoid_jump_misspredicts): Rename to ...
7337 (ix86_avoid_jump_misspredicts): .. this one.
7338 (ix86_pad_returns): Break out from ...
7339 (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
7341 * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
7343 2004-02-14 Josef Zlomek <zlomekj@suse.cz>
7345 * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
7348 2004-02-14 Per Bothner <per@bothner.com>
7350 * fix-header.c (line_table): Move local variable in main to global.
7351 * scan.h (line_table): Use it.
7352 * scan-decls.c (scan_decls): Need to call linemap_lookup on token's
7353 line (recently renamed to src_loc) before calling recognized_function.
7355 2004-02-14 Matt Kraai <kraai@alumni.cmu.edu>
7357 * Makefile.in: Fix comment typos.
7359 2004-02-14 Olivier Hainque <hainque@act-europe.fr>
7361 * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
7362 for start_value when it is directly moved into reg, and factorize
7363 the retrieval of GET_MODE (reg).
7365 2004-02-14 Richard Sandiford <rsandifo@redhat.com>
7367 * config/mips/mips-protos.h (mips_load_got_page): Delete.
7368 (mips_load_got_global): Delete.
7369 (mips_gotoff_page): Declare.
7370 * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
7371 (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
7372 UNSPEC_LOAD_GOT pattern rather than a MEM.
7373 (*load_got[sd]i): New patterns.
7374 * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
7375 (mips_load_got_page, mips_load_got_global): Delete.
7376 (mips_gotoff_page): New function.
7377 (override_options): Don't initialize mips_got_alias_set.
7379 2004-02-14 Richard Sandiford <rsandifo@redhat.com>
7381 * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
7382 (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
7383 (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
7384 (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
7385 (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
7386 * config/mips/mips.c: Fix some overly-long lines.
7387 (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
7388 (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
7390 2004-02-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7392 * configure.ac: Search for as, ld below libexec/gcc.
7393 * configure: Regenerate.
7395 2004-02-14 Ben Elliston <bje@wasabisystems.com>
7397 * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
7398 __builtin_arm_setwcx ().
7399 * config/arm/arm.c (arm_expand_builtin): Generate operands
7400 correctly and reverse their order in call to gen_iwmmxt_tmcr ().
7402 2004-02-14 Ben Elliston <bje@wasabisystems.com>
7404 * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
7405 and "wmuluh" to "wmulsm" and "wmulum", respectively.
7406 * config/arm/arm.h (enum arm_builtins): Rename enumerators to
7407 ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
7408 * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
7409 (_mm_mulhi_pu16): Likewise.
7411 2004-02-13 Zack Weinberg <zack@codesourcery.com>
7413 * xcoffout.c (xcoff_assign_fundamental_type_number): Check
7414 DECL_NAME != 0 before dereferencing.
7416 2004-02-13 Ulrich Weigand <uweigand@de.ibm.com>
7418 * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
7419 (s390_output_addr_const_extra): Declare.
7420 (s390_output_pool_entry): Remove FILE * argument.
7421 * config/s390/s390.c (s390_output_symbolic_const): Remove.
7422 (s390_output_addr_const_extra): New function.
7423 (print_operand_address): Call output_addr_const instead of
7424 s390_output_symbolic_const.
7425 (print_operand): Likewise.
7426 (s390_output_pool_entry): Use assemble_integer for symbolic constants.
7427 Remove FILE * argument.
7428 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
7429 * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
7432 2004-02-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7434 * cfgloopanal.c (mark_irreducible_loops): Rewriten.
7435 (struct edge, struct vertex, struct graph): New.
7436 (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
7437 free_graph): New functions.
7439 2004-02-12 Chris Demetriou <cgd@broadcom.com>
7441 * config/mips/mips.md (casesi_internal, casesi_internal_di):
7442 Use ".set macro" to avoid warnings about multi-instruction
7443 macros, since they're intentional.
7445 2004-02-12 Geoffrey Keating <geoffk@apple.com>
7447 * config/darwin.h: Add include guards. Remove old, now incorrect,
7448 comment about STANDARD_EXEC_PREFIX.
7450 * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
7451 $(GCOV_INSTALL_NAME) to install manpages. Remove generic rule
7452 for installing .1 manpages. Add rules for installing cpp
7453 and gcov manpages under their installed names.
7455 2004-02-12 Alexandre Oliva <aoliva@redhat.com>
7457 * configure.ac (gcc_cv_ld): Don't set to LD if target is not
7458 host, but try LD_FOR_TARGET first.
7459 * configure: Rebuilt.
7461 2004-02-12 Zack Weinberg <zack@codesourcery.com>
7463 * dbxout.c: Move declaration of dbxout_type_decl outside
7464 #ifdef DBX_DEBUGGING_INFO.
7465 * c-parse.in: Don't give the asmdef production a type.
7467 2004-02-12 Zack Weinberg <zack@codesourcery.com>
7469 * debug.h (struct gcc_debug_hooks): Add type_decl field.
7470 (debug_nothing_tree_int): Prototype.
7471 (dwarf_debug_hooks): Delete, unused.
7472 * debug.c (do_nothing_debug_hooks): Update.
7473 (debug_nothing_tree_int): New function.
7474 * langhooks.h (struct lang_hooks_for_decls):
7475 Remove builtin_type_decls field.
7476 * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
7477 (LANG_HOOKS_DECLS): Update.
7478 * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
7479 Use debug_hooks->type_decl.
7480 * dbxout.c (preinit_symbols): New static.
7481 (dbx_debug_hooks, xcoff_debug_hooks): Update.
7482 (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
7483 lang_hooks.decls.builtin_type_decls. Do scan preinit_symbols
7484 for symbols to output.
7485 (dbxout_type_decl): New function.
7486 (dbxout_symbol): If called before dbxout_init has run, queue
7487 the symbol for later. Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
7488 to TYPE_DECLs before emitting them.
7489 * xcoffout.c (assign_type_number): Delete.
7490 (xcoff_type_numbers): New static table.
7491 (xcoff_assign_fundamental_type_number): New function.
7492 * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
7493 DBX_OUTPUT_STANDARD_TYPES. Remove unnecessary #ifdefs.
7494 * sdbout.c: Include varray.h.
7495 (deferred_global_decls): New static.
7496 (sdb_debug_hooks): Update.
7497 (sdbout_global_decl): If we can't emit something right now,
7498 remember it in deferred_global_decls.
7499 (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
7500 (sdbout_init): Initialize deferred_global_decls.
7501 * Makefile.in: Update dependencies of sdbout.o.
7502 * dwarf2out.c (dwarf2out_type_decl): New function.
7503 (dwarf2_debug_hooks): Update.
7504 * vmsdbgout.c (vmsdbg_debug_hooks): Update.
7505 * c-decl.c (getdecls): Just return 0.
7506 (check_for_loop_decls): Don't use getdecls.
7507 (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
7508 * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
7510 2004-02-12 Ulrich Weigand <uweigand@de.ibm.com>
7512 * config/s390/s390.c (s390_sched_reorder2): Remove.
7513 (TARGET_SCHED_REORDER2): Do not redefine.
7515 2004-02-12 Zack Weinberg <zack@codesourcery.com>
7517 * c-parse.in (maybe_type_qual): Delete.
7518 (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
7519 (asm_argument): New grammar rules.
7520 (extdef_1): Use asmdef.
7521 (maybeasm): Move down with other asm rules; use simple_asm_expr.
7522 (xexpr): Move up with other expression rules.
7523 (stmt): Use asm_stmt.
7525 * c-typeck.c (build_asm_expr): New function - body mostly
7526 pulled from build_asm_stmt.
7527 (build_asm_stmt): Just handle tacking on the volatile qualifier.
7528 * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
7530 2004-02-12 Richard Sandiford <rsandifo@redhat.com>
7533 * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
7534 (mips_declare_object): Make variadic.
7535 * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
7536 mips_output_aligned_decl_common.
7537 * config/mips/mips.c (mips_output_aligned_decl_common): New function.
7538 (mips_declare_object): Make variadic.
7540 2004-02-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7542 * function.c (update_epilogue_consts): Teach about binary operations.
7544 * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
7545 previous MEM_VOLATILE in REF.
7546 * function.c (fixup_var_refs): Save volatile_ok and set to 1.
7547 * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
7549 2004-02-12 Gunther Nikl <gni@gecko.de>
7551 * config.gcc: Restore support for m68k-openbsd.
7553 2004-02-12 Jan Hubicka <jh@suse.cz>
7555 * tree-optimize.c (tree_rest_of_compilation): Do not release
7558 2004-02-11 Matt Kraai <kraai@alumni.cmu.edu>
7560 * doc/install.texi: Fix the spelling of "explicitly".
7562 2004-02-11 Eric Christopher <echristo@redhat.com>
7564 * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
7565 duplicate argument structure of cpp_interpret_string.
7566 * cpphash.h: Move prototype...
7568 * cpplib.c: Fix calls to match new function signature.
7570 2004-02-11 Joseph S. Myers <jsm@polyomino.org.uk>
7573 * cppexp.c (num_binary_op): Don't allow comma operators in #if
7574 constant expressions at all outside C99 mode if pedantic.
7576 2004-02-11 Uros Bizjak <uros@kss-loka.si>
7578 * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
7579 (log10_optab, log2_optab): Define corresponding macros.
7580 * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
7581 * genopinit.c (optabs): Implement log10_optab and log2_optab
7582 using log10?f2 and log2?f2 patterns.
7583 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
7584 using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
7585 (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
7586 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7588 * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
7589 log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
7590 log2, log2f and log2l built-ins as inline x87 intrinsics.
7592 2004-02-11 Richard Henderson <rth@redhat.com>
7595 * flow.c (insn_dead_p): A clobber of a dead hard register is a
7596 dead insn after reload.
7598 2004-02-11 Ulrich Weigand <uweigand@de.ibm.com>
7600 * tree.h (frame_base_decl): Add GTY marker.
7601 * var-tracking.c (frame_base_decl): Likewise.
7603 2004-02-11 Daniel Berlin <dberlin@dberlin.org>
7605 * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
7607 (add_location_or_const_value_attribute): Use text_section_label,
7608 not TEXT_SECTION_NAME.
7610 2004-02-11 Per Bothner <per@bothner.com>
7612 Represent column numbers using line-map's source_location.
7613 The "next available source_location" is now managed internally by
7614 line-maps.c rather than by clients.
7615 * line-map.h (struct line_map): New field column_bits.
7616 <from_line>: Rename field to start_location.
7617 (struct line_maps): New fields highest_location and max_column_hint.
7618 (linemap_check_files_exited): New declaration.
7619 (linemap_line_start): New declaration.
7620 (linemap_add): Remove from_line parameter; use highest_location field.
7621 (SOURCE_LINE, LAST_SOURCE_LINE): Modify to use column_bits.
7622 (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION): New macros.
7623 (CURRENT_LINE_MAP): Remove macro.
7624 (linemap_position_for_column): New inline function.
7625 * line-map.c (linemap_init): Clear new fields.
7626 (linemap_check_files_exited): New function, extracted from ...
7627 (linemap_free): Use linemap_check_files_exited.
7628 (linemap_add): Remove from_line parameter. Various updates.
7629 (linemap_line_start): New function.
7630 (linemap_lookeup): Update for new field names.
7631 * cpphash.h (struct cpp_reader) <map>: Field removed. Because
7632 linemap_position_for_column may unpredictably change the current map,
7633 it is cleaner and simpler for us to not cache it in cpp_reader.
7634 (struct cpp_buffer): New sysp field.
7635 Changed warned_cplusplus_comments and from_stage3 to bitfields.
7636 * cppinit.c (cpp_read_min_file): pfile->map no longer exists.
7637 * cpplib.c (do_line, do_linemarker, _cpp_do_file_change): Get
7638 current map using linemap_lookup.
7639 (do_linemarker): Also set buffer's sysp field.
7640 (destringize_and_run): No longer need to decrement current line.
7641 * cppfiles.c (_cpp_stack_file): Set sysp from and in buffer.
7642 (search_path_head, open_file_failed): Use buffer's sysp.
7643 (cpp_make_system_header): Get current map using linemap_lookup.
7644 Also set buffer's sysp flag.
7645 * cppmacro.c (_cpp_builtin_macro_text): Likewise use linemap_lookup.
7646 * cpphash.h (CPP_INCREMENT_LINE): New macro.
7647 (struct cpp_buffer): Moved fields saved_cur, saved_rlimit to ...
7648 (struct cpp_reader): ... and adding saved_line_base field.
7649 * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
7650 Update accordingly. Don't adjust line.
7651 (_cpp_scan_out_logical_line): Use CPP_INCREMENT_LINE.
7652 * cpphash.c (CPP_IN_SYSTEM_HEADER): Replaced macro by ...
7653 (cpp_in_system_header): ... new inline function, using buffer's sysp.
7654 * cpperror.c (_cpp_begin_message): Update to use cpp_in_system_header.
7655 * cpplex.c (_cpp_lex_direct): Likewise.
7656 * cppmacro.c (_cpp_builtin_macro_text): Likewise.
7657 * cppmacro.c (_cpp_create_definition): Use buffer's sysp field.
7658 * cpplib.h (struct cpp_token): Rename line field to src_loc.
7659 Remove col field as it is now subsumed by src_loc.
7660 * cpperror.c: Update various field, parameter, and macro names.
7661 (print_location): If col==0, try SOURCE_COLUMN of line.
7662 (cpp_error): Use cur_token's src_loc field, rather than line+col.
7663 * cpplib.c (do_diagnostic): Token's src_loc fields replaces line+col.
7664 * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
7665 _cpp_skip_block_comment): Use CPP_INCREMENT_LINE.
7666 (_cpp_temp_token): Replace cpp_token's line+col fields by src_loc.
7667 (_cpp_get_fresh_line): Don't need to adjust line for missing newline.
7668 (_cpp_lex_direct): Use linemap_position_for_column.
7669 * c-ppoutput.c (maybe_print_line, print_line): Don't take map
7670 parameter. Instead get it from the line_table global. Adjust callers.
7671 (print): Remove map field. Replace line field to src_line.
7672 (init_pp_output, account_for_newlines, maybe_print_line): Adjust.
7673 (cb_line_change): Use SOURCE_COLUMN. Minor optimizations.
7674 (pp_file_change): Use MAIN_FILE_P since we cannot checked print.map.
7675 Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
7676 * cpptrad.c (copy_comment): Rename variable.
7677 * c-lex.c (map): Remove static variable, for same reason we removed
7678 cpp_reader's map field.
7679 (cb_line_change, cb_def_pragma, cb_define, cb_undef): Hence we need
7680 to call linemap_lookup.
7681 (cb_line_change): Token's line field replaced by src_loc.
7682 (fe_file_change): Use MAINFILE_P and LAST_SOURCE_LINE macros.
7685 * cpphash.h, cpperror.c, cpplib.h: Some renames of fileline to
7688 2004-02-11 Hartmut Penner <hpenner@de.ibm.com>
7690 * config/rs6000/altivec.md (*movv4si_internal): At least one
7691 operand must be register_operand.
7692 (*movv8hi_internal1): Likewise.
7693 (*movv16qi_internal1): Likewise.
7694 (*movv4sf_internal1): Likewise.
7696 2004-02-10 Aldy Hernandez <aldyh@redhat.com>
7698 * config/rs6000/spe.md ("*movv2si_internal"): Check for register
7700 (movv4hi_internal): Same.
7701 (movv2sf_internal): Same.
7702 (movv1di_internal): Same.
7704 2004-02-11 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
7706 * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
7707 TARGET_OLDABI consistently.
7708 * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
7709 mips_va_arg,override_options,compute_frame_size,
7710 mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
7711 ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
7712 and TARGET_OLDABI consistently.
7713 * config/mips/mips.md (exception_receiver): Likewise.
7714 * config/mips/linux64.h: Likewise.
7716 2004-02-11 Hartmut Penner <hpenner@de.ibm.com>
7718 * gcc/config/rs6000/rs6000.c (rs6000_override_options)
7719 Set AltiVec ABI and vrsave as default for ppc64 linux.
7720 (init_cumulative_args): Post error, if try to return
7721 value in AltiVec register without enable AltiVec.
7722 (function_arg_advance): Ditto for passing arguments.
7724 2004-02-11 Richard Sandiford <rsandifo@redhat.com>
7726 * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
7727 a label before updating its usage count.
7729 2004-02-10 Matt Kraai <kraai@alumni.cmu.edu>
7731 * doc/install.texi: Remove extra cd.
7733 2004-02-10 Ziemowit Laski <zlaski@apple.com>
7735 * c-common.c (vector_size_helper): Remove; call
7736 reconstruct_complex_type() instead.
7737 * tree.c (reconstruct_complex_type): New function
7738 (formerly vector_size_helper() in c-common.c).
7739 (make_vector): Make externally visible.
7740 * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
7742 2004-02-10 Kazu Hirata <kazu@cs.umass.edu>
7744 * config/h8300/h8300-protos.h: Add a prototype for
7745 h8300_regs_ok_for_stm.
7746 * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
7747 * config/h8300/h8300.md (stm_h8300s_2_advanced,
7748 stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
7749 stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
7750 stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
7751 ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
7752 ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
7753 ldm_h8300s_4_normal, ldm_h8300s_4): Use
7754 h8300_regs_ok_for_stm().
7756 2004-02-10 Danny Smith <dannysmith@users.sourceforge.net>
7759 * real.c (real_from_string): Look for 'X' as well as 'x' in
7762 2004-02-10 Kazu Hirata <kazu@cs.umass.edu>
7764 * config/h8300/h8300.md: Remove an incorrect comment about
7765 peephole2. Add comments.
7767 2004-02-10 Josef Zlomek <zlomekj@suse.cz>
7770 * emit-rtl.c (set_decl_incoming_rtl): New.
7771 * tree.h (set_decl_incoming_rtl): New.
7772 * function.c (assign_parms): Use set_decl_incoming_rtl for setting
7774 * ada/misc.c (adjust_decl_rtl): Likewise.
7776 2004-02-10 Per Bothner <per@bothner.com>
7778 * c-opts.c (c_common_post_options): Don't emit working directory
7779 in cpp output if -P was specified.
7781 2004-02-10 Paolo Bonzini <bonzini@gnu.org>
7784 * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
7785 negate_expr back to the original type.
7787 2004-02-10 Alan Modra <amodra@bigpond.net.au>
7789 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
7792 2004-02-10 Paolo Bonzini <bonzini@gnu.org>
7794 * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
7795 gen_lowpart_SUBREG): Move under the file in which they
7796 are actually declared.
7798 2004-02-10 Arnaud Charlet <charlet@act-europe.fr>
7800 * doc/sourcebuild.texi: Add libada documentation.
7802 * doc/install.texi: Update documentation on Ada build, now
7803 that the GNAT lib and tools are built automatically.
7805 2004-02-10 Richard Sandiford <rsandifo@redhat.com>
7807 * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
7810 2004-02-09 Ziemowit Laski <zlaski@apple.com>
7812 * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
7813 boundaries outside build_component_ref() call (a macro in ObjC++).
7815 2004-02-09 Bob Wilson <bob.wilson@acm.org>
7817 * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
7818 (init_cumulative_args): Likewise.
7819 (a7_overlap_mentioned_p): Delete prototype.
7820 * config/xtensa/xtensa.c (struct machine_function): Replace
7821 incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
7822 Add set_frame_ptr_insn field.
7823 (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
7824 (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
7825 if the operand is an argument in a7. If so, copy a7 to a new pseudo
7826 at the function entry and replace the operand with the pseudo.
7827 (init_cumulative_args): Remove unused arguments. Add new "incoming"
7828 argument and record this flag in CUMULATIVE_ARGS.
7829 (function_arg): Remove result_mode and special-case code to handle
7830 arguments in a7. Instead, set need_a7_copy flag when there is an
7831 incoming argument in a7.
7832 (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
7833 and use the value recorded in cfun->machine->set_frame_ptr_insn.
7834 (xtensa_builtin_saveregs): Check for negative gp_left value. Set
7835 need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of
7837 (a7_overlap_mentioned_p): Delete.
7838 * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
7839 (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
7840 arguments to init_cumulative_args and pass "incoming" flag instead.
7841 (BLOCK_REG_PADDING): Delete.
7842 * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
7843 checks for reload_in_progress and reload_completed. Update calls to
7844 xtensa_copy_incoming_a7.
7845 (ashlsi3): Rename existing insn to ashlsi3_internal. Add expander
7846 to call xtensa_copy_incoming_a7.
7848 2004-02-09 DJ Delorie <dj@redhat.com>
7850 * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
7851 longer modify standard_exec_prefix, standard_bindir_prefix, or
7852 standard_startfile_prefix.
7854 2004-02-09 James E Wilson <wilson@specifixinc.com>
7857 * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
7858 to expand_expr_real call, and pass in alt_rtl as last argument.
7861 * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
7862 * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
7863 * builtins.def (BUILT_IN_EXTEND_POINTER): New.
7864 * except.c (expand_builtin_extend_pointer): New.
7865 * except.h (expand_builtin_extend_pointer): Declare.
7867 2004-02-09 David Edelsohn <edelsohn@gnu.org>
7869 * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
7870 unaligned loads and stores.
7872 2004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7874 * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
7875 * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
7877 * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
7878 * config/mips/iris5.h: ... here.
7879 * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
7881 * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
7882 * config/mips/iris5.h: ... here.
7884 2004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7886 * configure.ac: Remove default executable files before AC_PROG_CC.
7887 * configure: Regenerate.
7889 2004-02-09 Kazu Hirata <kazu@cs.umass.edu>
7892 * config/h8300/h8300.c (byte_reg): Call abort() if asked to
7893 print a operand other than a register.
7895 2004-02-09 Roger Sayle <roger@eyesopen.com>
7897 * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
7898 tree code rather than call fold_convert, which doesn't specify a
7899 default floating point to integer conversion.
7901 2004-02-08 Bernardo Innocenti <bernie@develer.com>
7903 * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
7904 code to support SGS assembler. Reformat adjacent code where possible.
7905 * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
7907 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
7909 * config/m68k/linux.h, config/m68k/m68k.c,
7910 * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
7911 macros and asm_printf() format strings.
7912 * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
7913 * config/m68k/linux.h: Update copyright.
7914 * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
7916 2004-02-08 Andreas Schwab <schwab@suse.de>
7917 Bernardo Innocenti <bernie@develer.com>
7919 * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
7921 * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
7922 frame pointer register, overridable by OS targets.
7923 * (M68K_REGNAME): Macro to obtain register name for asm output,
7924 eventually replacing %a6 with M68K_FP_REG_NAME.
7925 * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
7926 * config/m68k/linux.h (REGISTER_NAMES): Likewise.
7927 * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
7928 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
7929 * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
7931 2004-02-08 Kazu Hirata <kazu@cs.umass.edu>
7933 * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
7934 hook_rtx_tree_int_null.
7935 * targhooks.c (default_struct_value_rtx): Remove.
7936 * targhooks.h: Remove the prototype for
7937 default_struct_value_rtx.
7938 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
7939 config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
7940 config/ip2k/ip2k.c, config/iq2000/iq2000.c,
7941 config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
7942 config/mn10300/mn10300.c, config/pdp11/pdp11.c,
7943 config/rs6000/rs6000.c, config/s390/s390.c,
7944 config/stormy16/stormy16.c, config/v850/v850.c,
7945 config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
7946 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
7948 2004-02-08 Joseph S. Myers <jsm@polyomino.org.uk>
7950 * README.Portability: Change "ISO C89" to "ISO C90".
7951 * c-parse.in (primary, initelt): Likewise.
7953 2004-02-08 Richard Sandiford <rsandifo@redhat.com>
7955 * real.c (encode_ibm_extended): Normalize the input value before
7956 converting it to a double. Handle the case where a normal value
7959 2004-02-08 Kazu Hirata <kazu@cs.umass.edu>
7961 * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
7963 * cse.c (preferrable): Change to preferable. Update all of its
7965 * genautomata.c (ainsn): Change
7966 first_ainsn_with_given_equialence_num to
7967 first_ainsn_with_given_equivalence_num. Update all of its
7970 2004-02-08 Jan Hubicka <jh@suse.cz>
7972 * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
7974 2004-02-07 David Edelsohn <edelsohn@gnu.org>
7976 * function.c (assign_parms): Fix formatting.
7978 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
7980 * default.h (PROMOTE_PROTOTYPES): Remove.
7981 * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
7982 STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
7983 EXPAND_BUILTIN_SAVEREGS): Poison.
7984 * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
7985 hook_bool_tree_false.
7986 (TARGET_PROMOTE_PROTOTYPES): Likewise.
7987 * target.h: Replace SETUP_INCOMING_VARARGS with
7988 targetm.calls.setup_incoming_varargs().
7989 * targhooks.c (default_promote_function_return): Remove.
7990 (default_promote_prototypes): Likewise.
7991 (default_struct_value_rtx): Always abort().
7992 (default_expand_builtin_saveregs): Always print an error
7994 (default_setup_incoming_varargs): Do nothing.
7995 (default_pretend_outgoing_varargs_named): Don't depend on
7996 SETUP_INCOMING_VARARGS.
7997 * targhooks.h: Remove the prototype for
7998 default_promote_function_return and
7999 default_promote_prototypes.
8001 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
8003 * system.h (SHARED_SECTION_ASM_OP): Poison.
8004 * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
8005 * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
8007 2004-02-07 Zack Weinberg <zack@codesourcery.com>
8010 * c-decl.c (diagnose_mismatched_decls): Only give special
8011 treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
8013 (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
8014 DECL_FUNCTION_CODE when defining a built-in function.
8015 Don't update DECL_ESTIMATED_INSNS.
8016 * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
8018 * tree.h: Delete DECL_ESTIMATED_INSNS.
8019 * tree-inline.c (struct inline_data): Delete inlined_insns field.
8020 (expand_call_inline, optimize_inline_calls): Don't update
8021 DECL_ESTIMATED_INSNS nor inlined_insns.
8022 * cgraphunit.c (cgraph_analyze_function): Don't update
8023 DECL_ESTIMATED_INSNS.
8025 2004-02-07 Zack Weinberg <zack@codesourcery.com>
8027 * c-common.c (shadow_warning): Delete.
8028 * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
8029 * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
8030 * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
8031 * c-parse.in (free_parser_stacks): Delete.
8033 2004-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
8035 * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
8036 config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
8037 Use the top level mkinstalldirs, not the one in the gcc subdir.
8038 * mkinstalldirs: Remove (from the gcc subdir).
8040 2004-02-07 Roger Sayle <roger@eyesopen.com>
8043 * fold-const.c (fold_convert): New function to provide type
8044 conversion to the middle-end without using convert.
8045 (negate_expr, associate_trees, size_diffop, omit_one_operand,
8046 operand_equal_for_comparison_p, pedantic_omit_one_operand,
8047 invert_truthvalue, optimize_bit_field_compare, range_binop,
8048 decode_field_reference, make_range, build_range_check, unextend,
8049 fold_truthop, extract_muldiv_1, fold_mathfn_compare,
8050 fold_binary_op_with_conditional_arg, fold_inf_compare,
8051 fold_single_bit_test, fold, multiple_of_p): Replace all calls to
8052 convert with calls to fold_convert.
8054 2004-02-07 Jan Hubicka <jh@suse.cz>
8056 * genrecog.c (find_operand): add extra argument stop.
8057 (validate_pattern): Verify that mach_dup is duplicating operand
8058 defined lexically earlier.
8060 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
8062 * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
8063 * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
8064 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
8065 * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
8066 config/ia64/ia64.h, config/ip2k/ip2k.h,
8067 config/iq2000/iq2000.h, config/mips/iris5.h,
8068 config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
8069 config/rs6000/aix51.h, config/rs6000/aix52.h,
8070 config/rs6000/darwin.h, config/rs6000/rs6000.h,
8071 config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
8072 config/sparc/linux.h, config/sparc/linux64.h,
8073 config/sparc/netbsd-elf.h, config/sparc/sparc.h,
8074 config/xtensa/xtensa.h: Remove the definitions of
8075 MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
8076 MAX_WCHAR_TYPE_SIZE.
8077 * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
8078 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
8080 2004-02-07 Stephane Carrez <stcarrez@nerim.fr>
8083 * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
8086 2004-02-07 Josef Zlomek <zlomekj@suse.cz>
8088 * var-tracking.c (vt_add_function_parameters): Surround checkings by
8089 #ifdef ENABLE_CHECKING and #endif.
8091 2004-02-07 Roger Sayle <roger@eyesopen.com>
8093 * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
8094 either (-A)-B or (-B)-A, if A or B is easily negated respectively.
8095 (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
8096 integer types and floating point with unsafe_math_optimizations.
8097 Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
8098 Optimize A - B as A + (-B), if B is easily negated.
8100 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
8102 * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
8103 config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
8104 config/m32r/linux.h, config/rs6000/ppc64-fp.c,
8105 config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
8108 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
8110 * c-ppoutput.c, var-tracking.c: Fix comment typos.
8112 2004-02-06 James E Wilson <wilson@specifixinc.com>
8114 * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
8115 glibc 2.3 or better.
8117 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
8119 * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
8120 to FLOAT_LIB_COMPARE_RETURNS_BOOL.
8122 2004-02-07 Alan Modra <amodra@bigpond.net.au>
8124 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
8125 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
8126 (SHLIB_MKMAP_OPTS): Delete.
8127 (TARGET_LIBGCC2_CFLAGS): Add -specs.
8128 (bispecs): Add rule.
8129 * config/rs6000/libgcc-ppc64.ver: New file.
8130 * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
8131 (__floatdidf, __floatdisf): Optimize multiply.
8132 (__fixunstfdi): New function.
8133 * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
8134 real and imag parts larger than one register.
8135 (function_arg): Correct type of reg used when fp arg split partially
8137 * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
8138 and __MACH__ or __powerpc64__.
8140 2004-02-06 Roger Sayle <roger@eyesopen.com>
8141 Ulrich Weigand <uweigand@de.ibm.com>
8143 * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
8144 of gen_highpart or gen_lowpart when the floating point format is
8145 wider than the result mode.
8147 2004-02-06 Andrew Pinski <pinskia@physics.uc.edu>
8149 * dwarf2out.c (loclabel_num): Move into #ifdef
8150 DWARF2_DEBUGGING_INFO.
8152 2004-02-06 Ziemowit Laski <zlaski@apple.com>
8154 * objc/objc-act.c (build_super_template) the 'class' field of
8155 'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
8156 (get_super_receiver): Likewise.
8158 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
8160 * reload1.c (check_eliminable_occurrences): Optimize the reset
8162 (eliminate_regs_in_insn): Likewise.
8164 2004-02-06 Daniel Berlin <dberlin@dberlin.org>
8165 Josef Zlomek <zlomekj@suse.cz>
8167 * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
8168 at the beginning of function, call dwarf2out_var_location for
8169 NOTE_INSN_VAR_LOCATION note.
8170 (struct var_loc_node, struct var_loc_list_def, loclabel_num,
8171 decl_loc_table): New.
8172 (lookup_decl_loc): New function.
8173 (add_var_loc_to_decl): New function.
8174 (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
8175 only if can_use_fbreg.
8176 (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
8178 (loc_descriptor): Likewise. Process VAR_LOCATION.
8179 (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
8180 (loc_descriptor_from_tree): Call mem_loc_descriptor with
8181 can_use_fbreg == true.
8182 (add_location_or_const_value_attribute): Added parameter enum
8183 dwarf_attribute attr, generate attribute ATTR. Create the location list.
8184 (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
8185 (gen_formal_parameter_die): Call add_location_or_const_value_attribute
8186 with attr == DW_AT_location.
8187 (gen_subprogram_die): Generate the location list for DW_AT_frame_base
8188 if frame_base_decl is defined and has a location list.
8189 (gen_variable_die): Call add_location_or_const_value_attribute with
8190 attr == DW_AT_location.
8191 (dwarf2out_var_location): New function.
8192 (dwarf2out_begin_function): New function.
8193 (dwarf2out_init): Create decl_loc_table.
8195 2004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
8197 * loop.c (force_movables): Transitively increase the priorities of
8198 all insns forces by an insn, not just the first one.
8200 2004-02-06 Josef Zlomek <zlomekj@suse.cz>
8201 Daniel Berlin <dberlin@dberlin.org>
8203 Josef Zlomek <zlomekj@suse.cz>
8204 * Makefile.in (var-tracking.o): New.
8205 * common.opt (fvar-tracking): New.
8206 * flags.h (flag_var_tracking): New.
8207 * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
8208 * opts.c (common_handle_option): Add OPT_fvar_tracking.
8209 * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
8210 * rtl.c (note_insn_name): Likewise.
8211 * rtl.def (VAR_LOCATION): New.
8212 * rtl.h (NOTE_VAR_LOCATION): New.
8213 (NOTE_VAR_LOCATION_DECL): New.
8214 (NOTE_VAR_LOCATION_LOC): New.
8215 (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
8216 (variable_tracking_main): New exported function.
8217 * timevar.def (TV_VAR_TRACKING): New.
8218 * toplev.c (enum dump_file_index): Added DFI_vartrack.
8219 (dump_file): "vartrack" was added (-dV).
8220 (flag_var_tracking): New.
8221 (f_options): "var-tracking" was added.
8222 (rest_of_handle_variable_tracking): New function.
8223 (rest_of_compilation): Run variable tracking.
8224 (process_options): If user has not specified flag_var_tracking set it
8225 according to optimize, debug_info_level and debug_hooks.
8226 * tree.h (frame_base_decl): New.
8227 * var-tracking.c: New file.
8228 * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
8229 (ia64_override_options): Set flags to run variable tracking in machine
8230 dependent reorg instead of toplev.c.
8231 (ia64_reorg): Run variable tracking if wanted.
8232 * doc/invoke.texi: Mention variable tracking in -dV,
8233 add and -fvar-tracking.
8234 * doc/passes.texi: Added variable tracking pass.
8236 Daniel Berlin <dberlin@dberlin.org>
8237 * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
8238 * dbxout.c (dbx_debug_hooks): Likewise.
8239 (xcoff_debug): Likewise.
8240 * debug.c (do_nothing_debug_hooks): Likewise.
8241 * dwarf2out.c (dwarf2_debug_hooks): Likewise.
8242 * dwarfout.c (dwarf_debug_hooks): Likewise.
8243 * sdbout.c (sdb_debug_hooks): Likewise.
8244 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8245 * final.c (final_scan_insn): Call var_location debug hook for each
8246 NOTE_INSN_VAR_LOCATION.
8248 2004-02-06 Jan Hubicka <jh@suse.cz>
8250 * flow.c (update_life_info): Allocate reg_deaths when called from
8252 (attempt_auto_inc): Update life ranges accordingly.
8254 2004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
8257 * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
8259 2004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
8261 * cfganal.c (flow_call_edges_add): Never split a libcall block.
8263 2004-02-06 Daniel Berlin <dberlin@dberlin.org>
8265 * dwarf2out.c (output_loc_list): Don't use deltas if we have
8266 a separate line info table in use.
8267 Use the correct size for terminators.
8268 (output_die): Use offset, not delta.
8270 2004-02-06 H.J. Lu <hongjiu.lu@intel.com>
8272 * doc/invoke.texi: Remove the pni option from -mfpmath=.
8274 2004-02-06 Jan Hubicka <jh@suse.cz>
8276 * recog.c (split_all_insns): Do not update reg info.
8277 * regrename.c (regrename_optimize): Likewise.
8278 * toplev.c (rest_of_handle_reorder_blocks): Likewise.
8279 * flow.c (struct propagate_block_info): Add insn_num field.
8280 (reg_deaths): New array.
8281 (life_analysis): Free reg_deaths info.
8282 (allocate_reg_life_data): Allocate reg_deaths array.
8283 (propagate_one_insn): Use new array.
8284 (init_propagate_block): Initialize it.
8285 (free_propagate_block_info): Finish compuation of
8287 (attempt_auto_inc): Sanity check that REG_INFO is not
8288 computed at same time.
8289 (mark_used_regs): Update new array.
8291 * reg-stack.c (subst_stack_regs): Unshare clobbers before
8294 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
8296 * config/s390/s390.md (*extendsiqi2_short_displ): Change to
8297 *extendqisi2_short_displ.
8299 2004-02-06 Alan Modra <amodra@bigpond.net.au>
8301 * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
8302 * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
8303 (emit_library_call_value_1): Likewise pass nargs.
8304 * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
8305 * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
8306 * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
8307 parameter instead of scanning TYPE_ARGS_TYPES to count args.
8308 * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
8310 * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
8311 (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
8312 (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
8313 * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
8314 INIT_CUMULATIVE_ARGS.
8315 * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
8316 * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
8317 config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
8318 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
8319 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
8320 config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
8321 config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
8322 config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
8323 config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
8324 config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
8325 config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
8326 config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
8328 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
8330 * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
8333 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
8335 * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
8336 note containing (plus (reg) (const_int)), where reg is an
8337 eliminable reg, then perform the register elimination without
8338 depending on eliminate_regs().
8340 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
8342 * config/arc/arc.c (arc_return_in_memory): Check the return
8343 value of int_size_in_bytes against -1. Don't check
8345 * config/avr/avr.c (avr_return_in_memory): Check the return
8346 value of int_size_in_bytes against -1.
8347 * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
8348 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
8350 * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
8351 * config/stormy16/stormy16.c (xstormy16_return_in_memory):
8354 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
8356 * config/frv/frv-protos.h: Remove the prototype for
8357 frv_setup_incoming_varargs.
8358 * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
8359 (frv_setup_incoming_varargs): Make it static.
8360 * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
8362 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
8364 * config/fr30/fr30-protos.h: Remove the prototype for
8365 fr30_setup_incoming_varargs.
8366 Update the prototypes for fr30_num_arg_regs and
8367 fr30_function_arg_partial_nregs.
8368 * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
8369 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8370 (fr30_setup_incoming_varargs): Make it static.
8371 Add argument second_time. Don't do anything when second_time
8373 (fr30_num_arg_regs): Change the type of the first argument to
8375 (fr30_function_arg_partial_nregs): Change the type of the
8376 second argument to enum machine_mode.
8377 * config/fr30/fr30.h (STRUCT_VALUE): Remove.
8378 (SETUP_INCOMING_VARARGS): Remove.
8380 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
8382 * config/arc/arc-protos.h: Remove the prototype for
8383 arc_setup_incoming_varargs.
8384 * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
8385 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8386 (arc_setup_incoming_varargs): Make it static.
8387 (arc_external_libcall): Likewise.
8388 * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
8389 Remove the commented-out definition of
8390 ASM_OUTPUT_EXTERNAL_LIBCALL.
8392 2004-02-05 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
8394 * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
8395 to $$(slibdir) in the installation commands.
8397 2004-02-05 David Edelsohn <edelsohn@gnu.org>
8399 * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
8400 with inner_regno, not regno.
8401 * rtlanal.c (refers_to_regno_p): Same.
8403 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
8405 * config.gcc: Remove i370 support.
8407 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
8409 * doc/install.texi: Update automake and autoconf version
8410 requirements. Note where to find gcj automake version.
8412 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
8414 * Makefile.in (generate-manpages): Move dependencies to ...
8416 * doc/makefile.texi: Document new targets.
8417 * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
8419 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
8422 Makefile.in (srcextra): Add a level of indirection to ...
8423 (gcc.srcextra): ... here.
8424 (po-generated): Delete.
8425 (po/$(PACKAGE).pot: Use srcextra instead of po-generated. Depend on
8427 (start.encap): Remove superfluous lang.srcextra dependency.
8428 objc/Make-lang.in (po-generated): Delete.
8430 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
8432 * config/ia64/ia64.c (REG_GP): Remove.
8434 2004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8436 * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
8438 2004-02-05 Devang Patel <dpatel@apple.com>
8440 * dwarf2out.c (force_type_die): Look up input type itself
8441 instead of root_type() of type.
8443 2004-02-05 Andreas Krebbel <krebbel1@de.ibm.com>
8445 * config/s390/s390.md ("*tmqidi_ext"): New insn.
8446 ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
8447 pre-reload splitters are transformed to post-reload
8448 define_insn_and_split patterns.
8449 ("*tmqisi_ext"): Renamed old "*tmqi_ext".
8451 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
8453 * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
8454 TARGET_PROMOTE_PROTOTYPES.
8456 2004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8460 2004-01-15 Geoffrey Keating <geoffk@apple.com>
8462 * c-typeck.c (constructor_asmspec): Delete.
8463 (struct initializer_stack): Delete field 'asmspec'.
8464 (start_init): Delete saving of asmspec.
8465 (finish_init): Don't update constructor_asmspec.
8466 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
8467 * stmt.c (expand_asm): Duplicate strings from tree.
8468 (expand_asm_operands): Likewise.
8469 * tree.c (tree_size): Update computation of size of STRING_CST.
8470 (make_node): Don't make STRING_CST nodes.
8471 (build_string): Allocate string with tree node.
8472 * tree.def (STRING_CST): Update comment.
8473 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
8474 (tree_string): Place contents of string in tree node.
8475 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
8478 2004-02-05 Joseph S. Myers <jsm@polyomino.org.uk>
8480 * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
8483 2004-02-05 Dorit Naishlos <dorit@il.ibm.com>
8485 * config/rs6000/altivec.md (*movv4si_internal): At least one
8486 operand must be altivec_register_operand.
8487 (*movv8hi_internal1): Likewise.
8488 (*movv16qi_internal1): Likewise.
8489 (*movv4sf_internal1): Likewise.
8491 2004-02-05 David Edelsohn <edelsohn@gnu.org>
8493 * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
8494 * configure: Regenerate.
8496 2004-02-05 Jonathan Wakely <redi@gcc.gnu.org>
8498 * doc/install.texi: Update description of --gxx-include-dir to
8499 give correct default value.
8501 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
8503 * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
8506 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
8508 * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
8511 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
8513 * emit-rtl.c: Update the comment about the file.
8515 2004-02-05 Joseph S. Myers <jsm@polyomino.org.uk>
8517 * sourcebuild.texi (Test Idioms): Update testcase naming
8520 2004-02-04 Per Bothner <per@bothner.com>
8522 Partially revert/redo 2003-10-01 change; fix -fworking-directory.
8523 * c-ppoutput.c (pp_dir_change): New function.
8524 * c-common.h (pp_dir_change): New declaration.
8525 * cpplib.h (struct cpp_options): Remove working_directory field.
8526 * cppinit.c (cpp_find_main_file, cpp_push_main_file): Merge back to
8527 (cpp_read_main_file): as before 10-01. Call _cpp_stack_file.
8528 Don't handle -fworking_directory here, but in c_common_post_options.
8529 (read_original_directory): Don't back up when done.
8530 Don't clear no-longer used working_directory flag.
8531 * cpplib.h: Update declarations to match.
8532 * c-lex.c (cb_dir_change): Move to c-opts.c.
8533 (init_c_lex): Don't set dir_change callback here, since we want
8534 to set it even if flag_preprocess_only.
8535 * c-opts.c (cb_dir_change): Function moved from c-lex.c.
8536 (c_common_post_options): Set dir_change callback.
8537 Call pp_dir_change if approporiate.
8538 (finish_options): Don't call cpp_find_main_file here. Hence remove
8539 unneeded parameter and result. Do LC_RENAME for <built-in>.
8540 (c_common_post_options): Call cpp_read_main_file here instead.
8541 (c_common_init): Update accordingly.
8542 (push_command_line_include): Don't cpp_push_main_file.
8543 Do LC_RENAME rather than LC_LEASE to get back to main file.
8544 Compared to pre-10-01 version, inline cpp_rename_to_main_file.
8545 (c_common_parse_file): Call cpp_read_main_file for subsequent main
8546 files, but call finish_options for all files.
8547 * c-opts.c (sanitize_cpp_opts): Don't set cpp_opts->working_directory.
8548 * fix-header.c (read_scan_file): Call cpp_read_main_file instead of
8549 cpp_find_main_file + cpp_push_main_file.
8550 * c-lex.c (fe_file_change): Don't set main_input_filename here.
8551 * opts.c (handle_options): Only set main_input_filename first time.
8553 2004-02-05 Ian Lance Taylor <ian@wasabisystems.com>
8555 * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
8557 2004-02-04 Geoffrey Keating <geoffk@apple.com>
8559 * reload.c (find_equiv_reg): When checking for register overlap,
8560 don't index hard_regno_nregs with a pseudo-reg.
8562 2004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
8564 * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
8566 2004-02-04 David Edelsohn <edelsohn@gnu.org>
8568 * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
8569 against FIRST_PSEUDO_REGISTER.
8571 2004-02-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8573 * Makefile.in: Move target, host overrides after per-language
8576 * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
8577 (GNATLIBCFLAGS): Remove -g.
8579 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
8581 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
8582 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
8583 config/ia64/ia64.c, config/ia64/unwind-ia64.c,
8584 config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
8585 config/pdp11/pdp11.c, config/rs6000/rs6000.c,
8586 config/sparc/sparc.c, config/vax/vax.c: Revert the
8587 replacements of "FALLTHRU" with "Fall through" done in the
8590 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
8592 * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
8593 config/arm/arm.c, config/arm/arm.md,
8594 config/cris/cris-protos.h, config/fr30/fr30.c,
8595 config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
8596 config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
8597 config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
8598 config/ip2k/ip2k.md, config/ip2k/libgcc.S,
8599 config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
8600 config/m68k/m68k.c, config/m68k/netbsd-elf.h,
8601 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
8602 config/ns32k/netbsd.h, config/ns32k/ns32k.c,
8603 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
8604 config/rs6000/darwin-ldouble.c, config/s390/s390.h,
8605 config/s390/s390.md, config/sparc/netbsd-elf.h,
8606 config/sparc/openbsd.h, config/sparc/sparc.c,
8607 config/xtensa/lib2funcs.S: Fix comment formatting.
8609 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
8611 * config/alpha/alpha.c, config/arc/arc.c,
8612 config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
8613 config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
8614 config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
8615 config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
8616 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
8617 config/ia64/ia64.c, config/ia64/unwind-ia64.c,
8618 config/iq2000/iq2000.c, config/m32r/m32r.c,
8619 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
8620 config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
8621 config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
8622 config/rs6000/rs6000.h, config/sparc/sparc.c,
8623 config/vax/vax.c: Fix comment typos. Follow spelling
8626 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
8628 * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
8629 caller-save.c, df.h, genconfig.c, global.c, lcm.c,
8630 ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
8631 sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
8632 config/arm/fpa.md, config/arm/iwmmxt.md,
8633 config/arm/netbsd-elf.h, config/arm/netbsd.h,
8634 config/m68hc11/m68hc11.md, config/mips/iris5.h,
8635 config/mn10300/mn10300.md, config/rs6000/altivec.md,
8636 config/sparc/netbsd-elf.h: Update copyright.
8638 2004-02-04 Eric Botcazou <ebotcazou@libertysurf.fr>
8640 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
8641 for all modes whose size is greater than 8 bytes if ARCH32.
8642 (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
8643 by reference if ARCH32.
8645 2004-02-04 Aldy Hernandez <aldyh@redhat.com>
8647 * cgraphunit.c (cgraph_postorder): Fix typo in comment.
8649 2004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
8651 * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
8652 to before adddi3 insn patterns.
8653 ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
8654 "reload_insi"): Move to before addsi3 insn patterns.
8656 2004-02-04 Mark Mitchell <mark@codesourcery.com>
8658 * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
8659 parameter. Use it instead of current_function_is_thunk.
8660 * function.h (struct function): Update documentation for is_thunk.
8661 * tree.h (CALL_FROM_THUNK_P): New macro.
8662 * config/alpha/alpha.c (alpha_sa_mask): Do not check
8663 no_new_pseudos when testing current_function_is_thunk.
8664 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
8666 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
8668 * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
8669 TARGET_SETUP_INCOMING_VARARGS.
8671 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
8673 * emit-rtl.c (gen_rtx): Remove.
8674 * genattrtab.c: Don't mention gen_rtx in a comment.
8675 * rtl.h: Remove the prototype for gen_rtx.
8676 * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
8678 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
8680 * config/arc/arc.h, config/fr30/fr30.h
8681 (SETUP_INCOMING_VARARGS): Remove the target-independent
8683 * doc/tm.texi: Don't mention deprecated target macros.
8685 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
8687 * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
8688 target-independent comment.
8690 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
8692 * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
8693 mention deprecated target macros.
8695 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
8697 * config.gcc: Remove obsolete ports and configurations.
8698 * config/linux-aout.h, config/netware.h,
8699 config/t-linux-gnulibc1, config/d30v/abi,
8700 config/d30v/d30v-protos.h, config/d30v/d30v.c,
8701 config/d30v/d30v.h, config/d30v/d30v.md,
8702 config/d30v/libgcc1.asm, config/d30v/t-d30v,
8703 config/dsp16xx/dsp16xx-modes.def,
8704 config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
8705 config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
8706 config/i370/README, config/i370/i370-c.c,
8707 config/i370/i370-protos.h, config/i370/i370.c,
8708 config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
8709 config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
8710 config/i386/freebsd-aout.h, config/i386/linux-aout.h,
8711 config/i386/moss.h, config/i386/netware.h,
8712 config/i386/svr3.ifile, config/i386/svr3dbx.h,
8713 config/i386/svr3gas.h, config/i386/svr3z.ifile,
8714 config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
8715 config/i960/i960-c.c, config/i960/i960-coff.h,
8716 config/i960/i960-modes.def, config/i960/i960-protos.h,
8717 config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
8718 config/i960/rtems.h, config/i960/t-960bare,
8719 config/m68k/hp310.h, config/m68k/hp320.h,
8720 config/m68k/hp320base.h, config/m68k/m68kv4.h,
8721 config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
8723 * doc/extend.texi, doc/install.texi, doc/invoke.texi,
8724 doc/md.texi: Remove mentions of obsolete ports.
8726 2004-02-04 Jan Hubicka <jh@suse.cz>
8728 * alias.c (find_base_term, get_addr): Do not dereference NULL
8729 pointer when all VALUE's locations has been invalidated.
8730 (rtx_equal_for_memref_p): Simplify checking of VALUEs.
8732 2004-02-03 Wolfgang Bangerth <bangerth@dealii.org>
8734 * doc/invoke.texi (x86 options): Fix spelling/wording.
8736 2004-02-03 Richard Sandiford <rsandifo@redhat.com>
8738 * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
8739 put the original string in a comment.
8740 * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
8741 * config/mips/mips.c (mips_output_ascii): Likewise.
8742 * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
8744 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
8746 * system.h (GIV_SORT_CRITERION): Poison.
8747 * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
8748 * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
8750 2004-02-03 Roger Sayle <roger@eyesopen.com>
8753 * expr.c (expand_expr_real) <MULT_EXPR>: When performing widening
8754 multiplies with a multiplication of the wrong signedness, its the
8755 signedness of the multiplication that we've performed that needs to
8756 be passed to expand_mult_highpart_adjust. Avoid emitting a nop-move
8757 if expand_mult_highpart_adjust places the result in target.
8759 2004-02-03 Richard Henderson <rth@redhat.com>
8761 * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
8763 2004-02-03 J"orn Rennecke <joern.rennecke@superh.com>
8765 * config.gcc (sh[234]l): Use little endian fragments.
8767 2004-02-03 Paul Koning <pkoning@equallogic.com>
8769 * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
8770 * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
8771 * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
8772 encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
8773 floating point format.
8774 (pdp11_f_format, pdp11_d_format): New real_format descriptors for
8775 the above functions.
8776 (output_move_quad): Output float values in correct target format.
8777 (legitimate_const_double_p): New function.
8778 * config/pdp11/pdp11.h: Fix typos.
8779 (FLOAT_WORDS_BIG_ENDIAN): Add definition.
8780 (TARGET_FLOAT_FORMAT): Ditto.
8781 (pdp11_f_format, pdp11_d_format): Add external declarations.
8782 (MAX_REGS_PER_ADDRESS): Corrected.
8783 (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
8784 (PRINT_OPERAND): Output float literals in target format.
8786 2004-02-03 Mark Mitchell <mark@codesourcery.com>
8789 * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
8791 (access_public_node): Redefine.
8792 (access_protected_node): Likewise.
8793 (access_private_node): Likewise.
8794 * tree.c (build_common_tree_nodes): Create access_public_node,
8795 access_protected_node, and access_private_node.
8797 2004-02-03 Steve Ellcey <sje@cup.hp.com>
8799 * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
8800 (MASK_INLINE_INT_DIV_THR): Ditto.
8801 (MASK_INLINE_SQRT_LAT): Ditto.
8802 (MASK_INLINE_SQRT_THR): Ditto.
8803 (MASK_DWARF2_ASM): Ditto.
8804 (MASK_EARLY_STOP_BITS): Ditto.
8806 2004-02-02 Paul Brook <paul@codesourcery.com>
8808 Merge from csl-arm-branch.
8810 2004-01-30 Paul Brook <paul@codesourcery.com>
8812 * aof.h (REGISTER_NAMES): Add vfp reg names
8813 (ADDITIONAL_REGISTER_NAMES): Ditto.
8814 * aout.h (REGISTER_NAMES): Ditto.
8815 (ADDITIONAL_REGISTER_NAMES): Ditto.
8816 * arm-protos.h: Update/Add Prototypes.
8817 * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
8818 Only allow 0.0 for VFP.
8819 (fp_consts_inited): Rename from fpa_consts_inited. Update users.
8820 (values_fp): Rename from values_fpa. Update Users.
8821 (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
8822 Update users. Only check valid constants for this hardware.
8823 (arm_float_rhs_operand): Rename from fpa_rhs_operand. Update Users.
8824 Only allow consts for FPA.
8825 (arm_float_add_operand): Rename from fpa_add_operand. Update users.
8826 Only allow consts for FPA.
8827 (use_return_insn): Check for saved VFP regs.
8828 (arm_legitimate_address_p): Handle VFP DFmode addressing.
8829 (arm_legitimize_address): Ditto.
8830 (arm_general_register_operand): New function.
8831 (vfp_mem_operand): New function.
8832 (vfp_compare_operand): New function.
8833 (vfp_secondary_reload_class): New function.
8834 (arm_float_compare_operand): New function.
8835 (vfp_print_multi): New function.
8836 (vfp_output_fstmx): New function.
8837 (vfp_emit_fstm): New function.
8838 (arm_output_epilogue): Output VPF reg restore code.
8839 (arm_expand_prologue): Output VFP reg save code.
8840 (arm_print_operand): Add 'P'.
8841 (arm_hard_regno_mode_ok): Return modes for VFP regs.
8842 (arm_regno_class): Return classes for VFP regs.
8843 (arm_compute_initial_elimination_offset): Include space for VFP regs.
8844 (arm_get_frame_size): Ditto.
8845 * arm.h (FIXED_REGISTERS): Add VFP regs.
8846 (CALL_USED_REGISTERS): Ditto.
8847 (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
8848 (FIRST_VFP_REGNUM): Define.
8849 (LAST_VFP_REGNUM): Define.
8850 (IS_VFP_REGNUM): Define.
8851 (FIRST_PSEUDO_REGISTER): Include VFP regs.
8852 (HARD_REGNO_NREGS): Handle VFP regs.
8853 (REG_ALLOC_ORDER): Add VFP regs.
8854 (enum reg_class): Add VFP_REGS.
8855 (REG_CLASS_NAMES): Ditto.
8856 (REG_CLASS_CONTENTS): Ditto.
8857 (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
8858 (REG_CLASS_FROM_LETTER): Add 'w'.
8859 (EXTRA_CONSTRAINT_ARM): Add 'U'.
8860 (EXTRA_MEMORY_CONSTRAINT): Define.
8861 (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
8862 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
8863 (REGISTER_MOVE_COST): Ditto.
8864 (PREDICATE_CODES): Add arm_general_register_operand,
8865 arm_float_compare_operand and vfp_compare_operand.
8866 * arm.md (various): Rename as above.
8867 (divsf3): Enable when TARGET_VFP.
8872 (arm_movdi): Disable when TARGET_VFP.
8873 (arm_movsi_insn): Ditto.
8874 (movsi): Only split with general regs.
8875 (cmpsf): Use arm_float_compare_operand.
8876 (push_fp_multi): Restrict to TARGET_FPA.
8879 * fpa.md (various): Rename as above.
8880 * doc/md.texi: Document ARM w and U constraints.
8882 2004-01-15 Paul Brook <paul@codesourcery.com>
8884 * config.gcc: Add with_fpu. Allow with-float=softfp.
8885 * config/arm/arm.c (arm_override_options): Rename *-s to *s.
8886 Break out of loop when we find a float-abi. Fix typo.
8887 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
8889 * doc/install.texi: Document --with-fpu.
8891 2003-01-14 Paul Brook <paul@codesourcery.com>
8893 * config.gcc (with_arch): Add armv6.
8894 * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
8895 * config/arm/arm.c (arm_overrride_options): Ditto.
8897 2004-01-08 Richard Earnshaw <rearnsha@arm.com>
8899 * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
8900 (FL_ARCH6): Renamed from FL_ARCH6J.
8901 (arm_arch3m): Renamed from arm_fast_multiply.
8902 (arm_arch6): Renamed from arm_arch6j.
8903 * arm.h: Update all uses of above.
8904 * arm-cores.def: Likewise.
8907 * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
8908 not arm6j. Add entry for arch armv6.
8910 2004-01-07 Richard Earnshaw <rearnsha@arm.com>
8912 * arm.c (arm_emit_extendsi): Delete.
8913 * arm-protos.h (arm_emit_extendsi): Delete.
8914 * arm.md (zero_extendhisi2): Also handle zero-extension of
8916 (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
8917 (thumb_zero_extendhisi2): Only match if not v6.
8918 (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
8919 (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
8920 (thumb_extendqisi2): Likewise.
8921 (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
8922 (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
8923 (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
8924 (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
8925 (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
8926 (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
8927 (arm_zero_extendhisi2addsi): Remove subreg. Add attributes.
8928 (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
8929 (arm_extendqisi2addsi): Likewise.
8931 2003-12-31 Mark Mitchell <mark@codesourcery.com>
8934 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
8935 + REG addressing modes.
8937 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
8938 + REG addressing modes.
8940 2003-12-30 Mark Mitchell <mark@codesourcery.com>
8942 * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
8945 2003-30-12 Paul Brook <paul@codesourcery.com>
8947 * longlong.h: protect arm inlines with !defined (__thumb__)
8949 2003-30-12 Paul Brook <paul@codesourcery.com>
8951 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
8953 2003-12-30 Nathan Sidwell <nathan@codesourcery.com>
8955 * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
8958 2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
8960 * builtins.c (expand_builtin_apply_args_1): Add pretend args size
8961 to the virtual incoming args pointer for downward stacks.
8963 2003-12-29 Paul Brook <paul@codesourcery.com>
8965 * config/arm/arm-cores.def: Add cost function.
8966 * config/arm/arm.c (arm_*_rtx_costs): New functions.
8967 (arm_rtx_costs): Remove
8968 (struct processors): Add rtx_costs field.
8969 (all_cores, all_architectures): Ditto.
8970 (arm_override_options): Set targetm.rtx_costs.
8971 (thumb_rtx_costs): New function.
8972 (arm_rtx_costs_1): Remove cases handled elsewhere.
8973 * config/arm/arm.h (processor_type): Add COSTS parameter.
8975 2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
8977 * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
8978 (arm926ejs.md): Include it.
8979 * config/arm/arm926ejs.md: New pipeline description.
8981 2003-12-24 Paul Brook <paul@codesourcery.com>
8983 * config/arm/arm.c (arm_arch6j): New variable.
8984 (arm_override_options): Set it.
8985 (arm_emit_extendsi): New function.
8986 * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
8987 * config/arm/arm.h (arm_arch6j): Declare.
8988 * config/arm/arm.md: Add sign/zero extend insns.
8990 2003-12-23 Paul Brook <paul@codesourcery.com>
8992 * config/arm/arm.c (all_architectures): Add armv6.
8993 * doc/invoke.texi: Document it.
8995 2003-12-19 Paul Brook <paul@codesourcery.com>
8997 * config/arm/arm.md: Add load1 and load_byte "type" attrs. Modify
8998 insn patterns to match.
8999 * config/arm/arm-generic.md: Ditto.
9000 * config/arm/cirrus.md: Ditto.
9001 * config/arm/fpa.md: Ditto.
9002 * config/amm/iwmmxt.md: Ditto.
9003 * config/arm/arm1026ejs.md: Ditto.
9004 * config/arm/arm1135jfs.md: Ditto. Add insn_reservation and bypasses
9007 2003-12-18 Nathan Sidwell <nathan@codesourcery.com>
9009 * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
9010 * config/arm/arm.c (arm_adjust_cost): Check shift cost for
9011 TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
9012 (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
9013 arm_no_early_mul_dep): Correctly deal with conditional execution,
9014 parallels and single shift operations.
9015 (arm_no_early_alu_shift_value_dep): Define.
9016 * arm.md (attr type): Replace 'normal' with 'alu',
9017 'alu_shift' and 'alu_shift_reg'.
9018 (attr core_cycles): Adjust.
9019 (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
9020 *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
9021 *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
9022 *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
9023 *arith_shiftsi_compare0_scratch, *sub_shiftsi,
9024 *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
9025 *if_shift_move, *if_move_shift, *if_shift_shift): Set type
9026 attribute appropriately.
9027 * config/arm/arm1026ejs.md (alu_op): Adjust.
9028 (alu_shift_op, alu_shift_reg_op): New.
9029 * config/arm/arm1136.md: Add better bypasses for early
9030 registers. Remove load[234] and store[234] bypasses.
9031 (11_alu_op): Adjust.
9032 (11_alu_shift_op, 11_alu_shift_reg_op): New.
9034 2003-12-15 Nathan Sidwell <nathan@codesourcery.com>
9036 * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
9037 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
9038 * config/arm/arm.c (arm_no_early_store_addr_dep,
9039 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
9040 * config/arm/arm1026ejs.md: Add load-store bypass.
9041 * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
9042 Add bypasses between instructions.
9044 2003-12-10 Paul Brook <paul@codesourcery.com>
9046 * config/arm/arm.c (arm_fpu_model): New variable.
9047 (arm_fload_abi): New variable.
9048 (target_fpe_name): Rename from target_fp_name.
9049 (target_fpu_name): New variable.
9050 (arm_is_cirrus): Remove.
9051 (fpu_desc): New struct.
9053 (pf_model_for_fpu): Define.
9054 (all_loat_abis): Define.
9055 (arm_override_options): Set fp arch flags based on -mfpu=
9057 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
9058 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
9059 (*): Use new TARGET_* flags.
9060 * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
9061 (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
9062 (TARGET_SOFT_FLOAT): Ditto.
9063 (TARGET_SOFT_FLOAT_ABI): New.
9064 (TARGET_MAVERICK): Rename from TARGET_CIRRUS. No longer implies
9066 (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
9067 (TARGET_OPTIONS): Add -mfpu=.
9068 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
9069 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
9070 (arm_pf_model): Define.
9071 (arm_float_abi_type): Define.
9072 (fputype): Add FPUTYPE_VFP. Change SOFT_FPA->NONE
9073 * config/arm/arm.md: Use new TARGET_* flags.
9074 * config/arm/cirrus.md: Ditto.
9075 * config/arm/fpa.md: Ditto.
9076 * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
9077 * config/arm/semi.h (ASM_SPEC): Ditto.
9078 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
9079 (FPUTYPE_DEFAULT): Set to VFP.
9080 * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
9082 2003-11-22 Phil Edwards <phil@codesourcery.com>
9085 * config/arm/arm.c (arm_output_mi_thunk): In Thumb mode, use
9086 'bx' instead of 'b' to avoid branch range restrictions. Output
9087 the thunk immediately before the thunked-to function.
9088 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Do not emit
9089 .thumb_func if a thunk is being generated. Emit .code 16 along
9090 with .thumb_func if a thunk is not being generated.
9092 2003-11-15 Nicolas Pitre <nico@cam.org>
9094 * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
9095 arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
9096 * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
9097 (lshrdi3_iwmmxt): Renamed from lshrdi3.
9098 * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
9100 2003-11-12 Steve Woodford <scw@wasabisystems.com>
9101 Ian Lance Taylor <ian@wasabisystems.com>
9103 * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
9104 code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
9106 2003-11-05 Phil Edwards <phil@codesourcery.com>
9108 * config/arm/arm.md (insn): Add new V6 instruction names.
9109 (generic_sched): New attr.
9110 * config/arm/arm-generic.md: Use generic_sched here.
9111 * config/arm/arm1026ejs.md: Do not model fetch/issue/decode
9112 stages of pipeline. Adjust latency counts accordingly.
9113 * config/arm/arm1136jfs.md: New file.
9115 2003-10-28 Mark Mitchell <mark@codesourcery.com>
9117 * config/arm/arm.h (processor_type): New enumeration type.
9118 (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
9119 ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
9120 (CPP_CPU_ARCH_SPEC): Likewise.
9121 * config/arm/arm.c (arm_tune): New variable.
9122 (all_cores): Use cores.def.
9123 (all_architectures): Add representative processor.
9124 (arm_override_options): Restructure way in which tuning
9125 information is deduced.
9126 * arm.md: Update "insn" and "type" attributes throughout.
9127 (insn): New attribute.
9128 (type): Compute "mult" from "insn" attribute. Add load2,
9129 load3, load4 alternatives.
9130 (arm automaton): Move to arm-generic.md.
9131 * config/arm/arm-cores.def: New file.
9132 * config/arm/arm-generic.md: Likewise.
9133 * config/arm/arm1026ejs.md: Likewise.
9135 2004-02-03 Eric Botcazou <ebotcazou@libertysurf.fr>
9137 * doc/invoke.texi (SPARC options): Remove -mflat and
9138 all -mxxx (xxx:chip) options.
9139 * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
9140 * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
9141 * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
9142 * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
9143 * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
9144 * config/sparc/sparc.c: Likewise.
9145 (sparc_output_function_prologue): Remove TARGET_FLAT handling.
9146 (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
9147 (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
9148 (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
9149 (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
9150 (sparc_flat_must_save_register_p): Likewise.
9151 (sparc_flat_compute_frame_size): Likewise.
9152 (sparc_flat_save_restore): Likewise.
9153 (sparc_flat_function_prologue): Likewise.
9154 (sparc_flat_function_epilogue): Likewise.
9155 (sparc_flat_epilogue_delay_slots): Likewise.
9156 (sparc_flat_eligible_for_epilogue_delay): Likewise.
9157 (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
9158 * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
9159 (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
9160 (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
9161 (CONDITIONAL_REGISTER_USAGE): Likewise.
9162 (FRAME_POINTER_REQUIRED): Likewise.
9163 (INITIAL_ELIMINATION_OFFSET): Likewise.
9164 (BASE_RETURN_VALUE_REG): Likewise.
9165 (BASE_OUTGOING_VALUE_REG): Likewise.
9166 (BASE_PASSING_ARG_REG): Likewise.
9167 (BASE_INCOMING_ARG_REG): Likewise.
9168 (INCOMING_REGNO): Likewise.
9169 (OUTGOING_REGNO): Likewise.
9170 (LOCAL_REGNO): Likewise.
9171 (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
9172 (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
9173 (EPILOGUE_USES): Likewise.
9174 * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
9175 ("flat" attribute): Delete.
9176 (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
9178 (call followed by jump define_peephole's): Delete.
9179 (exception_receiver): Likewise.
9180 (builtin_setjmp_receiver): Likewise.
9181 * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
9183 2004-02-03 Paolo Bonzini <bonzini@gnu.org>
9187 * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
9189 * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
9190 * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
9191 Include langhooks.h. Replace c_common_truthvalue_conversion
9192 with the truthvalue_conversion language hook throughout.
9193 (expr_no_commas): Call default_conversion before save_expr
9194 for the first term of the production 'x ? : y'.
9195 * c-common.c (c_common_truthvalue_conversion): Remove
9196 obsolete block. Invoke recursively the hook instead
9198 * c-convert.c (convert): handle ERROR_MARK_NODE.
9199 * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
9200 returned by the truthvalue_conversion language hook.
9201 * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
9202 c_objc_common_truthvalue_conversion.
9203 * c-objc-common.c (c_objc_common_truthvalue_conversion):
9205 * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
9206 * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
9207 c_objc_common_truthvalue_conversion.
9209 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
9211 * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
9213 (LIBCALL_VALUE): Likewise.
9214 * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
9215 gen_rtx_CC0 instead of gen_rtx.
9216 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
9217 gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
9218 (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
9220 (m68hc11_emit_logical): Likewise.
9222 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
9224 * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
9225 config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
9226 config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
9227 config/m32r/m32r.md, config/m68hc11/m68hc11.c,
9228 config/mips/mips.md, config/mmix/mmix.c,
9229 config/mn10300/mn10300.c, config/mn10300/mn10300.md,
9230 config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
9231 config/rs6000/altivec.md, config/s390/s390.c,
9232 config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
9233 config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
9234 Use const0_rtx instead of GEN_INT (0). Do the same for other
9235 constants that are readily available.
9237 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
9239 * doloop.c, optabs.c, regmove.c, sched-deps.c,
9240 config/i386/i386.c, config/i386/i386.md: Use const0_rtx
9241 instead of GEN_INT (0). Do the same for other constants that
9242 are readily available.
9244 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
9246 * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
9248 * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
9250 * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
9252 * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
9253 gen_rtx_ASHIFT instead of gen_rtx.
9254 (udivmodqi4): Likewise.
9256 2004-02-02 Richard Henderson <rth@redhat.com>
9259 * expr.c (store_expr): Use force_operand before emit_move_insn.
9261 2004-02-02 Jeff Law <law@redhat.com>
9262 Roger Sayle <roger@eyesopen.com>
9264 * tree.c (commutative_tree_code, associative_tree_code): New
9266 (iterative_hash_expr): Use commutative_tree_code.
9267 * tree.h (commutative_tree_code, associative_tree_code): Declare.
9268 * fold-const.c (operand_equal_p): Use commutative_tree_code
9269 rather than inlining the commutativity check.
9272 2004-02-02 Kazu Hirata <kazu@cs.umass.edu>
9274 * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
9275 * config/frv/frv-protos.h: Remove the prototype for
9276 frv_function_arg_keep_as_reference.
9277 * config/frv/frv.c (frv_function_arg_keep_as_reference):
9279 * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
9280 * config/stormy16/stormy16.h: Remove the commented-out
9281 definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
9283 2004-02-03 Alan Modra <amodra@bigpond.net.au>
9286 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
9289 2004-02-02 Kazu Hirata <kazu@cs.umass.edu>
9291 * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
9294 2004-02-02 Eric Christopher <echristo@redhat.com>
9295 Zack Weinberg <zack@codesourcery.com>
9297 * c-opts.c (c_common_handle_option): Add -finput-charset.
9299 * cppcharset.c (one_iso88591_to_utf8): Remove.
9300 (convert_iso88591_utf8): Ditto.
9301 (conversion_tab): Remove 8859-1 converter.
9302 (_cpp_input_to_utf8): Remove.
9303 (_cpp_init_iconv_buffer): Ditto.
9304 (_cpp_close_iconv_buffer): Ditto.
9305 (_cpp_convert_input): New function.
9306 (_cpp_default_encoding): Ditto.
9307 * cpphash.h: Add/remove prototypes for above.
9308 * cppfiles.c (read_file_guts): Use _cpp_convert_input.
9309 * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
9310 for narrow execution and input character sets.
9311 * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
9312 * doc/cppopts.texi: Document -finput-charset.
9314 2004-02-02 David Edelsohn <edelsohn@gnu.org>
9316 * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
9317 against FIRST_PSEUDO_REGISTER.
9319 2004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
9321 * doc/invoke.texi (SPARC options): Further improve.
9323 2004-02-02 Kazu Hirata <kazu@cs.umass.edu>
9325 * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
9326 config/h8300/h8300.c, config/ip2k/ip2k.md,
9327 config/iq2000/iq2000.c, config/mips/mips.c,
9328 config/rs6000/rs6000.c, config/rs6000/rs6000.md,
9329 config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
9330 config/v850/v850.md: Fix indentation.
9332 2004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
9334 * config/sparc/sparc.c (function_arg_slotno): Align TImode
9335 arguments on a 16-byte boundary in the parameter array if ARCH64.
9336 Split handling of TFmode.
9338 2004-02-02 Paolo Bonzini <bonzini@gnu.org>
9340 * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
9341 Don't test CONSTANT_P (x).
9342 (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
9343 ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
9346 2004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
9348 * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
9350 2004-02-02 Kazu Hirata <kazu@cs.umass.edu>
9352 * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
9353 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
9354 config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
9355 config/iq2000/iq2000.c, config/m32r/m32r.c,
9356 config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
9357 config/mn10300/mn10300.c, config/rs6000/rs6000.c,
9358 config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
9359 config/stormy16/stormy16.c, config/v850/v850.md,
9360 config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
9362 2004-02-01 Kazu Hirata <kazu@cs.umass.edu>
9364 * config/mcore/mcore.c (block_move_sequence): Replace
9365 gen_rtx_CONST_INT with GEN_INT.
9367 2004-02-02 Jan Hubicka <jh@suse.cz>
9369 * alias.c (record_set): Use hard_regno_nregs.
9370 * bt-load.c (find_btr_reference, note_btr_set): Likewise.
9371 * builtins.c (apply_args_size): Likewise.
9372 * caller-save.c (setup_save_areas, save_call_clobbered_regs,
9373 mark_set_regs, add_stored_regs, mark_referenced_regs,
9374 insert_restore, insert_save, insert_one_insn): Likewise.
9375 * cfgcleanup.c: Include regs.h
9376 (mark_effect, mentions_nonequal_regs): Likewise.
9377 * cfgrtl.c (mark_killed_regs): Likewise
9378 * combine.c (update_table_tick, record_value_for_reg,
9379 record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
9380 reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
9381 reg_bitfield_target_p, distribute_notes): Likewise.
9382 * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
9383 exp_equiv_p, cse_insn): Likewise.
9384 * cselib.c (cselib_lookup): Likewise.
9385 (cselib_invalidate_regno, cselib_record_set): Likewise.
9386 * df.c (df_ref_record): Likewise.
9387 * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
9389 * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
9390 count_or_remove_death_notes_bb): Likewise.
9391 * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
9392 * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
9393 mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
9394 * integrate.c (mark_stores): Likewise.
9395 * jump.c (delete_prior_computation): Likewise.
9396 * lcm.c (reg_dies, reg_becomes_live): Likewise.
9397 * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
9398 * loop.c (LOOP_REGNO_NREGS): Likewise.
9399 * postreload.c (reload_combine, reload_combine_note_store,
9400 reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
9401 * ra-colorize.c (combine, color_usable_p, get_free_reg,
9402 calculate_dont_begin, calculate_dont_begin, colorize_one_web,
9403 try_recolor_web, insert_coalesced_conflicts, check_colors,
9404 break_precolored_alias): Likewise.
9405 * ra-debug.c: Include regs.h
9406 (ra_print_rtx_object): Likewise.
9407 * ra-rewrite (choose_spill_colors): Likewise.
9408 (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
9409 * ra.c (init_ra): Likewise.
9410 * recog.c (reg_fits_class_p, peep2_reg_dead_p,
9411 peep2_find_free_register): Likewise.
9412 * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
9413 * regclass.c (hard_regno_nregs): New array.
9414 (init_reg_modes_once): Initialize it.
9415 (choose_hard_reg_mode): Use it.
9416 (record_reg_classes): Likewise.
9417 * regmove.c (mark_flags_life_zones): Likewise.
9418 * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
9419 scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
9420 copy_value, maybe_mode_change, find_oldest_value_reg,
9421 copyprop_hardreg_forward_1):
9422 * regs.h (hard_regno_nregs): Declare.
9423 * realod.c (reload_inner_reg_of_subreg): Use it.
9424 (push_reload, combine_reloads, find_dummy_reload,
9425 hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
9426 refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
9427 reload_adjust_reg_for_mode): Likewise.
9428 * reload1.c (compute_use_by_pseudos, count_pseudo,
9429 count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
9430 spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
9431 clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
9432 allocate_reload_reg, choose_reload_regs, emit_reload_insns,
9433 delete_output_reload): Likewise.
9434 * resource.c (update_live_status, mark_referenced_resources,
9435 mark_set_resources, mark_target_live_regs): Likewise.
9436 * rtlanal.c: Include regs.h
9437 (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
9438 dead_or_set_regno_p, find_regno_note, find_reg_fusage,
9439 subreg_regno_offset, subreg_offset_representable_p,
9440 hoist_test_store): Likewise.
9441 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
9442 * sched-rgn.c (check_live_1, update_live_1): Likewise.
9443 * stmt.c: Include regs.h
9444 (decl_conflicts_with_clobbers_p): Likewise.
9445 * varasm.c (make_decl_rtl): Likewise.
9446 * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
9448 2004-02-01 Kazu Hirata <kazu@cs.umass.edu>
9450 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
9451 config/arm/linux-gas.h, config/arm/netbsd-elf.h,
9452 config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
9453 config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
9454 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
9455 config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
9456 config/iq2000/iq2000.h, config/m32r/m32r.c,
9457 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
9458 config/m68hc11/m68hc11.md, config/m68k/m68k.md,
9459 config/mcore/mcore.c, config/mcore/mcore.h,
9460 config/mcore/mcore.md, config/mips/mips.c,
9461 config/ns32k/ns32k.h, config/ns32k/ns32k.md,
9462 config/rs6000/rs6000.c, config/s390/s390.c,
9463 config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
9464 config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
9465 "gen_rtx (FOO, " with "gen_rtx_FOO (".
9467 2004-02-01 Kazu Hirata <kazu@cs.umass.edu>
9469 * config/h8300/h8300.md (two peephole2's): New.
9471 2004-02-01 Eric Botcazou <ebotcazou@libertysurf.fr>
9473 * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
9474 (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
9475 (ASM_CPU_SPEC): Likewise
9476 * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
9477 (ASM_CPU_SPEC): Remove -mcpu=v8plus. Handle -mcpu=ultrasparc3.
9479 2004-02-01 Roger Sayle <roger@eyesopen.com>
9481 * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
9482 isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
9483 (expand_builtin): Always call expand_builtin_pow.
9485 2004-02-01 Roger Sayle <roger@eyesopen.com>
9487 * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
9488 BUILT_IN_SIGNBITL): New GCC builtins.
9489 * builtins.c (expand_builtin_signbit): New function to RTL expand
9490 calls to signbit, signbitf and signbitl as inline intrinsics.
9491 (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
9492 (fold_builtin_signbit): New function to perform constant folding
9493 of signbit, signbitf and signbitl.
9494 (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
9496 * doc/extend.texi: Document new signbit{,f,l} builtins.
9498 2004-02-01 Richard Sandiford <rsandifo@redhat.com>
9500 * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
9502 2004-02-01 Chris Demetriou <cgd@broadcom.com>
9504 * config/mips/mips.h (PREDICATE_CODES): Remove entries for
9505 "mips_const_double_ok" and "simple_memory_operand", which were
9506 removed from the MIPS port with the mips-3_4-rewrite branch merge.
9507 * config/mips/mips.c (mips16_lay_out_constants): Update comment
9508 for removal of simple_memory_operand.
9510 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
9512 * config/c4x/c4x.md: Use GEN_INT instead of
9513 gen_rtx (CONST_INT, ...).
9515 2004-01-31 Richard Henderson <rth@redhat.com>
9517 * varasm.c (output_constant_pool): Don't zap the pool.
9519 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
9521 * genrecog.c (decision_type): Add DT_const_int.
9522 (write_cond) [DT_const_int]: Print a comparison against small
9524 (write_node): Simplify comparisons against small constants
9525 before printing tests.
9527 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
9529 * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
9530 instead of gen_rtx_CONST_INT.
9532 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
9534 * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
9535 instead of gen_rtx_CONST_INT.
9537 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
9539 * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
9540 hook_bool_CUMULATIVE_ARGS_false.
9541 * targhooks.c (default_strict_argument_naming): Rename to
9542 hook_bool_CUMULATIVE_ARGS_false.
9543 * targhooks.h: Update the prototype for
9544 default_strict_argument_naming.
9546 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
9548 * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
9549 * config/sh/sh.h: Likewise.
9550 * config/sh/sh.md: Likewise.
9552 2004-01-31 Eric Botcazou <ebotcazou@libertysurf.fr>
9554 * doc/invoke.texi (SPARC options): Restructure and update.
9556 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
9558 * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
9559 STRICT_ARGUMENT_NAMING): Poison.
9560 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
9561 hook_bool_tree_false.
9562 * targhooks.c (default_promote_function_args): Remove.
9563 (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
9564 Don't check incoming.
9565 (default_strict_argument_naming): Don't use
9566 STRICT_ARGUMENT_NAMING.
9567 * targhooks.h: Remove the prototype for
9568 default_promote_function_args.
9570 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
9572 * config/i386/i386-protos.h: Remove the prototype for
9573 ix86_setup_incoming_varargs.
9574 * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
9575 (ix86_setup_incoming_varargs): Make it static.
9576 * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
9578 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
9580 * alloc-pool.c: Fix comment typos.
9581 * builtin-types.def: Likewise.
9582 * builtins.def: Likewise.
9583 * c-pretty-print.c: Likewise.
9585 * reload1.c: Likewise.
9587 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
9589 * doc/invoke.texi: Follow spelling conventions.
9590 * doc/tm.texi: Likewise.
9592 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
9594 * doc/install.texi: Fix typos.
9595 * doc/invoke.texi: Likewise.
9597 2004-01-31 Ulrich Weigand <uweigand@de.ibm.com>
9599 * config/s390/s390.c (s390_decompose_address): Do not treat virtual
9600 registers as pointers.
9601 * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
9603 2004-01-31 Paolo Bonzini <bonzini@gnu.org>
9605 * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
9606 and restore it to gen_lowpart_general on exit.
9607 (gen_lowpart_for_combine): Adjust all callers to go through
9609 * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
9610 and restore it to gen_lowpart_general on exit.
9611 (gen_lowpart_if_possible): Adjust all callers to go through
9613 * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
9614 (gen_lowpart): Declare as pointer to function, initialized to
9615 gen_lowpart_general.
9616 * rtl.h (gen_lowpart): Declare as pointer to function.
9618 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
9620 * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
9621 * calls.c: Likewise.
9622 * emit-rtl.c: Likewise.
9623 * function.c: Likewise.
9624 * reload1.c: Likewise.
9625 * config/i386/cygming.h: Likewise.
9626 * config/i386/i386.c: Likewise.
9627 * config/i386/winnt.c: Likewise.
9629 2004-01-30 Dara Hazeghi <dhazeghi@yahoo.com>
9632 * doc/install.texi: document --enable-__cxa_atexit option.
9633 * configure.ac: Disable __cxa_atexit if not supported.
9634 * configure: Regenerate.
9636 2003-01-30 Daniel Berlin <dberlin@dberlin.org>
9638 * ggc-zone.c (ggc_free): New function.
9640 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
9642 alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
9643 cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
9644 flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
9645 ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
9646 tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
9647 config/alpha/alpha.c, config/alpha/alpha.h,
9648 config/alpha/alpha.md, config/alpha/unicosmk.h,
9649 config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
9650 config/c4x/c4x-protos.h, config/c4x/c4x.md,
9651 config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
9652 config/frv/frvend.c, config/i386/cygming.h,
9653 config/i386/djgpp.h, config/i386/emmintrin.h,
9654 config/i386/gthr-win32.c, config/i386/i386-interix.h,
9655 config/i386/i386-protos.h, config/i386/openbsd.h,
9656 config/i386/winnt.c, config/i386/xm-mingw32.h,
9657 config/i386/xmmintrin.h, config/ia64/ia64.md,
9658 config/iq2000/iq2000.md, config/m32r/m32r.md,
9659 config/m68k/m68k.md, config/mcore/mcore-elf.h,
9660 config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
9661 config/mips/iris5gas.h, config/mips/iris6.h,
9662 config/mips/iris6gas.h, config/mips/linux.h,
9663 config/mips/mips.md, config/mips/netbsd.h,
9664 config/mips/openbsd.h, config/mips/windiss.h,
9665 config/pa/fptr.c, config/rs6000/aix.h,
9666 config/rs6000/altivec.h, config/rs6000/darwin.h,
9667 config/rs6000/xcoff.h, config/s390/s390-protos.h,
9668 config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
9669 config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
9670 config/sparc/sol2.h: Update copyright.
9672 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
9674 * Makefile.in (abs_docdir, abs_srcdir): Define.
9675 (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
9677 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
9679 * genconfig.c (main): Have CC0_P check its operand even on a
9682 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
9684 * config/alpha/alpha.c: Remove mentions of deprecates macros
9685 in comments, remove some target-independent comments about target
9686 macros, and/or add minimal function comments for target hook
9688 * config/avr/avr.c: Likewise.
9689 * config/ia64/ia64.h: Likewise.
9690 * config/ip2k/ip2k.c: Likewise.
9691 * config/iq2000/iq2000.c: Likewise.
9692 * config/m32r/m32r.h: Likewise.
9693 * config/m68hc11/m68hc11.c: Likewise.
9694 * config/mcore/mcore.c: Likewise.
9695 * config/mmix/mmix.c: Likewise.
9696 * config/mn10300/mn10300.c: Likewise.
9697 * config/pa/pa.c: Likewise.
9698 * config/pdp11/pdp11.c: Likewise.
9699 * config/rs6000/rs6000.h: Likewise.
9700 * config/sh/sh.c: Likewise.
9701 * config/sh/sh.h: Likewise.
9702 * config/sparc/sparc.c: Likewise.
9703 * config/sparc/sparc.h: Likewise.
9704 * config/stormy16/stormy16.c: Likewise.
9705 * config/xtensa/xtensa.c: Likewise.
9707 2004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
9709 PR optimization/12147
9710 * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
9711 RELOAD_FOR_OPADDR_ADDR.
9712 (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
9713 might be reused as RELOAD_FOR_OPADDR_ADDR register.
9715 2004-01-30 Jan Hubicka <jh@suse.cz>
9717 * reload.c (get_secondary_mem): Fix updating of
9718 secondary_memlocs_elim_used.
9720 2004-01-30 Richard Henderson <rth@redhat.com>
9722 * varasm.c (struct rtx_const, struct pool_constant): Remove.
9723 (MAX_RTX_HASH_TABLE): Remove.
9724 (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
9725 (first_pool, last_pool, pool_offset): Remove.
9726 (struct rtx_constant_pool): Split out from ...
9727 (struct varasm_status): ... here. Reference one via pointer.
9728 (struct constant_descriptor_rtx): Merge struct pool_constant.
9730 (decode_rtx_const): Remove.
9731 (const_hash_rtx, compare_constant_rtx): Remove.
9732 (record_constant_rtx): Remove.
9733 (const_desc_rtx_hash, const_desc_rtx_eq): New.
9734 (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
9735 (const_rtx_hash_1, const_rtx_hash): New.
9736 (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
9737 (simplify_subtraction): Use simplify_rtx.
9738 (force_const_mem): Rewrite to use new data structures.
9739 (find_pool_constant): Likewise.
9740 (get_pool_constant, get_pool_constant_mark,
9741 get_pool_constant_for_function, get_pool_mode,
9742 get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
9743 (output_constant_pool_2): Split out from output_constant_pool.
9744 (output_constant_pool_1): Likewise. Use new pool datastructures.
9745 (output_constant_pool): Zap entire pool datastructure.
9746 (mark_constant): Use new pool datastructures.
9747 (mark_constants): Use for_each_rtx.
9748 (mark_constant_pool): Use new pool datastructures.
9750 2004-01-30 Fariborz Jahanian <fjahanian@apple.com>
9752 * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
9753 Copy operands[1] to pseudo for simplify_gen_subreg.
9755 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
9757 * gcse.c (bypass_block): Fix a typo in the previous check-in
9760 2004-01-30 Andrew Pinski <pinskia@physics.uc.edu>
9762 * toplev.c: Include alloc-pool.h.
9763 * Makefile.in (toplev.c): Update dependencies.
9765 2004-01-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9767 * combine.c (simplify_shift_const, case XOR): Be careful when
9768 commuting XOR with ASHIFTRT.
9770 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
9771 Eric Botcazou <ebotcazou@libertysurf.fr>
9773 * config/sparc/sparc-protos.h: Remove the prototype for
9774 sparc_builtin_saveregs.
9775 * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9776 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9777 (TARGET_PROMOTE_PROTOTYPES): Likewise.
9778 (TARGET_STRUCT_VALUE_RTX): Likewise.
9779 (TARGET_RETURN_IN_MEMORY): Likewise.
9780 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9781 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9782 (sparc_builtin_saveregs): Make it static.
9783 (sparc_promote_prototypes): New.
9784 (sparc_struct_value_rtx): Likewise.
9785 (sparc_return_in_memory): Likewise.
9786 * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
9787 (PROMOTE_FUNCTION_RETURN): Likewise.
9788 (RETURN_IN_MEMORY): Likewise.
9789 (STRUCT_VALUE): Likewise.
9790 (STRUCT_VALUE_INCOMING): Likewise.
9791 (EXPAND_BUILTIN_SAVEREGS): Likewise.
9792 (STRICT_ARGUMENT_NAMING): Likewise.
9793 (PROMOTE_PROTOTYPES): Likewise.
9795 * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
9797 2004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
9800 * varasm.c (const_hash_1) <STRING_CST>: Use the
9801 address to compute the hash value if flag_writable_strings.
9802 (compare_constant) <STRING_CST>: Compare the addresses
9803 if flag_writable_strings.
9804 (build_constant_desc): Do not copy the expression for a
9805 STRING_CST if flag_writable_strings.
9807 2004-01-30 Jan Hubicka <jh@suse.cz>
9809 * alloc-pool.c: Include hashtab.h
9810 (alloc_pool_descriptor): New structure
9811 (alloc_pool_hash): New global variable.
9812 (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
9813 (create_alloc_pool): Update statistics.
9814 (free_alloc_pool): Likewise.
9815 (pool_alloc): Likewise.
9816 (output_info): New structure
9817 (print_statistics, dump_alloc_pool_statistics): New function.
9818 * alloc-pool.h (alloc_pool_def): Turn name to be constant.
9819 (dump_alloc_pool_statistics): Declare.
9820 * toplev.c (finalize): Dump statistics.
9822 * reload.c (secondary_memlocs_elim_used): New static variable.
9823 (get_secondary_mem): Update it.
9824 (find_reloads): Use it.
9826 2004-01-30 Steven Bosscher <s.bosscher@student.tudelft.nl>
9828 * toplev.c: Fix broken checkin of 2003-12-30, again.
9830 2004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
9832 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
9833 s390*-*-* targets by specifying a 'nop' insn.
9834 * configure: Regenerate.
9836 2004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
9839 * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
9841 2004-01-29 Jakub Jelinek <jakub@redhat.com>
9843 * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
9844 of addr when creating MEM copy.
9846 2004-01-29 Devang Patel <dpatel@apple.com>
9848 * dwarf2out.c (gen_field_die): Do not equate decl number to die.
9850 2004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
9853 * reload.c (find_reloads): Only support one pair of commutative
9856 2004-01-29 Roger Sayle <roger@eyesopen.com>
9859 * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
9860 as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
9863 2004-01-29 Kazu Hirata <kazu@cs.umass.edu>
9865 * config/frv/frv.c: Don't mention deprecated macros in
9866 comments. Remove some target-independent comments about
9868 * config/frv/frv.h: Likewise.
9870 2004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9872 * cfghooks.c (split_block): Set probability and count of the
9875 2005-01-29 Josef Zlomek <zlomekj@suse.cz>
9877 * dwarf2out.c (struct die_struct): Added field decl_id.
9878 (decl_die_table): Changed to hash table.
9879 (decl_die_table_allocated): Deleted.
9880 (decl_die_table_in_use): Deleted.
9881 (DECL_DIE_TABLE_INCREMENT): Deleted.
9882 (decl_die_table_hash): New function.
9883 (decl_die_table_eq): New function.
9884 (lookup_decl_die): Lookup in a hash table.
9885 (equate_decl_number_to_die): Insert into a hash table.
9886 (dwarf2out_init): Init hash table decl_die_table.
9888 2004-01-29 Jakub Jelinek <jakub@redhat.com>
9890 PR optimization/13424
9891 * expr.c (store_constructor): Revert 2003-12-03 change.
9893 * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
9894 expected before returning early. Avoid sharing RTL if they
9897 * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
9898 handling so that memory attributes are preserved. Don't call
9899 ix86_set_move_mem_attrs.
9900 (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
9901 (ix86_expand_clrstr): Rename src argument to
9902 dst. Rework rep_stos and strset handling so that memory attributes
9904 (ix86_expand_strlen): Pass src argument to
9905 ix86_expand_strlensi_unroll_1. Rework strlenqi_1 handling so that
9906 memory attributes are preserved.
9907 (ix86_expand_strlensi_unroll_1): Add src argument. Use
9908 change_address instead of gen_rtx_MEM.
9909 * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
9911 (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
9912 strmovqi, strmovqi_rex64): Remove.
9913 (rep_mov*, strmov*): Prefix insn names with *.
9914 (strset, strset_singleop, rep_stos): New expanders.
9915 (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
9916 strsetqi, strsetqi_rex64): Remove.
9917 (rep_stos*, strset*): Prefix insn names with *.
9918 (rep_stosqi_rex64): Likewise. Fix mode of dirflag reg from DImode
9920 (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
9922 (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
9923 Prefix insn names with *.
9924 (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
9925 (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
9926 (strlenqi_1): New expander.
9927 * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
9929 2004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9931 * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
9932 * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
9933 verify_flow_info): Declaration removed.
9934 * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
9935 (debug_bb, debug_bb_n): Add argument to dump_bb call.
9936 * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
9937 try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
9938 instead of delete_block.
9939 * cfghooks.c: Include timevar.h and toplev.h.
9940 (cfg_hooks): Define here.
9941 (verify_flow_info, dump_bb): Moved from cfg.c.
9942 (redirect_edge_and_branch, redirect_edge_and_branch_force,
9943 split_block, split_block_after_labels, move_block_after,
9944 delete_basic_block, split_edge, create_basic_block,
9945 create_empty_bb, can_merge_blocks_p, merge_blocks,
9946 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
9948 * cfghooks.h (struct cfg_hooks): Added fields name,
9949 make_forwarder_block, tidy_fallthru_edge and
9950 move_block_after. Changed type of verify_flow_info, dump_bb,
9951 split_block fields. Renamed cfgh_split_edge and delete_block
9953 (redirect_edge_and_branch, redirect_edge_and_branch_force,
9954 split_block, delete_block, split_edge, create_basic_block,
9955 can_merge_blocks_p, merge_blocks): Macros removed.
9956 (cfg_hooks): Do not export.
9957 (verify_flow_info, dump_bb, redirect_edge_and_branch,
9958 redirect_edge_and_branch_force, split_block, split_block_after_labels,
9959 move_block_after, delete_basic_block, split_edge, create_basic_block,
9960 create_empty_bb, can_merge_blocks_p, merge_blocks,
9961 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
9963 (cfg_layout_rtl_cfg_hooks): Declare.
9964 * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
9966 (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
9967 (redirect_edge_with_latch_update): Removed.
9968 (make_forwarder_block): Moved to cfghooks.c, semantics changed.
9969 * cfgloopmanip.c (remove_bbs): Do not update dominators here.
9970 * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
9971 rtl_delete_block, rtl_split_block, rtl_merge_blocks,
9972 tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
9973 cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
9975 (rtl_create_basic_block): Coding style fix.
9976 (rtl_tidy_fallthru_edge, rtl_move_block_after,
9977 rtl_make_forwarder_block): New functions.
9978 (update_cfg_after_block_merging): Removed.
9979 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
9980 * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
9982 * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
9983 find_if_case_2): Don't update dominators.
9984 * timevar.def (TV_CFG_VERIFY): New.
9985 * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
9986 * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
9987 * cfgloopmanip.c (split_loop_bb): Don't update dominators.
9988 (remove_bbs): Don't call remove_bbs.
9989 (create_preheader): Use make_forwarder_block.
9990 (mfb_keep_just, mfb_update_loops): New static functions.
9992 2004-01-29 Kazu Hirata <kazu@cs.umass.edu>
9994 * config/avr/avr.h: Remove target-independent comments about
9997 2004-01-28 Daniel Berlin <dberlin@dberlin.org>
9999 * timevar.c (timevar_print): Mention when checking is enabled.
10001 2004-01-28 Giovanni Bajo <giovannibajo@gcc.gnu.org>
10003 * c-lex.c (c_lex): Rename to...
10004 (c_lex_with_flags): Add new parameter to get CPP flags.
10005 (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
10006 * c-pragma.h (c_lex_with_flags): Declare.
10008 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
10010 * config/mcore/mcore.c (mcore_external_libcall): Add a
10012 (mcore_return_in_memory): Likewise.
10014 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
10016 * config/mcore/mcore-protos.h: Remove the prototype for
10017 mcore_setup_incoming_varargs.
10018 * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
10019 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
10020 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10021 (TARGET_PROMOTE_PROTOTYPES): Likewise.
10022 (TARGET_STRUCT_VALUE_RTX): Likewise.
10023 (TARGET_RETURN_IN_MEMORY): Likewise.
10024 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10025 (mcore_setup_incoming_varargs): Make it static. Receive the
10026 first argument by reference. Add argument second_time.
10027 (mcore_external_libcall): New.
10028 (mcore_return_in_memory): Likewise.
10029 * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
10030 (PROMOTE_FUNCTION_RETURN): Likewise.
10031 (STRUCT_VALUE): Likewise.
10032 (RETURN_IN_MEMORY): Likewise.
10033 (SETUP_INCOMING_VARARGS): Likewise.
10034 (PROMOTE_PROTOTYPES): Likewise.
10035 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
10037 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
10039 * config/m32r/m32r-protos.h: Remove the prototype for
10040 m32r_setup_incoming_varargs.
10041 * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
10042 (TARGET_STRUCT_VALUE_RTX): Likewise.
10043 (TARGET_RETURN_IN_MEMORY): Likewise.
10044 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10045 (m32r_return_in_memory): New.
10046 (m32r_setup_incoming_varargs): Make it static.
10047 * config/m32r/m32r.h: Remove #undef of
10048 ASM_OUTPUT_EXTERNAL_LIBCALL. Remove the commented-out
10049 definitions of PROMOTE_FUNCTION_ARGS and
10050 PROMOTE_FUNCTION_RETURN.
10051 (PROMOTE_PROTOTYPES): Remove.
10052 (RETURN_IN_MEMORY): Likewise.
10053 (STRUCT_VALUE): Likewise.
10055 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
10057 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
10058 (TARGET_STRUCT_VALUE_RTX): Likewise.
10059 (m68k_struct_value_rtx): Likewise.
10060 * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
10061 STRUCT_VALUE_REGNUM.
10062 (PROMOTE_PROTOTYPES): Remove.
10063 * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
10064 STRUCT_VALUE_REGNUM.
10065 * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
10066 * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
10068 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
10070 * config/stormy16/stormy16.c
10071 (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
10072 TARGET_BUILD_BUILTIN_VA_LIST.
10074 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
10076 * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
10077 (TARGET_STRUCT_VALUE_RTX): Likewise.
10078 (TARGET_RETURN_IN_MEMORY): Likewise.
10079 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10080 (v850_return_in_memory): Likewise.
10081 (v850_setup_incoming_varargs): Likewise.
10082 * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
10083 (SETUP_INCOMING_VARARGS): Likewise.
10084 (RETURN_IN_MEMORY): Likewise.
10085 (STRUCT_VALUE): Likewise.
10087 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
10089 * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
10090 (fr30_setup_incoming_varargs): Don't use
10091 STRICT_ARGUMENT_NAMING.
10092 * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
10093 (STRICT_ARGUMENT_NAMING): Likewise.
10095 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
10097 * config/frv/frv-protos.h: Remove the prototype for
10098 frv_expand_builtin_saveregs.
10099 * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
10100 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10101 (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
10102 STRUCT_VALUE_REGNUM.
10103 (frv_expand_builtin_saveregs): Make it static.
10104 (frv_struct_value_rtx): New.
10105 * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
10107 2004-01-29 Jan Hubicka <jh@suse.cz>
10110 * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
10112 * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
10113 for functions that will be only inlined.
10114 (cgraph_mark_function_to_output): Likewise.
10115 (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
10116 do not clear function body.
10117 * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
10118 (tree_rest_of_compilation): Reorganize the logic releasing function
10119 body to use callgraph datastructure.
10121 2004-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10123 * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
10124 to register_operand.
10126 2004-01-28 Zack Weinberg <zack@codesourcery.com>
10128 * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
10129 (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
10130 match_operand expressions so that all match_dups appear
10131 lexically after their corresponding match_operands.
10133 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
10135 * config/h8300/h8300.c (WORD_REG_USED): Use
10136 HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
10137 (compute_saved_regs): Likewise.
10138 (h8300_expand_prologue): Likewise. Allocate locals after
10140 (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
10141 of FRAME_POINTER_REGNUM. Deallocate locals before saving
10143 (h8300_initial_elimination_offset): Adjust for the new frame
10144 layout, which swaps flips the order of locals and saved
10146 * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
10147 (HARD_FRAME_POINTER_REGNUM): New.
10148 (ELIMINABLE_REGS): Add an elimination rule from
10149 FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
10150 (REGISTER_NAMES): Add fp.
10151 * config/h8300/h8300.md (FP_REG): Change to 11.
10154 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
10156 * genrecog.c (write_node): Remove a useless local variable.
10158 2004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
10160 * Makefile.in (options.c options.h): Use stamp file s-options to
10161 avoid unnecessary rebuilds.
10162 (options.o): New target listing dependencies.
10163 (gtyp-gen.h): Use stamp file s-gtyp-gen.
10164 (STAGESTUFF): Add s-gtyp-gen.
10166 2004-01-28 Richard Henderson <rth@redhat.com>
10168 * ggc.h (ggc_free): Declare.
10169 * ggc-common.c (ggc_realloc): Use it.
10170 * ggc-page.c: Remove lots of inline markers.
10171 (globals): Add free_object_list.
10173 (ggc_free, validate_free_objects): New.
10174 (poison_pages): Provide default.
10175 (ggc_collect): Call validate_free_objects; emit markers to
10178 2004-01-28 Zack Weinberg <zack@codesourcery.com>
10179 Jim Wilson <wilson@specifixinc.com>
10181 * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
10182 Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
10184 (ia64_secondary_reload_class): Delete case GR_REGS.
10185 * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
10186 Do not allocate a scratch register.
10187 (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
10189 2004-01-28 Jan Hubicka <jh@suse.cz>
10191 * gcse.c (bypass_block): Prevent edges to be unified when we are
10192 about to emit compenstation code.
10194 2004-01-28 Nick Clifton <nickc@redhat.com>
10196 * config/arm/arm.c (arm_expand_builtin): Force second argument of
10197 the setcwx insn into a register.
10199 2004-01-28 Richard Sandiford <rsandifo@redhat.com>
10201 * config/fp-bit.c (pack_d): When using paired doubles to implement
10202 a long double, round the high part separately.
10203 (unpack_d): Fix the case in which the high part is a power of two
10204 and the low part is a nonzero value of the opposite sign.
10206 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
10208 * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
10209 (TARGET_STRUCT_VALUE_RTX): Likewise.
10210 (c4x_external_libcall): Likewise.
10211 (c4x_struct_value_rtx): Likewise.
10212 * config/c4x/c4x.h: Remove.
10213 (STRUCT_VALUE_REGNUM): Likewise.
10214 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
10216 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
10218 * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
10219 (TARGET_STRUCT_VALUE_RTX): Likewise.
10220 * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
10221 (STRUCT_VALUE): Likewise.
10222 (PROMOTE_PROTOTYPES): Likewise.
10224 2004-01-27 Roger Sayle <roger@eyesopen.com>
10226 * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
10227 CONST_INT before using INTVAL.
10229 2004-01-27 Ulrich Weigand <uweigand@de.ibm.com>
10231 * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
10232 * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
10233 frame if !TARGET_BACKCHAIN.
10234 * config/s390/s390.md ("allocate_stack"): Use pattern only if
10236 * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
10238 2004-01-27 Zack Weinberg <zack@codesourcery.com>
10240 * ia64.c (ia64_function_arg): When placing HFAs in integer
10241 registers, do not special case the mode used for complex
10242 types. Do not advance int_regs until the current register
10245 2004-01-27 Richard Sandiford <rsandifo@redhat.com>
10248 * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
10250 2004-01-27 David Edelsohn <edelsohn@gnu.org>
10252 * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
10253 slow, unaligned loads and stores while debugging. Fix formatting.
10255 2004-01-27 David Edelsohn <edelsohn@gnu.org>
10257 * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
10258 of computing wmode.
10259 (restore_stack_nonlocal): Same.
10261 2004-01-27 Devang Patel <dpatel@apple.com>
10263 * Makefile.in (dwarf2out.o): Depend on input.h
10264 * dbxout.c (dbx_debug_hooks): Add new empty hook for
10265 imported_module_or_decl.
10266 (xcoff_debug_hooks): Same.
10267 * sdbout.c (sdb_debug_hooks): Same.
10268 * vmsdbgout.c (vmsdbg_debug_hooks): Same.
10269 * debug.c (do_nothing_debug_hooks): Same.
10270 (debug_nothing_tree_tree): New function.
10271 * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
10272 * dwarf2out.c: Include input.h.
10273 (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
10274 (remove_child_TAG): New function.
10275 (dwarf_tag_name): Handle DW_TAG_imported_module.
10276 (gen_subprogram_die): Equate decl number to declaration die. Do not
10277 remove all children dies while reusing declaration die for definition.
10278 Instead, selectively remove only formal parameters.
10279 (gen_variable_die): Equate variable decl to declaration die.
10280 (gen_field_die): Equate field decl to line number.
10281 (force_namespace_die): Replace it with ...
10282 (force_decl_die): ... this.
10283 (force_type_die): New function.
10284 (setup_namespace_context): Replace use of force_namespace_die() with
10286 (gen_namespace_die): Same.
10287 (dwarf2out_imported_module_or_decl): New function.
10289 2004-01-27 Bob Wilson <bob.wilson@acm.org>
10291 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
10292 on CQImode and CHImode incoming arguments in register a7.
10293 (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
10294 * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
10295 * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
10296 xtensa_copy_incoming_a7 before reload.
10298 2004-01-27 J"orn Rennecke <joern.rennecke@superh.com>
10300 * coverage.c (get_coverage_counts): Give a different message
10301 if flag_guess_branch_prob is set.
10302 * predict.c (counts_to_freqs): Return an int.
10303 (estimate_bb_frequencies): If counts_to_freqs returns zero,
10304 calculate estimates.
10306 2004-01-27 Kazu Hirata <kazu@cs.umass.edu>
10308 * config/iq2000/iq2000-protos.h: Remove the prototype for
10309 iq2000_setup_incoming_varargs.
10310 * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10311 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10312 (TARGET_PROMOTE_PROTOTYPES): Likewise.
10313 (TARGET_STRUCT_VALUE_RTX): Likewise.
10314 (TARGET_RETURN_IN_MEMORY): Likewise.
10315 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10316 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10317 (iq2000_return_in_memory): Likewise.
10318 (iq2000_setup_incoming_varargs): Make it static. Receive the
10319 first argument by reference.
10320 * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
10321 (PROMOTE_FUNCTION_RETURN): Likewise.
10322 (PROMOTE_PROTOTYPES): Likewise.
10323 (RETURN_IN_MEMORY): Likewise.
10324 (STRUCT_VALUE): Likewise.
10325 (SETUP_INCOMING_VARARGS): Likewise.
10326 (STRICT_ARGUMENT_NAMING): Likewise.
10328 2004-01-24 James A. Morrison <ja2morri@uwaterloo.ca>
10330 * fixinc/fixinc.c (test_test): Initialize res.
10331 (start_flexer): Initialize pz_cmd_save.
10333 2004-01-27 Zack Weinberg <zack@codesourcery.com>
10335 * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
10336 SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
10338 2004-01-27 Zack Weinberg <zack@codesourcery.com>
10341 * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
10342 (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
10343 (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
10344 Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
10345 Possibly rename pattern for consistency.
10346 Remove ??? comments suggesting that this be done.
10347 (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
10349 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
10350 (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
10351 (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
10352 (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
10355 2004-01-27 Ian Lance Taylor <ian@wasabisystems.com>
10357 * config/arm/arm.c (output_return_instruction): Only restore IP
10358 into SP if frame_pointer_needed.
10360 2004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
10362 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
10363 for SCmode and DCmode if ARCH32.
10364 (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
10365 * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
10367 (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
10369 (BASE_OUTGOING_VALUE_REG): Likewise.
10371 2004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
10375 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
10376 Forbid mode changes from SImode for lower FP regs if ARCH64.
10378 2004-01-27 J"orn Rennecke <joern.rennecke@superh.com>
10380 * Makefile.in (bt-load.o): Depend on except.h.
10381 * bt-load.c (except.h): #include.
10382 (compute_defs_uses_and_gen): If insn at end of BB can throw
10383 within this function, consider registers used by it unavailable for
10385 (move_btr_def): If insn at end of BB can throw, insert before rather
10388 * flags.h (flag_btr_bb_exclusive): Declare.
10389 * toplev.c (flag_btr_bb_exclusive): New variable.
10390 (f_options): Add btr-bb-exclusive.
10391 * bt-load.c (augment_live_range): Restore old behaviour if
10392 flag_btr_bb_exclusive is set.
10393 * common.opt: Add entry for -fbtr-bb-exclusive.
10394 * opts.c (common_handle_options): Same.
10395 * doc/invoke.texi: Document -fbtr-bb-exclusive.
10397 * bt-load.c (btrs_live_at_end): New variable.
10398 (compute_defs_uses_and_gen): Compute its pointed-to array.
10399 (clear_btr_from_live_range, add_btr_to_live_range): Update it.
10400 (augment_live_range): When augmenting with a new dominator,
10401 use only its btrs_live_at_end set, but also add in the full set
10402 of the old dominator.
10403 (btr_def_live_range): Use btrs_live_at_end.
10404 (move_btr_def): Set other_btr_uses_before_def, and move new set
10405 to the end of the basic block, if appropriate.
10406 (migrate_btr_defs): Allocate and free btrs_live_at_end.
10408 * bt-load.c (basic_block_freq): Remove outdated comment.
10410 2004-01-27 Alan Modra <amodra@bigpond.net.au>
10412 * config/rs6000/rs6000.h: Correct target_flags free bits comment.
10413 (PREDICATE_CODES): Remove duplicate.
10414 * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
10415 (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
10416 (MASK_PROFILE_KERNEL): Adjust define.
10418 2004-01-27 Jakub Jelinek <jakub@redhat.com>
10420 * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
10421 of long string literals from 32 bytes to sizeof (void *) when !-Os
10424 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
10426 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
10427 constant addresses in the normal mode.
10429 2004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10431 * system.h (CHAR_BITFIELD): Delete.
10432 (BOOL_BITFIELD): New.
10433 * c-decl.c (c_scope): Use BOOL_BITFIELD.
10434 * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
10436 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
10438 * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10439 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10440 (TARGET_PROMOTE_PROTOTYPES): Likewise.
10441 (TARGET_STRUCT_VALUE_RTX): Likewise.
10442 (TARGET_RETURN_IN_MEMORY): Likewise.
10443 (arc_return_in_memory): Likewise.
10444 * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
10445 (PROMOTE_FUNCTION_RETURN): Likewise.
10446 (RETURN_IN_MEMORY): Likewise.
10447 (STRUCT_VALUE): Likewise.
10449 2004-01-26 Richard Henderson <rth@redhat.com>
10451 * c-parse.in (extension): Use itype.
10452 (SAVE_EXT_FLAGS): Don't allocate a tree.
10453 (RESTORE_EXT_FLAGS): Don't read a tree.
10455 2004-01-26 Jan Hubicka <jh@suse.cz>
10457 * cselib.c (discard_useless_values): Clear out value pointer pointing
10458 to datastructure to be recycled.
10460 2004-01-25 Jan Hubicka <jh@suse.cz>
10462 * genextract.c (main): Do not output the memset when not checking.
10464 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
10466 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
10467 switch statement instead of a chain of if statements.
10469 2004-01-26 Jeff Law <law@redhat.com>
10471 * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry. Add
10472 acute accents for Petur Runolfsson's entry.
10474 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
10476 * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
10477 (TARGET_RETURN_IN_MEMORY): Likewise.
10478 * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
10479 (RETURN_IN_MEMORY): Likewise.
10481 2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
10483 * config/rs6000/rs6000.c (rs6000_emit_move): split slow
10484 unaligned load/store into smaller loads and stores.
10486 2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
10488 * function.c (assign_parms): Do not assign
10489 long long argument to memory in prologue if
10490 is it loaded into register.
10492 2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
10494 PR middle-end/13779
10495 * expr.c (emit_group_load): split constant
10496 correctly into register components of PARALLEL insn.
10498 2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
10500 * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
10501 Use adjust_address_nv directly with appropriate mode.
10502 (restore_stack_nonlocal): Ditto.
10504 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
10506 * config/xtensa/xtensa-protos.h: Remove the prototype for
10507 xtensa_builtin_saveregs.
10508 * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10509 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10510 (TARGET_PROMOTE_PROTOTYPES): Likewise.
10511 (TARGET_STRUCT_VALUE_RTX): Likewise.
10512 (TARGET_RETURN_IN_MEMORY): Likewise.
10513 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10514 (xtensa_builtin_saveregs): Make it static.
10515 (xtensa_return_in_memory): New.
10516 * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
10517 (PROMOTE_FUNCTION_RETURN): Likewise.
10518 (PROMOTE_PROTOTYPES): Likewise.
10519 (STRUCT_VALUE): Likewise.
10520 (RETURN_IN_MEMORY): Likewise.
10521 (EXPAND_BUILTIN_SAVEREGS): Likewise.
10523 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
10525 * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
10526 (arm_setup_incoming_varargs): Likewise.
10527 * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
10529 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
10531 * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
10532 (cris_setup_incoming_varargs): Likewise.
10533 * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
10535 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
10537 * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
10538 (ns32k_struct_value_rtx): Likewise.
10539 * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
10540 NS32K_STRUCT_VALUE_REGNUM.
10542 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
10544 * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10545 (TARGET_PROMOTE_PROTOTYPES): Likewise.
10546 (TARGET_STRUCT_VALUE_RTX): Likewise.
10547 (arm_struct_value_rtx): Likewise.
10548 * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
10549 (STRUCT_VALUE): Likewise.
10550 (STRUCT_VALUE_REGNUM): Likewise.
10551 (PROMOTE_PROTOTYPES): Likewise.
10553 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
10555 * config/ia64/ia64-protos.h: Remove the prototype for
10556 ia64_setup_incoming_varargs and ia64_return_in_memory.
10557 * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
10558 (TARGET_RETURN_IN_MEMORY): Likewise.
10559 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10560 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10561 (ia64_setup_incoming_varargs): Adjust the arguments to meet
10562 the requirement of TARGET_SETUP_INCOMING_VARARGS.
10563 (ia64_return_in_memory): Make it static. Change the return
10564 type to bool from int. Add an argument.
10565 (ia64_struct_value_rtx): New.
10566 * config/ia64/ia64.h: Remove commented-out definitions of
10567 PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
10568 PROMOTE_PROTOTYPES.
10569 (RETURN_IN_MEMORY): Remove.
10570 (STRUCT_VALUE_REGNUM): Likewise.
10571 (STRICT_ARGUMENT_NAMING): Likewise.
10573 2004-01-26 Eric Botcazou <ebotcazou@libertysurf.fr>
10576 * config/sparc/sparc.c (function_arg_union_value): New function.
10577 (function_arg): Use it to deal with unions.
10578 (function_value): Likewise. Define 'regbase' only for ARCH64.
10579 Replace a conditional statement by a simpler one.
10581 2004-01-26 Richard Sandiford <rsandifo@redhat.com>
10583 * config/mips/mips.c (mips16_optimize_gp): Delete.
10584 (mips_reorg): Don't call it.
10586 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10588 * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
10589 (floatunsqihf2): Remove operand 6.
10590 (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
10592 (ldi_conditional, ldf_conditional): Validate operands.
10594 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10596 * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
10597 (HAVE_GAS_HIDDEN): Undefine as interim measure.
10599 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10601 * config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct
10602 memory references if TARGET_EXPOSE_LDP nonzero.
10604 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10606 * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
10608 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10610 * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
10611 invalid operand combinations.
10613 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10615 * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
10616 c4x_legitimate_address_p. Fix post_modify check.
10618 * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
10619 * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
10621 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
10623 * config/pa/pa-protos.h: Remove the prototype for
10624 hppa_builtin_saveregs. Add a prototype for
10625 pa_return_in_memory.
10626 * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
10627 (TARGET_PROMOTE_PROTOTYPES): Likewise.
10628 (TARGET_STRUCT_VALUE_RTX): Likewise.
10629 (TARGET_RETURN_IN_MEMORY): Likewise.
10630 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10631 (pa_struct_value_rtx): Likewise.
10632 (pa_return_in_memory): Likewise.
10633 * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
10634 PA_STRUCT_VALUE_REGNUM.
10635 (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
10636 (EXPAND_BUILTIN_SAVEREGS): Remove.
10637 (PROMOTE_PROTOTYPES): Likewise.
10638 (PROMOTE_FUNCTION_RETURN): Likewise.
10640 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
10642 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
10643 (TARGET_STRUCT_VALUE_RTX): Likewise.
10644 (vax_struct_value_rtx): Likewise.
10645 * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
10646 VAX_STRUCT_VALUE_REGNUM.
10647 (PROMOTE_PROTOTYPES): Remove.
10649 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10651 * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Handle symref.
10653 2003-04-25 Chris Demetriou <cgd@broadcom.com>
10655 * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
10656 and MIPS64 have HI/LO interlocks. Update comment.
10658 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
10660 * config/stormy16/stormy16-protos.h: Remove the prototype for
10661 xstormy16_setup_incoming_varargs.
10662 * config/stormy16/stormy16.c
10663 (xstormy16_setup_incoming_varargs): Remove.
10664 (xstormy16_return_in_memory): New.
10665 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
10666 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10667 (TARGET_PROMOTE_PROTOTYPES): Likewise.
10668 (TARGET_STRUCT_VALUE_RTX): Likewise.
10669 (TARGET_RETURN_IN_MEMORY): Likewise.
10670 * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
10671 (PROMOTE_FUNCTION_RETURN): Likewise
10672 (PROMOTE_PROTOTYPES): Likewise
10673 (RETURN_IN_MEMORY): Likewise
10674 (STRUCT_VALUE): Likewise
10675 (SETUP_INCOMING_VARARGS): Likewise
10677 2004-01-25 Richard Sandiford <rsandifo@redhat.com>
10679 * config/mips/mips.c (mips_offset_within_object_p): New function.
10680 (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
10681 SYMBOL_CONSTANT_POOL cases. Also use it for SYMBOL_GENERAL if the
10682 ABI has 64-bit pointers and the object file only allows 32-bit symbols.
10684 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
10686 * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
10687 (PROMOTE_FUNCTION_RETURN): Likewise.
10689 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
10691 * config/mn10300/mn10300-protos.h: Remove the prototype for
10692 mn10300_builtin_saveregs.
10693 * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
10694 (TARGET_STRUCT_VALUE_RTX): Likewise.
10695 (TARGET_RETURN_IN_MEMORY): Likewise.
10696 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10697 (mn10300_return_in_memory): Likewise.
10698 (mn10300_builtin_saveregs): Make it static.
10699 * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
10700 (RETURN_IN_MEMORY): Likewise.
10701 (STRUCT_VALUE): Likewise.
10702 (EXPAND_BUILTIN_SAVEREGS): Likewise.
10704 2004-01-25 Eric Botcazou <ebotcazou@act-europe.fr>
10707 * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
10709 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
10711 * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
10714 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
10716 * config/i860/i860-protos.h: Remove the prototype for
10718 * config/i860/i860.c (i860_saveregs): Make it static.
10719 (i860_struct_value_rtx): New.
10720 (TARGET_STRUCT_VALUE_RTX): Likewise.
10721 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10722 * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
10723 I860_STRUCT_VALUE_REGNUM.
10724 (EXPAND_BUILTIN_SAVEREGS): Remove.
10726 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
10728 * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
10729 (TARGET_RETURN_IN_MEMORY): Likewise.
10730 (m68hc11_struct_value_rtx): Likewise.
10731 (m68hc11_return_in_memory): Likewise.
10732 * config/m68hc11/m68hc11.h: Remove a commented-out definition
10733 of PROMOTE_PROTOTYPES.
10734 (RETURN_IN_MEMORY): Remove.
10735 (STRUCT_VALUE_REGNUM): Likewise.
10737 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
10739 * config/mmix/mmix-protos.h: Remove the prototype for
10740 mmix_setup_incoming_varargs.
10741 * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10742 (TARGET_STRUCT_VALUE_RTX): Likewise.
10743 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10744 (mmix_setup_incoming_varargs): Make it static.
10745 (mmix_struct_value_rtx): New.
10746 * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
10747 Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
10748 (STRUCT_VALUE_REGNUM): Remove.
10749 (SETUP_INCOMING_VARARGS): Likewise.
10751 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
10753 * config/mips/mips-protos.h: Remove the prototypes for
10754 mips_setup_incoming_varargs and mips_return_in_memory.
10755 * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10756 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10757 (TARGET_PROMOTE_PROTOTYPES): Likewise.
10758 (TARGET_STRUCT_VALUE_RTX): Likewise.
10759 (TARGET_RETURN_IN_MEMORY): Likewise.
10760 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10761 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10762 (mips_setup_incoming_varargs): Match the prototype for
10763 TARGET_SETUP_INCOMING_VARARGS.
10764 (mips_return_in_memory): Make it static. Add argument fntype.
10765 (mips_strict_argument_naming): New.
10766 * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
10767 (PROMOTE_FUNCTION_ARGS): Likewise.
10768 (PROMOTE_FUNCTION_RETURN): Likewise.
10769 (STRUCT_VALUE): Likewise.
10770 (RETURN_IN_MEMORY): Likewise.
10771 (SETUP_INCOMING_VARARGS): Likewise.
10772 (STRICT_ARGUMENT_NAMING): Likewise.
10774 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
10776 * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
10777 (TARGET_RETURN_IN_MEMORY): Likewise.
10778 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10779 (ip2k_return_in_memory): Likewise.
10780 (ip2k_setup_incoming_varargs): Likewise.
10781 * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
10782 (STRUCT_VALUE): Likewise.
10783 (STRUCT_VALUE_INCOMING): Likewise.
10784 (SETUP_INCOMING_VARARGS): Likewise.
10786 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
10788 * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
10789 (TARGET_RETURN_IN_MEMORY): Likewise.
10790 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10791 (avr_return_in_memory): Remove.
10792 * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
10793 (STRUCT_VALUE): Likewise.
10794 (STRUCT_VALUE_INCOMING): Likewise.
10795 (STRICT_ARGUMENT_NAMING): Likewise.
10797 2004-01-25 Jan Hubicka <jh@suse.cz>
10799 * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
10801 2004-01-25 Richard Sandiford <rsandifo@redhat.com>
10803 * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
10804 (mips_regno_mode_ok_for_base_p): Declare.
10805 * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
10806 (FRAME_POINTER_REGNUM): Renumber to 78.
10807 (FIRST_PSEUDO_REGISTER): Update comment accordingly.
10808 (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
10809 (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
10810 (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
10811 (REG_MODE_OK_FOR_BASE_P): Likewise.
10812 * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
10813 entry for 77 to "$arg" and entry for 78 to "$frame".
10814 (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
10815 (mips_reg_mode_ok_for_base_p): Remove.
10816 (mips_regno_mode_ok_for_base_p): New function, derived from old
10817 BASE_REG_P macro. Don't enforce the mips16 stack pointer
10818 restrictions unless we're being strict.
10819 (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
10821 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
10823 * c-common.h: Fix comment typos.
10824 * c-decl.c: Likewise.
10825 * cgraphunit.c: Likewise.
10826 * combine.c: Likewise.
10827 * et-forest.c: Likewise.
10828 * flow.c: Likewise.
10829 * function.c: Likewise.
10830 * ifcvt.c: Likewise.
10831 * integrate.c: Likewise.
10832 * jump.c: Likewise.
10833 * postreload.c: Likewise.
10834 * varray.c: Likewise.
10836 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
10838 * doc/frontends.texi: Update copyright.
10839 * doc/gcov.texi: Likewise.
10840 * doc/gty.texi: Likewise.
10841 * doc/sourcebuild.texi: Likewise.
10842 * doc/standards.texi: Likewise.
10844 2004-01-24 Herman A.J. ten Brugge <hermantenbrugge@home.nl>
10847 * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
10848 Remove movstrqi_small because it conflicts with movstrqi_large.
10850 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
10852 * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10853 (TARGET_STRUCT_VALUE_RTX): Likewise.
10854 (cris_struct_value_rtx): Likewise.
10855 * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
10856 (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
10857 STRUCT_VALUE_REGNUM.
10858 (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
10860 2004-01-24 Ian Lance Taylor <ian@wasabisystems.com>
10863 * cse.c (cse_cc_succs): Change the mode of the source expression
10864 as soon as decide we need a new mode. Don't permit changing modes
10865 if we found a match in a successor block.
10866 (cse_condition_code_reg): Save original mode of source expression
10867 so that we know whether we have to change the mode in other
10870 2004-01-24 Jan Hubicka <jh@suse.cz>
10872 * emit-rtl.c (change_address, adjust_address_1, offset_address,
10873 widen_memory_access): Return early when there is nothing to change.
10875 2004-01-24 Jakub Jelinek <jakub@redhat.com>
10877 * simplify-rtx.c (simplify_relational_operation): Don't
10878 simplify address == constant into address + -constant == 0.
10880 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
10882 * gcc.c (process_command): Don't internationalize the
10884 * mips-tfile.c (main): Likewise.
10886 2004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
10888 * cse.c: (cse_cc_succs) Fix comparison warning.
10890 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
10892 * config/h8300/h8300.md: Remove extraneous USE in expanders.
10894 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
10896 * config/h8300/h8300-protos.h: Provide prototypes for
10897 h8300_legitimate_constant_p and h8300_legitimate_address_p.
10898 * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
10899 (h8300_rtx_ok_for_base_p): Likewise.
10900 (h8300_legitimate_address_p): Likewise.
10901 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
10902 h8300_legitimate_constant_p.
10903 (RTX_OK_FOR_BASE_P): Remove.
10904 (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
10906 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
10908 * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
10909 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
10910 (REG_OK_FOR_INDEX_STRICT_P): Likewise.
10911 (REG_OK_FOR_BASE_STRICT_P): Likewise.
10912 (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
10913 (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
10914 (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
10915 (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
10917 2004-01-24 Jan Hubicka <jh@suse.cz>
10919 * cselib.c (remove_useless_values): Do not access discarded values.
10921 2004-01-24 Joseph S. Myers <jsm@polyomino.org.uk>
10923 * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
10926 2004-01-23 Kazu Hirata <kazu@cs.umass.edu>
10928 * recog.c: Fix a typo in copyright.
10930 2004-01-23 Andrew Pinski <apinski@apple.com>
10932 * config/rs6000/rs6000.md (call): Fix misappiled patch.
10933 (call_value): Likewise.
10935 2004-01-23 Richard Henderson <rth@redhat.com>
10938 * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
10939 (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
10940 if SHIFT_COUNT_TRUNCATED is set.
10942 2004-01-23 Bob Wilson <bob.wilson@acm.org>
10944 * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
10945 separate real and imaginary parts.
10946 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
10948 2004-01-23 Hartmut Penner <hpenner@de.ibm.com>
10951 * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
10954 2004-01-23 Jan Hubicka <jh@suse.cz>
10956 * emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing
10959 * alloc-pool.c (align_four): Kill.
10960 (create_alloc_pool): Align size to eight.
10961 (free_alloc_pool, free_pool): Invalidate deallocated data.
10963 2004-01-23 Ian Lance Taylor <ian@wasabisystems.com>
10966 * cse.c (cse_change_cc_mode): New static function.
10967 (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
10968 (cse_condition_code_reg): New function.
10969 * rtl.h (cse_condition_code_reg): Declare.
10970 * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
10971 * target.h (struct gcc_target): Add fixed_condition_code_regs and
10972 cc_modes_compatible.
10973 * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
10974 (TARGET_CC_MODES_COMPATIBLE): Define.
10975 (TARGET_INITIALIZER): Add new initializers.
10976 * targhooks.c (default_cc_modes_compatible): New function.
10977 * targhooks.c (default_cc_modes_compatible): Declare.
10978 * hooks.c (hook_bool_intp_intp_false): New function.
10979 * hooks.h (hook_bool_intp_intp_false): Declare.
10980 * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
10981 (TARGET_CC_MODES_COMPATIBLE): Define.
10982 (ix86_fixed_condition_code_regs): New static function.
10983 (ix86_cc_modes_compatible): Likewise.
10984 * doc/tm.texi (Condition Code): Document new hooks.
10986 2004-01-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10988 * fixinc/inclhack.def (bad_lval): Renamed to ...
10989 (alpha_bad_lval): ... this.
10991 Restrict to alpha*-dec-osf*.
10992 * fixinc/fixincl.x: Regenerate.
10993 * fixinc/tests/base/dirent.h: Remove, moving test ...
10994 * fixinc/tests/base/testing.h: ... here, reflecting new name.
10996 2004-01-23 Zack Weinberg <zack@codesourcery.com>
10999 * c-decl.c (diagnose_mismatched_decls): Also discard a
11000 built-in if we encounter an old-style definition with the
11003 2004-01-23 Jakub Jelinek <jakub@redhat.com>
11005 * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
11006 set to default{32,64}.
11008 2004-01-21 Jakub Jelinek <jakub@redhat.com>
11010 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
11011 [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
11013 2004-01-23 Eric Botcazou <ebotcazou@act-europe.fr>
11014 Olivier Hainque <hainque@act-europe.fr>
11016 * fold-const.c (fold_binary_op_with_conditional_arg): Only
11017 build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
11019 2004-01-23 Daniel Jacobowitz <drow@mvista.com>
11021 * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
11022 size for minipool references.
11024 2004-01-23 Roger Sayle <roger@eyesopen.com>
11026 * real.c (real_floor, real_ceil): Tweak to allow input and output
11027 arguments to overlap.
11028 (real_round): New function to implement round(3m) semantics.
11029 * real.h (real_round): Prototype here.
11030 * builtins.c (fold_builtin_round): New function to constant fold
11031 round, roundf and roundl.
11032 (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
11034 2004-01-23 Alexandre Oliva <aoliva@redhat.com>
11036 PR optimization/13819
11037 * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
11038 introduced by 2004-01-20's Jan Hubicka's copy_insn change.
11039 (sh_handle_sp_switch_attribute): Remove warning.
11041 2003-11-30 Jan Hubicka <jh@suse.cz>
11043 * i386.c (ix86_emit_restore_regs_using_mov): Deal with large offsets.
11045 2004-01-23 J"orn Rennecke <joern.rennecke@superh.com>
11047 * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
11048 may or may not return non-NIL.
11049 * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
11050 check CANNOT_CHANGE_MODE_CLASS
11052 2004-01-23 Jan Hubicka <jh@suse.cz>
11054 * basic-block.h (PROP_POSTRELOAD): New macro.
11055 (CLEANUP_LOG_LINKS): New.
11056 * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
11057 * toplev.c (rest_of_handle_life): Preserve LOG_LINKS trought cleanup_cfg.
11059 * cselib.c (value_pool): New.
11060 (new_cselib_val): Use pool.
11061 (cselib_init): Initialize value_pool
11062 (cselib_finish): Free pool.
11064 2004-01-23 Eric Botcazou <ebotcazou@libertysurf.fr>
11066 * config/sparc/sparc.c (scan_record_type): New function.
11067 (function_arg_slotno): Use it to determine which kinds of
11068 registers the record can be passed in.
11070 2004-01-22 James A. Mmorrison <ja2morri@uwaterloo.ca>
11072 * config/pa/fptr.c: Fix old-style definition.
11074 2004-01-22 Paolo Bonzini <bonzini@gnu.org>
11076 PR optimization/13724
11077 * cse.c (fold_rtx) <SUBREG>: Fold a SUBREG to zero if it
11078 represents the zero bits produced by a ZERO_EXTEND operation.
11080 2004-01-22 Roger Sayle <roger@eyesopen.com>
11082 PR optimization/13821
11083 * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
11084 correctly calculate the lowpart offset of the contracted subreg.
11086 2004-01-22 Ian Lance Taylor <ian@wasabisystems.com>
11088 * doc/invoke.texi (Optimize Options): Note that --param arguments
11089 are subject to change without notice.
11091 2004-01-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11093 * config.gcc (mips-sgi-irix6*o32): Removed.
11094 * config/mips/iris6-o32-as.h: Likewise.
11095 * config/mips/iris6-o32-gas.h: Likewise.
11096 * config/mips/iris6-o32.h: Likewise.
11098 2004-01-22 Jan Hubicka <jh@suse.cz>
11100 * cfgcleanup.c (first_pass): New static variable.
11101 (try_forward_edges): Add work limiting check for threading.
11102 (try_crossjump_bb): Add work limiting check for crossjumping.
11103 (try_optimize_cfg): Maintain first pass variable.
11105 2004-01-22 Bob Wilson <bob.wilson@acm.org>
11107 * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
11108 handles complex and vector modes.
11110 2004-01-22 Kazu Hirata <kazu@cs.umass.edu>
11112 * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
11113 (REG_OK_FOR_BASE_P_STRICT): Likewise.
11114 (STRICT): Likewise.
11116 2004-01-22 Daniel Jacobowitz <drow@mvista.com>
11118 * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
11119 (genrtl_for_stmt): Remove emit_nop calls.
11121 2004-01-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11125 * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
11126 movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
11127 clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
11129 2004-01-22 Daniel Jacobowitz <drow@mvista.com>
11131 * config/arm/arm.c: Include "debug.h".
11132 (thumb_pushpop): Take two new arguments. Add some commentary.
11133 Output frame information when pushing.
11134 (thumb_exit, thumb_unexpanded_epilogue): Update calls to
11136 (thumb_output_function_prologue): Likewise. Accumulate a CFA
11137 offset, and pass it to thumb_pushpop. Output CFI information.
11138 (thumb_expand_prologue): Add some frame-related markers and notes.
11140 2004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
11142 * config/s390/s390.c (s390_frame_info): Allow large frame sizes
11144 (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
11145 * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
11147 2004-01-22 Roger Sayle <roger@eyesopen.com>
11148 Paolo Bonzini <bonzini@gnu.org>
11150 * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
11151 (subreg_lsb): Change to call new subreg_lsb_1 helper function.
11152 * rtl.h (subreg_lsb_1): Prototype here.
11153 * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
11156 2004-01-22 Kazu Hirata <kazu@cs.umass.edu>
11158 * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
11159 macro need not be defined if jump-tables should contain
11160 relative addresses only when -fPIC or -fPIC is in effect.
11162 2004-01-22 Jan Hubicka <jh@suse.cz>
11164 * alias.c (reg_base_value): Turn into varray.
11165 (reg_base_value_size): Kill.
11166 (old_reg_base_value): New deletable varray.
11167 (alias_invariant_size): New variable.
11168 (REG_BASE_VALUE): Update to use varray.
11169 (find_base_value): Likewise.
11170 (record_set): Likewise.
11171 (record_base_value): Likewise.
11172 (memrefs_conflict_p): Likewise.
11173 (record_set): Likewise
11174 (record_base_value): Likewise.
11175 (memrefs_conflict_p): Use alias_invariant_size.
11176 (init_alias_analysis): Use varray; set alias_invariant_size;
11177 rescale other arrays to be sized by maxreg.
11178 (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
11180 2004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
11182 * config/sparc/sparc.c (function_arg_slotno): Use
11183 FLOAT_TYPE_P to detect FP fields in structures.
11184 (function_arg_record_value_1): Likewise.
11185 (function_arg_record_value_2): Likewise.
11187 2004-01-22 Jan Hubicka <jh@suse.cz>
11189 * function.c (allocate_struct_function): Do not initialize expr, emit
11191 (prepare_function_start): Do it here.
11192 * c-parse.in (maybe_type_qual): Do not produce line number notes.
11194 2004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
11197 * config/sparc/sparc.c (function_arg_record_value_3): Revert
11198 to 'word_mode' once the first slot has been filled.
11200 2004-01-22 Olivier Hainque <hainque@act-europe.fr>
11202 * config/sparc/sparc.c (function_arg_record_value_1): Fix
11203 computation of the number of integer registers required.
11205 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
11207 * config/i386/i386.md: Simplify certain comparisons of
11210 2004-01-21 Andrew Pinski <apinski@apple.com>
11213 * config/rs6000/rs6000.md (call_value): Force operand
11214 1 not operand 0 into a register.
11216 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
11218 * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
11219 unwind-dw2-fde.h: Update copyright.
11221 2004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11223 * pa-protos.h: Update copyright.
11227 2004-01-21 Caroline Tice <ctice@apple.com>
11230 * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
11232 (fix_truncdfdi2): Likewise.
11233 (fix_truncsfdi2): Likewise.
11234 (*fix_truncdi_1): Likewise.
11235 (fix_truncxfsi2): Likewise.
11236 (fix_truncdfsi2): Likewise.
11237 (fix_truncsfsi2): Likewise.
11238 (*fix_truncsi_1): Likewise.
11239 (fix_truncxfhi2): Likewise.
11240 (fix_truncdfhi2): Likewise.
11241 (fix_truncsfhi2): Likewise.
11242 (*fix_trunchi_1): Likewise.
11244 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
11246 * alias.c, basic-block.h, c-common.c, c-common.h,
11247 c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
11248 calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
11249 combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
11250 cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
11251 defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
11252 expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
11253 genautomata.c, genconditions.c, genemit.c, genflags.c,
11254 gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
11255 ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
11256 langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
11257 line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
11258 ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
11259 rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
11260 target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
11261 unwind.h, varray.c, varray.h: Update copyright.
11263 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
11265 * config/h8300/coff.h: Update copyright.
11266 * config/h8300/elf.h: Likewise.
11267 * config/h8300/h8300-protos.h: Likewise.
11268 * config/h8300/h8300.c: Likewise.
11269 * config/h8300/h8300.h: Likewise.
11270 * config/h8300/h8300.md: Likewise.
11272 2004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11274 * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
11275 ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
11276 ultrix_unistd): New hacks.
11277 * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
11278 ULTRIX_CONST2_CHECK): Add checks.
11279 * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
11280 * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
11281 * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
11282 * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
11283 * fixinc/tests/base/locale.h: New file.
11284 * fixinc/fixincl.x: Rebuilt.
11286 2004-01-21 Andreas Jaeger <aj@suse.de>
11287 Michael Matz <matz@suse.de>
11289 * doc/extend.texi (Extended Asm): Clarify memory clobber.
11291 2004-01-21 Jakub Jelinek <jakub@redhat.com>
11293 * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
11294 _Jv_RegisterClasses through a function pointer.
11296 2004-01-21 Falk Hueffner <falk@debian.org>
11299 * config/alpha/alpha.c (alpha_emit_set_const_1): If
11300 no_new_pseudos, use gen_rtx_SET directly for SImode constants
11301 which need multiple instructions to emit.
11303 2004-01-21 Inaoka Kazuhiro <inaoka.kazuhiro@renesas.com>
11305 * config/m32r/m32r.h (CPP_SPEC): Define.
11307 2004-01-21 Zack Weinberg <zack@codesourcery.com>
11309 * c-decl.c (merge_decls): Kill different_binding_level and
11310 different_tu arguments; simplify throughout.
11311 (duplicate_decls): Likewise.
11312 (pushdecl, merge_translation_unit_decls): Update calls to
11315 2004-01-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11317 * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
11319 (print-rtl1.o): Depend on $(SYSTEM_H).
11321 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
11324 * configure.ac: Delete definition and subsitution of docdir.
11325 Add info, man, srcman and srcinfo to target hooks. Create doc/
11327 * configure: Regenerate.
11328 * Makefile.in: Don't substitute docdir and delete all references
11330 (MAKEINFOFLAGS): Define.
11331 (stmp-docobjdir): Delete.
11332 (INFOFILES, MANFILES): Define.
11333 (info): Call lang.info, srcinfo and lang.srcinfo.
11334 (generated-manpages): Call lang.man, srcman and lang.srcman.
11335 (srcinfo, srcman): New rules to copy back files to source directory.
11336 (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
11337 (install-man): Revamp rule.
11338 (clean): Update dvi directory.
11339 (distclean): Delete TAGS from front end directorys.
11340 (maintainer-clean): Delete all document files in source directory.
11342 objc/Make-lang.in (objc.man, objc.info): Dummy entries.
11343 (objc.srcman, objc.srcinfo): Likewise.
11345 2004-01-20 Bruce Korb <bkorb@gnu.org>
11347 * fixinc/inclhack.def(math_exception): bypass only for glibc.
11348 (matherr_decl): rename & relocate as exception_structure.
11349 This fix must precede the math_exception fix.
11351 2004-01-20 Roger Sayle <roger@eyesopen.com>
11353 * fold-const.c (fold_convert): Rename to fold_convert_const.
11354 (fold_convert_const): Change arguments to take a tree_code,
11355 a type and the operand/expression to be converted. Return
11356 NULL_TREE if no simplification is possible. Add support for
11357 FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
11358 (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
11359 Adjust call to fold_convert to match new fold_convert_const.
11360 Avoid modifying the tree passed to fold in-place.
11362 2004-01-21 Alan Modra <amodra@bigpond.net.au>
11364 * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
11365 * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
11366 * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
11368 2004-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11370 * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
11371 * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
11372 Likewise. Handle frames larger than 0x7fffffff on 64-bit ports.
11373 (emit_move_sequence): Check scratch_reg first in various if statements.
11374 Extend source simplification to handle all 64-bit CONST_INTs.
11375 (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
11377 (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
11378 frame offset calculations.
11379 * pa.h (NEW_HP_ASSEMBLER): Add comment.
11380 (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
11381 LEGITIMATE_64BIT_CONST_INT_P): Define.
11382 (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P. Treat
11383 any CONST_INT as legitimate during and after reload.
11384 (VAL_32_BITS_P, INT_32_BITS): Define.
11385 (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
11387 2004-01-20 Jan Hubicka <jh@suse.cz>
11389 * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
11390 emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
11391 containing hard regs are shared.
11392 (gen_hard_reg_clobber): New function.
11393 (hard_reg_clobbers): New array.
11394 * genemit.c (gen_exp): Use gen_hard_reg_clobber.
11395 (copy_rtx): Do not copy clobbers containing hard regs.
11396 * rtl.h (gen_hard_reg_clobber): Declare.
11398 2004-01-20 Jan Hubicka <jh@suse.cz>
11400 * varray.c: Include hashtab.h
11401 (varray_descriptor): New structure.
11402 (hash_descriptor, eq_descriptor, varray_descriptor,
11403 print_statistics): New static functions
11404 (varray_init, varray_grow): Update statistics
11405 (dump_varray_statistics): New function.
11406 * varray.h (dump_varray_statistics): Declare.
11407 * toplev.c (finalize): Call it.
11408 * Makefile.in (varray.o): Add dependency.
11410 2004-01-20 Jan Hubicka <jh@suse.cz>
11412 * cselib.c: Include alloc-pool.h
11413 (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
11414 (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
11415 (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
11416 unchain_one_elt_loc_list_pool, unchain_one_value,
11417 new_cselib_val): Simplify using allocpool.
11418 (cselib_init): Initialize allocpools.
11419 (cselib_finish): Finish allocpools.
11420 * Makefile.in (cselib.o): Depend on alloc-pool.h
11422 2004-01-20 Richard Sandiford <rsandifo@redhat.com>
11424 * config/mips/mips.c (mips_load_call_address): Make the call insn
11425 use $gp if it could be calling a lazy binding stub.
11427 2004-01-20 Kazu Hirata <kazu@cs.umass.edu>
11429 * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
11430 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11431 (TARGET_STRUCT_VALUE_RTX): Likewise.
11432 * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
11433 (PROMOTE_FUNCTION_RETURN): Remove.
11434 (STRUCT_VALUE): Remove.
11436 2004-01-20 Denis Chertykov <denisc@overta.ru>
11439 * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
11440 register as pointer after reload.
11442 2004-01-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11444 PR optimization/12440
11445 * loop.c: Include ggc.h.
11446 (loop_optimize): Run garbage collector between optimization of loops.
11447 * Makefile.in (loop.o): Add GGC_H dependency.
11449 2004-01-20 Hartmut Penner <hpenner@de.ibm.com>
11451 * gcc/config/rs6000/rs6000.c (function_arg) Handle
11452 vector register special in function without prototype.
11453 (function_arg_advance): Vector parameters get always
11454 GPRs allocated for the linux64 target.
11456 2004-01-20 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
11458 * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
11459 not TARGET_M32RX_MASK.
11461 2004-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
11464 * config/sparc/sparc.c (function_arg): Reorder the cases.
11466 2004-01-19 Per Bothner <per@bothner.com>
11468 Move cpp_reader's line_maps field to a shared global.
11469 * cpphash.h (cpp_reader): Rename line_maps field to line_table
11470 and change the type to a pointer rather than a struct.
11471 * cppinit.c (cpp_push_main_field): Adjust accordingly.
11472 * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
11474 * cppfiles.c (validate_pch): Likewise.
11475 * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
11477 * cpperror.c (print_location): Likewise.
11478 * cpplib.h (cpp_create_reader): New line_maps pointer parameter.
11479 * cppinit.c (cpp_create_reader): Handle new parameter.
11480 (cpp_destroy): Don't free line_maps - that's no longer our job.
11481 * input.h (line_table): New variable.
11482 * toplev.c (line_table): Declare variable.
11483 (general_init): Initialize line_table.
11484 * c-opts.c (c_common_init_options): Pass line_table to
11486 * fix-header.c (read_scan_file): New local variable line_table.
11487 Initialize, and pass it to cpp_create_reader.
11488 * Makefile.in (LIBS, LIBDEPS): Add libcpp.a.
11489 (C_AND_OBJC_OBJS, fix-header): Remove redundant libcpp.a.
11491 2004-01-19 Per Bothner <per@bothner.com>
11493 Implement a cache for linemap_lookup.
11494 * line-map.h (struct_line_maps): Add cache field.
11495 * line-map.c (linemap_init): Zero cache field.
11496 (linemap_add): Set cache field to offset of newly allocated map.
11497 (linemap_lookup): Use and set cache field.
11499 2004-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
11501 PR optimization/13567
11502 * cse.c (cse_basic_block): Call cse_insn with a non-null
11503 libcall_insn for the last SET insn of a no-confilict block.
11505 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
11507 * Makefile.in (target_noncanonical, program_transform_name): Use
11508 immediate define instead of deferred.
11509 (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
11510 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
11511 GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
11512 deferred backquote.
11514 2004-01-20 Joseph S. Myers <jsm@polyomino.org.uk>
11516 * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
11517 true unconditionally.
11518 * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
11520 (build_unary_op, build_modify_expr): Don't handle extended
11522 (build_component_ref, build_conditional_expr): Call non_lvalue
11523 instead of pedantic_non_lvalue.
11524 (build_c_cast): Don't condition use of non_lvalue on pedantic.
11525 * fold-const.c (fold): Don't check pedantic directly for
11526 COMPOUND_EXPR. Ensure that results for COMPOUND_EXPR are
11527 passed to pedantic_non_lvalue.
11528 * doc/extend.texi: Remove documentation of extended lvalues.
11530 2004-01-19 Roger Sayle <roger@eyesopen.com>
11532 PR optimization/5263
11533 * simplify-rtx.c (associative_constant_p): Delete.
11534 (simplify_associative_operation): Rewrite to linearize terms, and
11535 attempt to simplify new term against both left and right subterms.
11536 (simplify_binary_operation): Call swap_commutative_operands_p on
11537 op0 and op1, not trueop0 and trueop1. Move the initialization of
11538 trueop0 and trueop1 down to where first needed.
11539 (simplify_relational_operation): Likewise.
11540 * rtlanal.c (commutative_operand_precedence): Also order constant
11541 operands using avoid_constant_pool_reference.
11543 2004-01-19 Richard Henderson <rth@redhat.com>
11545 * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
11546 don't check memory mode.
11547 (unaligned_memory_operand): Likewise.
11548 (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
11549 abort for op0 not MEM.
11551 * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
11552 is not a reg, copy to a scratch first.
11553 (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
11554 unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
11555 unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
11556 (reload_inqi, reload_inhi): Fix mode of op0.
11557 (reload_inqi_help, reload_inhi_help, reload_outqi_help,
11558 reload_outhi_help): Likewise. Use define_insn_and_split.
11560 * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
11561 as well as $29 dead.
11563 2004-01-19 Eric Botcazou <ebotcazou@libertysurf.fr>
11565 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New. Emit
11566 "tls_object" for thread-local objects.
11567 * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
11568 "#tls" for thread-local sections.
11569 * configure.ac (thread-local checks): Specify --fatal-warnings in
11570 every binutils-specific checks. For sparc*-*-*, test whether the
11571 OS is Solaris and the tools are native and act accordingly.
11572 * configure: Rebuild.
11574 2004-01-19 Jeff Law <law@redhat.com>
11576 * contrib.texi: Update Paolo Carlini's entry. New entries for
11577 Jerry Quinn and Petur Runolfsson.
11579 2004-01-19 Roger Sayle <roger@eyesopen.com>
11581 * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
11582 size, don't use the larger zero-extending loads.
11584 2004-01-19 Richard Henderson <rth@redhat.com>
11586 * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
11587 * alpha.md (UNSPEC_NT_LDA): Remove.
11588 (UNSPEC_CVTLQ, cvtlq): New.
11589 (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
11590 (extendsidi2_fix): Remove.
11591 (extendsidi2 splitter): Use cvtlq.
11592 (extendsidi2 fp peepholes): Remove.
11593 (cvtql): Use SFmode instead of SImode.
11594 (fix_trunc?fsi): Update to match.
11595 (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
11596 (movsi): Rename from movsi_nofix, remove f alternatives.
11597 (movsi_nt_vms): Similarly.
11598 (movsi_fix, movsi_nt_vms_fix): Remove.
11600 * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
11602 2004-01-19 Jan Hubicka <jh@suse.cz>
11604 * cgraph.c (cgraph_remove_node): Fix removal from linked list.
11605 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
11607 (cgraph_remove_unreachable_nodes): New function
11608 (cgraph_decide_inlining_of_small_function): Fix pasto.
11609 (cgraph_decide_inlining_incrementally): Fix pasto.
11610 (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
11612 2004-01-19 Steven Bosscher <stevenb@suse.de>
11614 * gengtype.c (header_file): Make it static.
11615 (write_types_process_field, write_enum_defn): Minor whitespace fixes.
11616 * gengtype.h (header_file): No longer extern.
11618 2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
11620 * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
11621 * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
11622 * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
11624 2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
11626 * stmt.c (HAVE_casesi): Define it not already defined.
11627 (HAVE_tablejump): Likewise.
11628 (expand_end_case_type): Resort to the binary tree method if
11629 neither casesi or tablejump is available.
11631 2004-01-18 Daniel Jacobowitz <drow@mvista.com>
11633 * final.c (final_scan_insn): Make non-static again.
11634 * output.h (final_scan_insn): Re-add prototype.
11635 * config/arc/arc.c (arc_output_function_epilogue): Add NULL
11636 to final_scan_insn call.
11637 * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
11638 * config/mips/mips.c (mips_output_conditional_branch): Likewise.
11639 * config/pa/pa.c (output_lbranch, output_call): Likewise.
11640 * config/sh/sh.c (print_slot): Likewise.
11641 * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
11642 (output_sibcall, sparc_flat_function_epilogue): Likewise.
11644 2004-01-18 Jan Hubicka <jh@suse.cz>
11646 * basic-block.h (try_redirect_by_replacing_jump): Declare.
11647 * cfgcleanup.c (try_optimize_cfg): Use it.
11648 * cfgrtl.c (try_redirect_by_replacing_jump): Export.
11649 (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
11651 (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
11654 2004-01-16 Geoffrey Keating <geoffk@apple.com>
11656 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
11657 even after reload, just don't remove the actual jump tables.
11659 2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
11661 * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
11663 2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
11665 * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
11666 the size of a pointer in bytes.
11668 2004-01-18 Roger Sayle <roger@eyesopen.com>
11670 * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
11671 live "next" variable, which could lead to an infinite loop.
11673 2004-01-18 Andrew Pinski <pinskia@physics.uc.edu>
11675 * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
11678 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11679 Check for NULL in the chain and remove repeated code.
11681 2004-01-18 Jan Hubicka <jh@suse.cz>
11683 * coverage.c (checksum_string): Rename to ...
11684 (coverage_checksum_string): ... this one, Use crc32_string; recognize
11685 names containing random number and zero the number out in order to get
11688 2004-01-18 Richard Sandiford <rsandifo@redhat.com>
11690 * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
11692 2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
11694 * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
11695 doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
11696 doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
11697 doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
11698 doc/trouble.texi: Remove trailing whitespace.
11700 2004-01-18 Richard Sandiford <rsandifo@redhat.com>
11703 * config/mips/mips.c: Include cfglayout.h.
11704 (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
11705 (mips_unspec_offset_high): Add temporary register argument.
11706 (mips_load_call_address): New function, split out from...
11707 (mips_expand_call): ...here.
11708 (mips_output_cplocal): New function.
11709 (mips_output_function_prologue, mips_output_function_epilogue): Use it.
11710 (mips_emit_loadgp): New function, split out from...
11711 (mips_expand_prologue): ...here.
11712 (mips_output_mi_thunk): New function.
11714 2004-01-17 Bernardo Innocenti <bernie@develer.com>
11716 * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
11717 mcpu32): Remove redundant checks for implied target predefines.
11719 2004-1-17 Andrew Pinski <pinskia@physics.uc.edu>
11721 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11722 Return type is unsigned int not int.
11723 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
11726 2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
11728 * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
11729 doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
11730 "GNU/Linux" and "Microsoft Windows" terminology.
11732 2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
11734 * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
11735 doc/cppopts.texi, doc/extend.texi, doc/install.texi,
11736 doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
11737 doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
11738 @smallexample instead of @example.
11740 2004-01-17 Ziemowit Laski <zlaski@apple.com>
11742 * objc/objc-act.c (build_objc_method_call): Use target
11743 hooks instead of macros to determine if ..._stret
11744 dispatchers should be used (NeXT runtime only).
11746 2004-01-17 Roger Sayle <roger@eyesopen.com>
11748 * builtins.c (expand_builtin_expect_jump): Fix mistake in my
11749 last patch. Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
11751 2004-01-17 Daniel Jacobowitz <drow@mvista.com>
11753 * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
11754 (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
11755 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
11757 * reload1.c (emit_reload_insns): Use them.
11758 * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
11759 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
11762 2004-01-17 Daniel Jacobowitz <drow@mvista.com>
11764 * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
11765 (final_scan_insn): Update to take an additional SEEN argument. Emit
11766 a line note after the prologue. Make static.
11767 (line_note_exists): Remove.
11768 (final): Don't initialize line_note_exists. Update call to
11770 * output.h (final_scan_insn): Remove prologue.
11771 * function.c (set_insn_locators): Update comment.
11772 (thread_prologue_and_epilogue_insns): Add a comment.
11774 2004-01-17 Andrew Pinski <pinskia@physics.uc.edu>
11777 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
11779 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11781 * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
11782 * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
11783 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
11785 2004-01-17 Jan Hubicka <jh@suse.cz>
11787 * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
11790 * toplev.c (HAVE_conditional_execution): Provide default.
11791 (rest_of_handle_reorder_blocks): For conditional_execution target
11792 update liveness once after all transformations
11793 (rest_of_compilation): Do crossjumping before ce3.
11795 2004-01-17 Geoffrey Keating <geoffk@apple.com>
11797 * alias.c (new_alias_set): Mark last_alias_set for PCH.
11798 (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
11800 (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
11801 * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
11802 (get_TOC_alias_set): Mark 'set' for PCH.
11804 2004-01-16 Geoffrey Keating <geoffk@apple.com>
11806 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
11807 even after reload, just don't remove the actual jump tables.
11809 2004-01-17 J. Brobecker <brobecker@gnat.com>
11811 * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
11812 Remove checks for is_ada() and TREE_UNSIGNED.
11813 (subrange_type_die): Emit a byte_size attribute if the subrange
11814 type size is different from the base type size.
11815 (modified_type_die): Replace call to is_ada_subrange_type() by
11816 call to is_subrange_type().
11818 2004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
11820 * config/sh/sh.c: Include ggc.h.
11822 2004-01-16 Geoffrey Keating <geoffk@apple.com>
11824 * Makefile.in (MD5_H): New.
11825 (fold-const.o): Depend on md5.h.
11826 (dwarf2out.o): Likewise.
11827 (cppfiles.o): Likewise.
11828 * cppfiles.c: Include md5.h.
11829 (should_stack_file): Check against list read from PCH file.
11830 (struct pchf_data): New.
11831 (pchf): New variable.
11832 (struct pchf_adder_info): New.
11834 (pchf_save_compare): New.
11835 (_cpp_save_file_entries): New.
11836 (_cpp_read_file_entries): New.
11837 (struct pchf_compare_data): New.
11838 (pchf_compare): New.
11839 (check_file_against_entries): New.
11840 * cpphash.h (_cpp_save_file_entries): Prototype.
11841 (_cpp_read_file_entries): Prototype.
11842 * cpppch.c (cpp_write_pch_state): Write the list of headers.
11843 (cpp_read_state): Read the list of headers.
11845 2004-01-17 Jan Hubicka <jh@suse.cz>
11847 * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
11848 builtin_expect specially.
11849 * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
11850 (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
11851 * invoke.texi (max-inline-insns-single): Set to 100.
11852 (large-function-insns): Set to 3000.
11854 2004-01-16 Eric Christopher <echristo@redhat.com>
11855 Chandrakala Chavva <cchavva@redhat.com>
11857 * cppcharset.c (one_iso88591_to_utf8): New function.
11858 (convert_iso88591_utf8): Ditto. Use.
11859 (conversion_tab): Use.
11860 (_cpp_input_to_utf8): New function.
11861 (_cpp_init_iconv_buffer): Ditto.
11862 (_cpp_close_iconv_buffer): Ditto.
11863 * cpphash.h: Prototype new functions.
11864 (cpp_buffer): Add input_cset_desc.
11865 * cppinit.c: Add input_charset default.
11866 * cpplib.c (cpp_push_buffer): Support init and
11868 * cpplib.h (cpp_options): Add input_charset.
11870 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
11872 * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
11873 * config/alpha/unicosmk.h: Remove a commented-out definition
11874 of ASM_OUTPUT_SECTION_NAME.
11875 * config/stormy16/stormy16.h: Likewise.
11877 2004-01-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11879 * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
11880 (alpha___extern_prefix_sys_stat): ... this.
11881 Apply to <sys/mount.h>, too.
11882 Tweak to match more variations.
11883 * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
11885 * fixinc/inclhack.def (alpha___extern_prefix,
11886 alpha___extern_prefix_standards): New hacks to obey
11887 __PRAGMA_EXTERN_PREFIX.
11888 * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
11890 * fixinc/tests/base/standards.h: Likewise.
11892 * fixincl/inclhack.def (alpha_pthread): Tweak to match more
11895 * fixinc/tests/base/pthread.h: Handle it.
11897 * fixincl/inclhack.def (bad_lval): Sort file list.
11898 Add many missing files up to Tru64 UNIX V5.1B.
11899 * gcc/fixinc/tests/base/libgen.h: Renamed to ...
11900 * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
11903 * fixinc/fixincl.x: Regenerate.
11905 2004-01-16 Mark Mitchell <mark@codesourcery.com>
11907 * version.c (version_string): Change to 3.5.0.
11908 * doc/include/gcc-common.texi (version-GCC): Likewise.
11910 2004-01-16 Jan Hubicka <jh@suse.cz>
11912 * i386.md (load_tp_di): Fix pasto.
11915 * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
11917 * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
11918 pp_c_character_constant, pp_c_floating_constant,
11919 pp_c_additive_expression, pp_c_shift_expression,
11920 pp_c_equality_expression, pp_c_and_expression,
11921 pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
11922 pp_c_logical_and_expression): Remove inline modifier.
11923 * dwarf2out.c (get_AT): Likewise.
11924 * et-forest.c (et_splay): Likewise.
11925 * ra.h (ra_alloc, ra_calloc): Likewise
11927 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
11929 * config/frv/frv-protos.h: Fix comment formatting.
11930 * config/frv/frv.c: Likewise.
11931 * config/frv/frv.h: Likewise.
11932 * config/frv/frv.md: Likewise.
11933 * config/frv/frvbegin.c: Likewise.
11934 * config/frv/frvend.c: Likewise.
11936 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
11938 * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
11939 * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
11940 LINKER_DOES_NOT_WORK_WITH_DWARF2.
11941 (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
11943 2004-01-16 J"orn Rennecke <joern.rennecke@superh.com>
11946 * postreload.c (reload_cse_simplify_operands): Don't remove
11947 implicit extension from LOAD_EXTEND_OP.
11949 2004-01-16 Jan Hubicka <jh@suse.cz>
11952 * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
11954 * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
11955 rtl_try_redirect_by_replacing_branch): Likewise.
11957 2004-01-15 Geoffrey Keating <geoffk@apple.com>
11960 * alias.c (struct alias_set_entry): Mark for GC.
11961 (alias_sets): Make static, mark for GC.
11962 (record_alias_subset): Use GC to allocate alias structures.
11963 * varray.c (element): Make generic varrays GCed.
11966 * c-typeck.c (constructor_asmspec): Delete.
11967 (struct initializer_stack): Delete field 'asmspec'.
11968 (start_init): Delete saving of asmspec.
11969 (finish_init): Don't update constructor_asmspec.
11970 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11971 * stmt.c (expand_asm): Duplicate strings from tree.
11972 (expand_asm_operands): Likewise.
11973 * tree.c (tree_size): Update computation of size of STRING_CST.
11974 (make_node): Don't make STRING_CST nodes.
11975 (build_string): Allocate string with tree node.
11976 * tree.def (STRING_CST): Update comment.
11977 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11978 (tree_string): Place contents of string in tree node.
11979 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11982 * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
11985 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
11987 * c-common.h: Fix comment formatting.
11988 * c-cppbuiltin.c: Likewise.
11989 * c-pragma.c: Likewise.
11990 * calls.c: Likewise.
11991 * collect2.c: Likewise.
11992 * cppcharset.c: Likewise.
11993 * cpptrad.c: Likewise.
11994 * dbxout.c: Likewise.
11995 * defaults.h: Likewise.
11996 * dwarf2out.c: Likewise.
11997 * fold-const.c: Likewise.
11998 * genautomata.c: Likewise.
11999 * genconditions.c: Likewise.
12000 * genflags.c: Likewise.
12001 * gengtype.c: Likewise.
12002 * integrate.c: Likewise.
12003 * loop.c: Likewise.
12004 * predict.c: Likewise.
12005 * sdbout.c: Likewise.
12007 2004-01-15 Zack Weinberg <zack@codesourcery.com>
12009 * config/ia64/ia64.md (*movti_internal): C output template
12010 extracted to ia64.c.
12011 (*movti_internal_reg): Delete.
12012 (reload_inti, reload_outti): Use the correct mode on operand 2
12013 in the first place, don't fix it up in the output template.
12014 (movtf, reload_ointf, reload_outtf): New expanders.
12015 (*movtf_internal): New define_insn_and_split.
12016 * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
12017 make static; do not hand TFmode CONST_DOUBLEs to split_double.
12018 (ia64_split_tmode_move): New function, body mostly pulled
12019 from ia64.md:*movti_internal.
12020 (ia64_function_arg_words): New function, extracted common
12021 logic from ia64_function_arg et seq.
12022 (ia64_function_arg_offset): Likewise. Handle correctly the
12023 case of a scalar quantity 16 bytes wide with only 8-byte alignment.
12024 (ia64_function_arg, ia64_function_arg_partial_nregs)
12025 (ia64_function_arg_advance): Use ia64_function_arg_words and
12026 ia64_function_arg_offset.
12027 (ia64_function_value): TCmode does not go in float regs.
12028 (ia64_secondary_reload_class): Also handle TFmode.
12029 * config/ia64/ia64-protos.h: Remove prototype for
12030 ia64_split_timode; add prototype for ia64_split_tmode_move.
12032 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
12034 * Makefile.in (MAINT): Make it an immediate assignment.
12036 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
12038 * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
12040 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
12042 * config/h8300/coff.h: Replace Hitachi with Renesas.
12043 * config/h8300/elf.h: Likewise.
12044 * config/h8300/h8300-protos.h: Likewise.
12045 * config/h8300/h8300.c: Likewise.
12046 * config/h8300/h8300.h: Likewise.
12047 * config/h8300/h8300.md: Likewise.
12048 * config/h8300/lib1funcs.asm: Likewise.
12050 2004-01-15 Andrew Pinski <apinski@apple.com>
12052 * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
12055 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
12057 * config/h8300/h8300.c (h8300_return_in_memory): New.
12058 (TARGET_STRUCT_VALUE_RTX): Likewise.
12059 (TARGET_RETURN_IN_MEMORY): Likewise.
12060 * config/h8300/h8300.h (STRUCT_VALUE): Remove.
12061 (RETURN_IN_MEMORY): Likewise.
12063 2004-01-15 Richard Earnshaw <rearnsha@arm.com>
12065 PR optimization/13375
12066 * gcse.c (handle_avail_expr): Just return if the source is not a
12069 2004-01-15 Richard Earnshaw <rearnsha@arm.com>
12070 Daniel Jacobowitz <drow@mvista.com>
12072 * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
12074 (ARM_FUNC_ALIAS): New macro.
12075 * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
12076 * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
12078 2004-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12080 PR optimization/12372
12081 * calls.c (expand_call): Add call_fusage data for stack arguments in
12084 2004-01-15 Alan Modra <amodra@bigpond.net.au>
12086 * config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static.
12087 (rs6000_elf_declare_function_name): Formatting.
12088 * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
12090 2004-01-15 Jan Hubicka <jh@suse.cz>
12093 * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
12096 2004-01-15 Richard Henderson <rth@redhat.com>
12098 * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
12099 integer regs of the same call-savedness.
12101 2004-01-15 Andreas Schwab <schwab@suse.de>
12104 * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
12105 status for NOTB/NOTW/NEGW methods.
12107 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
12109 * doc/invoke.texi: Update dump file names. Fix a typo.
12111 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
12113 * builtins.c (expand_builtin_va_end): Don't use
12114 EXPAND_BUILTIN_VA_END.
12115 * system.h (EXPAND_BUILTIN_VA_END): Poison.
12116 * config/d30v/d30v.h: Remove a commented-out definition of
12117 EXPAND_BUILTIN_VA_END.
12118 * config/stormy16/stormy16.h: Likewise.
12120 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
12122 * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
12123 * targhooks.c (default_struct_value_rtx): Don't use
12124 STRUCT_VALUE_INCOMING_REGNUM.
12126 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
12129 * configure.in: Revamp enable-generated-files-in-srcdir rule to define
12130 GENINSRC and not parsedir. Define srcextra as a langhook.
12131 * configure: Regenerate.
12132 * Makefile.in: Suppress default .l.c rule. Don't substitute
12133 parsedir and delete all references throughout. Conditionally define
12134 rule for srcextra dependent on GENINSRC.
12135 (stmp-docobjdir): Delete.
12136 (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
12137 (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
12138 and gengtype-yacc.h back to source directory.
12139 (maintainer-clean): Delete all parse files in source directory.
12140 (distclean): Delete generated files.
12142 * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
12143 (objc-parse.c, objc-parse.y): Don't use parsedir.
12144 (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
12145 directory if requested.
12146 (po-generated): Don't use parsedir.
12147 (objc.maintainer-clean): Delete above files from source directory.
12149 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
12151 * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
12153 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
12155 * doc/tm.texi: Replace RETURN_IN_MEMORY with
12156 TARGET_RETURN_IN_MEMORY.
12158 2004-01-15 Jan Hubicka <jh@suse.cz>
12160 * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
12161 * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
12162 functions accepting SSE arguments
12163 (function_arg): Warn only when asked to warn.
12164 * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
12166 2004-01-14 Joseph S. Myers <jsm@polyomino.org.uk>
12168 * c-parse.in (stmts_and_decls): Make label at end of compound
12169 statement a hard error.
12171 2004-01-14 Jan Hubicka <jh@suse.cz>
12173 * cgraph.c (create_edge): Use local.redefined_extern_inline.
12174 * cgraph.h (cgraph_local_info): Sort fields by size; add
12175 redefined_extern_inline
12176 (cgraph_global_info): Sort fields by size.
12177 (cgraph_node): Likewise.
12178 * cgraphunit.c (cgraph_finalize_function): Se
12179 local.redefined_extern_inline on redefinition.
12180 (cgraph_analyze_function): Use it; fix formating.
12182 2004-01-14 Jan Hubicka <jh@suse.cz>
12185 * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
12186 outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
12188 (cache_size): New variable
12189 (add_dependence): Update use; canonize early memory locations
12190 (sched_analyze_1): Likewise.
12191 (sched_analyze_2): Likewise.
12192 (init_dependency_caches): Initialize bitmaps.
12193 (free_dependency_caches): Free bitmaps
12195 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
12197 * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
12198 targetm.calls.strict_argument_naming().
12199 * target.h: Likewise.
12201 2004-01-14 Richard Henderson <rth@redhat.com>
12204 * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
12207 2004-01-14 Richard Henderson <rth@redhat.com>
12210 * except.c (struct eh_region): Add u.fixup.resolved.
12211 (resolve_one_fixup_region): Split out from ...
12212 (resolve_fixup_regions): ... here.
12214 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
12216 * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
12218 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
12220 * config/alpha/alpha.h (STRUCT_VALUE): Remove.
12221 * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
12222 (STRUCT_VALUE): Remove.
12224 2004-01-14 Steven Bosscher <stevenb@suse.de>
12226 * system.h: Poison PROMOTED_MODE
12227 * integrate.c (expand_inline_function): Don't mention the
12229 * loop.c (update_giv_derive): Same.
12230 * tree.h (DECL_RTL): Same.
12232 2004-01-14 J"orn Rennecke <joern.rennecke@superh.com>
12235 * sh.c (gen_block_redirect): Add special handling of RETURN.
12236 (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
12237 far branch target (i.e. it's a return).
12239 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
12241 * regrename.c (find_oldest_value_reg): Fix a warning.
12243 2004-01-14 Richard Earnshaw <rearnsha@arm.com>
12246 * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
12247 Move linux-gas.h and linux-elf.h before aout.h.
12248 * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
12249 * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
12251 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
12253 * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
12254 (CONST_INT, VOIDmode, ...).
12256 2004-01-14 Richard Earnshaw <rearnsha@arm.com>
12258 * regrename.c (find_oldest_value_reg): If the replacement uses
12259 multiple hard registers, check that all of them are in CLASS.
12261 2004-01-14 Jan Hubicka <jh@suse.cz>
12263 * alias.c (get_alias_set): Initialize alias set to 0 when subset is
12266 2004-01-14 Kelley Cook <kcook@gcc.gnu.org>
12268 * Makefile.in: Define MAINT from --enable-maintainer-mode.
12270 2004-01-14 Hartmut Penner <hpenner@de.ibm.com>
12272 * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
12273 Calculate always vrsave_mask if TARGET_ALTIVEC.
12274 (rs6000_emit_prologue): Emit code for vrsave
12275 only if TARGET_ALTIVEC_VRSAVE.
12276 (rs6000_emit_epilogue): Likewise.
12278 2004-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
12280 * config/sparc/sparc.md (tie_add32): Fix pasto.
12281 (tie_add64): Likewise.
12283 2004-01-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
12285 * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
12287 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
12289 * config/iq2000/iq2000-protos.h: Fix comment formatting.
12290 * config/iq2000/iq2000.c: Likewise.
12291 * config/iq2000/iq2000.md: Likewise.
12293 2004-01-14 J. Brobecker <brobecker@gnat.com>
12295 * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
12296 (subrange_type_die): Add handle for nameless subrange types.
12298 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
12300 * config/h8300/h8300-protos.h: Replace do_movsi with
12301 h8300_expand_movsi.
12302 * config/h8300/h8300.c (do_movsi): Change to
12303 h8300_expand_movsi.
12304 * config/h8300/h8300.md (movsi): Replace do_movsi with
12305 h8300_expand_movsi.
12308 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
12310 * config/h8300/h8300.c (dosize): Change to
12311 h8300_emit_stack_adjustment. Update callers.
12313 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
12315 * config/h8300/h8300.md (movstrictqi): Add an alternative with
12316 the source being post_inc. Tighten the predicate for the
12317 destination to register_operand.
12318 (movstricthi): Likewise.
12320 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
12322 * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
12323 * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
12324 * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
12326 2004-01-14 Jan Hubicka <jh@suse.cz>
12328 Partial fix PR c++/12850
12329 * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
12330 at zero nest level.
12332 2004-01-13 Bernardo Innocenti <bernie@develer.com>
12334 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
12337 2004-01-13 Devang Patel <dpatel@apple.com
12340 * dbxout.c (dbxout_symbol_name): Emit mangled names for
12341 NAMESPACE_DECL memebers.
12343 2004-01-13 Andrew Pinski <pinskia@physics.uc.edu>
12346 * c-common.c (finish_fname_decls): Use the chain only if the
12347 tree is an expr_stmt.
12349 2004-01-13 Vladimir Makarov <vmakarov@redhat.com>
12351 * rtl.def: Add comment about new option in automata_option.
12353 * genautomata.c (PROGRESS_OPTION): New macro.
12354 (progress_flag): New global variable.
12355 (gen_automata_option): Process `progress'.
12356 (transform_insn_regexps, check_unit_distributions_to_automata,
12357 make_automaton, NDFA_to_DFA, build_automaton, create_automata,
12358 expand_automata, write_automata): Print about the progress only if
12359 progress_flag. Remove fflush.
12360 (initiate_automaton_gen): Process command line flag `-progress'.
12362 * doc/md.texi: Describe the new option.
12364 2004-01-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
12366 * cfg.c (dump_bb): Dump entry edges.
12368 2004-01-13 Richard Earnshaw <rearnsha@arm.com>
12370 * arm.c (thumb_legitimate_address_p): Only allow constant pool
12371 references from SImode.
12372 * arm.md (thumb_movhi_insn): Don't allow minipool references.
12374 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
12376 * system.h (TEXT_SECTION): Poison.
12377 * varasm.c (text_section): Don't use TEXT_SECTION.
12378 * config/sh/sh.c (sh_file_start): Fix a comment typo.
12379 * doc/tm.texi (TEXT_SECTION): Remove.
12381 2004-01-13 Ben Elliston <bje@wasabisystems.com>
12383 * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
12385 2004-01-12 James E Wilson <wilson@specifixinc.com>
12387 * unwind-libunwind.c: Delete.
12389 2004-01-12 Zack Weinberg <zack@codesourcery.com>
12392 * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
12393 oldtype is set, set *newtypep or *oldtypep too. Do not set
12394 them at the very end.
12395 (validate_proto_after_old_defn): Restructure for comprehensibility;
12396 make error messages clearer.
12398 2004-01-12 Zack Weinberg <zack@codesourcery.com>
12400 * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
12401 (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
12402 * varray.c: No need to prototype error.
12403 (varray_check_failed): Wrap long string onto two lines.
12404 (varray_underflow): New function.
12406 2004-01-13 Steven Bosscher <stevenb@suse.de>
12409 * function.h (struct function): Kill `name' field.
12410 (current_function_name): Make it an extern function.
12411 * function.c (current_function_name): New function.
12412 * graph.c: Update all uses of current_function_name.
12413 * gcse.c: Likewise.
12414 * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
12415 config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
12416 * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
12417 instead of a strcmp with "main".
12419 2004-01-13 Jan Hubicka <jh@suse.cz>
12421 * c-decl.c (diagnose_mismatched_decls): Fix warning calls.
12423 * cgraphunit.c (cgraph_optimize_function): Always do
12424 optimize_inline_calls when there is always_inline callee.
12425 (cgraph_decide_inlining): Fix formating.
12426 * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
12428 (expand_call_inline): Likewise.
12429 * toplev.h (sorry): Fix prototype.
12431 2004-01-12 Roger Sayle <roger@eyesopen.com>
12433 * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
12434 conditional jumps that drop through to unconditional jumps or the
12435 end of the sequence.
12437 2004-01-13 Jan Hubicka <jh@suse.cz>
12439 * alias.c (new_alias_set): Construct the alias_set varray.
12440 (init_alias_once): Don't do it here.
12442 2004-01-12 Marc Espie <espie@openbsd.org>
12444 * system.h: handle YYBYACC like YYBISON.
12446 2004-01-12 Jonathan Merriman <jonm@dualitymedia.com>
12449 * config.gcc: No longer includes conflicting header sparc/sol2.h when
12450 building on sparc64-*-openbsd*.
12452 2004-01-12 Andrew Pinski <pinskia@physics.uc.edu>
12455 * dbxout.c (dbxout_type): Protected inheritance is not
12456 private but protected.
12458 2004-01-12 Richard Sandiford <rsandifo@redhat.com>
12460 * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
12462 2004-01-12 Kazu Hirata <kazu@cs.umass.edu>
12464 PR optimization/12508.
12465 * combine.c (try_combine): Remove a dead set in a parallel
12466 even if its destination is a subreg.
12469 2003-06-03 Kazu Hirata <kazu@cs.umass.edu>
12470 * combine.c (simplify_set): Don't move a subreg in SET_SRC to
12471 SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
12473 2004-01-12 Geoffrey Keating <geoffk@apple.com>
12475 * real.c: Update copyright date.
12476 * emit-rtl.c: Likewise.
12478 * dwarf2out.c: Likewise.
12479 * config/rs6000/darwin-ldouble.c: Likewise.
12480 * config/rs6000/rs6000.md: Likewise.
12482 2004-01-12 David Edelsohn <edelsohn@gnu.org>
12484 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
12485 TFmode to SImode libfuncs.
12487 2004-01-12 Roger Sayle <roger@eyesopen.com>
12489 PR middle-end/11397
12490 * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
12492 2004-01-12 Jan Hubicka <jh@suse.cz>
12495 * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
12499 * cfgcleanup.c (label_is_jump_target_p): Move to...
12500 * rtlanal.c (label_is_jump_target_p): ... here.
12501 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Fix redirecting of fallthru
12502 edges unified with branch edges.
12504 2004-01-12 Richard Earnshaw <rearnsha@arm.com>
12506 * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
12507 high word of an integral CONST_DOUBLE.
12509 2004-01-12 Paul Brook <paul@codesourcery.com>
12511 * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
12513 2004-01-12 J"orn Rennecke <joern.rennecke@superh.com>
12516 * sh-protos.h (check_use_sfunc_addr): Declare.
12517 * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
12518 * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
12520 2004-01-12 Jan Hubicka <jh@suse.cz>
12522 * alias.c: Invlude varray.h
12523 (alias_sets): Turn into varray.
12524 (get_alias_set_entry): Use VARRAY; mark inline.
12525 (mems_in_disjoint_alias_sets_p): Mark inline.
12526 (record_alias_subset): Use varray.
12527 (init_alias_once): Initialize varray.
12528 (new_alias_set): Grow array.
12529 * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
12531 2004-01-12 Jan Hubicka <jh@suse.cz>
12533 Partial fix for PR opt/10776 II
12534 * cselib.c: Include params.h
12535 (cselib_invalidate_mem): Limit amount of nonconflicting memory
12537 * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
12538 * Makefile.in (cselib.o): Depend on params.h
12540 2004-01-12 Richard Sandiford <rsandifo@redhat.com>
12542 * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
12543 simplify_unary_operation if the operand has a known mode.
12545 2004-01-12 Hartmut Penner <hpenner@de.ibm.com>
12548 * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
12549 predicate to handle 'ld' conform addresses.
12550 * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
12552 (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
12553 are memory contraints.
12554 * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
12556 * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
12557 Change 'o' to 'Y' constraint.
12558 (*movdf_softfloat64): Ditto.
12560 2004-01-12 Bernardo Innocenti <bernie@develer.com>
12562 * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
12563 brace-enclosed syntax in all C output statements.
12565 2004-01-12 David Edelsohn <edelsohn@gnu.org>
12568 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
12569 Objective-C language type value is 14.
12571 2004-01-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
12574 * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
12575 `int' in a number of places to make sure we always have a SImode
12576 and not a HImode. Add a 'L' suffix to a number of constants.
12578 2004-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12580 * pa.c: Don't include obstack.h.
12582 * pa.md: Correct constraint in pattern for loading PIC label address.
12584 2004-01-11 Kaz Kojima <kkojima@gcc.gnu.org>
12586 * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
12589 2004-01-11 Steven Bosscher <stevenb@suse.de>
12592 * toplev.c (rest_of_handle_inline): Also consider functions
12593 for deferral if the language is GNU F77.
12595 2004-01-11 Zack Weinberg <zack@codesourcery.com>
12597 * c-decl.c (diagnose_arglist_conflict): Add missing space to
12598 diagnostic messages.
12600 2004-01-11 Jakub Jelinek <jakub@redhat.com>
12602 PR middle-end/13392
12603 * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
12604 to drop through label. Don't fall back to SCC even when conditional
12605 jump has not been found.
12607 2004-01-11 Jan Hubicka <jh@suse.cz>
12609 * invoke.texi: Fix syntax error in previous patch.
12611 Partial fix for PR opt/10776
12612 * Makefile.in (reload.o): Include param.h
12613 * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
12614 * reload.c: Include params.h.
12615 (find_equiv_reg): Work limiting check.
12616 * invoke.texi: Document.
12618 2004-01-11 Richard Sandiford <rsandifo@redhat.com>
12620 * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
12621 out-of-bounds accesses to string constants. Simplify mips16
12624 2004-01-11 Richard Sandiford <rsandifo@redhat.com>
12626 PR optimization/13469
12627 * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
12628 reload_cse_regs (-fnon-call-exceptions only).
12630 2004-01-11 Kazu Hirata <kazu@cs.umass.edu>
12632 * config/mcore/lib1.asm: Fix comment formatting.
12633 * config/mcore/mcore-elf.h: Likewise.
12634 * config/mcore/mcore.c: Likewise.
12635 * config/mcore/mcore.h: Likewise.
12636 * config/mcore/mcore.md: Likewise.
12638 2004-01-10 Zack Weinberg <zack@codesourcery.com>
12640 * c-decl.c (duplicate_decls): Break apart into...
12641 (diagnose_arglist_conflict, validate_proto_after_old_defn)
12642 (locate_old_defn, diagnose_mismatched_decls, merge_decls):
12643 ... these new functions. Restructure for comprehensibility.
12644 Remove various archaic special cases. Always report the
12645 location of the previous declaration when a diagnostic is issued.
12646 (redeclaration_error_message): Fold into diagnose_mismatched_decls.
12647 (match_builtin_function_types): Delete unnecessary forward declaration.
12649 2004-01-10 Zack Weinberg <zack@codesourcery.com>
12651 * genautomata.c (make_automaton, NDFA_to_DFA):
12652 Print progress bars with '.' characters instead of '*'.
12653 (build_automaton): Change notes to match.
12655 2004-01-10 Kazu Hirata <kazu@cs.umass.edu>
12657 * config/m32r/m32r.md: Use define_constants for unspec and
12660 2004-01-10 Jan Hubicka <jh@suse.cz>
12663 * expr.c (expand_expr_real): More curefully expand union casts.
12665 2004-01-10 Kazu Hirata <kazu@cs.umass.edu>
12667 * config/m32r/m32r.md (flush_icache): Use 1 for
12670 2004-01-10 David Edelsohn <edelsohn@gnu.org>
12671 James E Wilson <wilson@specifixinc.com>
12674 * dbxout.c (dbxout_symbol): Remove initialization of
12675 current_sym_code, current_sym_value, and current_sym_addr.
12676 (dbxout_symbol_location): Same.
12677 (dbxout_prepare_symbol): Zero current_sym_code,
12678 current_sym_value, and current_sym_addr.
12680 2004-01-10 Richard Sandiford <rsandifo@redhat.com>
12682 * tree.c (get_unwidened): Reorder conditions so that the null pointer
12683 check is done first.
12685 2004-01-09 Eric Christopher <echristo@redhat.com>
12687 * toplev.c (rest_of_handle_cfg): Add reg_scan pass
12688 if we're running mark_constant_function.
12690 2004-01-09 Jeff Bailey <jbailey@nisa.net>
12693 * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
12695 2004-01-09 Andrew Pinski <pinskia@physics.uc.edu>
12698 * dbxout.c (dbxout_type_fields): Return if any item is
12699 error_mark_node or the type is error_mark_node.
12701 2004-01-09 Geoffrey Keating <geoffk@apple.com>
12703 * config/rs6000/darwin-ldouble.c: Add big comment explaining
12704 exactly what is expected as a 'long double'.
12705 (_xlqadd): When a value to be returned is representable as a
12706 'double', just return it directly, do not construct it using a union.
12707 Also, correct final fixup.
12708 (_xlqmul): Likewise.
12709 (_xlqdiv): Likewise.
12710 * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
12712 * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
12714 2004-01-09 Richard Henderson <rth@redhat.com>
12716 * recog.c (constrain_operands): Validate mem operands.
12718 2004-01-09 James E Wilson <wilson@specifixinc.com>
12720 * gcc.c (init_spec): Remove -lunwind from shared case.
12721 * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
12723 2004-01-09 Steve Ellcey <sje@cup.hp.com>
12725 * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
12726 * configure: Regenerate
12728 2004-01-09 Joseph S. Myers <jsm@polyomino.org.uk>
12731 * c-typeck.c (build_c_cast): If pedantic, warn for conversions
12732 between function and object pointers.
12733 (digest_init): When comparing a pointer to function type to the
12734 target type, only apply TREE_TYPE once to the pointer to function
12736 * except.c (for_each_eh_label_1): Treat data as a pointer to a
12737 function pointer rather than casting it to a function pointer.
12738 (for_each_eh_label): Update caller.
12739 * recog.h (struct insn_data): Use a struct or union for output.
12740 * genoutput.c (output_insn_data): Update.
12741 * final.c (get_insn_template): Update.
12743 2004-01-09 Mark Mitchell <mark@codesourcery.com>
12745 * expr.h (expand_expr): Make it a macro, not a function.
12746 (expand_expr_real): New function.
12747 * expr.c (store_expr): Adjust logic for deciding whether or not to
12748 copy the value returned by expand_expr.
12749 (expand_expr): Rename to ...
12750 (expand_expr_real): ... this. Add alt_rtl parameter. Adjust
12751 calls to language hooks.
12752 * c-common.h (c_expand_expr): Adjust prototype.
12753 * c-common.c (c_expand_expr): Add alt_rtl parameter.
12754 * langhooks-def.h (lhd_expand_expr): Change prototype.
12755 * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
12756 * langhooks.h (lang_hooks): Change type of expand_expr.
12757 * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
12758 (last_expr_alt_rtl): Likewise.
12759 (expand_expr_stmt_value): Set last_expr_alt_rtl.
12760 (clear_last_expr): Clear it.
12761 (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
12762 (expand_end_bindings): Save and restor last_expr_alt_rtl.
12763 * tree.def (RTL_EXPR): Give it an additional operand.
12764 * tree.h (RTL_EXPR_ALT_RTL): New macro.
12766 2004-01-09 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
12768 * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
12769 * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
12771 2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
12774 * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
12775 or (ne:SI (reg:CC 17) (const_int 0)).
12776 Be specific about modes wherever possible.
12778 2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
12780 * config/m32r/m32r.c (m32r_expand_block_move): Call
12781 gen_movestrsi_internal with two more arguments.
12782 (m32r_output_block_move): Adjust operand numbers.
12783 Properly update the source and destination pointers.
12784 * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
12785 'r+'. Change the set detinations to match_operand.
12787 2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
12789 * final.c (FIRST_INSN_ADDRESS): Remove.
12790 (shorten_branches): Don't use FIRST_INSN_ADDRESS.
12791 * system.h (FIRST_INSN_ADDRESS): Poison.
12792 * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
12793 * config/m32r/m32r-protos.h: Remove the prototype for
12794 m32r_first_insn_address.
12795 * config/m32r/m32r.c (m32r_first_insn_address): Remove.
12796 * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
12797 * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
12799 2004-01-09 J. Brobecker <brobecker@gnat.com>
12801 * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
12803 (is_ada_subrange_type): DIEs for enumeration subtypes should be
12804 emitted as subrange types too.
12805 (subrange_type_die): Add handling of enumeration subtypes.
12807 2004-01-08 Richard Henderson <rth@redhat.com>
12810 Revert: Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
12811 * i386.c (aligned_operand): Be prepared for SUBREGed registers.
12812 (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
12813 (ix86_address_cost): Be prepared for SUBREGed registers.
12814 (legitimate_address_p): Accept SUBREGed registers.
12816 2004-01-08 Kelley Cook <kcook@gcc.gnu.org>
12818 * Makefile.in: Rename configure.in to configure.ac
12819 * doc/sourcebuild.texi: Likewise.
12820 * configure: Regenerate.
12821 * config.in: Regenerate.
12823 2004-01-08 Stuart Hastings <stuart@apple.com>
12825 * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
12827 2004-01-08 Jan Hubicka <jh@suse.cz>
12829 * cgraphunit.c (cgraph_decide_inlining): Fix typo.
12831 2004-01-08 Geoffrey Keating <geoffk@apple.com>
12833 * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
12834 (UNSPEC_FIX_TRUNC_TF): New constant.
12835 (movtf_internal): Make splitter active only when insn is active.
12836 (extenddftf2): Rewrite to properly load zero into low part.
12837 (extenddftf2_internal): New.
12838 (extendsftf2): Rewrite.
12839 (truncdftf2): Correct length.
12840 (floatditf2): Delete.
12841 (fix_trunc_helper): New.
12842 (fix_trunctfdi2): Use fix_trunc_helper.
12843 (fix_trunctfsi2): Likewise.fix_trunc
12844 (fix_trunctfsi2_internal): New.
12846 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
12847 addresses are legitimate on Darwin even when flag_pic.
12848 (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
12849 non-offsettable addresses for loads of TFmode constants.
12851 2004-01-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
12853 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
12854 variables in the appropriate bss section.
12856 2004-01-09 Alan Modra <amodra@bigpond.net.au>
12858 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
12859 target_flags has MASK_POWERPC64 when -m64.
12860 * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
12861 to 620, 630, power3, power4 and rs64a entries.
12862 * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
12864 2004-01-08 Richard Sandiford <rsandifo@redhat.com>
12866 * simplify-rtx.c (simplify_immed_subreg): Fix construction of
12867 floating-point constants.
12869 2004-01-08 J. Brobecker <brobecker@gnat.com>
12871 * dwarf2out.c (subrange_type_die): Add context_die parameter.
12872 Create the subrange_type DIE using the given context DIE.
12873 (modified_type_die): Update call to subrange_type_die.
12875 2004-01-08 Zack Weinberg <zack@codesourcery.com>
12877 * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
12878 Add multiple-include guard.
12880 2004-01-08 Hartmut Penner <hpenner@de.ibm.com>
12882 * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
12883 all vector constant loadable by vsplt*.
12884 (output_vec_const_move): Likewise.
12886 2004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
12889 * c-typeck.c (comptypes): Only treat enumerated types in the same
12890 translation unit as compatible with each other when they are the
12892 * doc/extend.texi: Update.
12894 2004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
12897 * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
12898 array type from the array element type.
12900 2004-01-07 Alan Modra <amodra@bigpond.net.au>
12902 * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
12903 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
12904 * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
12905 (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
12906 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
12908 2004-01-06 Eric Christopher <echristo@redhat.com>
12910 * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
12911 (DWARF2_DEBUGGING_INFO): Define.
12912 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
12913 * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
12914 * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
12916 (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
12917 * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
12918 * config/mips/iris5gas.h: Ditto.
12919 (DBX_DEBUGGING_INFO): Remove.
12920 (DWARF2_DEBUGGING_INFO): Ditto.
12921 (MIPS_DEBUGGING_INFO): Ditto.
12922 (PREFERRED_DEBUGGING_TYPE): Ditto.
12923 * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
12924 (PREFERRED_DEBUGGING_TYPE): Ditto.
12925 (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
12926 * config/mips/elf64.h: Ditto.
12928 2004-01-06 Jan Hubicka <jh@suse.cz>
12930 * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
12931 (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
12933 2004-01-06 Geoffrey Keating <geoffk@apple.com>
12935 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
12936 (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
12937 * config/rs6000/darwin-ldouble.c: New.
12939 * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
12941 (constant_subword): Delete.
12942 * rtl.h (constant_subword): Delete prototype.
12943 (immed_double_const): Is not in varasm.c.
12944 * simplify-rtx.c (simplify_immed_subreg): New.
12945 (simplify_subreg): Use simplify_immed_subreg.
12947 * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
12948 than trying to generate RTL directly.
12949 (fix_trunctfsi2): Use expand_fix rather than trying to generate
12952 * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
12954 2004-01-06 David Edelsohn <edelsohn@gnu.org>
12956 * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
12957 function into a separate macro.
12958 (read_only_data_section): Add void argument.
12959 (private_data_section): Same.
12960 (read_only_private_data_section): Same.
12961 (toc_section): Same.
12963 2004-01-06 Jan Hubicka <jh@suse.cz>
12965 * invoke.texi: Remove typo in last change.
12968 * config.gcc: Accept opteron and athlon-64 as variants
12970 * i386.c (override_options): Likewise.
12971 * invoke.texi (i386 -mtune): Expand documentation.
12973 2004-01-06 Kazu Hirata <kazu@cs.umass.edu>
12975 * alias.c: Fix comment typos.
12976 * builtins.c: Likewise.
12979 * dominance.c: Likewise.
12980 * dwarf2out.c: Likewise.
12981 * emit-rtl.c: Likewise.
12982 * expr.c: Likewise.
12983 * final.c: Likewise.
12984 * fold-const.c: Likewise.
12985 * gcse.c: Likewise.
12986 * genattrtab.c: Likewise.
12987 * genrecog.c: Likewise.
12988 * gensupport.c: Likewise.
12989 * ggc-zone.c: Likewise.
12990 * integrate.c: Likewise.
12991 * local-alloc.c: Likewise.
12992 * loop.c: Likewise.
12993 * recog.c: Likewise.
12994 * regmove.c: Likewise.
12995 * reg-stack.c: Likewise.
12996 * reorg.c: Likewise.
12997 * rtlanal.c: Likewise.
12999 * sched-ebb.c: Likewise.
13000 * simplify-rtx.c: Likewise.
13001 * toplev.c: Likewise.
13002 * varasm.c: Likewise.
13004 2004-01-06 Kazu Hirata <kazu@cs.umass.edu>
13006 * doc/install.texi: Fix typos.
13007 * doc/invoke.texi: Likewise.
13008 * doc/md.texi: Likewise.
13010 2004-01-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
13012 * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
13014 2004-01-06 Jan Hubicka <jh@suse.cz>
13016 * i386.c (init_cumulative_args): Add handling of MMX_REGPARM.
13017 (function_arg_advance): Do not pass aggregates in SSE; deal handling
13019 (function_arg): Add new warnings about ABI changes; fix SSE_REGPARM;
13021 * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
13022 (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
13023 (MMX_REGPARM_MAX): Similarly for -mmmx.
13025 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
13027 * config/sh/linux.h: Fix comment formatting.
13028 * config/sh/netbsd-elf.h: Likewise.
13029 * config/sh/sh.c: Likewise.
13030 * config/sh/sh.h: Likewise.
13031 * config/sh/vxworks.h: Likewise.
13033 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
13035 * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
13036 * toplev.c (output_file_directive): Don't use
13037 ASM_OUTPUT_MAIN_SOURCE_FILENAME.
13039 2004-01-05 Steven Bosscher <s.bosscher@student.tudelft.nl>
13041 * toplev.c: Fix broken checkin of 2003-12-30.
13043 2004-01-05 Daniel Berlin <dberlin@dberlin.org>
13045 * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
13046 (USING_MMAP): We don't support non-mmap.
13047 (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
13049 (struct page_entry): Remove bytes_free.
13050 (struct page_table_chain): Remove.
13051 (struct globals): Remove page_table member.
13052 (loookup_page_table_entry): Function deleted.
13053 (set_page_table_entry): Ditto.
13054 (ggc_allocated_p): No longer need page table lookups.
13055 (ggc_marked_p): Ditto.
13056 (alloc_small_page): Don't care about bytes_free anymore.
13057 (alloc_large_page): Round up size.
13058 (ggc_alloc_zone_1): Mark large objects as such, and calculate
13059 their size the new way.
13060 Remove page table lookups and setting.
13061 (ggc_get_size): Calculate large object size the new way.
13062 (sweep_pages): Redo to account for fact that we no longer have
13064 (ggc_collect): No longer need to reincrement bytes_free.
13065 (ggc_pch_alloc_object): Handle new large objects properly.
13066 (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
13068 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
13070 * doc/invoke.texi: Remove a page break.
13072 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
13074 * config/avr/avr.c (avr_output_function_prologue): Remove an
13075 extra pair of curly braces.
13077 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
13079 * config/mn10300/mn10300.c: Fix comment formatting.
13080 * config/mn10300/mn10300.h: Likewise.
13082 2004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13084 * tree.h: Update documentation on nothrow_flag.
13085 * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
13088 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
13090 * doc/invoke.texi: Remove traces of dead ports.
13092 2004-01-05 Richard Sandiford <rsandifo@redhat.com>
13094 * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
13097 2004-01-05 Richard Sandiford <rsandifo@redhat.com>
13100 * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
13102 * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
13103 (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
13104 string constants if TARGET_MIPS16. Use SYMBOL_REF_DECL to check
13105 the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
13106 (mips_symbol_insns): Don't trust the local/global classification.
13107 (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
13108 (override_options): Make -mabicalls -fno-unit-at-a-time imply
13109 -mno-explicit-relocs.
13110 (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
13111 between local and global symbols.
13113 2004-01-05 Richard Sandiford <rsandifo@redhat.com>
13115 * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
13116 (mips_preferred_reload_class): Declare.
13117 * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
13118 (EXTRA_CONSTRAINT): Update accordingly.
13119 (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
13120 * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
13121 (mips_preferred_reload_class): New function. Prefer LEA_REGS if
13122 mips_dangerous_for_la25_p.
13123 (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
13124 if mips_dangerous_for_la25_p.
13126 2004-01-05 Bernardo Innocenti <bernie@develer.com>
13128 * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
13131 2004-01-04 Nathanael Nerode <neroden@gcc.gnu.org>
13133 * configure.ac: Use AC_PROG_CPP_WERROR.
13134 * configure: Regenerate.
13136 2004-01-04 Zack Weinberg <zack@codesourcery.com>
13138 * .cvsignore: Add autom4te.cache.
13140 2004-01-04 Richard Sandiford <rsandifo@redhat.com>
13142 * doc/invoke.texi: Revamp documentation of MIPS options. Remove
13143 -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
13144 -m4650, -mfix7000 and -(m)no-crt0. Put endianness options first,
13145 then architecture options, then ABI options. General rewording.
13147 2004-01-04 Joseph S. Myers <jsm@polyomino.org.uk>
13150 * doc/extend.texi: Clarify definition of malloc attribute.
13152 2004-01-04 Jan Hubicka <jh@suse.cz>
13154 * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
13155 * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
13156 * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
13157 (cgraph_inline_p): Add extra argument reason.
13158 * cgraphunit.c: Minor formating fixes.
13159 cgraph_first_inlined_callee): New functions.
13160 (record_call_1): Record builtins too.
13161 (cgraph_analyze_function): Update inline_failed messages.
13162 (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
13163 cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
13164 (cgraph_check_inline_limits): Likewise; Add argument reason.
13165 (cgraph_set_inline_failed): New static function.
13166 (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
13168 (cgraph_inline_p): Add new argument reason.
13169 * tree-inline.c (expand_call_inline): Update warning.
13171 2004-01-03 Nathanael Nerode <neroden@gcc.gnu.org>
13173 * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
13174 with modern equivalents.
13175 * configure: Regenerate.
13177 * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
13178 * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
13179 * configure: Regenerate.
13181 * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
13183 * configure.in: Rename to configure.ac.
13184 * configure.ac: Renamed from configure.in; make minimum necessary
13185 changes for autoconf 2.5x.
13186 * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
13187 * configure: Regenerate with autoconf 2.57.
13189 2004-01-03 Kazu Hirata <kazu@cs.umass.edu>
13191 * config/mips/linux.h: Fix comment formatting.
13192 * config/mips/mips.c: Likewise.
13193 * config/mips/mips.h: Likewise.
13194 * config/mips/mips.md: Likewise.
13195 * config/mips/netbsd.h: Likewise.
13196 * config/mips/windiss.h: Likewise.
13198 2004-01-02 Richard Henderson <rth@redhat.com>
13200 * config/i386/i386.md (fp constant pool splitter): Reorg suppression
13201 for sse and 387; add suppression for mmx.
13203 2004-01-02 Andrew Pinski <pinskia@physics.uc.edu>
13205 * loop.c (loop_optimize): Free all loops_info's mems.
13207 * c-typeck.c (finish_init): Free spelling_base before
13210 * cfgloop.c (flow_loops_find): Always free the sbitmap
13213 * predict.c (estimate_probability): Free bbs after being
13216 2004-01-02 Kazu Hirata <kazu@cs.umass.edu>
13218 * config/mn10300/mn10300.h (PREDICATE_CODES): Add
13219 const_8bit_operand and call_address_operand.
13221 2004-01-02 Jan Hubicka <jh@suse.cz>
13223 * cgraphunit.c (cgraph_optimize_function): Call optimize_inline_calls
13224 when there is nothing to inline but warnings are requested.
13225 (cgraph_decide_inlining): Fix memory leak.
13227 2004-01-02 Jan Hubicka <jh@suse.cz>
13229 * expr.c (store_constructor): Fix pasto in previous patch.
13231 2004-01-02 Kazu Hirata <kazu@cs.umass.edu>
13233 * config/i386/cygming.h: Fix comment formatting.
13234 * config/i386/djgpp.h: Likewise.
13235 * config/i386/gthr-win32.c: Likewise.
13236 * config/i386/i386-interix.h: Likewise.
13237 * config/i386/i386.c: Likewise.
13238 * config/i386/i386.h: Likewise.
13239 * config/i386/openbsd.h: Likewise.
13240 * config/i386/winnt.c: Likewise.
13241 * config/i386/xm-mingw32.h: Likewise.
13243 2004-01-02 Joseph S. Myers <jsm@polyomino.org.uk>
13245 * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
13246 copyright and last modification dates.
13248 2004-01-02 Andreas Jaeger <aj@suse.de>, Gerald Pfeifer <gp@suse.de>
13250 * doc/install.texi (Specific): Mention x86_64.
13252 2004-01-01 Hans-Peter Nilsson <hp@bitrange.com>
13254 * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
13255 Call force_operand on plus_constant result.
13257 2004-01-01 Jan Hubicka <jh@suse.cz>
13259 * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
13260 * expr.c (store_constructor): Use vec_init pattern.
13261 * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
13262 * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
13263 (vec_set_optab, vec_extract_optab, vec_init_optab): New.
13264 * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
13266 (sse2_unpc?pd): Fix pattern.
13267 (sse2_movlpd): Kill.
13268 (sse2_movsd): Deal with movlpd too.
13269 * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
13270 (ix86_expand_vector_init): New.
13271 * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
13272 * md.texi (vec_set, vec_extract): Document
13274 2003-12-31 Jan Hubicka <jh@suse.cz>
13277 * recog.c (validate_replace_rtx_1): Take care for RTL sharing inside
13281 * toplev.c (dump_file_index): Reorder ce3 and bbro.
13282 (dump_file): Likewise.
13283 (rest_of_compilation): Likewise.
13286 * cgraph.c (cgraph_function_possibly_inlined): Even with
13287 flag_really_no_inline we inline always_inline functions.
13288 * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
13289 for non-always_inline functions when there is flag_really_no_inline.
13290 (cgraph_decide_inlining): Limit work done when not inlining.
13291 (cgraph_decide_inlining_incrementally): Likewise.
13292 (cgraph_optimize_function): Check whether something got inlined.
13293 * c-objc-common.c (c_disregard_inline_limits): Do not always inline
13294 extern inline functions when not inlining.
13296 * opts.c (decode_options): Disable crossjumping at -O1
13297 * invoke.texi (-O1): Document change.
13299 See ChangeLog.10 for earlier changes.