1 2005-03-31 Danny Smith <dannysmith@users.sourceforge.net>
3 Merge from csl-arm-branch.
4 2004-02-12 Mark Mitchell <mark@codesourcery.com>
6 * tlink.c (recompile_files): Do not assume that "rename" can
7 overwrite an existing file.
9 2005-03-31 Paolo Bonzini <bonzini@gnu.org>
11 * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
12 * gcc/configure: Regenerate.
14 2005-03-30 Alan Modra <amodra@bigpond.net.au>
16 * doc/install.texi: Update binutils requirement for powerpc*-linux.
18 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
20 * calls.c (struct arg_data): Update "partial" comment.
21 (load_register_parameters): Update "nregs" comment.
23 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
25 * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
26 (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
27 (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
28 (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
29 (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
30 (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
31 than target_flags & 0.
32 * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
33 (iq2000_arch, iq2000_parse_cpu): Delete.
34 (TARGET_HANDLE_OPTION): Override default.
35 (iq2000_handle_option): New function.
36 (override_options): Remove -march= and -mcpu= handling.
37 * config/iq2000/iq2000.opt: New file.
39 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
41 * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
42 * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
43 (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
44 (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
45 (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
46 (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
47 (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
48 (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
49 (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
50 (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
51 (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
52 (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
53 (c4x_rpts_cycles_string, c4x_cpu_version_string)
54 (TARGET_OPTIONS): Delete.
55 (c4x_rpts_cycles, c4x_cpu_version): Declare.
56 (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
57 (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
58 * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
59 (c4x_cpu_version_string): Delete.
60 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
61 (c4x_handle_option): New function. Map -m3x and -m4x options to the
62 equivalent -mcpu= option.
63 (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
64 Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
65 TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
66 or clearing the appropriate MASK_* bit.
67 (c4x_file_start): Use c4x_cpu_version.
68 * config/c4x/c4x.opt: New file.
70 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
72 * doc/options.texi: Document the new MaskExists flag.
73 * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
74 if the option has the MaskExists flag.
76 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
78 * opt-functions.awk (flag_set_p, test_flag): New functions.
79 (switch_flags): Use them.
80 * opth-gen.awk: Use flag_set_p to check for flags.
81 * optc-gen.awk: Likewise. Use opt_args to check for Init(...) flags.
83 2005-03-30 Ian Lance Taylor <ian@airs.com>
85 * config.host (i[34567]86-*-mingw32*): Don't set
86 host_can_use_collect2 to no.
88 2005-03-30 Alan Modra <amodra@bigpond.net.au>
91 * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
92 Remove convert_memory_address call duplicating that in memory_address.
94 2005-03-29 Richard Henderson <rth@redhat.com>
97 * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
98 (build_compound_literal): Likewise. Propagate decl type into the
100 (finish_decl): Likewise. Use new return value from complete_array_type
101 for zero sized arrays.
102 (complete_array_type): Move ...
103 * c-common.c (complete_array_type): ... here. Change first argument
104 to pointer-to-type-node. Consistently use sizetype for the index
105 except for zero sized arrays. Detect zero sized arrays for pedantic
106 mode diagnostics. Create a new type node instead of modifying the
108 * c-tree.h (complete_array_type): Move decl ...
109 * c-common.h (complete_array_type): ... here.
111 2005-03-29 Richard Henderson <rth@redhat.com>
114 * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
116 2005-03-29 Kazu Hirata <kazu@cs.umass.edu>
118 * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
119 debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
120 rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
121 tree-profile.c, tsystem.h, value-prof.h: Update copyright.
123 2005-03-29 Eric Christopher <echristo@redhat.com>
125 * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
126 truthvalue conversion removal.
128 2005-03-29 Ian Lance Taylor <ian@airs.com>
131 * collect2.c: Never include <vfork.h>.
132 (VFORK_STRING, vfork): Don't define.
133 (pid): Remove global variable.
134 (handler): Call raise instead of kill (getpid(), ...).
135 (collect_wait): Add pex parameter. Change all callers. Use
136 pex_get_status rather than pwait.
137 (do_wait): Add pex parameter. Change all callers.
138 (collect_execute): Return struct pex_obj * rather than void. Use
139 pex routines rather than pexecute.
140 (fork_execute): Get pex_obj from collect_execute, and pass it to
142 (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
143 Only declare quit_handler if SIGQUIT is defined.
144 (scan_libraries): Likewise.
145 * collect2.h (collect_execute): Update declaration.
146 (collect_wait): Update declaration.
147 * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
148 pass it to collect_wait.
150 2005-03-29 Joseph S. Myers <joseph@codesourcery.com>
153 * c-parser.c (c_parser_compound_statement_nostart): Give error
154 message for EOF instead of just setting parser->error.
156 2005-03-29 Dorit Naishlos <dorit@il.ibm.com>
158 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
159 (slpeel_update_phi_nodes_for_guard1): New function.
160 (slpeel_update_phi_nodes_for_guard2): New function.
161 (slpeel_tree_peel_loop_to_edge): Call above new functions instead
162 of slpeel_update_phi_nodes_for_guard.
163 (vectorize_loops): Remove call to loop_closed_rewrite.
164 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
167 2005-03-29 Richard Sandiford <rsandifo@redhat.com>
169 * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
170 (TARGET_LITTLE_ENDIAN): New macro.
171 * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
172 (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
173 (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
174 (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
175 (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
176 (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
177 (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
178 (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
179 (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
180 (TARGET_OPTIONS): Delete.
181 (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
182 (CACHE_FLUSH_TRAP): Turn into an integer.
183 (TARGET_LITTLE_ENDIAN): Define to 0 by default.
184 (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
185 -mflush-trap is in use.
186 * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
187 (m32r_cache_flush_trap_string): Delete.
188 (m32r_model) Initialize to M32R_MODEL_DEFAULT.
189 (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
190 (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
191 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
192 (m32r_handle_option): New function. Move -mflush-trap=, -mflush-func=,
193 -mmodel= and -msdata= handling from...
194 (m32r_init): ...here.
195 * config/m32r/m32r.opt: New file.
197 2005-03-29 Keith Besaw <kbesaw@us.ibm.com>
199 * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
200 (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
201 * tree-vect-analyze.c (vect_object_analysis): additional parm
202 pass back a "struct ptr_info_def *" with the points-to info.
203 (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
204 statement using info returned from vect_object_analysis.
205 * tree-vect-transform.c (update_vuses_to_preheader): New function.
206 (vect_create_data_ref_ptr): Remove updates to vars_to_rename
207 for virtual uses and defs when creating a replacement vector
208 reference. Call duplicate_ssa_name_ptr_info to define points-to
209 info for vector pointer replacement using STMT_VINFO_PTR_INFO.
210 (vectorizable_store): copy_virtual_operands and update
211 definition statements.
212 (vectorizable_load): copy_virtual_operands. Remove call to
213 mark_call_clobbered_vars_to_rename for call to "const" builtin.
214 * tree-vectorizer.c (vectorize_loops): Remove calls to
215 rewrite_into_ssa and bitmap_clear (vars_to_rename).
216 (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
217 * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
218 define macro STMT_VINFO_PTR_INFO for use in accessing.
219 * tree.h add export of duplicate_ssa_name_ptr_info.
220 * rs6000.c (altivec_init_builtins): Declare builtin function
221 __builtin_altivec_mask_for_load to be "const".
223 2005-03-29 Jakub Jelinek <jakub@redhat.com>
226 * cgraph.h (struct cgraph_varpool_node): Add alias field.
227 * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
228 assemble_variable on aliases.
229 * varasm.c (assemble_alias): Set node->alias.
230 * toplev.c (wrapup_global_declarations): Don't call
231 rest_of_decl_compilation on aliases again.
233 2005-03-29 Paul Brook <paul@codesourcery.com>
235 * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
236 * config/arm/arm.c (arm_dbx_register_number): New function.
237 * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
239 2005-03-29 Eric Botcazou <ebotcazou@libertysurf.fr>
242 * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
243 the DECL_NAME, not the DECL_ASSEMBLER_NAME.
245 2005-03-29 Dale Johannesen <dalej@apple.com>
247 * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
248 $(TREE_H) and $(COVERAGE_H).
249 * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
250 * opts.c (common_handle_option): Enable tree-based value transforms.
251 * toplev.c (process_options): Ditto.
252 * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
253 refers to references to this type.
254 * tree-flow.h: (struct stmt_ann_d): Add histograms field.
255 * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
256 for may_be_more, may_be_less.
257 (rtl_gen_pow2_profiler): Adjust.
258 (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
259 (rtl_gen_one_value_profiler): Adjust.
260 (rtl_gen_const_delta_profiler): Adjust.
261 * tree-profile.c (tree_gen_interval_profiler): Implement.
262 (tree_gen_pow2_profiler): Ditto.
263 (tree_gen_one_value_profiler): Ditto.
264 (tree_profiling): New.
265 (pass_tree_profile): Reference it.
266 * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
268 (insn_divmod_values_to_profile): Rename to
269 rtl_divmod_values_to_profile. Adjust.
270 (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
271 (insn_prefetch_values_to_profile): Adjust.
272 (rtl_value_profile_transformations): Adjust.
273 (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
274 (gen_mod_pow2): Rename to rtl_mod_pow2.
275 (gen_mod_subtract): Rename to rtl_mod_subtract.
276 (divmod_fixed_value_transform): Rename to
277 rtl_divmod_fixed_value_transform.
278 (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
279 (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
280 (rtl_find_values_to_profile): Adjust.
281 (tree_value_profile_transformations): Implement.
282 (tree_divmod_values_to_profile): New.
283 (tree_values_to_profile): New.
284 (tree_divmod_fixed_value): New.
285 (tree_mod_pow2): New.
286 (tree_mod_subtract): New.
287 (tree_divmod_fixed_value_transform): New.
288 (tree_mod_pow2_value_transform): New.
289 (tree_mod_subtract_transform): New.
290 (tree_find_values_to_profile): Implement.
291 * profile.c (instrument_values): Free histograms.
292 (compute_value_histograms): Adjust. Implement tree version.
294 2005-03-29 Uros Bizjak <uros@kss-loka.si>
296 * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
297 * config/i386/i386.c (output_fix_trunc): Add new round_mode
298 variable. Output "fldcw" depending on round_mode.
299 * config/i386/i386.md (UNSPEC_FIST): New.
300 (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
301 New isns patterns to implement lrint and llrint built-ins as x87
303 (fistdi2, fist<mode>2 splitters): New splitters.
304 (lrint<mode>2): New expanders.
306 2005-03-28 Ian Lance Taylor <ian@airs.com>
308 * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
309 0 when calling final_scan_insn.
311 2005-03-28 Jan Hubicka <jh@suse.cz>
314 * varasm.c (mark_decl_referenced): Do not mark extern inline functions
317 * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
318 types where possible.
320 2005-03-26 Per Bothner <per@bothner.com>
322 Make -f[no-]show-column also control non-cpp diagnostics.
323 * c.opt (fshow-column): Move option from here ...
324 * common.opt (fshow-column): ... to here.
325 * diagnostic.c (diagnostic_build_prefix): Only print column number
328 2005-03-27 Steven Bosscher <stevenb@suse.de>
330 * vax-protos.h (vax_output_int_move, vax_output_int_add,
331 vax_output_conditional_branch): New prototypes.
332 * vax.c (vax_output_int_move, vax_output_int_add): New functions,
333 extracted from vax.md mov and add patterns.
334 (vax_output_conditional_branch): New function to output conditional
336 * vax.md: Use mode macros for arithmetic and mov patterns.
337 Use code macros for the jump patterns.
339 2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
341 * Makefile.in (libbackend.o): Depend on version files;
342 add custom generation command.
344 2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
347 * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
348 sure that we have a REG before getting its REGNO.
350 2005-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
352 * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
353 * builtins.def (BUILT_IN_STRNDUP): New.
355 2005-03-25 Pat Haugen <pthaugen@us.ibm.com>
357 PR tree-optimization/20470
358 * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
361 2005-03-25 Mike Stump <mrs@apple.com>
363 * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
366 2005-03-25 Geoffrey Keating <geoffk@apple.com>
368 * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
369 Use our own structure definitions.
371 * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
372 (fix_truncdfsi2): Allow registers or memory as destination.
373 When TARGET_PPC_GFXOPT, generate simplified pattern.
374 (fix_truncdfsi2_internal): Use define_insn_and_split.
375 (fix_truncdfsi2_internal_gfxopt): New.
376 (fctiwz): Don't confuse register allocation by giving it no choices.
378 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
379 (EXTRA_MEMORY_CONSTRAINT): Likewise.
380 * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
381 * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
383 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
385 * dominance.c (free_dominance_info): Speed up by freeing et
386 data structures without maintaining other nodes.
387 * et-forest.c (et_free_tree_force): New.
388 * et-forest.h: Add a prototype for et_free_tree_force.
390 * tree.c (get_set_constructor_bits,
391 get_set_constructor_bytes): Remove.
392 * tree.h: Remove the corresponding prototypes.
394 2005-03-25 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
397 * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
398 (vax_rtx_costs): Return false when passed unsupported rtx's. Handle
399 FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE. Fix costs for POST_INC,
400 PRE_DEC, NEG and NOT.
402 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
404 * fold-const.c: Convert uses of fold (build (...)) to
407 2005-03-25 Zdenek Dvorak <dvorakz@suse.cz>
409 PR rtl-optimization/20249
410 * cse.c (insert_regs): Do not record equivalence of registers in
413 2005-03-24 Kazu Hirata <kazu@cs.umass.edu>
415 * emit-rtl.c (reverse_comparison): Remove.
416 * rtl.h: Remove the corresponding prototype.
418 2005-03-24 James E Wilson <wilson@specifixinc.com>
420 * doc/install.texi (--enable-altivec): Delete docs.
422 2005-03-24 David Edelsohn <edelsohn@gnu.org>
424 * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
425 SFmode and DFmode before reload when
426 flag_unsafe_math_optimizations not enabled.
428 2005-03-24 Geoffrey Keating <geoffk@apple.com>
430 * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
432 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
433 MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
435 2005-03-24 Nathan Sidwell <nathan@codesourcery.com>
437 * configure.ac (enable-checking): Add 'runtime' option.
438 * doc/install.texi (enable-checking): Document 'runtime' checking.
439 * tsystem.h (gcc_assert, gcc_unreachable): Define.
440 * config.in: Regenerated.
441 * configure: Regenerated.
443 2005-03-23 Uros Bizjak <uros@kss-loka.si>
445 * optabs.h (enum optab_index): Remove OTI_llrint.
446 (llrint_optab): Remove macro.
447 * optabs.c (init_optabs): Remove llrint_optab initialization.
448 * genopinit.c (optabs): Remove llrint_optab implementation.
449 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
452 2005-03-24 Alexandre Oliva <aoliva@redhat.com>
454 PR rtl-optimization/20532
455 * simplify-rtx.c (simplify_binary_operation_1): Protect from
456 overflow when adding coefficients for PLUS or MINUS.
457 (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
460 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
462 * langhooks.h (truthvalue_conversion): Remove.
463 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
464 LANG_HOOKS_TRUTHVALUE_CONVERSION.
465 * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
466 * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
467 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
469 2005-03-23 Kazu Hirata <kazu@cs.umass.edu>
471 * params.def: Fix a typo.
472 * config/mips/mips.c: Follow the spelling convensions.
473 * doc/invoke.texi: Fix typos.
475 2005-03-18 Dale Johannese <dalej@apple.com>
477 * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
479 2005-03-23 Daniel Berlin <dberlin@dberlin.org>
481 Fix PR tree-optimization/20601
483 * tree-ssa-pre.c (insert_aux): Add missing condition to
486 2005-03-23 Ian Lance Taylor <ian@airs.com>
488 * final.c (final_scan_insn): Don't remove no-op instructions.
489 * reload1.c (reload): Remove simple no-op instructions even when
492 2005-03-23 Dorit Naishlos <dorit@il.ib.com>
494 PR tree-optimization/20501
495 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
496 reporting that peeling for alignment is applied moved to...
497 * (vect_analyze_data_refs_alignment): Here.
499 2005-03-23 Ian Lance Taylor <ian@airs.com>
501 * reorg.c (dbr_schedule): Remove #if 0 code to call final.
503 2005-03-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
505 * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
506 Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
508 2005-03-23 Hans-Peter Nilsson <hp@axis.com>
510 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
511 imply that this is called once, independent of asms in code.
512 Adjust to now being pased output and input lists. Mention helper
513 function decl_overlaps_hard_reg_set_p.
514 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
515 hook_tree_tree_identity and to take three trees, returning third.
516 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
518 * stmt.c: include hard-reg-set.h before tree.h.
519 (decl_overlaps_hard_reg_set_p): New function, broken out from...
520 (decl_conflicts_with_clobbers_p): Call
521 decl_overlaps_hard_reg_set_p.
522 (expand_asm_operands): Pass output and input lists in call to
523 targetm.md_asm_clobbers.
524 * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
525 hook_tree_tree_tree_tree_3rd_identity.
526 * target.h (struct gcc_target.md_asm_clobbers): Take three tree
528 * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
529 * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
530 parameters, first two unused.
531 * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
532 parameters. Only add MOF to clobbers if there's no 'h' mentioned
533 in constraint letters and MOF is not mentioned as a asm-declared
534 register in neither of the input and output lists.
536 2005-03-23 DJ Delorie <dj@redhat.com>
538 * optabs.c (expand_binop): Make sure the first subword's result
541 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
543 * c-common.c (c_common_truthvalue_conversion): Adjust comment.
544 Call c_common_truthvalue_conversion rather than
545 lang_hooks.truthvalue_conversion.
546 * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
547 * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
549 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
550 c_common_truthvalue_conversion.
551 * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
552 c_parser_conditional_expression, c_parser_binary_expression): Call
553 c_objc_common_truthvalue_conversion.
554 * c-typeck.c (build_unary_op): Call
555 c_objc_common_truthvalue_conversion.
556 (build_conditional_expr): Do not call
557 lang_hooks.truthvalue_conversion.
558 (build_binary_op): Call c_common_truthvalue_conversion.
559 (c_objc_common_truthvalue_conversion): Moved from
560 c-objc-common.c. Call default_function_array_conversion instead
561 of default_conversion.
563 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
565 * c-common.h (default_conversion): Remove.
566 (perform_integral_promotions): Add.
567 * c-tree.h (default_conversion): Add.
568 * c-typeck.c (perform_integral_promotions): New, split out from
570 * c-common.c (check_case_value): Use perform_integral_promotions,
571 not default_conversion.
572 (c_add_case_label): Don't continue processing case label after
575 2005-03-23 Mark Mitchell <mark@codesourcery.com>
577 * gcc.c (do_spec_1): Do not add a -L path for a directory in
578 the prefix list if we have already added a multilib directory
580 (main): Do not add MD_EXEC_PREFIX to the list of directories to
583 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
585 * reload1.c (indirect_symref_ok, reload_obstack): Make them
587 * reload.h: Remove the prototype for indirect_symref_ok.
589 * reload1.c (indirect_symref_ok): Make it global.
590 * reload.h: Add a prototype for indirect_symref_ok.
592 2005-03-22 Kaz Kojima <kkojima@gcc.gnu.org>
594 * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
597 2005-03-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
599 * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
601 2005-03-22 Daniel Berlin <dberlin@dberlin.org>
603 * c-opts.c (c_common_parse_file): Only start/end main source file
604 if debug hooks says the writer wants it.
605 * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
607 (xcoff_debug_hooks): Ditto.
608 * debug.c (do_nothing_hooks): Ditto.
609 * debug.h (gcc_debug_hooks): Ditto.
610 * dwarf2out.c (dwarf2_debug_hooks): Ditto.
611 * sdbout.c (sdb_debug_hooks): Ditto.
612 * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
614 2005-03-22 Mark Mitchell <mark@codesourcery.com>
616 * doc/extend.texi: Deprecate C++ min/max operators.
618 2005-03-22 Zdenek Dvorak <dvorakz@suse.cz>
620 * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
621 artificial original candidates.
623 2005-03-22 Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
624 Jan Hubicka <jh@suse.cz>
625 Steven Bosscher <stevenb@suse.de>
627 * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
628 call cost based on argument sizes.
629 (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
631 * params.def: (max-inline-inssn-single): Set to 450.
632 (max-inline-insns-auto): Set to 90.
633 (max-inline-insns-recursive): Set to 450
634 (max-inline-insns-recursive-auto): Set to 450.
635 (large-function-insns): Set to 2700.
636 (inline-call-cost): New parameter.
637 * tree-inline.c (estimate_move_cost): New function.
638 (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
639 for non-gimple-regs, set cost to 0 for gimple-regs. Compute call size
641 * tree-inline.h (estimate_move_cost): Declare.
642 * invoke.texi: (max-inline-inssn-single): Change default to 450.
643 (max-inline-insns-auto): Change default to 90.
644 (max-inline-insns-recursive): Change default to 450
645 (max-inline-insns-recursive-auto): Change default to 450.
646 (large-function-insns): Change default to 2700.
647 (inline-call-cost): Document new parameter.
649 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
651 * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
652 (TARGET_DEFAULT): Delete.
653 * config/i860/i860.opt: New file.
655 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
657 * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
658 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
659 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
660 (frv_sched_lookahead): Delete.
661 * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
662 (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
663 (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
664 (MASK_LIBPIC, MASK_ACC_4, MASK_PACK, MASK_LONG_CALLS)
665 (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
666 (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
667 (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
668 (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
669 (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
670 (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
671 (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
672 (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
673 (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
674 (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
675 (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
676 (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
677 (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
678 (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
679 (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
680 (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
681 (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
682 (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
683 * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
684 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
685 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
686 (frv_sched_lookahead): Delete.
687 (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
688 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
689 (frv_handle_option): New function. Move -mcpu= handling from...
690 (frv_override_options): ...here. Remove handling of other
692 (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
693 TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
694 (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
695 and TARGET_NO_MULTI_CE.
696 (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
698 * config/frv/frv.opt: New file.
700 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
702 * fold-const.c (fold_ternary): Take decomposed arguments of
704 (fold): Update a call to fold_ternary.
706 * fold-const.c (fold_build1, fold_build2, fold_build3): New.
707 * tree.h: Add corresponding prototypes.
709 2005-03-22 Jakub Jelinek <jakub@redhat.com>
712 * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
713 between jump table and its label.
714 * final.c (shorten_branches): Handle notes in between ADDR_VEC
715 resp. ADDR_DIFF_VEC and the label preceeding it.
716 (final_scan_insn): Likewise. Ensure ADDR_VEC resp. ADDR_DIFF_VEC
717 is emitted in the right section.
719 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
721 * fold-const.c (fold_unary, fold_binary): Update comments
724 2005-03-22 Hans-Peter Nilsson <hp@axis.com>
726 PR rtl-optimization/20527
727 * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
728 REG_INC note, test that the register also isn't mentioned in PRED
731 2005-03-22 Ben Elliston <bje@au.ibm.com>
733 * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
736 2005-03-21 Mike Stump <mrs@apple.com>
738 * varasm.c (default_assemble_visibility): Remove extra ().
740 2005-03-21 Roger Sayle <roger@eyesopen.com>
743 * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
744 to determine whether a block can be duplicated, rather than test
745 whether the block contains noncopyable insns ourselves.
747 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
749 * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
752 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
754 * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
756 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
758 * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
759 (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
760 * config/fr30/fr30.opt: New file.
762 2005-03-18 Daniel Berlin <dberlin@dberlin.org>
764 Fix PR tree-optimization/20542
766 * tree-flow-inline.h (overlap_subvar): Move to here.
767 * tree-ssa-operands.c: From here.
768 * tree-flow.h (overlap_subvar): Declare.
769 * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
770 * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
771 for variables with subvars.
773 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
776 * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
777 * modulo-sched.c (const_iteration_count): Return on NULL
779 (print_node_sched_params): Return on NULL dump_file.
780 (generate_reg_moves): Handle reg-anti dependencies and disregard
781 closing branch when generating register moves.
782 (sms_schedule): Mark the SMSed block dirty.
783 * passes.c (rest_of_handle_sms): Call update_life_info for all
785 * testsuite/gcc.dg/20050321-1.c: New test.
787 2005-03-21 Bob Wilson <bob.wilson@acm.org>
789 * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
790 * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
791 movqi_internal): Likewise.
793 2005-03-21 Bob Wilson <bob.wilson@acm.org>
795 * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
796 xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
797 xtensa_b4const): Delete prototypes.
798 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
799 xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
800 (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
801 xtensa_extra_constraint): New prototypes.
802 (add_operand, arith_operand, nonimmed_operand, mem_operand,
803 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
804 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
805 move_operand, const_float_1_operand, fpmem_offset_operand,
806 branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
807 * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
808 (xtensa_b4const_or_zero): ...this. Change return type to bool and
809 argument type to HOST_WIDE_INT.
810 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
811 xtensa_mask_immediate): Likewise.
812 (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
813 Likewise. Also make these functions static.
814 (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
815 (xtensa_const_ok_for_letter_p): New.
816 (add_operand, arith_operand, nonimmed_operand, mem_operand,
817 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
818 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
819 move_operand, const_float_1_operand, fpmem_offset_operand,
820 branch_operator, ubranch_operator, boolean_operator): Move to
822 (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
823 (xtensa_mem_offset): Change return type to bool.
824 (xtensa_extra_constraint): New.
825 (gen_int_relational): Update type of const_range_p function pointer.
826 Use xtensa_b4const_or_zero.
827 * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
828 xtensa_const_ok_for_letter_p. Update comments.
829 (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
830 (PREDICATE_CODES): Delete.
831 * config/xtensa/xtensa.md: Include predicates.md.
832 * config/xtensa/predicates.md: New file.
834 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
836 * config/v850/v850-protos.h: Remove the prototypes for
837 reg_or_int9_operand, reg_or_const_operand,
838 pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
839 reg_or_0_operand, reg_or_int5_operand, call_address_operand,
840 movsi_source_operand, power_of_two_operand,
841 not_power_of_two_operand, special_symbolref_operand,
842 pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
843 register_is_ok_for_epilogue.
844 * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
845 reg_or_int9_operand, reg_or_const_operand,
846 call_address_operand, special_symbolref_operand,
847 movsi_source_operand, power_of_two_operand,
848 not_power_of_two_operand, register_is_ok_for_epilogue,
849 pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
850 pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
852 * config/v850/v850.h (PREDICATE_CODES): Remove.
853 * config/v850/v850.md: Include predicates.md.
854 * config/v850/predicates.md: New.
856 2005-03-21 Zack Weinberg <zack@codesourcery.com>
858 * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
859 (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
860 (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
861 (itoolsdir, itoolsdatadir): Move definition above new first use.
862 (install-itoolsdirs): New rule.
863 (install-mkheaders): Depend on install-itoolsdirs, not
866 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
868 * tree-into-ssa.c: Remove obsolete comments.
870 2005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
872 * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
873 unrolling if -fpeel-loops is specified, too.
874 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
875 Remove superfluous check for flag_unroll_loops.
877 2005-03-21 Uros Bizjak <uros@kss-loka.si>
879 * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
880 (lrint_optab, llrint_optab): Define corresponding macros.
881 * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
882 * genopinit.c (optabs): Implement lrint_optab using lrintsi2
883 pattern and llrint_optab using llrintdi2 patterns.
884 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
885 using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
886 (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
887 BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
888 flag_unsafe_math_optimizations is set.
890 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
892 * combine.c (combine_simplify_rtx, simplify_if_then_else,
893 simplify_logical, if_then_else_cond, known_cond,
894 simplify_comparison): Adjust calls to reverse_comparison.
895 Don't use combine_reversed_comparison_code).
896 (combine_reversed_comparison_code): Remove.
897 (reversed_comparison): Using reversed_comparison_code, move it...
898 * jump.c (reversed_comparison): ... here.
899 * rtl.h (reversed_comparison): Add prototype.
901 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
903 * builtins.c (fold_builtin): Take decomposed arguments of
905 * fold-const.c (fold_ternary): Update a call to fold_builtin.
906 * gimplify.c (gimplify_call_expr): Likewise.
907 * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
908 * tree.h: Update the prototype of fold_builtin.
910 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
912 * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
913 * rtlhooks.c (gen_lowpart_no_emit_general): New.
914 * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
915 (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
916 * simplify-rtx.c (simplify_binary_operation_1): Use it.
918 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
920 * builtins.c (fold_builtin_1): Take decomposed arguments of
922 (fold_builtin): Update a call to fold_builtin_1.
924 2005-03-21 Nathan Sidwell <nathan@codesourcery.com>
927 * gcov.c (output_lines): Only output function block summary when
928 outputting branch information.
929 * doc/gcov.texi: Document format of preamble and additional block
932 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
934 * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
935 (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
936 the defaults false if BITS_PER_UNIT != 8.
937 (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
938 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
939 than BITS_PER_UNIT != 8.
940 (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
941 (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
942 (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
944 * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
945 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
947 2005-03-20 Roger Sayle <roger@eyesopen.com>
950 * fold-const.c (fold_binary): Fix type mismatch between
951 TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
952 (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
953 for non-truth-valued expressions.
955 * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
956 and FUNCTION_DECL in the main switch.
957 <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
958 TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
959 we also need to convert their operands to match.
960 <TRUTH_NOT_EXPR>: Likewise.
962 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
964 * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
965 diagnostic without checking whether an lvalue.
966 * c-common.h (lvalue_p): Remove.
967 (enum lvalue_use): Update comment.
968 (lvalue_or_else): Replace by lvalue_error.
969 * c-typeck.c (lvalue_p): Make static.
970 (lvalue_or_else): New. Call lvalue_error.
972 2005-03-21 Alan Modra <amodra@bigpond.net.au>
974 * config/rs6000/rs6000.c (rs6000_parm_start): New function.
975 (function_arg_advance): Use rs6000_parm_start.
976 (function_arg, rs6000_arg_partial_bytes): Likewise.
978 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
980 * c-common.c (check_case_value): Adjust comment about stripping
982 (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
983 * c-typeck.c (default_conversion, convert_arguments,
984 build_modify_expr, convert_for_assignment, store_init_value,
985 digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
986 manually. Remove inaccurate comments.
988 2005-03-20 Roger Sayle <roger@eyesopen.com>
989 Joseph S. Myers <joseph@codesourcery.com>
991 * varasm.c (do_assemble_alias): Restore comment describing function.
992 Annotate the target parameter as potentially unused.
994 2005-03-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
997 * config/avr/avr.c (avr_output_function_prologue): Do not use
998 current_function_name() in a label, use a local label instead.
1000 2005-03-20 David Edelsohn <edelsohn@gnu.org>
1002 * config/rs6000/rs6000.c (rs6000_generate_compare): Test
1003 flag_finite_math_only, not flag_unsafe_math_optimizations.
1005 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
1007 * builtins.c (fold_builtin_1): Update a call to
1008 targetm.fold_builtin.
1009 * hooks.c (hook_tree_tree_bool_null): Rename to
1010 hook_tree_tree_tree_bool_null. Take one more argument of type
1012 * hooks.h: Update the prototype of hook_tree_tree_bool_null.
1013 * target-def.h (TARGET_FOLD_BUILTIN): Define it as
1014 hook_tree_tree_tree_bool_null.
1015 * target.h (gcc_target): Update the prototype of fold_builtin.
1016 * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
1017 arguments of CALL_EXPR.
1018 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update. Mention the
1021 2005-03-20 Jan Hubicka <jh@suse.cz>
1023 * cgraph.h (cgraph_node): Add prev_clone pointer.
1024 * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
1025 (cgraph_clone_node): Produce doubly linked chain.
1027 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
1029 * c-common.c (handle_aligned_attribute, check_function_sentinel,
1030 get_nonnull_operand, handle_sentinel_attribute,
1031 check_function_arguments_recurse): Do not strip NOPS from
1033 * c-decl.c (check_bitfield_type_and_width, build_enumerator):
1035 * c-format.c (get_constant): Likewise.
1036 * c-parser.c (c_parser_postfix_expression): Likewise.
1037 * c-typeck.c (set_init_index): Likewise.
1038 (convert_arguments): Don't check for NOP_EXPR containing integer
1041 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
1043 * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
1044 fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
1045 Take decomposed arguments of CALL_EXPR.
1046 (fold_builtin_1): Update calls to the functions mentioned
1049 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
1051 * c-decl.c (check_bitfield_type_and_width): Require bit-field
1052 width to have integer type.
1053 (build_enumerator): Require enumerator value to have integer type.
1055 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
1057 * doc/extend.texi (__builtin_inf): Move statement about INFINITY
1060 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
1062 * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
1063 std=iso9899:199x): Correct descriptions.
1065 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
1067 * config.gcc: Consistently use solaris2.1[0-9]* instead of
1070 2005-03-19 Kazu Hirata <kazu@cs.umass.edu>
1072 * builtins.c (fold_builtin_memcpy): Take decomposed arguments
1074 (expand_builtin_memcpy, fold_builtin_1): Update calls to
1075 fold_builtin_memcpy.
1077 * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
1078 arguments of CALL_EXPR.
1079 (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
1080 fold_builtin_found, fold_builtin_1): Update calls to
1081 fold_trunc_transparent_mathfn.
1083 2005-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1086 * fold-const.c (fold_widened_comparison): Don't optimize casts of
1087 function pointers on targets that require function pointer
1089 (fold_sign_changed_comparison): Likewise.
1091 2005-03-19 Bernd Schmidt <bernd.schmidt@analog.com>
1093 * combine.c (try_combine): When changing the mode of a hard reg, make
1094 sure that doing so is valid.
1096 2005-03-19 Richard Sandiford <rsandifo@redhat.com>
1098 * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
1099 (TARGET_HANDLE_OPTION): Override default.
1100 (avr_handle_option): New function.
1101 * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
1102 (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
1103 (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
1104 (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
1105 (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
1106 (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
1107 (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
1108 (TARGET_OPTIONS): Delete.
1109 * config/avr/avr.opt: New file.
1111 2005-03-18 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1113 * config/m32r/m32r-protos.h: Remove the prototypes for
1114 call_address_operand, symbolic_operand, seth_add3_operand,
1115 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1116 reg_or_uint16_operand, reg_or_cmp_int16_operand,
1117 two_insn_const_operand, move_src_operand,
1118 move_double_src_operand, move_dest_operand,
1119 eqne_comparison_operator, signed_comparison_operator,
1120 large_insn_p, conditional_move_operand, carry_compare_operand,
1121 m32r_block_immediate_operand, extend_operand,
1122 reg_or_eq_int16_operand, int8_operand, and
1123 reg_or_zero_operand.
1124 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1125 seth_add3_operand, int8_operand, cmp_int16_operand,
1126 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1127 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1128 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1129 move_double_src_operand, move_dest_operand,
1130 eqne_comparison_operator, signed_comparison_operator,
1131 extend_operand, small_insn_p, large_insn_p,
1132 conditional_move_operand, carry_compare_operand,
1133 m32r_block_immediate_operand): Move to predicates.md.
1134 (MAX_MOVE_BYTES): Move to m32r.h.
1135 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1136 * config/m32r/m32r.md: Include predicates.md.
1137 * config/m32r/predicates.md: New.
1139 2005-03-18 James E Wilson <wilson@specifixinc.com>
1142 * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
1145 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1147 * config/mn10300/mn10300-protos.h: Remove the prototypes for
1148 call_address_operand, const_8bit_operand.
1149 * config/mn10300/mn10300.c (call_address_operand,
1150 const_8bit_operand, const_1f_operand): Move to predicates.md.
1151 * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
1152 * config/mn10300/mn10300.md: Include predicates.md.
1153 * config/mn10300/predicates.md: New.
1155 2005-03-18 Joseph S. Myers <joseph@codesourcery.com>
1157 * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
1158 declarations in diagnostics and %E for identifiers, not %s.
1160 2005-03-18 Jan Hubicka <jh@suse.cz>
1161 Dale Johannesen <dalej@apple.com>
1163 * basic-block.h (scale_bbs_frequencies_int,
1164 scale_bbs_frequencies_gcov_type): Declare.
1165 * cfg.c (RDIV): New macro.
1166 (update_bb_frequency_for_threading): Fix.
1167 * basic-block.h (scale_bbs_frequencies_int,
1168 scale_bbs_frequencies_gcov_type): New.
1169 * cfgloopmanip.c (scale_bbs_frequencies): Kill.
1170 (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
1171 scale_bbs_frequencies_int.
1172 * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
1174 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1176 * config/m32r/m32r-protos.h: Remove the prototypes for
1177 call_address_operand, symbolic_operand, seth_add3_operand,
1178 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1179 reg_or_uint16_operand, reg_or_cmp_int16_operand,
1180 two_insn_const_operand, move_src_operand,
1181 move_double_src_operand, move_dest_operand,
1182 eqne_comparison_operator, signed_comparison_operator,
1183 large_insn_p, conditional_move_operand, carry_compare_operand,
1184 m32r_block_immediate_operand, extend_operand,
1185 reg_or_eq_int16_operand, int8_operand, and
1186 reg_or_zero_operand.
1187 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1188 seth_add3_operand, int8_operand, cmp_int16_operand,
1189 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1190 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1191 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1192 move_double_src_operand, move_dest_operand,
1193 eqne_comparison_operator, signed_comparison_operator,
1194 extend_operand, small_insn_p, large_insn_p,
1195 conditional_move_operand, carry_compare_operand,
1196 m32r_block_immediate_operand): Move to predicates.md.
1197 (MAX_MOVE_BYTES): Move to m32r.h.
1198 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1199 * config/m32r/m32r.md: Include predicates.md.
1200 * config/m32r/predicates.md: New.
1202 * config/pa/pa-protos.h: Add prototypes for magic_milli and
1204 * config/pa/pa.c (reg_or_0_operand, call_operand_address,
1205 symbolic_operand, symbolic_memory_operand,
1206 reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
1207 indexed_memory_operand, move_dest_operand, move_src_operand,
1208 prefetch_cc_operand, prefetch_nocc_operand,
1209 reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
1210 arith_operand, arith11_operand, pre_cint_operand,
1211 post_cint_operan, arith_double_operand, ireg_or_int5_operand,
1212 ireg_operand, int5_operand, uint5_operand, int11_operand,
1213 uint32_operand, arith5_operand, and_operand, ior_operand,
1214 lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
1215 pc_or_label_operand, div_operand, plus_xor_ior_operator,
1216 shadd_operand, movb_comparison_operator,
1217 cmpib_comparison_operator): Move to predicates.md.
1218 (magic_milli, shadd_constant_p): Make it extern.
1219 * config/pa/pa.h (PREDICATE_CODES): Remove.
1220 * config/pa/pa.md: Include predicates.md.
1221 * config/pa/predicates.md: New.
1223 * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
1226 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1228 * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
1229 config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
1230 config/alpha/freebsd.h, config/alpha/linux.h,
1231 config/alpha/netbsd.h, config/alpha/osf5.h,
1232 config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
1233 config/h8300/h8300-protos.h, config/h8300/h8300.c,
1234 config/h8300/h8300.h, config/ia64/unwind-ia64.c,
1235 doc/cppopts.texi: Update copyright.
1237 2005-03-18 Jan Hubicka <jh@suse.cz>
1240 * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
1242 * varasm.c (find_decl_and_mark_needed): Mark needed only when not
1245 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1247 * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
1250 2005-03-18 Paolo Bonzini <bonzini@gnu.org>
1252 * combine.c (gen_binary): Remove.
1253 (known_cond, simplify_shift_const, find_split_point,
1254 combine_simplify_rtx, simplify_if_then_else, simplify_set,
1255 simplify_logical, expand_field_assignment, extract_left_shift,
1256 force_to_mode, if_then_else_cond, apply_distributive_law,
1257 simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
1258 simplify_comparison, reversed_comparison): Replace with
1259 simplify_gen_binary, simplify_gen_relational or
1260 distribute_and_simplify_rtx.
1261 (distribute_and_simplify_rtx): New function.
1263 2005-03-18 Alexey Neyman <alex.neyman@auriga.ru>
1264 Paolo Bonzini <gcc.gnu.org>
1266 * calls.c (setjmp_call_p, special_function_p): Update comments
1267 at the head of the functions.
1269 2005-03-18 Jan Hubicka <jh@suse.cz>
1271 * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
1273 * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
1274 function body should be released; do not proactively release function
1275 bodies in non-unit-at-a-time mode.
1277 2005-03-18 Ralf Corsepius <ralf.corsepius@rtems.org>
1279 * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
1280 mno-fp-ret-in-387 multilib variants.
1282 2005-03-18 Richard Sandiford <rsandifo@redhat.com>
1284 * common.opt (m): Remove.
1285 * opts.c (handle_option): Pass 'm' options to set_target_switch if
1287 (common_handle_option): Remove OPT_m case.
1289 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1291 * builtins.c (fold_builtin_bitop): Take decomposed arguments
1293 (fold_builtin_1): Update a call to fold_builtin_bitop.
1295 * builtins.c (fold_builtin_signbit): Take decomposed arguments
1297 (fold_builtin_1): Update a call to fold_builtin_signbit.
1299 2005-03-17 Dorit Naishlos <dorit@il.ibm.com>
1301 PR tree-optimization/20474
1302 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
1303 size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
1305 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
1307 * config/h8300/h8300-protos.h: Remove prototypes for
1308 general_operand_src, general_operand_dst, single_one_operand,
1309 single_zero_operand, call_insn_operand,
1310 two_insn_adds_subs_operand, small_call_insn_operand,
1311 jump_address_operand, bit_operand, bit_memory_operand,
1312 stack_pointer_operand, const_int_gt_2_operand,
1313 const_int_ge_8_operand, const_int_qi_operand,
1314 const_int_hi_operand, incdec_operand, bit_operator,
1315 nshift_operator, eqne_operator, gtle_operator,
1316 gtuleu_operator, iorxor_operator.
1317 Add prototypes for h8sx_shift_type h8sx_classify_shift and
1318 h8300_ldm_stm_parallel.
1319 * config/h8300/h8300.c (h8sx_shift_type,): Move to
1321 (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
1322 SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
1323 (h8300_ldm_stm_parallel): Make it extern.
1324 (h8300_ldm_parallel, h8300_stm_parallel,
1325 h8300_return_parallel, general_operand_src,
1326 general_operand_dst, h8300_dst_operand, h8300_src_operand,
1327 nibble_operand, reg_or_nibble_operand, single_one_operand,
1328 single_zero_operand, call_insn_operand,
1329 two_insn_adds_subs_operand, small_call_insn_operand,
1330 jump_address_operand, bit_operand, bit_memory_operand,
1331 stack_pointer_operand, const_int_gt_2_operand,
1332 const_int_ge_8_operand, const_int_qi_operand,
1333 const_int_hi_operand, incdec_operand, eqne_operator,
1334 gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
1335 h8sx_binary_memory_operator, h8sx_unary_memory_operator,
1336 h8sx_unary_shift_operator, h8sx_binary_shift_operator,
1337 nshift_operator): Move to predicates.md.
1338 * config/h8300/h8300.h (PREDICATE_CODES): Remove.
1339 * config/h8300/h8300.md: Include predicates.md.
1340 * config/h8300/predicates.md: New.
1342 2005-03-17 Richard Henderson <rth@redhat.com>
1344 * config.gcc (ia64*-*-hpux*): Add extra_options.
1345 * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
1346 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1347 * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
1348 (ia64_tls_size_string, ia64_tune_string): Remove.
1349 (ia64_tune): Init to PROCESSOR_ITANIUM2.
1350 (TARGET_DEFAULT_TARGET_FLAGS): New.
1351 (TARGET_HANDLE_OPTION): New.
1352 (ia64_override_options): Move options parsing ...
1353 (ia64_handle_option): ... here. New.
1354 * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
1355 MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
1356 MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
1357 MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
1358 MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
1359 MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
1360 MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
1361 TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
1362 TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
1363 TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
1364 TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
1365 TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
1366 TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
1367 TARGET_EARLY_STOP_BITS): Remove.
1368 (TARGET_ILP32): Default false.
1369 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
1370 (enum ia64_inline_type): New.
1371 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1372 * config/ia64/ia64.md: Update for new definitions of
1373 TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
1374 * config/ia64/ia64.opt: New file.
1375 * config/ia64/ilp32.opt: New file.
1377 2005-03-17 H.J. Lu <hongjiu.lu@intel.com>
1380 * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
1382 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
1384 * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
1385 instead of MASK_H8300S.
1386 * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
1387 MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
1388 MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
1389 MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
1390 TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
1391 TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
1392 TARGET_SWITCHES): Remove.
1393 (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
1395 * config/h8300/h8300.opt: New.
1397 * config/alpha/alpha.opt, config/arc/arc.opt,
1398 config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
1401 2005-03-17 Ian Lance Taylor <ian@airs.com>
1405 2005-03-17 Richard Sandiford <rsandifo@redhat.com>
1407 * config/arc/arc.c (arc_cpu_string): Make static. Default to "base"
1408 (arc_text_string, arc_data_string, arc_rodata_string): Make static.
1409 (TARGET_HANDLE_OPTION): Override default.
1410 (arc_handle_option): New function.
1411 (arc_init): Remove code to set arch_cpu_string.
1412 * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
1413 (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
1414 (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
1415 (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
1416 (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
1417 (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
1418 (arc_rodata_string, TARGET_OPTIONS): Delete.
1419 * config/arc/arc.opt: New file.
1421 2005-03-17 Richard Henderson <rth@redhat.com>
1423 * doc/extend.texi (Weak Pragmas): New section.
1424 (attribute alias): Clarify that target must be in the same
1427 2005-03-17 Richard Henderson <rth@redhat.com>
1429 * config/alpha/alpha.opt: New file.
1430 * config/alpha/alpha.c (alpha_tune): New. Rename all existing uses
1432 (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
1433 alpha_fprm_string, alpha_fptm_string): Make static.
1434 (alpha_tls_size_string): Remove.
1435 (alpha_handle_option): New.
1436 (override_options): Update for alpha_cpu/alpha_tune split.
1437 (alpha_file_start): Likewise.
1438 (TARGET_DEFAULT_TARGET_FLAGS): New.
1439 (TARGET_HANDLE_OPTION): New.
1440 * config/alpha/alpha.h (alpha_tune): Declare.
1441 (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
1442 MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
1443 MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
1444 TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
1445 TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
1446 TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
1447 MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
1448 MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
1449 TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
1450 TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
1451 (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
1452 (TARGET_DEFAULT): Remove MASK_FP.
1453 (TARGET_FP): Redefined based on TARGET_SOFT_FP.
1454 (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
1455 (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
1456 alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
1457 alpha_tls_size_string): Remove.
1458 * config/alpha/alpha.md (prefetch): Use alpha_cpu.
1459 (attribute tune): Rename from attribute cpu.
1460 * config/alpha/ev4.md: Update to match.
1461 * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
1462 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
1463 * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
1464 * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
1465 * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
1466 * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
1468 2005-03-16 James E. Wilson <wilson@specifixinc.com>
1470 * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
1471 and return without creating new state if before_nops_num is nonzero.
1472 * config/ia64/ia64.md (first_insn): New attribute.
1473 (alloc): Set it to yes.
1475 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1477 * tree-vectorizer.c (new_vec_stmt_info): Initialize
1478 STMT_VINFO_SUBVARS to NULL.
1479 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
1481 2005-03-16 Dale Johannesen <dalej@apple.com>
1483 * rtlanal.c (find_first_parameter_load): Rewrite to
1484 return actual first param load or the call if none,
1485 instead of first in block, when not all loads exist.
1487 2005-03-16 Roger Sayle <roger@eyesopen.com>
1489 * optabs.c (expand_copysign_absneg): Make static.
1490 * optabs.h (expand_copysign_absneg): Delete prototype.
1491 * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
1493 2005-03-16 Richard Henderson <rth@redhat.com>
1496 * varasm.c (struct alias_pair): Rename from struct output_def_pair.
1497 (alias_pairs): Rename from output_defs.
1498 (find_decl_and_mark_needed): Split out from assemble_alias.
1499 (do_assemble_alias): New.
1500 (assemble_output_def): Remove.
1501 (finish_aliases_1, finish_aliases_2): New.
1502 (process_pending_assemble_output_defs): Remove.
1503 (assemble_alias): Defer aliases for which we don't yet have a
1504 non-external decl for the target symbol.
1505 * passes.c (rest_of_decl_compilation): Register variables with cgraph.
1506 * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
1507 * toplev.c (compile_file): Use finish_aliases_2 instead of
1508 process_pending_assemble_output_defs.
1509 * tree.h (finish_aliases_1, finish_aliases_2): Declare.
1510 (process_pending_assemble_output_defs): Remove.
1512 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1514 Fix PR tree-optimization/20489
1516 * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
1517 for empty structures.
1519 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1521 Fix PR tree-optimization/20490
1523 * tree-ssa-pre.c (create_expression_by_pieces): Use
1524 force_gimple_operand on result of fold.
1526 2005-03-16 Andrew Pinski <pinskia@physics.uc.edu>
1528 * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
1529 of closing parenthesis.
1531 2005-03-16 Kazu Hirata <kazu@cs.umass.edu>
1533 * builtins.c (expand_movstr): Update a call to
1534 fold_builtin_strcpy.
1535 (expand_builtin_strncpy): Update a call to
1536 fold_builtin_strncpy.
1537 (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
1538 arguments of CALL_EXPR.
1539 (fold_builtin_1): Update calls to fold_builtin_strcpy and
1540 fold_builtin_strncpy.
1541 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1542 * tree.h: Update the prototypes of fold_builtin_strcpy and
1543 fold_builtin_strncpy.
1545 2005-03-16 Steven Bosscher <stevenb@suse.de>
1546 Dorit Naishlos <dorit@il.ibm.com>
1548 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
1549 UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
1552 2005-03-16 Steven Bosscher <stevenb@suse.de>
1554 * tree-inline.c (walk_type_fields, walk_tree,
1555 walk_tree_without_duplicates): Move from here...
1556 * tree.c: ...to here.
1558 2005-03-15 Zack Weinberg <zack@codesourcery.com>
1560 * BASE-VER, DATESTAMP, DEV-PHASE: New files.
1561 * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
1562 (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1563 (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
1564 (version): Define using $(BASEVER_c).
1565 (Makefile, config.status, build/gcov-iov.o): No longer depends on
1567 (version.o): Depend on version files; add custom generation command.
1568 (prefix.o): Define BASEVER on command line.
1569 (s-iov): Depend on version files; adjust command.
1570 (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
1572 (gcc-vers.texi): New rule.
1573 (doc/%.info, doc/%.dvi): Add -I . to command line.
1574 (doc/gccinstall.dvi): Likewise.
1575 (PACKAGE): Delete. All uses replaced with "gcc".
1576 * aclocal.m4: Do not include gcc-version.m4.
1577 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1578 Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
1579 Set is_release based on contents of DEV-PHASE.
1580 Set gcc_version based on contents of BASE-VER.
1581 Define WIN32_REGISTRY_KEY only if the user overrode the default.
1582 * config.in, configure: Regenerate.
1583 * gccbug.in: Determine version of GCC in use at runtime.
1584 * gcov-iov.c: Get version number and development phase from
1585 command line, not by including version.c.
1586 * intl.c: Replace all uses of PACKAGE with "gcc".
1587 * libada-mk.in: Delete unused "gcc_version" variable.
1588 * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
1589 * version.c: (VERSUFFIX): New hook for redistributors; adjust
1590 commentary to match.
1591 (version_string): Put together from pieces.
1592 * config/alpha/x-vms: Do not use $(gcc_version).
1593 * config/i386/t-nwld: Likewise.
1594 * doc/include/gcc-common.texi: Include gcc-vers.texi for
1595 version-GCC and DEVELOPMENT.
1597 2005-03-15 Roger Sayle <roger@eyesopen.com>
1599 PR tree-optimization/17454
1600 * tree.c (tree_size): Add case for TREE_BINFO.
1601 * fold-const.c (fold_checksum_tree): Only clear the overloaded
1602 field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
1604 2005-03-15 Roger Sayle <roger@eyesopen.com>
1606 * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
1607 op1 whilst expanding the signed widenening multiply variant.
1609 2005-03-15 Richard Sandiford <rsandifo@redhat.com>
1611 * toplev.c (display_target_options): Avoid unused variable warning if
1612 TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
1613 * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
1614 (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
1615 (mips_isa): Initialize to MIPS_ABI_DEFAULT.
1616 (mips_isa_info): New variable.
1617 (mips_parse_cpu): Remove the first argument and leave the caller
1619 (TARGET_HANDLE_OPTION): Override default.
1620 (mips_handle_option): New function. Move option validation code from...
1621 (override_options): ...here. Update calls to mips_parse_cpu.
1622 * config/mips/mips.h (mips_arch_string, mips_tune_string)
1623 (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
1624 (SUBTARGET_TARGET_OPTIONS): Delete.
1625 * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
1626 (mno-flush-func, mtune=): New options.
1628 2005-03-15 Roger Sayle <roger@eyesopen.com>
1629 Richard Henderson <rth@redhat.com>
1631 * real.c (c4x_single_format, c4x_extended_format): Provide values
1632 for signbit_ro for c4x's single and extended floating point formats.
1633 * optabs.c (expand_copysign): Use the floating point format's
1634 signbit_ro for expanding via expand_copysign_absneg, and it's
1635 signbit_rw field for expanding via expand_copysign_bit.
1637 2005-03-15 Dorit Naishlos <dorit@il.ibm.com>
1639 * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
1640 known_alignment_for_access_p.
1641 (known_alignment_for_access_p): New.
1642 (do_peeling_for_alignment): Field made int instead of bool and renamed
1643 to peeling_for_alignment.
1644 (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
1645 * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
1646 functionality used to be in vect_analyze_operations.
1647 (vect_analyze_operations): Code to determine vectorization factor was
1648 moved to vect_determine_vectorization_factor.
1649 (vect_enhance_data_refs_alignment): Update to correct alignment when it
1650 is known instead of -1. Set LOOP_PEELING_FOR_ALIGNMENT to peeling
1652 (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
1653 be part of vect_analyze_operations).
1654 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
1655 creating the guard condition, as the number of iterations may be
1657 (slpeel_tree_peel_loop_to_edge): Use new name of
1658 LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
1659 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
1660 alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
1661 (vect_do_peeling_for_alignment): Use fold.
1662 (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
1664 (vect_update_inits_of_dr): Renamed to
1665 vect_update_init_of_dr.
1666 (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
1667 (vectorizable_store): Fix assertion to use == instead of =.
1669 2005-03-15 Daniel Jacobowitz <dan@codesourcery.com>
1671 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
1672 call_used_regs for wCG registers.
1674 2005-03-15 Ulrich Weigand <uweigand@de.ibm.com>
1676 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
1677 for non-offsettable memory references to cope with outstanding reload
1678 replacements, take 2.
1680 2005-03-15 Uros Bizjak <uros@kss-loka.si>
1683 * config/i386/i386.h (x86_fisttp): New.
1684 (TARGET_FISTTP): New macro.
1685 * config/i386/i386.c (x86_fisttp): Set for NOCONA.
1686 (output_fix_trunc): Add fisttp parameter. Generate fisttp x87
1687 instruction when fisttp flag is set.
1688 * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
1690 * config/i386/i386.md (type attribute): Add fisttp.
1691 (unit attribute): Set to i387 for fisttp type.
1692 (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
1693 (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
1695 (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
1696 Generate fisttp patterns for TARGET_FISTTP. Implement using mode
1698 (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
1699 patterns for TARGET_FISTTP. Enable patterns for
1700 (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
1701 (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
1702 fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
1703 implement fisttp x87 insn.
1704 (fix_trunc*_i387_fisttp splitters): New patterns.
1705 (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
1706 Rename to *fix_trunc<mode>_i387_1. Implement using mode macros.
1707 Disable patterns for TARGET_FISTTP. Add comment about FLAGS_REG
1709 (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
1710 Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
1711 Implement using mode macros. Disable patterns for TARGET_FISTTP.
1712 (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
1713 fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
1714 fix_trunc<mode>_i387_with_temp. Implement using mode macros.
1715 Disable patterns for TARGET_FISTTP.
1716 (fix_trunc*_i387 splitters): Implement usign mode macros.
1717 (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
1718 fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
1719 (fix_trunx*_sse peephole2s): Implement using mode macros.
1721 2005-03-15 J"orn Rennecke <joern.rennecke@st.com>
1723 PR rtl-optimization/20291
1724 * combine.c (try_combine): If splitting fails, re-try with
1725 original combined pattern, i.e. before clobber stripping.
1727 2005-03-14 Eric Christopher <echristo@redhat.com>
1729 * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
1730 STACK_GROWS_DOWNWARD.
1732 2005-03-14 Roger Sayle <roger@eyesopen.com>
1734 * real.h (struct real_format): Split the signbit field into two
1735 two fields, signbit_ro and signbit_rw.
1736 * real.c (ieee_single_format, mips_single_format, ieee_double_format,
1737 mips_double_format, ieee_extended_motorola_format,
1738 ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
1739 ieee_extended_intel_128_format, ibm_extended_format,
1740 mips_extended_format, ieee_quad_format, mips_quad_format,
1741 vax_f_format, vax_d_format, vax_g_format, i370_single_format,
1742 i370_double_format, c4x_single_format, c4x_extended_format,
1743 real_internal_format): Update initializers for new field.
1744 * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
1745 real_format structure.
1746 * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
1747 field of the real_format structure.
1749 2005-03-14 Daniel Berlin <dberlin@dberlin.org>
1751 Fix PR tree-optimization/20458
1753 * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
1754 DECL_EXTERNAL on STRUCT_FIELD tags.
1755 (clear_call_clobbered): Ditto.
1756 * tree-ssa-operands.c (note_addressable): Make sure the original
1757 variable doesn't slip into the addressable list if we have
1759 * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
1762 2005-03-14 Geoffrey Keating <geoffk@apple.com>
1764 * doc/cppopts.texi (-fexec-charset): Add concept index entry.
1765 (-fwide-exec-charset): Likewise.
1766 (-finput-charset): Likewise.
1767 * doc/invoke.texi (Warning Options): Document -Wnormalized=.
1768 * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
1769 * c.opt (Wnormalized): New.
1771 2005-03-14 Devang Patel <dpatel@apple.com>
1773 * doc/invoke.texi: Add reference to Visibility document.
1775 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1777 * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
1778 MASK_SPLIT_ADDRESSES.
1779 * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
1780 (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
1781 (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
1782 (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
1783 (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
1784 (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
1785 (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
1786 (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
1787 (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
1788 (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
1789 (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
1790 (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
1791 (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
1792 (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
1793 (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
1794 (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
1795 (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
1796 (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
1797 (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
1798 (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
1799 (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
1800 (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
1801 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
1802 (TARGET_EXPLICIT_RELOCS): Delete.
1803 (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
1804 (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
1805 * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
1806 (override_options): Set MASK_LONG64 if -mint64 is given and no
1807 -mlongXX option is. Complain about -mint64 -mlong32.
1808 (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
1809 MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
1810 * config/mips/mips.opt: New file.
1812 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1814 * config.gcc (extra_options): New variable for listing option files.
1815 Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
1816 * configure.ac (extra_opt_files): New AC_SUBST variable.
1817 (tm_file_list, tm_include_list): Include options.h first.
1818 * configure: Regenerate.
1819 * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
1820 (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
1821 (s-options-h): New rule.
1822 (options.h): Depend on it.
1823 (TEXI_GCCINT_FILES): Add options.texi.
1824 * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
1825 * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
1826 * target.h (gcc_target): Add default_target_flags and handle_option.
1827 * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
1828 (TARGET_HANDLE_OPTION): New macros.
1829 (TARGET_INITIALIZER): Include them.
1830 * opt-functions.awk (opt_args, nth_arg): New functions.
1831 (switch_flags): Handle the "Target" flag.
1833 (var_name): Use opt_args and nth_arg.
1834 (var_set, var_ref): Likewise. Handle "Mask" and "InverseMask".
1835 * opth-gen.awk: Declare target_flags. Declare MASK_* and TARGET_*
1836 macros for the "Mask" and "InverseMask" options.
1837 * opts.h (cl_var_cond): New enum.
1838 (cl_option): Replace the "has_set_value" and "set_value" fields with
1839 "var_cond" and "var_value".
1840 (CL_TARGET): New macro.
1841 (option_enabled, print_filtered_help): Declare.
1842 (decode_options): Move definition.
1843 * opts.c (handle_option): Search for the original option before
1844 removing any "no-" prefix. Handle CL_TARGET. Adjust for the new
1845 var_cond and var_value fields. Use targetm.handle_option to handle
1847 (decode_options): Set target_flags to targetm.default_target_flags.
1848 (print_filtered_help): Make global. Handle CL_TARGET.
1849 (option_enabled): New function.
1850 * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
1851 (display_target_options, set_target_switch, print_switch_values)
1852 (default_pch_valid_p): Guard uses of target_switches with
1853 #ifdef TARGET_SWITCHES. Also...
1854 (display_target_options): Display the CL_TARGET entries in cl_options.
1855 (set_target_option): Don't complain about the "" option when
1856 TARGET_SWITCHES is undefined.
1857 (print_switch_values): Use option_enabled.
1858 (default_pch_valid_p): Check cl_options[] when looking for something
1859 that has changed the value of target_flags.
1860 * c.opt: Remove documentation from top of file.
1861 * doc/gccint.texi: Add an "Options" chapter. Include options.texi.
1862 * doc/sourecebuild.texi: Refer to the new options documentation
1863 instead of c.opt. Document machine-specific .opt files.
1864 * doc/tm.texi (target_flags): Say that this variable is declared
1866 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
1867 (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
1869 * doc/options.texi: New file.
1871 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
1874 * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
1877 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
1880 * gimplify.c (gimplify_cond_expr): Add fallback argument. Use a
1881 temporary variable of pointer type if an lvalues is required.
1882 (gimplify_modify_expr_rhs): Request an rvalue from it.
1883 (gimplify_expr): Pass fallback on.
1885 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1887 * cfgbuild.c: Update comments.
1889 2005-03-14 Roger Sayle <roger@eyesopen.com>
1891 PR rtl-optimization/17236
1892 * optabs.c (expand_doubleword_mult): New helper function split out
1893 from expand_binop. Permute the order in which instructions are
1894 emitted to minimize the number of simultaneously live registers.
1895 (expand_binop): Call expand_doubleword_mult to synthesize a double
1896 word multiplication.
1898 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1900 * basic-block.h: Update the prototypes of cached_make_edge and
1902 * cfg.c (cached_make_edge): Take edge_cache representing one
1903 row of the adjacency matrix of edges.
1904 * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
1905 (make_edges): Initialize edge_cache to represent one row of
1906 the adjacency matrix of edges.
1908 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1910 * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
1912 (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
1913 Remove unused removed_phis variable.
1914 (conditional_replacement): Use build1/build2.
1915 (abs_replacement): Use last_and_only_stmt and build1/build2.
1917 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1919 * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
1920 ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
1921 * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
1922 (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
1923 * c-common.c (handle_novops_attribute): New function.
1924 (c_common_attribute_table): Add "no vops" entry.
1925 * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
1926 * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
1927 * tree-ssa-operands.c (get_call_expr_operands): Do not
1928 create virtual operands for calls with ECF_NOVOPS flag.
1929 * tree.h (DECL_IS_NOVOPS): New macro.
1930 (struct tree_decl): Add novops_flag.
1931 (ECF_NOVOPS): New constant.
1933 2005-03-14 Uros Bizjak <uros@kss-loka.si>
1936 * config/i386/i386.c (x86_use_himode_fiop): New.
1937 (x86_use_simode_fiop): Rename from x86_use_fiop.
1938 * config/i386/i386.h (x86_use_himode_fiop): Declare.
1939 (TARGET_USE_HIMODE_FIOP): New.
1940 (x86_use_simode_fiop): Rename from x86_use_fiop.
1941 (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
1943 * config/i386/i386.md (X87MODEI12): New mode macro define.
1944 (*cmpfp_<mode>): Rename from *cmpfp_si. Use X87MODEI12 mode macro
1945 to implement x87 FP compare with HImode input operands.
1946 (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
1947 Use X87MODEI12 mode macro to handle HImode input operands.
1948 (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
1949 *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
1950 Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
1951 *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
1952 macro to implement x87 operators with HImode input operands.
1953 (fop splitters): Use X87MODEI12 mode macro to handle HImode
1956 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1958 * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
1960 * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
1961 constants invariant.
1963 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1965 * basic-block.h (BB_VISITED): Removed.
1966 * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
1968 2005-03-14 Falk Hueffner <falk@debian.org>
1971 * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
1973 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1975 * ggc-zone.c: Fix comment typos.
1977 * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
1978 stringpool.c, config/mips/mips-protos.h: Update copyright.
1980 2005-03-14 Alan Modra <amodra@bigpond.net.au>
1982 * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
1983 throughout with its typedef, "rtx".
1984 * config/rs6000/rs6000.c: Likewise. Formatting fixes.
1985 (rs6000_tls_symbol_ref_1): Remove inline keyword.
1986 * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting. Reorder
1987 regs in comment to match code.
1989 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1991 * except.c (check_handled): Make it static.
1992 * except.h: Remove the corresponding prototype.
1994 * function.c (get_func_frame_size): Make it static.
1995 * function.h: Remove the corresponding type.
1997 * regclass.c (reg_class_superclasses, reg_class_subclasses):
1999 * hard-reg-set.h: Remove the corresponding declarations.
2001 * tree-cfg.c (verify_stmts): Check that
2002 bb_for_stmt (stmt) == bb for every PHI node and statement.
2004 2005-03-14 Alan Modra <amodra@bigpond.net.au>
2006 * config.gcc: Remove excess indentation.
2007 (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
2009 2005-03-13 Roger Sayle <roger@eyesopen.com>
2012 * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
2013 * fold-const.c (fold_sign_changed_comparison): Likewise.
2014 (fold_binary): Optimize comparisons against widened operands if
2015 the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
2017 2005-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2019 * config/sparc/sparc.c (struct_value_alias_set): New global variable.
2020 (sparc_override_options): Initialize it.
2021 (sparc_struct_value_rtx): Set it on the MEM to be returned.
2023 2005-03-13 David Edelsohn <edelsohn@gnu.org>
2025 * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
2026 (reg_or_none500mem_operand): New predicate.
2027 (zero_reg_mem_operand): New predicate.
2028 * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
2029 to reg_or_none500mem_operand.
2030 (extendsfdf2_fpr): Add MEM alternative.
2031 (extenddftf2_internal): Change operand2 predicate to
2032 zero_reg_mem_operand.
2034 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2036 * ggc-zone.c: Rewritten.
2038 * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
2040 * configure.ac: Define GGC_ZONE for --with-gc=zone.
2041 * config.in: Regenerated.
2042 * configure: Regenerated.
2043 * gengtype.c (write_types_process_field, write_func_for_structure):
2044 Pass new argument to gt_pch_note_object.
2045 * ggc-common.c (struct ptr_data): Add TYPE.
2046 (gt_pch_note_object): Take TYPE argument and save it.
2047 (call_count): Update call to ggc_pch_count_object.
2048 (call_alloc): Update call to ggc_pch_alloc_object.
2049 (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
2051 * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
2052 * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
2053 (ggc_alloc_zone_stat): Delete.
2054 (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
2055 * ggc.h (gt_pch_note_object, ggc_pch_count_object)
2056 (ggc_pch_alloc_object): Update prototypes.
2057 (garbage_zone): Delete.
2058 (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
2059 GGC_ZONE conditional. Update. Change tree_zone and rtl_zone into
2061 (tree_id_zone): New variable.
2062 (ggc_alloc_cleared_zone): Remove unused.
2063 (ggc_alloc_zone): Define.
2064 (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
2065 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
2066 ggc_alloc_zone_stat.
2067 * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
2068 * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
2069 (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
2070 (make_node_stat): Likewise. Use tree_id_zone.
2072 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2073 Joseph S. Myers <joseph@codesourcery.com>
2075 * configure.ac: Check for MIPS TLS.
2076 * configure: Regenerated.
2077 * config/mips/mips-protos.h (enum mips_symbol_type): Add
2078 SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
2079 SYMBOL_GOTTPREL, and SYMBOL_TPREL.
2080 * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
2081 (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
2082 (mips_classify_symbol, mips_symbolic_constant_p)
2083 (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
2084 (mips_tls_operand_p, mips_call_tls_get_addr)
2085 (mips_legitimize_tls_address, mips_cannot_force_const_mem)
2086 (mips_tls_symbol_ref_1): New functions.
2087 (mips_legitimize_address, mips_legitimize_const_move): Call
2088 mips_legitimize_tls_address.
2089 (override_options): Handle V1_REG and TLS symbols. Disable TLS
2091 * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
2092 (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
2093 (mips_char_to_class): Document V1_REG.
2094 (HAVE_AS_TLS): Provide default.
2095 * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
2097 (load_got<mode>): Renamed from *load_got<mode>. Allow when
2099 (tls_get_tp_<mode>): New instruction.
2101 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2103 * configure.ac: Update checks for target tools.
2104 * configure: Regenerated.
2106 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2108 * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
2110 2005-03-13 Roger Sayle <roger@eyesopen.com>
2112 * expmed.c (expand_mult): Use synthetic multiplication sequences for
2113 more classes of DImode multiplication by constant. Allow both
2114 multiplication by small negative constants (by performing a
2115 multiplication by a positive constant and negating the result) and
2116 multiplications by large powers of two, by using a left shift.
2118 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
2120 * tree-into-ssa.c (find_idf): Speed up by putting the indexes
2121 of basic blocks into work_stack.
2123 * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
2124 config/mips/vr.h: Update copyright.
2126 * c-decl.c (c_init_decl_processing): Remove useless calls to
2127 build_function_type.
2129 * builtins.c (fold_trunc_transparent_mathfn,
2130 fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
2131 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
2132 fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
2133 fold_builtin_strcpy, fold_builtin_strncpy,
2134 fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
2137 * builtins.c (expand_builtin_mathfn_3): Remove local variable
2140 * lambda-code.c (lambda_compute_auxillary_space): Remove local
2141 variable determinant.
2143 * tree-cfg.c (group_case_labels): Remove local variable type.
2145 * tree-ssa-live.c (build_tree_conflict_graph): Remove local
2148 * tree-ssa-phiopt.c (value_replacement): Remove local variable
2151 2005-03-13 Andy Hutchinson <HutchinsonAndy@netscape.net>
2154 * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
2155 (*movmemqi_insn): Delete.
2156 (*movmemhi): Delete.
2158 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
2160 * builtins.c (fold_builtin_classify): Take decomposed
2161 arguments of CALL_EXPR.
2162 (fold_builtin_1): Update a call to fold_builtin_classify.
2164 2005-03-13 Joseph S. Myers <joseph@codesourcery.com>
2167 * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
2168 through into call to parser_xref_tag after parse error.
2169 (c_parser_struct_declaration): Consistently return NULL_TREE on
2172 2005-03-12 Daniel Berlin <dberlin@dberlin.org>
2174 * tree-flow-inline.h (ref_contains_array_ref): New function.
2175 (lookup_subvars_for_var): Ditto.
2176 (get_subvars_for_var): Ditto.
2177 (var_can_have_subvars): Ditto.
2179 * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
2180 (struct subvar): New type.
2182 * tree-dfa.c (okay_component_ref_for_subvars): New function.
2184 * tree-optimize.c (init_tree_optimization_passes): Call
2185 pass_create_structure_vars.
2187 * tree-ssa-alias.c: Include vec.h.
2188 (init_alias_info): Don't auto-clear call clobbered on struct-field
2190 (compute_flow_insensitive_aliasing): Handle subvars.
2191 (group_aliases): Handle STRUCT_FIELD aliases.
2192 (setup_pointers_and_addressables): Ditto.
2193 Don't mark variables non-addressable if they still have
2194 addressable subvars.
2195 Also mark subvars addressable when the real variable is marked
2197 (add_pointed_to_var): Try to prune the pointed-to set by only
2198 pointing to subvars when possible.
2199 Otherwise, make sure we set addresses_needed and pt_vars to
2200 properly include subvars.
2201 (bitpos_of_field): New function.
2202 (push_fields_onto_fieldstack): Ditto.
2203 (get_or_create_used_part_for): Ditto.
2204 (create_overlap_variables_for): Ditto.
2205 (find_used_portions): Ditto.
2206 (create_structure_vars): Ditto.
2207 (pass_create_structure_vars): New structure.
2209 * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
2210 (get_expr_operands): Handle subvars. Also try to turn
2211 COMPONENT_REF accesses into must-defs now that we can accurately
2213 (note_addressable): Try to only mark as addressable those subvars
2214 we know a COMPONENT_REF touches.
2215 (overlap_subvar): New function.
2217 * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
2218 Handle subvar storing.
2219 (vect_address_analysis): Update caller of vect_object_analysis.
2221 * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
2223 * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
2224 (STMT_VINFO_SUBVARS): New macro.
2226 * common.opts: add flag_tree_salias.
2228 * opts.c (decode_options): flag_tree_salias defaults to on.
2230 * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
2232 * doc/tree-ssa.texi: Document structural alias analysis.
2234 2005-03-12 Steven Bosscher <stevenb@suse.de>
2236 * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
2237 * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
2238 * tree-ssa-operands.c (get_expr_operands): Likewise.
2239 (get_expr_operands): Likewise for ERROR_MARK.
2241 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
2243 * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
2246 * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
2249 * tree-ssa-pre.c (compute_avail): Remove local variable val.
2250 (mark_operand_necessary): Remove local variable ver.
2252 * tree-vect-transform.c (vect_get_new_vect_var): Remove local
2253 variable prefix_len.
2255 * value-prof.c (mod_subtract_transform): Remove local variable
2258 * builtins.c (fold_builtin_exponent): Take decomposed
2259 arguments of CALL_EXPR.
2260 (fold_builtin_1): Update a call to fold_builtin_exponent.
2262 * builtins.c (fold_builtin_logarithm): Take decomposed
2263 arguments of CALL_EXPR.
2264 (fold_builtin_1): Update a call to fold_builtin_logarithm.
2266 * c-decl.c (c_init_decl_processing): Remove local variables
2267 ptr_ftype_void and ptr_ftype_ptr.
2269 * gimplify.c (gimplify_expr): Remove local variables r0 and
2272 * reg-stack.c (move_for_stack_reg): Remove local variable
2274 (compare_for_stack_reg): Remove local variable flags_user.
2275 (convert_regs_1): Remove local variable deleted.
2277 * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
2279 (combine_blocks): Remove local variables exits and new_e.
2281 * tree-inline.c (expand_call_inline): Remove local variable
2284 * tree-ssa-live.c (create_ssa_var_map,
2285 calculate_live_on_entry): Remove local variable snn.
2287 2005-03-12 Geoffrey Keating <geoffk@apple.com>
2289 * c-lex.c (c_lex_with_flags): Add parameter to call to
2292 2005-03-11 Per Bothner <per@bothner.com>
2294 * c-tree.h (struct c_declarator): New id_loc field.
2295 * c-pragma.h (c_lex_with_flags): Take position reference.
2296 * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
2297 iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
2298 (c_lex): Pass dummy location to c_lex_with_flags.
2299 * c-parser.c (c_lex_one_token): Set c_token's location using
2300 c_lex_with_flags, instead of input_location, which might be "ahead".
2301 (c_parser_direct_declarator): Set declarator's id_loc from
2303 * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
2304 declarator's id_loc, rather than probably-imprecise input_location.
2305 (build_id_declarator): Initialize c_declarator's id_loc field.
2307 2005-03-11 Roger Sayle <roger@eyesopen.com>
2310 * builtins.c (expand_builtin_signbit): Force the signbit's word
2311 into an integer register to avoid SUBREGs of floating point modes.
2313 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
2315 * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
2316 target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
2317 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
2318 config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
2320 2005-03-11 David Edelsohn <edelsohn@gnu.org>
2322 PR rtl-optimization/20306
2323 * expr.c (emit_move_complex): Set try_int false if mode is
2324 MODE_COMPLEX_FLOAT and mov_optab exists for inner mode. Only try
2325 emit_block_move if try_int is true.
2327 2005-03-11 Richard Henderson <rth@redhat.com>
2330 * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
2331 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
2334 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
2336 * config/mips/mips.h (mips_fix_vr4130_string): Declare.
2337 (TARGET_FIX_VR4130): New macro.
2338 (TARGET_OPTIONS): Add -mfix-vr4130.
2339 (ISA_HAS_MACCHI): New macro.
2340 (ASM_SPEC): Add -mfix-vr4130.
2341 * config/mips/mips.c (mips_fix_vr4130_string): New variable.
2342 (override_options): Handle mips_fix_vr4130_string.
2343 (mips_avoid_hazards): Clear all_noreorder_p
2344 if we're working around VR4130 errata and the macc alternatives
2346 * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
2347 (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
2348 * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
2349 (MULTILIB_DEFAULTS): Remove leading "march=".
2350 (DRIVER_SELF_SPECS): Likewise. Make -mfix-vr4130 imply -march=vr4130
2351 if no architecture option is given.
2352 * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
2354 (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
2355 * doc/invoke.texi: Document -mfix-vr4130.
2357 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
2359 * config/mips/mips.c (override_options): Only warn about -mint64
2360 deprecation if TARGET_INT64.
2362 2005-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2364 * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
2365 ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
2366 ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
2367 are non-specific regarding the nonnull parameter positions.
2368 (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
2369 ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
2370 ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
2371 ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
2373 * builtins.def: Use the non-specific "nonnull" attibute lists.
2375 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
2377 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2378 single_pred_edge, single_succ, single_pred): Improve comments.
2380 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
2382 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2383 single_pred_edge, single_succ, single_pred): New inline functions.
2384 * bb-reorder.c (rotate_loop, find_traces_1_round,
2385 add_labels_and_missing_jumps, fix_up_fall_thru_edges,
2386 duplicate_computed_gotos): Use the single_succ/pred functions.
2387 * cfganal.c (forwarder_block_p): Ditto.
2388 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
2389 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2390 outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
2391 merge_seq_blocks): Ditto.
2392 * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
2393 * cfglayout.c (fixup_reorder_chain): Ditto.
2394 * cfgloop.c (mark_single_exit_loops, update_latch_info,
2395 canonicalize_loop_headers, verify_loop_structure): Ditto.
2396 * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
2397 mfb_update_loops, create_preheader, force_single_succ_latches,
2398 create_loop_notes): Ditto.
2399 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
2400 force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
2401 commit_one_edge_insertion, purge_dead_edges,
2402 cfg_layout_can_merge_blocks_p): Ditto.
2403 * except.c (sjlj_emit_function_enter): Ditto.
2404 * flow.c (init_propagate_block_info): Ditto.
2405 * function.c (thread_prologue_and_epilogue_insns): Ditto.
2406 * gcse.c (find_implicit_sets, bypass_conditional_jumps,
2407 insert_insn_end_bb): Ditto.
2408 * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
2409 find_if_case_2): Ditto.
2410 * lambda-code.c (perfect_nestify): Ditto.
2411 * lcm.c (optimize_mode_switching): Ditto.
2412 * loop-doloop.c (doloop_modify): Ditto.
2413 * loop-init.c (loop_optimizer_init): Ditto.
2414 * loop-iv.c (simplify_using_initial_values): Ditto.
2415 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
2416 * loop-unswitch.c (unswitch_loop): Ditto.
2417 * modulo-sched.c (generate_prolog_epilog): Ditto.
2418 * predict.c (combine_predictions_for_insn, estimate_probability,
2419 tree_estimate_probability, last_basic_block_p,
2420 estimate_bb_frequencies): Ditto.
2421 * profile.c (branch_prob): Ditto.
2422 * regrename.c (copyprop_hardreg_forward): Ditto.
2423 * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
2424 * tracer.c (layout_superblocks): Ditto.
2425 * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
2426 cfg_remove_useless_stmts_bb, cleanup_control_flow,
2427 cleanup_control_expr_graph, disband_implicit_edges,
2428 tree_find_edge_insert_loc, bsi_commit_edge_inserts,
2429 tree_verify_flow_info, tree_make_forwarder_block,
2430 tree_forwarder_block_p, remove_forwarder_block,
2431 remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
2432 * tree-if-conv.c (tree_if_conversion): Ditto.
2433 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
2434 * tree-ssa-dce.c (remove_dead_stmt): Ditto.
2435 * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
2436 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
2437 copy_loop_headers): Ditto.
2438 * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
2439 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
2440 * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
2441 lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
2442 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
2443 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
2444 * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
2445 * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
2446 * tree-ssa-threadupdate.c (redirect_edges): Ditto.
2447 * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
2448 eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
2449 * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
2450 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2451 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
2452 slpeel_add_loop_guard): Ditto.
2454 2005-03-11 James A. Morrison <phython@gcc.gnu.org>
2456 PR tree-optimization/15784
2457 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2460 * stmt.c (expand_case): Don't change index_type. Convert minval
2463 PR tree-optimization/20130
2464 * fold-const.c (fold): Fold x * -1 into -x.
2466 2005-03-11 Kaz Kojima <kkojima@gcc.gnu.org>
2468 PR rtl-optimization/20331
2469 * rtlanal.c (modified_between_p): Check its address first for MEM.
2470 (modified_in_p): Likewise.
2472 2005-03-11 Joseph S. Myers <joseph@codesourcery.com>
2474 * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
2476 2005-03-10 Steven Bosscher <stevenb@suse.de>
2478 * expr.c (expand_expr_real_1): If possible, use a conditional
2479 move for expanding MIN_EXPR and MAX_EXPR.
2480 Use temp for moving around rtx-en.
2482 2005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
2485 * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
2488 2005-03-10 Roger Sayle <roger@eyesopen.com>
2490 * builtins.c (expand_builtin_signbit): Extend to handle floating
2491 point modes wider than the largest integer type, using the
2492 operand_subword_force function to obtain the signbit's word.
2494 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2497 * combine.c (try_combine): If recog_for_combine added CLOBBERs
2498 to NEWI2PAT, fail to combine if they are used by NEWPAT.
2500 2005-03-10 Aldy Hernandez <aldyh@redhat.com>
2502 * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
2504 2005-03-10 Kazu Hirata <kazu@cs.umass.edu>
2506 * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
2508 (perform_edge_inserts): Unconditionally call
2509 free_dominator_info.
2511 * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
2513 2005-03-10 Bob Wilson <bob.wilson@acm.org>
2515 * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
2517 2005-03-10 Nathan Sidwell <nathan@codesourcery.com>
2519 * bitmap.c (bitmap_copy): Remove manual loop unrolling.
2521 * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
2523 (rtl_register_value_prof_hooks,
2524 tree_value_profile_transformations,
2525 tree_register_value_prof_hooks): Likewise.
2526 * var-tracking.c (stack_adjust_offset_pre_post,
2527 variable_htab_free, variable_union, dataflow_set_different_2,
2528 count_uses, variable_was_changed, set_frame_base_location,
2529 set_variable_part, emit_note_insn_var_location, vt_emit_notes,
2530 vt_add_function_parameters): Likewise.
2531 * varasm.c (named_section_real, named_section, make_decl_rtl,
2532 asm_emit_uninitialised, assemble_integer, decode_addr_const,
2533 const_hash_1, compare_constant, copy_constant, force_const_mem,
2534 output_constant_pool_2, output_constant_pool_1, output_constant,
2535 output_constructor, make_decl_one_only, decl_tls_model,
2536 default_no_named_section, default_elf_select_section_1,
2537 default_unique_section_1): Likewise.
2538 * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
2539 * vmsdbgout.c (addr_const_to_string): Likewise.
2542 * function.c (struct assign_parm_data_one): Remove last_named
2544 (assign_parm_find_data_types): Don't determine last_named.
2545 Reorder named_parm determination.
2546 (assign_parms): Only setup varargs on the last non-varadic
2549 2005-03-10 Kazuhiro Inaoka <inaoka.lazuhiro@renesas.com>
2551 * config/m32r/m32r.md (load_sda_base_32): New pattern. Loads
2552 sda base address on medium model.
2554 2005-03-10 Zdenek Dvorak <dvorakz@suse.cz>
2556 * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
2557 * cfgloop.c (flow_loop_nodes_find): Export.
2558 * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
2560 * cfgloopmanip.c (fix_loop_structure): New function.
2561 * predict.c (predict_loops): Clean up the loops information.
2562 * tree-cfg.c (cleanup_tree_cfg_loop): New function.
2563 (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
2565 * tree-flow.h (cleanup_tree_cfg_loop): Declare.
2566 (rewrite_into_loop_closed_ssa): Declaration changed.
2567 * tree-loop-linear.c (linear_transform_loops): Add argument to
2568 rewrite_into_loop_closed_ssa call.
2569 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2570 * tree-ssa-loop-im.c (move_computations): Ditto.
2571 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
2572 * tree-vectorizer.c (vectorize_loops): Ditto.
2573 * tree-optimize.c: Include cfgloop.h.
2574 (execute_todo): Choose whether to call cleanup_tree_cfg or
2575 cleanup_tree_cfg_loop.
2576 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
2577 (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
2578 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
2579 cleanup_tree_cfg_loop call.
2580 * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
2581 (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
2582 work on part of cfg.
2584 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2587 * gimplify.c (gimplify_asm_expr): Handle input/output constraints
2588 with multiple alternatives.
2590 * stmt.c (parse_output_constraint): Fix a typo.
2592 2005-03-09 Bob Wilson <bob.wilson@acm.org>
2594 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
2595 assembly directive instead of deprecated "no-generics".
2597 2005-03-09 Ulrich Weigand <uweigand@de.ibm.com>
2599 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
2600 for non-offsettable memory references to cope with outstanding reload
2602 * config/s390/s390.md ("reload_outti"): Call find_replacement to
2603 avoid losing outstanding address reloads.
2604 ("reload_outdi", "reload_outdf"): Likewise.
2606 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2608 * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
2609 code. Add more cbrt transformations.
2611 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2613 * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
2615 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
2617 * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
2618 NULL_TREE when a given tree is not simplified.
2619 (fold): Return the original tree when any of the functions
2620 mentioned above NULL_TREE.
2622 * fold-const.c (fold_unary, fold_binary): Take decomposed
2623 arguments, code, type, op0, and op1 in case of fold_binary.
2624 (fold): Update calls to fold_unary and fold_binary.
2626 2005-03-09 Roger Sayle <roger@eyesopen.com>
2628 * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
2629 a fndecl and an arglist instead of a CALL_EXPR, exp.
2631 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
2633 * cfglayout.c (fixup_reorder_chain): Remove old_bb.
2635 * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
2637 * expr.c (expand_assignment): Remove orig_to_rtx.
2639 * fold-const.c (int_const_binop): Remove no_overflow.
2641 * ifcvt.c (noce_emit_move_insn): Remove inmode.
2643 * loop-iv.c (get_biv_step_1): Remove lhs.
2645 * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
2647 * real.c (real_nan): Remove neg.
2649 * function.c (thread_prologue_and_epilogue_insns): Remove i
2652 * tree-data-ref.c (array_base_name_differ_p): Remove ta and
2655 * tree-eh.c (tree_could_trap_p): Remove idx.
2657 * tree-into-ssa.c (ann): Remove ann.
2659 * tree-outof-ssa.c (num_nodes): Remove num_nodes.
2661 * tree-sra.c (decide_block_copy): Remove inst_count.
2663 * tree-ssa-alias.c (may_alias_p): Remove v_ann.
2665 * tree-ssa-loop-im.c (lhs): Remove.
2667 * cfgbuild.c (state, STATE, SET_STATE,
2668 BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
2670 (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
2671 (find_basic_blocks): Set the state of each basic block to
2674 2005-03-08 Jeff Law <law@redhat.com>
2676 * tree-cfg.c (cleanup_control_flow): If removal of a computed
2677 goto results in the removal of edges in the CFG, then we need
2678 to recompute dominators.
2680 2005-03-09 Ben Elliston <bje@au.ibm.com>
2682 * c-common.c (c_do_switch_warnings): Comment fix.
2684 2005-03-08 Julian Brown <julian@codesourcery.com>
2686 * Patch from 2005-03-08 reverted for causing regressions and
2687 ppc-darwin bootstrap failure.
2689 2005-03-08 Fariborz Jahanian <fjahanian@apple.com>
2691 * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
2692 Define the real function for ppc-darwin.
2693 * c-typeck.c (convert_arguments): Check for target-specific
2694 invalid argument call to unprototyped function.
2695 * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
2697 * target.h (invalid_arg_for_unprototyped_fn): New field
2699 * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
2700 default target hook.
2701 * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
2704 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2706 * c-typeck.c (constructor_stack, constructor_range_stack,
2707 initializer_stack): Make them static.
2709 * cfg.c (rbi_pool): Make it static.
2711 * gimple-low.c (lower_stmt_body): Make it static.
2712 * tree-flow.h: Remove the corresponding prototype. Don't
2715 * sched-deps.c (cache_size): Make it static.
2717 * stor-layout.c (lang_adjust_rli): Make it static.
2719 2005-03-08 Julian Brown <julian@codesourcery.com>
2721 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
2722 from being used for symbols with vague linkage when
2723 HAVE_GAS_COMDAT_GROUP is true.
2725 2005-03-08 J"orn Rennecke <joern.rennecke@st.com>
2727 * jump.c (invert_jump_1): Don't call redirect_jump_1 with
2728 nlabel == JUMP_LABEL (jump).
2730 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2732 * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
2733 gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
2734 tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
2735 tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
2737 2005-03-08 Alexey Neyman <alex.neyman@auriga.ru>
2740 * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
2741 * c-common.c (handle_returns_twice): New function.
2742 (c_common_attribute_table): Declare eturns_twice' attribute.
2743 * doc/extend.texi: Document eturns_twice' attribute.
2744 * tree.h (DECL_IS_RETURNS_TWICE): New macro.
2745 (struct tree_decl): Add returns_twice_flag.
2747 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2749 * tree-ssa-phiopt.c: Fix a comment typo.
2751 * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
2752 loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
2753 config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
2756 2005-03-08 Richard Henderson <rth@redhat.com>
2758 * config/alpha/alpha.c (code_for_builtin): Replace special-case
2759 builtin codes with ctzdi2, clzdi2, popcountdi2.
2760 (struct alpha_builtin_def): Add is_const.
2761 (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
2762 (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
2763 (alpha_init_builtins): Init them. Set nothrow and const attributes
2765 (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
2766 alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
2767 alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
2768 alpha_fold_vector_minmax, alpha_fold_builtin_perr,
2769 alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
2770 alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
2771 alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
2772 alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
2773 (TARGET_FOLD_BUILTIN): New.
2774 * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
2775 (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
2777 (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
2779 2005-03-08 Ira Rosen <irar@il.ibm.com>
2781 PR tree-optimization/20122
2782 * tree-vect-analyze.c (vect_object_analysis): Analyze initial
2783 condition of access function instead of base.
2785 2005-03-07 Jeff Law <law@redhat.com>
2786 Steven Bosscher <stevenb@suse.de>
2788 * tree-cfg.c (find_taken_edge_computed_goto): New function.
2789 (find_taken_edge): Call find_taken_edge_computed_goto as
2790 appropriate. Allow any gimple invariant rather than just
2791 INTEGER_CST for VAL.
2792 (cleanup_control_flow): Cleanup a computed goto which has turned
2794 (tree_merge_blocks): If block B has any forced labels, move
2795 them to the start of block A.
2796 * tree-ssa-dom.c (thread_across_edge): Allow threading across
2797 computed gotos as well.
2798 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
2799 removal of unnecessary computed gotos too.
2800 (lookup_redirection_data): Fix type of INSERT argument. Callers
2803 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2805 * tree-ssa-phiopt.c: Update copyright. Fix indentations.
2806 Remove trailing spaces.
2808 * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
2809 unshare_all_trees): Make them static.
2810 * tree-gimple.h: Remove the corresponding prototypes.
2812 * diagnostic.h: Remove unused prototype
2813 debug_output_buffer.
2814 * modulo-sched.c: Remove unused prototype
2815 set_row_column_for_ps.
2817 * tree-ssa-phiopt.c (tree_ssa_phiopt,
2818 replace_phi_edge_with_variable): Remove unused variable i.
2820 2005-03-07 Per Bothner <per@bothner.com>
2822 * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
2824 2005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
2827 * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
2828 bbs on the COND_EXPR instead of the PHI_NODEs.
2829 (candidate_bb_for_phi_optimization): Remove.
2830 (replace_phi_with_stmt): Rename to ...
2831 (replace_phi_edge_with_variable): this and change so that we
2832 replace the phi argument instead of removing the PHI.
2833 (conditional_replacement): Change so we deal with PHI with more
2835 (value_replacement): Likewise.
2836 (abs_replacement): Likewise.
2838 2005-03-07 Aldy Hernandez <aldyh@redhat.com>
2840 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
2841 output_e500_flip_gt_bit.
2843 * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
2845 (rs6000_generate_compare): Fix logic to look at the correct bits.
2846 (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
2848 (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
2849 gen_e500_flip_gt_bit. Rename gen_move_from_CR_eq_bit to
2850 gen_move_from_CR_gt_bit.
2852 * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
2853 ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
2854 (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
2856 * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
2857 (E500_CR_IOR_COMPARE): New constant.
2859 2005-03-08 Earl Chew <earl_chew@agilent.com>
2860 David Billinghurst <David.Billinghurst@riotinto.com>
2862 * config/i386/host-cygwin.c: New file to support precompiled
2864 * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
2865 * config.host: Use above files for cygwin host.
2867 2005-03-07 David Edelsohn <edelsohn@gnu.org>
2869 * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
2870 ordering ops from earlier change.
2872 2005-03-07 Per Bothner <per@bothner.com>
2874 Various fixes to allow us to again build if --enable-mapped-location:
2875 * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
2876 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
2877 * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
2878 local variable loc. Change logic appropriately.
2879 * tree-vect-transform.c (vect_finish_stmt_generation): Use
2880 EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
2881 * c-parser.c (c_parser_for_statement): Initialize loc variable.
2882 * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
2883 DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
2885 2005-03-07 Richard Sandiford <rsandifo@redhat.com>
2887 PR rtl-optimization/19683
2888 * reload1.c (choose_reload_regs): Pass the number of bits, not the
2889 number of bytes, to smallest_int_for_mode. Fix arguments to
2890 REG_CANNOT_CHANGE_MODE_P.
2892 2005-03-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2894 * reorg.c (relax_delay_slots): Check that the jump is
2895 conditional before trying to invert it.
2897 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
2899 * bb-reorder.c (max_entry_frequency, max_entry_frequency):
2902 * calls (stack_arg_under_construction): Make it static.
2904 * flow.c (regs_live_at_setjmp): Make it static.
2905 * flow.h: Remove the corresponding prototype.
2907 * reload1.c (reload_startobj, reload_firstobj,
2908 something_needs_operands_changed, reload_inherited,
2909 reload_inheritance_insn, reload_override_in,
2910 reload_spill_index): Make them static.
2912 * recog.c (verify_changes): Make it static.
2913 * recog.h: Remove the corresponding prototype.
2915 * cfgbuild.c (find_sub_basic_blocks): Remove.
2916 * basic-block.h: Remove the corresponding prototype.
2917 * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
2919 * doc/cfg.texi: Don't mention find_sub_basic_blocks.
2921 * tree-ssa-operands.c (check_build_stmt): Remove.
2923 * stor-layout.c (set_alignment): Remove.
2924 * tree.h: Remove the corresponding prototype.
2926 * tree-ssa-pre.c (has_abnormal_preds): Make it static.
2928 * tree-ssa-dce.c (control_dependence_map,
2929 visited_control_parents): Make them static.
2931 * cfghooks.c (verify_flow_info): Remove local variable
2934 * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
2937 * loop-unswitch.c (unswitch_loop): Remove local variable src.
2939 2005-03-07 David Billinghurst <David.Billinghurst@riotinto.com>
2941 * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
2943 2005-03-07 Joseph S. Myers <joseph@codesourcery.com>
2945 * config/ia64/hpux.h (LINK_SPEC): Add -z.
2946 * config/ia64/ia64.c (ia64_function_value): Return a REG not a
2947 PARALLEL for an empty structure.
2949 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
2951 * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
2953 * fold-const.c (fold_binary): Unroll the very first "for"
2956 2005-03-06 David Edelsohn <edelsohn@gnu.org>
2958 * config/rs6000/predicates.md (branch_comparison_operator): Remove
2959 redundant match_code test.
2960 (scc_comparison_operator): Swap match_operand and match_code
2962 (branch_positive_comparison_operator): Same.
2963 (trap_comparison_operator): Use comparison_operator and swap with
2966 2005-03-06 Marek Michalkiewicz <marekm@amelek.gda.pl>
2969 * config/avr/avr.c (print_operand): Add 'p' and 'r'.
2970 (out_movhi_r_mr): Read low byte of volatile MEM first.
2971 (out_movhi_mr_r): Write high byte of volatile MEM first.
2973 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2975 * cselib.c (reg_values, reg_values_size): Make them static.
2977 * cse.c (cse_reg_info_table): Make it static.
2979 * fold-const.c (fold_unary): Use build1 instead of copy_node.
2981 2005-03-06 Zdenek Dvorak <dvorakz@suse.cz>
2983 * cse.c (find_best_addr): Use canon_for_address.
2985 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
2987 * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
2988 (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
2989 SUBREG and MEM, respectively.
2991 * fold-const.c (fold_binary): Use code instead of t.
2993 * fold-const.c (optimize_minmax_comparison): Take decomposed
2994 arguments code, type, op0, and op1 instead of t.
2995 (fold_binary): Update a call to optimize_minmax_comparison.
2997 * fold-const.c (fold_range_test): Take decomposed arguments
2998 code, type, op0, and op1 instead of t.
2999 (fold_binary): Update a call to fold_range_test.
3001 * fold-const.c (fold_binary_op_with_conditional_arg): Take
3002 decomposed arguments code, type, op0, and op1 instead of t.
3003 (fold_binary): Update a call to fold_range_test.
3005 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
3007 * fold-const.c (fold_binary): Avoid directly using the original
3008 expression t as much as possible.
3010 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
3012 * c-semantics.c (build_stmt): Use TYPE_P instead of
3013 IS_NON_TYPE_CODE_CLASS.
3014 * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
3015 (NON_TYPE_CHECK): Use TYPE_P instead of
3016 IS_NON_TYPE_CODE_CLASS.
3018 * fold-const.c (fold): Remove handling of binary expressions.
3020 2005-03-05 James A. Morrison <phython@gcc.gnu.org>
3022 * doc/c-tree.texi: Wrap comments in @r{}.
3023 * doc/cpp.texi: Likewise.
3024 * doc/cppinternals.texi: Likewise.
3025 * doc/extend.texi: Likewise.
3026 * doc/md.texi: Likewise.
3027 * doc/objc.texi: Likewise.
3028 * doc/sourcebuild.texi: Likewise.
3029 * doc/tm.texi: Likewise.
3032 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
3034 * predict.c (apply_return_prediction): Standardize PHI chain
3036 * tree-ssa.c (ssa_redirect_edge): Likewise.
3038 * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
3039 gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
3042 * tree-phinodes.c (remove_phi_node): Drop the last argument.
3043 * tree-flow.h: Adjust the prototype for remove_phi_node.
3044 * lambda-code.c (perfect_nestify): Adjust a call to
3047 (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
3048 * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
3050 * tree-ssa-dce.c (remove_dead_phis): Likewise.
3051 * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
3052 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
3053 * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
3055 * combine.c (simplify_and_const_int): Use gen_int_mode instead
3056 of GEN_INT (trunc_int_for_mode (...)).
3057 * loop-iv.c (iv_number_of_iterations): Likewise.
3058 * postreload.c (reload_cse_move2add): Likewise.
3059 * simplify-rtx.c (simplify_const_unary_operation,
3060 simplify_const_binary_operation): Likewise.
3061 * stor-layout.c (get_mode_bounds): Likewise.
3063 * fold-const.c (fold_binary): New.
3064 (fold): Call fold_binary on binary expressions.
3066 2005-03-05 Richard Sandiford <rsandifo@redhat.com>
3068 * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
3069 * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
3070 (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
3071 (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
3072 (ASM_SPEC): Pass down -msym32 and -mno-sym32.
3074 2005-03-04 Devang Patel <dpatel@apple.com>
3076 PR tree-optimization/18815
3077 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
3078 loops with zero exit edges.
3080 2005-03-04 Devang Patel <dpatel@apple.com>
3082 * doc/invoke.texi: Remove reference to webpage that does not exist.
3084 2005-03-04 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
3085 Joseph S. Myers <joseph@codesourcery.com>
3088 * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
3089 (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
3090 * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
3091 * pa.c (get_plabel): Change argument to symbol_ref. Call
3092 maybe_get_identifier instead of get_identifier.
3093 (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
3094 (struct deferred_plabel): Replace name field with symbol field.
3095 (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
3096 ASM_OUTPUT_EXTERNAL_REAL is defined.
3097 (output_global_address): Use output_addr_const for output of all
3099 (output_deferred_plabels): Use symbol_ref instead of name for address
3101 * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
3102 ASM_OUTPUT_SYMBOL_REF): New macros.
3103 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw. Update
3105 (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
3108 2005-03-05 Joseph S. Myers <joseph@codesourcery.com>
3110 * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
3111 *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
3113 2005-03-04 Jeff Law <law@redhat.com>
3115 * basic-block.h (rediscover_loops_after_threading): Declare.
3116 * tree-ssa-dom.c: Include cfgloop.h.
3117 (tree_ssa_dominator_optimize): Discover loops and some basic
3118 properties. Remove forwarder blocks recreated by loop header
3119 canonicalization. Also mark backedges in the CFG.
3120 * tree-ssa-threadupdate.c: Include cfgloop.h
3121 (rediscover_loops_after_threading): Define.
3122 (struct local_info): New field, JUMP_THREADED.
3123 (prune_undesirable_thread_requests): New function.
3124 (redirect_edges): Clear EDGE_ABNORMAL. If edges were threaded
3125 then record that fact for the callers of redirct_edges.
3126 (thread_block): If BB has incoming backedges, then call
3127 prune_undesirable_thraed_requests. Note when we are
3128 going to have to rediscover loop information. Return a
3129 boolean indicating if any jumps were threaded.
3130 (thread_through_all_blocks): Bubble up boolean indicating
3131 if any jumps were threaded.
3132 * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
3133 (tree-ssa-threadupdate.o): Similarly.
3135 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
3137 * fold-const.c (fold_ternary): Unroll the "for" loop to
3140 2005-03-04 Andrew Haley <aph@redhat.com>
3142 * unwind-dw2-fde-glibc.c (struct
3143 unw_eh_callback_data.check_cache): New field.
3144 (frame_hdr_cache): New.
3145 (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
3146 Cache frame header info.
3148 2005-03-04 Richard Sandiford <rsandifo@redhat.com>
3150 * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
3151 (print_c_condition): Declare.
3152 * read-rtl.c (ptr_loc): New structure.
3153 (ptr_locs, ptr_loc_obstack, joined_conditions)
3154 (joined_conditions_obstack): New variables.
3155 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
3156 (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
3157 (join_c_conditions, print_c_condition): New functions.
3158 (apply_macro_to_string): Associate the new string with the same
3159 source location as the old one.
3160 (add_condition_to_string): Use join_c_conditions.
3161 (read_string): Use set_rtx_ptr_loc to record a filename and line
3162 number for the string.
3163 (read_rtx): Initialize the new variables above.
3164 * genattrtab.c (write_test_expr, write_attr_value): Use
3166 * genconditions.c (write_header): Don't define MAYBE_EVAL. Move its
3167 comment above the GCC_VERSION check.
3168 (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
3169 Inline the definition of MAYBE_EVAL.
3170 * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
3171 * genoutput.c (process_template): Likewise.
3172 * genpreds.c (write_predicate_subfunction): Likewise.
3173 (write_predicate_expr): Use print_c_condition.
3174 * genrecog.c (write_cond): Likewise.
3175 * gensupport.c (process_rtx): Use join_c_conditions to join the
3176 conditions of a define_insn_and_split. Record a source location
3177 for the string after the "&&".
3178 (alter_test_for_insn): Use join_c_conditions.
3180 2005-03-04 Andrew Pinski <pinskia@physics.uc.edu>
3183 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
3184 PR tree-optimization/15784
3185 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
3188 2005-03-04 Ben Elliston <bje@au.ibm.com>
3190 * gcc.c (option_map): Add --coverage.
3191 (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
3192 (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
3193 * config/darwin.h: Pass -lgcov for `coverage'.
3194 * doc/invoke.texi (Debugging Options): Document --coverage.
3196 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
3198 * gcse.c (bypass_block): Use find_edge wherever possible.
3200 2005-03-03 Daniel Berlin <dberlin@dbrelin.org>
3204 * c-opts.c (c_common_parse_file): Call start_source_file
3205 and end_source_file at the approriate times.
3207 * dwarf2out.c (dwarf2out_finish): Don't auto-end
3208 the main file, it will be done for us now.
3210 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
3212 * fold-const.c (fold_ternary): New.
3213 (fold): Call fold_ternary on ternary expressions. Remove
3214 handling of ternary expressions.
3216 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
3218 PR tree-optimization/15784
3219 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
3222 2005-03-03 David Edelsohn <edelsohn@gnu.org>
3224 * config/rs6000/predicates.md (branch_comparison_operator):
3225 Convert from C block to conditional format.
3227 2005-03-03 Jan Hubicka <jh@suse.cz>
3229 * tree-dfa.c (add_referenced_var): Don't walk initializer of external
3230 and non-constant public variables.
3232 2005-03-03 Kazu Hirata <kazu@cs.umass.edu>
3234 * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
3237 * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
3240 * tree-phinodes.c (remove_phi_node): Clean up by factoring out
3241 calls to release_ssa_name and release_phi_node.
3243 * fold-const.c (fold): Remove handling of unary expressions.
3245 * fold-const.c (fold_unary): Avoid directly using the original
3246 expression t as much as possible.
3248 2005-03-03 Roger Sayle <roger@eyesopen.com>
3249 Andrew Pinski <pinskia@physics.uc.edu>
3251 * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
3252 RETURN rtx, and not a LABEL_REF containing a NULL pointer.
3254 2005-03-03 Hans-Peter Nilsson <hp@axis.com>
3256 Describe special registers SRP and MOF as allocatable registers.
3257 * config/cris/cris.c (cris_md_asm_clobbers): New function.
3258 (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
3259 (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
3260 TARGET_HAS_MUL_INSNS.
3261 (cris_print_operand) <case 'd'>: New case.
3262 <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
3263 * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
3265 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
3266 (REG_ALLOC_ORDER): Update for MOF.
3267 (enum reg_class): New members MOF_REGS, GENERAL_REGS and
3269 (GENERAL_REGS): No longer a define of ALL_REGS.
3270 (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
3271 (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
3273 (CRIS_SPECIAL_REGS_CONTENTS): New macro.
3274 (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
3275 (SECONDARY_RELOAD_CLASS): Define.
3276 (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
3277 (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
3278 (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
3279 (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
3280 (REGISTER_MOVE_COST): Define.
3281 (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
3282 * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
3283 (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
3284 (CRIS_MOF_REGNUM): New define_constants.
3285 ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
3287 ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
3289 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
3290 ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
3291 Adjust for MOF being properly described as a register.
3292 (indir_to_reg_split): Name this split. Conditionalize on the
3293 destination register being a general register.
3294 (movei): Conditionalize on on operands 0 and 1 having the same
3297 2005-03-03 Alan Modra <amodra@bigpond.net.au>
3300 * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
3301 -mcpu to override any other explicitly given flags.
3303 2005-03-02 J"orn Rennecke <joern.rennecke@st.com>
3305 * recog.c (verify_changes, confirm_change_group): New functions,
3306 broken out of apply_change_group.
3307 (apply_change_group): Use them.
3308 * recog.h (verify_change, confirm_change_group): Declare.
3309 * rtl.h (redirect_jump_2): Declare.
3310 * jump.c (redirect_exp, invert_exp): Delete.
3311 (invert_exp_1): Take second parameter. Return value. Changed caller.
3312 (redirect_jump_2): New function, broken out of redirect_jump.
3313 (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
3314 (invert_jump): Use invert_jump_1 and redirect_jump_2.
3315 * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
3317 2005-03-02 Geoffrey Keating <geoffk@apple.com>
3319 * varasm.c (named_section): Use xstrdup rather than doing it by
3322 * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
3324 2005-03-02 Devang Patel <dpatel@apple.com>
3326 Undo PR tree-optimization/18815 fix.
3328 2005-03-02 Devang Patel <dpatel@apple.com>
3330 PR tree-optimization/18815
3331 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
3332 loops with zero exit edges.
3334 2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
3336 * cfg.c (connect_src, connect_dest, disconnect_src,
3337 disconnct_dest): New.
3338 (unchecked_make_edge, remove_edge, redirect_edge_succ,
3339 redirect_edge_pred): Use the new functions.
3341 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
3342 free_dominance_info only when needed.
3344 2005-03-02 David Edelsohn <edelsohn@gnu.org>
3347 * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
3348 (reg_or_sub_cint64_operand): Same.
3350 2005-03-02 Jeff Law <law@redhat.com>
3352 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
3353 CFG_ALTERED in the main DOM iteration loop.
3355 2005-03-02 Mark Mitchell <mark@codesourcery.com>
3358 * varasm.c (initializer_constant_valid_p): Allow conversions
3359 between OFFSET_TYPEs. Tidy.
3361 2005-03-02 Hans-Peter Nilsson <hp@axis.com>
3363 * config/cris/cris.md ("return"): Remove epilogue delay list
3366 2005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
3368 * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
3370 * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
3372 2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
3374 * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
3375 loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
3376 config/m68k/m68k.c, config/mips/mips.h,
3377 config/rs6000/rs6000-protos.h, doc/contrib.texi,
3378 doc/include/gcc-common.texi: Update copyright.
3380 PR middle-end/18029 and PR middle-end/18030
3381 * expr.c (optimize_bitfield_assignment_op): Add a special case
3382 to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
3384 * fold-const.c (fold_unary): New.
3385 (fold): Call fold_unary on unary expressions.
3387 2005-03-02 Richard Guenther <rguenth@gcc.gnu.org>
3389 * cgraph.h (struct cgraph_edge): Add prev_caller and
3391 (cgraph_node_remove_callees): Export.
3392 * cgraph.c (cgraph_create_edge): Initialize prev_caller
3394 (cgraph_edge_remove_callee): New function.
3395 (cgraph_edge_remove_caller): Likewise.
3396 (cgraph_remove_edge): Use.
3397 (cgraph_redirect_edge_callee): Likewise.
3398 (cgraph_node_remove_callees): New function.
3399 (cgraph_node_remove_callers): Likewise.
3400 (cgraph_remove_node): Use.
3401 * tree-optimize.c (tree_rest_of_compilation): Use
3402 cgraph_node_remove_callees instead of manual loop.
3403 * cgraphunit.c (cgraph_finalize_function): Likewise.
3404 (cgraph_expand_function): Likewise.
3405 (cgraph_remove_unreachable_nodes): Likewise.
3407 2005-03-02 Joseph S. Myers <joseph@codesourcery.com>
3410 * c-tree.h (undeclared_variable, build_external_ref): Add extra
3412 * c-decl.c (undeclared_variable): Take location as argument.
3413 * c-typeck.c (build_external_ref): Likewise.
3414 * c-parser.c (c_parser_postfix_expression): Pass location of
3415 identifier to build_external_ref.
3417 2005-03-01 David Edelsohn <edelsohn@gnu.org>
3419 * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
3420 CCEQ mode for branch_positive_comparison_operator test.
3421 * config/rs6000/predicates (branch_comparison_operator): Revert to
3423 (scc_comparison_operator): Same.
3424 (branch_positive_comparison_operator): Same.
3426 2005-03-01 Hans-Peter Nilsson <hp@axis.com>
3428 * config/cris/cris.c (cris_eligible_for_epilogue_delay)
3429 (cris_delay_slots_for_epilogue): Remove.
3430 (save_last): Move into cris_target_asm_function_epilogue.
3431 (cris_target_asm_function_epilogue): Remove tests for file being
3433 * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
3434 (cris_delay_slots_for_epilogue): Remove prototypes.
3435 * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
3436 (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
3438 2005-03-01 David Edelsohn <edelsohn@gnu.org>
3440 * config/rs6000/predicates.md (branch_comparison_operator): Change
3441 to define_special_predicate.
3442 (scc_comparison_operator): Same.
3443 (branch_positive_comparison_operator): Same.
3445 2005-03-01 Daniel Berlin <dberlin@dberlin.org>
3447 * Makefile.in (tree-ssa-sink.o): New.
3448 (OBJS-common): Add tree-ssa-sink.o.
3449 * common.opt: Add -ftree-sink
3450 * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
3451 * timevar.def (TV_TREE_SINK): new timevar.
3452 * tree-flow.h (is_hidden_global_store): Prototype.
3453 * tree-optimize.c (init_tree_optimization_passes): Add
3455 * tree-pass.h (pass_sink_code): New.
3456 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
3457 for non-obvious global store store to is_hidden_global_store, and
3458 call that new function.
3459 * tree-ssa-sink.c: New file.
3460 * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
3461 * doc/passes.texi: Document forward store motion.
3462 * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
3463 * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
3464 * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
3465 * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
3467 2005-03-01 Per Bothner <per@bothner.com>
3469 * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
3470 and we have a non-zero column-number, add it to the message.
3471 Also factor out the diagnostic_kind_text.
3473 2005-03-01 Zdenek Dvorak <dvorakz@suse.cz>
3475 * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
3476 flow_loop_pre_header_scan, flow_loop_pre_header_find,
3477 flow_loop_scan): Removed.
3478 (flow_loop_dump): Do not dump removed fields.
3479 (flow_loop_free): Do not free removed fields.
3480 (flow_loops_find): Flags argument removed. Do not call flow_loop_scan.
3481 (loop_exit_edge_p): New function.
3482 * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
3483 num_pre_header_edges, entry_edges, num_entries, exit_edges,
3484 num_exits, exits_doms.
3485 (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
3486 LOOP_EDGES, LOOP_ALL): Removed.
3487 (flow_loop_scan): Declaration removed.
3488 (loop_exit_edge_p, mark_loop_exit_edges): Declare.
3489 * cfgloopmanip.c (create_loop_notes): Do not pass flags to
3491 * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
3492 (if_convert): Call flow_loops_find and flow_loops_free
3493 when calling mark_loop_exit_edges.
3494 * cfgloopanal.c (mark_loop_exit_edges): Moved from
3495 ifcvt.c. Removed the flow_loops_find, flow_loops_free and
3496 free_dominance_info calls.
3497 * loop-init.c (flow_loops_find): Ditto.
3498 * passes.c (rest_of_handle_branch_prob): Ditto.
3499 * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
3500 * loop-unroll.c (analyze_insns_in_loop): Do not use
3502 * predict.c (predict_loops): Do not call flow_loop_scan.
3503 Use get_loop_exit_edges.
3504 (tree_estimate_probability): Do not pass flags to flow_loops_find.
3505 * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
3506 Do not use EDGE_LOOP_EXIT.
3507 (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
3508 to bb_with_exit_edge_p.
3509 (if_convertible_loop_p): Do not call flow_loop_scan. Use
3510 loop->single_exit. Do not use EDGE_LOOP_EXIT. Pass loop
3511 to bb_with_exit_edge_p.
3512 (combine_blocks): Pass loop to bb_with_exit_edge_p. Do not use
3514 * tree-loop-linear.c (linear_transform_loops): Do not call
3515 flow_loop_scan. Use loop->single_exit.
3516 * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
3517 (vect_analyze_loop_form): Do not call flow_loop_scan.
3518 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
3520 (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
3522 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
3523 slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
3524 slpeel_tree_duplicate_loop_to_edge_cfg,
3525 slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
3526 Use loop_preheader_edge and loop->single_exit. Do not call
3529 2005-03-01 Nick Clifton <nickc@redhat.com>
3531 * config/arm/arm.c (thumb_find_work_register): Check all of the
3532 argument registers to see if they are free, and a couple of
3533 special cases where the last argument register but can be proved
3534 to be available during the function's prologue.
3535 (print_multi_reg, arm_compute_save_reg0_reg12_mask,
3536 output_return_instruction, emit_multi_reg_push, thumb_pushpop,
3537 thumb_unexpanded_epilogue): Use unsigned long as the type for the
3539 (thumb_compute_save_reg_mask): Likewise. Also use
3540 thumb_find_work_register() to ensure that there is agreement about
3541 which work register is going to be used in the prologue.
3542 (thumb_output_function_prologue): Use unsigned long as the type
3543 for the register bit-mask. Also delay pushing the link register if
3544 other high registers are going to be pushed.
3545 (thumb_compute_save_reg_mask, emit_multi_reg_push,
3546 print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
3547 redundant prototypes.
3549 2005-02-28 John David Anglin <dave.anglin#nrc-cnrc.gc.ca>
3552 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
3553 and after reload in REG+REG indexed addresses without REG_POINTER
3554 set in the base and not set in the index.
3556 2005-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
3558 * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
3559 Don't undefine here.
3560 (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
3561 (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
3562 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
3563 (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
3564 LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
3566 * config.gcc (sh*-*-linux*): Use config/linux.h.
3568 2005-02-28 Dale Johannesen <dalej@apple.com>
3569 Stan Shebs <shebs@apple.com>
3571 Rewrite of 64-bit Darwin structure-by-value pass/return.
3572 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
3573 intoffset, use_stack, named.
3574 * config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
3575 (rs6000_darwin64_record_arg_advance_flush): New.
3576 (rs6000_darwin64_record_arg_advance_recurse): New.
3577 (rs6000_darwin64_record_arg_flush): New.
3578 (rs6000_darwin64_record_arg_recurse): New.
3579 (rs6000_darwin64_record_arg): New.
3580 (rs6000_return_in_memory): Remove AGGREGATE_TYPE_P check.
3581 (function_arg_boundary): Handle 128-bit aligned structs.
3582 (function_arg_advance): Rewrite darwin64 struct handling.
3583 (function_arg): Call rs6000_darwin64_record_arg.
3584 (function_arg_partial_nregs): Handle darwin64 structs.
3585 (rs6000_darwin64_function_value): Remove.
3586 (rs6000_function_value): Call rs6000_darwin64_record_arg.
3588 2005-02-28 Roger Sayle <roger@eyesopen.com>
3590 PR tree-optimization/20216
3591 * tree-chrec.c (tree_fold_factorial): Delete.
3592 (tree_fold_binomial): Change argument list to take a return type
3593 and change the type of K to unsigned int. Rewrite to avoid explicit
3594 evaluation of factorials, and (recursively) calling fold to perform
3595 compile-time arithmetic. Return NULL on (internal) overflow.
3596 (chrec_evaluate): Change type of K to an unsigned int. Avoid
3597 calling tree_fold_binomial unnecessarily. Return chrec_dont_know
3598 if any intermediate calculation overflows.
3599 (chrec_apply): Update call to chrec_evaluate.
3601 2005-02-28 James E Wilson <wilson@specifixinc.com>
3603 * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
3605 2005-02-28 Joseph S. Myers <joseph@codesourcery.com>
3608 * c-parser.c (c_parser_compound_statement): Return error_mark_node
3609 instead of NULL_TREE on error.
3611 2005-02-28 David Edelsohn <edelsohn@gnu.org>
3613 * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
3614 (EASY_VECTOR_15_ADD_SELF): Remove.
3615 (num_insns_constant_wide): Not static.
3616 (validate_condition_mode): Not static.
3617 (toc_relative_expr_p): Not static.
3618 (legitimate_indirect_address_p): Not static.
3619 (macho_lo_sum_memory_operand): Not static.
3620 (invalid_e500_subreg): Not static.
3621 (easy_vector_same): Not static.
3622 (easy_vector_splat_const): Not static.
3623 (RS6000_SYMBOL_REF_TLS_P): Remove.
3624 (any_operand): Delete.
3625 (any_parallel_operand): Delete.
3626 (count_register_operand): Delete.
3627 (altivec_register_operand): Delete.
3628 (xer_operand): Delete.
3629 (s8bit_cint_operand): Delete.
3630 (short_cint_operand): Delete.
3631 (u_short_cint_operand): Delete.
3632 (non_short_cint_operand): Delete.
3633 (exact_log2_cint_operand): Delete.
3634 (gpc_reg_operand): Delete.
3635 (cc_reg_operand): Delete.
3636 (cc_reg_not_cr0_operand): Delete.
3637 (reg_or_short_operand): Delete.
3638 (reg_or_neg_short_operand): Delete.
3639 (reg_or_aligned_short_operand): Delete.
3640 (reg_or_u_short_operand): Delete.
3641 (reg_or_cint_operand): Delete.
3642 (reg_or_arith_cint_operand): Delete.
3643 (reg_or_add_cint64_operand): Delete.
3644 (reg_or_sub_cint64_operand): Delete.
3645 (reg_or_logical_cint_operand): Delete.
3646 (got_operand): Delete.
3647 (got_no_const_operand): Delete.
3648 (easy_fp_constant): Delete.
3649 (easy_vector_constant): Delete.
3650 (easy_vector_constant_add_self): Delete.
3651 (zero_constant): Delete.
3652 (zero_fp_constant): Delete.
3653 (volatile_mem_operand): Delete.
3654 (offsettable_mem_operand): Delete.
3655 (mem_or_easy_const_operand): Delete.
3656 (add_operand): Delete.
3657 (non_add_cint_operand): Delete.
3658 (logical_operand): Delete.
3659 (non_logical_cint_operand): Delete.
3660 (mask_operand): Delete.
3661 (mask_operand_wrap): Delete.
3662 (mask64_operand): Delete.
3663 (mask64_2_operand): Delete.
3664 (and64_operand): Delete.
3665 (and64_2_operand): Delete.
3666 (and_operand): Delete.
3667 (reg_or_mem_operand): Delete.
3668 (lwa_operand): Delete.
3669 (symbol_ref_operand): Delete.
3670 (call_operand): Delete.
3671 (current_file_function_operand): Delete.
3672 (input_operand): Delete.
3673 (rs6000_nonimmediate_operand): Delete.
3674 (rs6000_tls_symbol_ref): Delete.
3675 (save_world_operation): Delete.
3676 (restore_world_operation): Delete.
3677 (load_multiple_operation): Delete.
3678 (store_multiple_operation): Delete.
3679 (vrsave_operation): Delete.
3680 (mfcr_operation): Delete.
3681 (mtcrf_operation): Delete.
3682 (lmw_operation): Delete.
3683 (stmw_operation): Delete.
3684 (branch_comparison_operator): Delete.
3685 (branch_positive_comparison_operator): Delete.
3686 (scc_comparison_operator): Delete.
3687 (trap_comparison_operator): Delete.
3688 (boolean_operator): Delete.
3689 (boolean_or_operator): Delete.
3690 (min_max_operator): Delete.
3691 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
3692 (EASY_VECTOR_15): Moved to here.
3693 (EASY_VECTOR_15_ADD_SELF): Move to here.
3694 (PREDICATE_CODES): Delete.
3695 * config/rs6000/rs6000-protos.h: Delete predicate functions.
3696 Declare functions no longer static.
3697 * config/rs6000/predicates.md: New.
3698 * config/rs6000/rs6000.md: Include predicates.md
3700 2005-02-28 Kazu Hirata <kazu@cs.umass.edu>
3702 * calls.c (emit_call_1): Don't use REG_ALWAYS_RETURN.
3703 (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
3705 * cfgrtl.c (need_fake_edge_p): Likewise.
3706 * combine.c (distribute_notes): Likewise.
3707 * emit-rtl.c (try_split): Likewise.
3708 * recog.c (peephole2_opimize): Likewise.
3709 * reg-notes.def (ALWAYS_RETURN): Remove.
3710 * rtl.h (LCT_ALWAYS_RETURN): Remove.
3711 * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
3712 * tree.h (ECF_ALWAYS_RETURN): Remove.
3714 2005-02-28 Roger Sayle <roger@eyesopen.com>
3717 * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
3718 between different machine modes is never a "useless" conversion.
3720 2005-02-28 Geert Bosch <bosch@gnat.com>
3723 * doc/contrib.texi: List contributors for Ada front end
3725 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
3727 * simplify-rtx.c (simplify_unary_operation_1,
3728 simplify_const_unary_operation): New, extracted from...
3729 (simplify_unary_operation): ... this one.
3730 (simplify_binary_operation_1,
3731 simplify_const_binary_operation): New, extracted from...
3732 (simplify_binary_operation): ... this one.
3733 * rtl.h (simplify_const_unary_operation,
3734 simplify_const_binary_operation): Add prototypes.
3736 2005-02-28 Julian Brown <julian@codesourcery.com>
3738 * config/elfos.h: Revert my patch from 2005-02-25 since it broke
3739 building libjava and caused PR regression/20228.
3741 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
3744 * Makefile.in (host_subdir): New.
3745 (build_objdir): New. Replace ../$(build_subdir) with it throughout.
3746 * configure: Regenerate.
3748 2005-02-27 Zack Weinberg <zack@codesourcery.com>
3750 * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
3751 * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
3752 installation directory first.
3754 2005-02-28 Hans-Peter Nilsson <hp@axis.com>
3757 * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
3758 not including (reg). Do not check for reg being CRIS_PC_REGNUM.
3759 (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
3760 * config/cris/cris.md: Tweak comments referring to Q.
3761 ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
3762 ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
3763 ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
3764 ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
3765 ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
3766 Insert spaces in constraints to align alternatives vertically for
3768 ("cmphi"): Ditto. Add separate alternative for operand 0 "r",
3771 2005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3773 PR rtl-optimization/17728
3774 * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
3775 operand 0 from general_operand to move_dest_operand.
3777 2005-02-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3779 * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
3780 instead of trying to save and restore TREE_SYMBOL_REFERENCED.
3781 * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
3782 (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
3784 2005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
3786 * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
3787 * configure: Regenerate.
3788 * libada-mk.in: Remove CC; rename
3789 cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
3791 2005-02-26 Andrew Pinski <pinskia@physics.uc.edu>
3794 * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
3795 for the lhs, also walk over the tree. Likewise for rhs.
3797 2005-02-26 Zdenek Dvorak <dvorakz@suse.cz>
3799 * tree-ssa-dom.c (simple_iv_increment_p): New function.
3800 (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
3801 Do not propagate value of iv before increment over the increment.
3803 2005-02-25 Joseph S. Myers <joseph@codesourcery.com>
3805 * c-parser.c: New file.
3806 * c-parse.in: Remove.
3807 * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
3809 (c-parser.o): Add dependencies.
3810 (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
3811 maintainer-clean, TAGS): Update.
3812 * c-config-lang.in (gtfiles): Update.
3813 * gengtype-lex.l: Don't handle "@@".
3814 * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
3815 objc_build_synchronized, objc_begin_try_stmt,
3816 objc_begin_catch_clause, objc_finish_catch_clause,
3817 objc_build_finally_clause, objc_finish_try_stmt): New.
3818 * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
3820 (c_parse_init): Update comment.
3821 * c-decl.c (c_init_decl_processing): Update comment.
3822 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
3823 declspecs_add_scspec, declspecs_add_attrs): Initialize and update
3824 new c_declspecs members.
3826 2005-02-25 Julian Brown <julian@codesourcery.com>
3828 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
3829 from being used for symbols with vague linkage when
3830 HAVE_GAS_COMDAT_GROUP is true.
3832 2005-02-25 Mark Mitchell <mark@codesourcery.com>
3834 * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
3836 2005-02-25 Steve Ellcey <sje@cup.hp.com>
3839 * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
3840 (LIBGCC2_HAS_DF_MODE): New.
3841 (LIBGCC2_HAS_XF_MODE): New.
3842 (LIBGCC2_HAS_TF_MODE): New.
3843 * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
3844 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
3845 * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
3846 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
3847 (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
3848 * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
3849 and add _fixtfdi, _fixunstfdi, _floatditf
3850 * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
3851 L_fixunstfdi, L_floatditf.
3852 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
3853 (LIBGCC2_HAS_TF_MODE): Define.
3855 2005-02-25 Diego Novillo <dnovillo@redhat.com>
3857 PR tree-optimization/20204
3858 * tree-into-ssa.c (insert_phi_nodes_for): Do not use
3859 REWRITE_THIS_STMT markers on PHI nodes.
3860 (rewrite_initialize_block): Likewise.
3862 2005-02-25 Mark Mitchell <mark@codesourcery.com>
3864 * version.c (version_string): Update to 4.1.
3866 2005-02-25 Paolo Carlini <pcarlini@suse.de>
3868 * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
3869 Clarify that the alternative way doesn't work in GNU C++.
3871 2005-02-25 Zdenek Dvorak <dvorakz@suse.cz>
3873 PR tree-optimization/19937
3874 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
3875 to the type of the induction variable.
3877 2005-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
3879 PR rtl-optimization/20117
3880 * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
3881 the block including noncopyable insn.
3883 2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
3885 * cse.c (delete_trivially_dead_insns): Speed up by minimizing
3886 calls to find_reg_note.
3888 2005-02-24 Richard Henderson <rth@redhat.com>
3891 * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
3894 2005-02-24 Fariborz Jahanian <fjahanian@apple.com>
3896 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
3897 vector types if to use base reg for misaligned non-word ld/std.
3899 2005-02-24 Hans-Peter Nilsson <hp@axis.com>
3902 * config/cris/cris.c (cris_target_asm_function_prologue): Create
3903 dwarf2 label manually and put it after, not before the prologue.
3905 2005-02-24 David Edelsohn <edelsohn@gnu.org>
3908 * reload.c (operands_match_p): Only increment register number for
3909 SCALAR_INT_MODE_P modes in multiple hard registers.
3911 * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
3914 2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3916 * ChangeLog.5: Fix log message typo(s).
3917 * ChangeLog.7: Likewise.
3918 * ChangeLog.tree-ssa: Likewise.
3919 * cfgexpand.c: Fix comment typo(s).
3920 * conflict.c: Likewise.
3921 * defaults.h: Likewise.
3922 * dwarf2out.c: Likewise.
3924 * ggc-page.c: Likewise.
3925 * tree-eh.c: Likewise.
3926 * tree-ssa-dom.c: Likewise.
3928 2005-02-24 Jakub Jelinek <jakub@redhat.com>
3931 * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
3932 * config/rs6000/darwin-ldouble.c: Only use the .symver directives
3933 if SHARED is defined.
3936 * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
3937 allow splitting only if operands 0 and 3 don't overlap.
3939 2005-02-24 Richard Henderson <rth@redhat.com>
3942 * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
3943 (fold_builtin_1): Call them.
3944 * fold-const.c (fold_complex_mult_parts): Split out from ...
3945 (fold_complex_mult): ... here. Fix typo in both imaginary case.
3946 (fold_complex_div_parts, fold_complex_div): New.
3948 * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
3950 2005-02-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3952 * tree-ssa-ccp.c (visit_assignment): Verify that result of
3953 VIEW_CONVERT_EXPR is_gimple_min_invariant.
3955 * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
3956 (print_node): Likewise.
3957 Print TYPE_SIZES_GIMPLIFIED.
3959 2005-02-24 Hans-Peter Nilsson <hp@axis.com>
3961 * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
3962 ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
3963 operands as commutative in constraints.
3965 2005-02-24 Diego Novillo <dnovillo@redhat.com>
3967 * tree-into-ssa.c: Re-organize internal functions.
3969 2005-02-24 Richard Henderson <rth@redhat.com>
3972 * c-opts.c (c_common_post_options): Set flag_complex_method to 2
3974 * common.opt (fcx-limited-range): New.
3975 * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
3976 * toplev.c (flag_complex_method): Initialize to 1.
3977 (process_options): Set flag_complex_method to 0 if
3978 flag_cx_limited_range.
3979 * doc/invoke.texi (-fcx-limited-range): New.
3981 2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
3983 * cse.c (delete_trivially_dead_insns): Speed up by using
3984 NEXT_INSN and PREV_INSN directly instead of next_real_insn and
3987 2005-02-24 Andrea Tarani <andrea.tarani@gilbarco.com>
3989 * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
3990 functions when -mid-shared-library is being used.
3992 2005-02-23 Daniel Jacobowitz <dan@codesourcery.com>
3994 * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
3995 (LINK_LIBGCC_SPECIAL_1): Don't mention it.
3996 * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
3997 * system.h: Poison LINK_LIBGCC_SPECIAL.
3999 2005-02-23 James E Wilson <wilson@specifixinc.com>
4001 * gengtype.c (note_insn_name): Make 1 element larger.