1 2005-03-30 Sebastian Pop <pop@cri.ensmp.fr>
3 * tree-scalar-evolution.c (instantiate_parameters_1): Return
4 as soon as a chrec_dont_know is detected.
6 2005-03-31 Danny Smith <dannysmith@users.sourceforge.net>
8 Merge from csl-arm-branch.
9 2004-02-12 Mark Mitchell <mark@codesourcery.com>
11 * tlink.c (recompile_files): Do not assume that "rename" can
12 overwrite an existing file.
14 2005-03-31 Paolo Bonzini <bonzini@gnu.org>
16 * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
17 * gcc/configure: Regenerate.
19 2005-03-30 Alan Modra <amodra@bigpond.net.au>
21 * doc/install.texi: Update binutils requirement for powerpc*-linux.
23 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
25 * calls.c (struct arg_data): Update "partial" comment.
26 (load_register_parameters): Update "nregs" comment.
28 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
30 * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
31 (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
32 (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
33 (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
34 (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
35 (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
36 than target_flags & 0.
37 * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
38 (iq2000_arch, iq2000_parse_cpu): Delete.
39 (TARGET_HANDLE_OPTION): Override default.
40 (iq2000_handle_option): New function.
41 (override_options): Remove -march= and -mcpu= handling.
42 * config/iq2000/iq2000.opt: New file.
44 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
46 * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
47 * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
48 (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
49 (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
50 (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
51 (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
52 (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
53 (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
54 (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
55 (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
56 (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
57 (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
58 (c4x_rpts_cycles_string, c4x_cpu_version_string)
59 (TARGET_OPTIONS): Delete.
60 (c4x_rpts_cycles, c4x_cpu_version): Declare.
61 (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
62 (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
63 * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
64 (c4x_cpu_version_string): Delete.
65 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
66 (c4x_handle_option): New function. Map -m3x and -m4x options to the
67 equivalent -mcpu= option.
68 (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
69 Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
70 TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
71 or clearing the appropriate MASK_* bit.
72 (c4x_file_start): Use c4x_cpu_version.
73 * config/c4x/c4x.opt: New file.
75 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
77 * doc/options.texi: Document the new MaskExists flag.
78 * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
79 if the option has the MaskExists flag.
81 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
83 * opt-functions.awk (flag_set_p, test_flag): New functions.
84 (switch_flags): Use them.
85 * opth-gen.awk: Use flag_set_p to check for flags.
86 * optc-gen.awk: Likewise. Use opt_args to check for Init(...) flags.
88 2005-03-30 Ian Lance Taylor <ian@airs.com>
90 * config.host (i[34567]86-*-mingw32*): Don't set
91 host_can_use_collect2 to no.
93 2005-03-30 Alan Modra <amodra@bigpond.net.au>
96 * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
97 Remove convert_memory_address call duplicating that in memory_address.
99 2005-03-29 Richard Henderson <rth@redhat.com>
102 * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
103 (build_compound_literal): Likewise. Propagate decl type into the
105 (finish_decl): Likewise. Use new return value from complete_array_type
106 for zero sized arrays.
107 (complete_array_type): Move ...
108 * c-common.c (complete_array_type): ... here. Change first argument
109 to pointer-to-type-node. Consistently use sizetype for the index
110 except for zero sized arrays. Detect zero sized arrays for pedantic
111 mode diagnostics. Create a new type node instead of modifying the
113 * c-tree.h (complete_array_type): Move decl ...
114 * c-common.h (complete_array_type): ... here.
116 2005-03-29 Richard Henderson <rth@redhat.com>
119 * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
121 2005-03-29 Kazu Hirata <kazu@cs.umass.edu>
123 * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
124 debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
125 rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
126 tree-profile.c, tsystem.h, value-prof.h: Update copyright.
128 2005-03-29 Eric Christopher <echristo@redhat.com>
130 * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
131 truthvalue conversion removal.
133 2005-03-29 Ian Lance Taylor <ian@airs.com>
136 * collect2.c: Never include <vfork.h>.
137 (VFORK_STRING, vfork): Don't define.
138 (pid): Remove global variable.
139 (handler): Call raise instead of kill (getpid(), ...).
140 (collect_wait): Add pex parameter. Change all callers. Use
141 pex_get_status rather than pwait.
142 (do_wait): Add pex parameter. Change all callers.
143 (collect_execute): Return struct pex_obj * rather than void. Use
144 pex routines rather than pexecute.
145 (fork_execute): Get pex_obj from collect_execute, and pass it to
147 (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
148 Only declare quit_handler if SIGQUIT is defined.
149 (scan_libraries): Likewise.
150 * collect2.h (collect_execute): Update declaration.
151 (collect_wait): Update declaration.
152 * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
153 pass it to collect_wait.
155 2005-03-29 Joseph S. Myers <joseph@codesourcery.com>
158 * c-parser.c (c_parser_compound_statement_nostart): Give error
159 message for EOF instead of just setting parser->error.
161 2005-03-29 Dorit Naishlos <dorit@il.ibm.com>
163 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
164 (slpeel_update_phi_nodes_for_guard1): New function.
165 (slpeel_update_phi_nodes_for_guard2): New function.
166 (slpeel_tree_peel_loop_to_edge): Call above new functions instead
167 of slpeel_update_phi_nodes_for_guard.
168 (vectorize_loops): Remove call to loop_closed_rewrite.
169 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
172 2005-03-29 Richard Sandiford <rsandifo@redhat.com>
174 * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
175 (TARGET_LITTLE_ENDIAN): New macro.
176 * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
177 (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
178 (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
179 (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
180 (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
181 (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
182 (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
183 (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
184 (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
185 (TARGET_OPTIONS): Delete.
186 (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
187 (CACHE_FLUSH_TRAP): Turn into an integer.
188 (TARGET_LITTLE_ENDIAN): Define to 0 by default.
189 (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
190 -mflush-trap is in use.
191 * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
192 (m32r_cache_flush_trap_string): Delete.
193 (m32r_model) Initialize to M32R_MODEL_DEFAULT.
194 (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
195 (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
196 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
197 (m32r_handle_option): New function. Move -mflush-trap=, -mflush-func=,
198 -mmodel= and -msdata= handling from...
199 (m32r_init): ...here.
200 * config/m32r/m32r.opt: New file.
202 2005-03-29 Keith Besaw <kbesaw@us.ibm.com>
204 * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
205 (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
206 * tree-vect-analyze.c (vect_object_analysis): additional parm
207 pass back a "struct ptr_info_def *" with the points-to info.
208 (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
209 statement using info returned from vect_object_analysis.
210 * tree-vect-transform.c (update_vuses_to_preheader): New function.
211 (vect_create_data_ref_ptr): Remove updates to vars_to_rename
212 for virtual uses and defs when creating a replacement vector
213 reference. Call duplicate_ssa_name_ptr_info to define points-to
214 info for vector pointer replacement using STMT_VINFO_PTR_INFO.
215 (vectorizable_store): copy_virtual_operands and update
216 definition statements.
217 (vectorizable_load): copy_virtual_operands. Remove call to
218 mark_call_clobbered_vars_to_rename for call to "const" builtin.
219 * tree-vectorizer.c (vectorize_loops): Remove calls to
220 rewrite_into_ssa and bitmap_clear (vars_to_rename).
221 (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
222 * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
223 define macro STMT_VINFO_PTR_INFO for use in accessing.
224 * tree.h add export of duplicate_ssa_name_ptr_info.
225 * rs6000.c (altivec_init_builtins): Declare builtin function
226 __builtin_altivec_mask_for_load to be "const".
228 2005-03-29 Jakub Jelinek <jakub@redhat.com>
231 * cgraph.h (struct cgraph_varpool_node): Add alias field.
232 * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
233 assemble_variable on aliases.
234 * varasm.c (assemble_alias): Set node->alias.
235 * toplev.c (wrapup_global_declarations): Don't call
236 rest_of_decl_compilation on aliases again.
238 2005-03-29 Paul Brook <paul@codesourcery.com>
240 * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
241 * config/arm/arm.c (arm_dbx_register_number): New function.
242 * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
244 2005-03-29 Eric Botcazou <ebotcazou@libertysurf.fr>
247 * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
248 the DECL_NAME, not the DECL_ASSEMBLER_NAME.
250 2005-03-29 Dale Johannesen <dalej@apple.com>
252 * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
253 $(TREE_H) and $(COVERAGE_H).
254 * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
255 * opts.c (common_handle_option): Enable tree-based value transforms.
256 * toplev.c (process_options): Ditto.
257 * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
258 refers to references to this type.
259 * tree-flow.h: (struct stmt_ann_d): Add histograms field.
260 * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
261 for may_be_more, may_be_less.
262 (rtl_gen_pow2_profiler): Adjust.
263 (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
264 (rtl_gen_one_value_profiler): Adjust.
265 (rtl_gen_const_delta_profiler): Adjust.
266 * tree-profile.c (tree_gen_interval_profiler): Implement.
267 (tree_gen_pow2_profiler): Ditto.
268 (tree_gen_one_value_profiler): Ditto.
269 (tree_profiling): New.
270 (pass_tree_profile): Reference it.
271 * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
273 (insn_divmod_values_to_profile): Rename to
274 rtl_divmod_values_to_profile. Adjust.
275 (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
276 (insn_prefetch_values_to_profile): Adjust.
277 (rtl_value_profile_transformations): Adjust.
278 (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
279 (gen_mod_pow2): Rename to rtl_mod_pow2.
280 (gen_mod_subtract): Rename to rtl_mod_subtract.
281 (divmod_fixed_value_transform): Rename to
282 rtl_divmod_fixed_value_transform.
283 (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
284 (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
285 (rtl_find_values_to_profile): Adjust.
286 (tree_value_profile_transformations): Implement.
287 (tree_divmod_values_to_profile): New.
288 (tree_values_to_profile): New.
289 (tree_divmod_fixed_value): New.
290 (tree_mod_pow2): New.
291 (tree_mod_subtract): New.
292 (tree_divmod_fixed_value_transform): New.
293 (tree_mod_pow2_value_transform): New.
294 (tree_mod_subtract_transform): New.
295 (tree_find_values_to_profile): Implement.
296 * profile.c (instrument_values): Free histograms.
297 (compute_value_histograms): Adjust. Implement tree version.
299 2005-03-29 Uros Bizjak <uros@kss-loka.si>
301 * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
302 * config/i386/i386.c (output_fix_trunc): Add new round_mode
303 variable. Output "fldcw" depending on round_mode.
304 * config/i386/i386.md (UNSPEC_FIST): New.
305 (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
306 New isns patterns to implement lrint and llrint built-ins as x87
308 (fistdi2, fist<mode>2 splitters): New splitters.
309 (lrint<mode>2): New expanders.
311 2005-03-28 Ian Lance Taylor <ian@airs.com>
313 * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
314 0 when calling final_scan_insn.
316 2005-03-28 Jan Hubicka <jh@suse.cz>
319 * varasm.c (mark_decl_referenced): Do not mark extern inline functions
322 * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
323 types where possible.
325 2005-03-26 Per Bothner <per@bothner.com>
327 Make -f[no-]show-column also control non-cpp diagnostics.
328 * c.opt (fshow-column): Move option from here ...
329 * common.opt (fshow-column): ... to here.
330 * diagnostic.c (diagnostic_build_prefix): Only print column number
333 2005-03-27 Steven Bosscher <stevenb@suse.de>
335 * vax-protos.h (vax_output_int_move, vax_output_int_add,
336 vax_output_conditional_branch): New prototypes.
337 * vax.c (vax_output_int_move, vax_output_int_add): New functions,
338 extracted from vax.md mov and add patterns.
339 (vax_output_conditional_branch): New function to output conditional
341 * vax.md: Use mode macros for arithmetic and mov patterns.
342 Use code macros for the jump patterns.
344 2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
346 * Makefile.in (libbackend.o): Depend on version files;
347 add custom generation command.
349 2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
352 * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
353 sure that we have a REG before getting its REGNO.
355 2005-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
357 * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
358 * builtins.def (BUILT_IN_STRNDUP): New.
360 2005-03-25 Pat Haugen <pthaugen@us.ibm.com>
362 PR tree-optimization/20470
363 * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
366 2005-03-25 Mike Stump <mrs@apple.com>
368 * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
371 2005-03-25 Geoffrey Keating <geoffk@apple.com>
373 * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
374 Use our own structure definitions.
376 * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
377 (fix_truncdfsi2): Allow registers or memory as destination.
378 When TARGET_PPC_GFXOPT, generate simplified pattern.
379 (fix_truncdfsi2_internal): Use define_insn_and_split.
380 (fix_truncdfsi2_internal_gfxopt): New.
381 (fctiwz): Don't confuse register allocation by giving it no choices.
383 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
384 (EXTRA_MEMORY_CONSTRAINT): Likewise.
385 * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
386 * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
388 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
390 * dominance.c (free_dominance_info): Speed up by freeing et
391 data structures without maintaining other nodes.
392 * et-forest.c (et_free_tree_force): New.
393 * et-forest.h: Add a prototype for et_free_tree_force.
395 * tree.c (get_set_constructor_bits,
396 get_set_constructor_bytes): Remove.
397 * tree.h: Remove the corresponding prototypes.
399 2005-03-25 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
402 * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
403 (vax_rtx_costs): Return false when passed unsupported rtx's. Handle
404 FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE. Fix costs for POST_INC,
405 PRE_DEC, NEG and NOT.
407 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
409 * fold-const.c: Convert uses of fold (build (...)) to
412 2005-03-25 Zdenek Dvorak <dvorakz@suse.cz>
414 PR rtl-optimization/20249
415 * cse.c (insert_regs): Do not record equivalence of registers in
418 2005-03-24 Kazu Hirata <kazu@cs.umass.edu>
420 * emit-rtl.c (reverse_comparison): Remove.
421 * rtl.h: Remove the corresponding prototype.
423 2005-03-24 James E Wilson <wilson@specifixinc.com>
425 * doc/install.texi (--enable-altivec): Delete docs.
427 2005-03-24 David Edelsohn <edelsohn@gnu.org>
429 * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
430 SFmode and DFmode before reload when
431 flag_unsafe_math_optimizations not enabled.
433 2005-03-24 Geoffrey Keating <geoffk@apple.com>
435 * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
437 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
438 MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
440 2005-03-24 Nathan Sidwell <nathan@codesourcery.com>
442 * configure.ac (enable-checking): Add 'runtime' option.
443 * doc/install.texi (enable-checking): Document 'runtime' checking.
444 * tsystem.h (gcc_assert, gcc_unreachable): Define.
445 * config.in: Regenerated.
446 * configure: Regenerated.
448 2005-03-23 Uros Bizjak <uros@kss-loka.si>
450 * optabs.h (enum optab_index): Remove OTI_llrint.
451 (llrint_optab): Remove macro.
452 * optabs.c (init_optabs): Remove llrint_optab initialization.
453 * genopinit.c (optabs): Remove llrint_optab implementation.
454 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
457 2005-03-24 Alexandre Oliva <aoliva@redhat.com>
459 PR rtl-optimization/20532
460 * simplify-rtx.c (simplify_binary_operation_1): Protect from
461 overflow when adding coefficients for PLUS or MINUS.
462 (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
465 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
467 * langhooks.h (truthvalue_conversion): Remove.
468 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
469 LANG_HOOKS_TRUTHVALUE_CONVERSION.
470 * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
471 * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
472 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
474 2005-03-23 Kazu Hirata <kazu@cs.umass.edu>
476 * params.def: Fix a typo.
477 * config/mips/mips.c: Follow the spelling convensions.
478 * doc/invoke.texi: Fix typos.
480 2005-03-18 Dale Johannese <dalej@apple.com>
482 * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
484 2005-03-23 Daniel Berlin <dberlin@dberlin.org>
486 Fix PR tree-optimization/20601
488 * tree-ssa-pre.c (insert_aux): Add missing condition to
491 2005-03-23 Ian Lance Taylor <ian@airs.com>
493 * final.c (final_scan_insn): Don't remove no-op instructions.
494 * reload1.c (reload): Remove simple no-op instructions even when
497 2005-03-23 Dorit Naishlos <dorit@il.ib.com>
499 PR tree-optimization/20501
500 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
501 reporting that peeling for alignment is applied moved to...
502 * (vect_analyze_data_refs_alignment): Here.
504 2005-03-23 Ian Lance Taylor <ian@airs.com>
506 * reorg.c (dbr_schedule): Remove #if 0 code to call final.
508 2005-03-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
510 * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
511 Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
513 2005-03-23 Hans-Peter Nilsson <hp@axis.com>
515 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
516 imply that this is called once, independent of asms in code.
517 Adjust to now being pased output and input lists. Mention helper
518 function decl_overlaps_hard_reg_set_p.
519 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
520 hook_tree_tree_identity and to take three trees, returning third.
521 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
523 * stmt.c: include hard-reg-set.h before tree.h.
524 (decl_overlaps_hard_reg_set_p): New function, broken out from...
525 (decl_conflicts_with_clobbers_p): Call
526 decl_overlaps_hard_reg_set_p.
527 (expand_asm_operands): Pass output and input lists in call to
528 targetm.md_asm_clobbers.
529 * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
530 hook_tree_tree_tree_tree_3rd_identity.
531 * target.h (struct gcc_target.md_asm_clobbers): Take three tree
533 * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
534 * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
535 parameters, first two unused.
536 * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
537 parameters. Only add MOF to clobbers if there's no 'h' mentioned
538 in constraint letters and MOF is not mentioned as a asm-declared
539 register in neither of the input and output lists.
541 2005-03-23 DJ Delorie <dj@redhat.com>
543 * optabs.c (expand_binop): Make sure the first subword's result
546 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
548 * c-common.c (c_common_truthvalue_conversion): Adjust comment.
549 Call c_common_truthvalue_conversion rather than
550 lang_hooks.truthvalue_conversion.
551 * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
552 * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
554 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
555 c_common_truthvalue_conversion.
556 * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
557 c_parser_conditional_expression, c_parser_binary_expression): Call
558 c_objc_common_truthvalue_conversion.
559 * c-typeck.c (build_unary_op): Call
560 c_objc_common_truthvalue_conversion.
561 (build_conditional_expr): Do not call
562 lang_hooks.truthvalue_conversion.
563 (build_binary_op): Call c_common_truthvalue_conversion.
564 (c_objc_common_truthvalue_conversion): Moved from
565 c-objc-common.c. Call default_function_array_conversion instead
566 of default_conversion.
568 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
570 * c-common.h (default_conversion): Remove.
571 (perform_integral_promotions): Add.
572 * c-tree.h (default_conversion): Add.
573 * c-typeck.c (perform_integral_promotions): New, split out from
575 * c-common.c (check_case_value): Use perform_integral_promotions,
576 not default_conversion.
577 (c_add_case_label): Don't continue processing case label after
580 2005-03-23 Mark Mitchell <mark@codesourcery.com>
582 * gcc.c (do_spec_1): Do not add a -L path for a directory in
583 the prefix list if we have already added a multilib directory
585 (main): Do not add MD_EXEC_PREFIX to the list of directories to
588 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
590 * reload1.c (indirect_symref_ok, reload_obstack): Make them
592 * reload.h: Remove the prototype for indirect_symref_ok.
594 * reload1.c (indirect_symref_ok): Make it global.
595 * reload.h: Add a prototype for indirect_symref_ok.
597 2005-03-22 Kaz Kojima <kkojima@gcc.gnu.org>
599 * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
602 2005-03-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
604 * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
606 2005-03-22 Daniel Berlin <dberlin@dberlin.org>
608 * c-opts.c (c_common_parse_file): Only start/end main source file
609 if debug hooks says the writer wants it.
610 * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
612 (xcoff_debug_hooks): Ditto.
613 * debug.c (do_nothing_hooks): Ditto.
614 * debug.h (gcc_debug_hooks): Ditto.
615 * dwarf2out.c (dwarf2_debug_hooks): Ditto.
616 * sdbout.c (sdb_debug_hooks): Ditto.
617 * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
619 2005-03-22 Mark Mitchell <mark@codesourcery.com>
621 * doc/extend.texi: Deprecate C++ min/max operators.
623 2005-03-22 Zdenek Dvorak <dvorakz@suse.cz>
625 * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
626 artificial original candidates.
628 2005-03-22 Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
629 Jan Hubicka <jh@suse.cz>
630 Steven Bosscher <stevenb@suse.de>
632 * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
633 call cost based on argument sizes.
634 (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
636 * params.def: (max-inline-inssn-single): Set to 450.
637 (max-inline-insns-auto): Set to 90.
638 (max-inline-insns-recursive): Set to 450
639 (max-inline-insns-recursive-auto): Set to 450.
640 (large-function-insns): Set to 2700.
641 (inline-call-cost): New parameter.
642 * tree-inline.c (estimate_move_cost): New function.
643 (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
644 for non-gimple-regs, set cost to 0 for gimple-regs. Compute call size
646 * tree-inline.h (estimate_move_cost): Declare.
647 * invoke.texi: (max-inline-inssn-single): Change default to 450.
648 (max-inline-insns-auto): Change default to 90.
649 (max-inline-insns-recursive): Change default to 450
650 (max-inline-insns-recursive-auto): Change default to 450.
651 (large-function-insns): Change default to 2700.
652 (inline-call-cost): Document new parameter.
654 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
656 * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
657 (TARGET_DEFAULT): Delete.
658 * config/i860/i860.opt: New file.
660 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
662 * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
663 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
664 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
665 (frv_sched_lookahead): Delete.
666 * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
667 (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
668 (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
669 (MASK_LIBPIC, MASK_ACC_4, MASK_PACK, MASK_LONG_CALLS)
670 (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
671 (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
672 (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
673 (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
674 (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
675 (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
676 (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
677 (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
678 (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
679 (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
680 (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
681 (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
682 (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
683 (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
684 (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
685 (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
686 (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
687 (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
688 * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
689 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
690 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
691 (frv_sched_lookahead): Delete.
692 (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
693 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
694 (frv_handle_option): New function. Move -mcpu= handling from...
695 (frv_override_options): ...here. Remove handling of other
697 (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
698 TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
699 (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
700 and TARGET_NO_MULTI_CE.
701 (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
703 * config/frv/frv.opt: New file.
705 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
707 * fold-const.c (fold_ternary): Take decomposed arguments of
709 (fold): Update a call to fold_ternary.
711 * fold-const.c (fold_build1, fold_build2, fold_build3): New.
712 * tree.h: Add corresponding prototypes.
714 2005-03-22 Jakub Jelinek <jakub@redhat.com>
717 * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
718 between jump table and its label.
719 * final.c (shorten_branches): Handle notes in between ADDR_VEC
720 resp. ADDR_DIFF_VEC and the label preceeding it.
721 (final_scan_insn): Likewise. Ensure ADDR_VEC resp. ADDR_DIFF_VEC
722 is emitted in the right section.
724 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
726 * fold-const.c (fold_unary, fold_binary): Update comments
729 2005-03-22 Hans-Peter Nilsson <hp@axis.com>
731 PR rtl-optimization/20527
732 * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
733 REG_INC note, test that the register also isn't mentioned in PRED
736 2005-03-22 Ben Elliston <bje@au.ibm.com>
738 * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
741 2005-03-21 Mike Stump <mrs@apple.com>
743 * varasm.c (default_assemble_visibility): Remove extra ().
745 2005-03-21 Roger Sayle <roger@eyesopen.com>
748 * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
749 to determine whether a block can be duplicated, rather than test
750 whether the block contains noncopyable insns ourselves.
752 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
754 * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
757 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
759 * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
761 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
763 * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
764 (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
765 * config/fr30/fr30.opt: New file.
767 2005-03-18 Daniel Berlin <dberlin@dberlin.org>
769 Fix PR tree-optimization/20542
771 * tree-flow-inline.h (overlap_subvar): Move to here.
772 * tree-ssa-operands.c: From here.
773 * tree-flow.h (overlap_subvar): Declare.
774 * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
775 * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
776 for variables with subvars.
778 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
781 * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
782 * modulo-sched.c (const_iteration_count): Return on NULL
784 (print_node_sched_params): Return on NULL dump_file.
785 (generate_reg_moves): Handle reg-anti dependencies and disregard
786 closing branch when generating register moves.
787 (sms_schedule): Mark the SMSed block dirty.
788 * passes.c (rest_of_handle_sms): Call update_life_info for all
790 * testsuite/gcc.dg/20050321-1.c: New test.
792 2005-03-21 Bob Wilson <bob.wilson@acm.org>
794 * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
795 * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
796 movqi_internal): Likewise.
798 2005-03-21 Bob Wilson <bob.wilson@acm.org>
800 * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
801 xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
802 xtensa_b4const): Delete prototypes.
803 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
804 xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
805 (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
806 xtensa_extra_constraint): New prototypes.
807 (add_operand, arith_operand, nonimmed_operand, mem_operand,
808 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
809 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
810 move_operand, const_float_1_operand, fpmem_offset_operand,
811 branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
812 * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
813 (xtensa_b4const_or_zero): ...this. Change return type to bool and
814 argument type to HOST_WIDE_INT.
815 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
816 xtensa_mask_immediate): Likewise.
817 (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
818 Likewise. Also make these functions static.
819 (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
820 (xtensa_const_ok_for_letter_p): New.
821 (add_operand, arith_operand, nonimmed_operand, mem_operand,
822 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
823 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
824 move_operand, const_float_1_operand, fpmem_offset_operand,
825 branch_operator, ubranch_operator, boolean_operator): Move to
827 (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
828 (xtensa_mem_offset): Change return type to bool.
829 (xtensa_extra_constraint): New.
830 (gen_int_relational): Update type of const_range_p function pointer.
831 Use xtensa_b4const_or_zero.
832 * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
833 xtensa_const_ok_for_letter_p. Update comments.
834 (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
835 (PREDICATE_CODES): Delete.
836 * config/xtensa/xtensa.md: Include predicates.md.
837 * config/xtensa/predicates.md: New file.
839 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
841 * config/v850/v850-protos.h: Remove the prototypes for
842 reg_or_int9_operand, reg_or_const_operand,
843 pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
844 reg_or_0_operand, reg_or_int5_operand, call_address_operand,
845 movsi_source_operand, power_of_two_operand,
846 not_power_of_two_operand, special_symbolref_operand,
847 pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
848 register_is_ok_for_epilogue.
849 * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
850 reg_or_int9_operand, reg_or_const_operand,
851 call_address_operand, special_symbolref_operand,
852 movsi_source_operand, power_of_two_operand,
853 not_power_of_two_operand, register_is_ok_for_epilogue,
854 pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
855 pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
857 * config/v850/v850.h (PREDICATE_CODES): Remove.
858 * config/v850/v850.md: Include predicates.md.
859 * config/v850/predicates.md: New.
861 2005-03-21 Zack Weinberg <zack@codesourcery.com>
863 * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
864 (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
865 (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
866 (itoolsdir, itoolsdatadir): Move definition above new first use.
867 (install-itoolsdirs): New rule.
868 (install-mkheaders): Depend on install-itoolsdirs, not
871 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
873 * tree-into-ssa.c: Remove obsolete comments.
875 2005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
877 * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
878 unrolling if -fpeel-loops is specified, too.
879 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
880 Remove superfluous check for flag_unroll_loops.
882 2005-03-21 Uros Bizjak <uros@kss-loka.si>
884 * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
885 (lrint_optab, llrint_optab): Define corresponding macros.
886 * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
887 * genopinit.c (optabs): Implement lrint_optab using lrintsi2
888 pattern and llrint_optab using llrintdi2 patterns.
889 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
890 using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
891 (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
892 BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
893 flag_unsafe_math_optimizations is set.
895 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
897 * combine.c (combine_simplify_rtx, simplify_if_then_else,
898 simplify_logical, if_then_else_cond, known_cond,
899 simplify_comparison): Adjust calls to reverse_comparison.
900 Don't use combine_reversed_comparison_code).
901 (combine_reversed_comparison_code): Remove.
902 (reversed_comparison): Using reversed_comparison_code, move it...
903 * jump.c (reversed_comparison): ... here.
904 * rtl.h (reversed_comparison): Add prototype.
906 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
908 * builtins.c (fold_builtin): Take decomposed arguments of
910 * fold-const.c (fold_ternary): Update a call to fold_builtin.
911 * gimplify.c (gimplify_call_expr): Likewise.
912 * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
913 * tree.h: Update the prototype of fold_builtin.
915 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
917 * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
918 * rtlhooks.c (gen_lowpart_no_emit_general): New.
919 * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
920 (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
921 * simplify-rtx.c (simplify_binary_operation_1): Use it.
923 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
925 * builtins.c (fold_builtin_1): Take decomposed arguments of
927 (fold_builtin): Update a call to fold_builtin_1.
929 2005-03-21 Nathan Sidwell <nathan@codesourcery.com>
932 * gcov.c (output_lines): Only output function block summary when
933 outputting branch information.
934 * doc/gcov.texi: Document format of preamble and additional block
937 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
939 * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
940 (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
941 the defaults false if BITS_PER_UNIT != 8.
942 (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
943 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
944 than BITS_PER_UNIT != 8.
945 (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
946 (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
947 (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
949 * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
950 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
952 2005-03-20 Roger Sayle <roger@eyesopen.com>
955 * fold-const.c (fold_binary): Fix type mismatch between
956 TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
957 (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
958 for non-truth-valued expressions.
960 * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
961 and FUNCTION_DECL in the main switch.
962 <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
963 TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
964 we also need to convert their operands to match.
965 <TRUTH_NOT_EXPR>: Likewise.
967 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
969 * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
970 diagnostic without checking whether an lvalue.
971 * c-common.h (lvalue_p): Remove.
972 (enum lvalue_use): Update comment.
973 (lvalue_or_else): Replace by lvalue_error.
974 * c-typeck.c (lvalue_p): Make static.
975 (lvalue_or_else): New. Call lvalue_error.
977 2005-03-21 Alan Modra <amodra@bigpond.net.au>
979 * config/rs6000/rs6000.c (rs6000_parm_start): New function.
980 (function_arg_advance): Use rs6000_parm_start.
981 (function_arg, rs6000_arg_partial_bytes): Likewise.
983 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
985 * c-common.c (check_case_value): Adjust comment about stripping
987 (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
988 * c-typeck.c (default_conversion, convert_arguments,
989 build_modify_expr, convert_for_assignment, store_init_value,
990 digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
991 manually. Remove inaccurate comments.
993 2005-03-20 Roger Sayle <roger@eyesopen.com>
994 Joseph S. Myers <joseph@codesourcery.com>
996 * varasm.c (do_assemble_alias): Restore comment describing function.
997 Annotate the target parameter as potentially unused.
999 2005-03-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
1002 * config/avr/avr.c (avr_output_function_prologue): Do not use
1003 current_function_name() in a label, use a local label instead.
1005 2005-03-20 David Edelsohn <edelsohn@gnu.org>
1007 * config/rs6000/rs6000.c (rs6000_generate_compare): Test
1008 flag_finite_math_only, not flag_unsafe_math_optimizations.
1010 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
1012 * builtins.c (fold_builtin_1): Update a call to
1013 targetm.fold_builtin.
1014 * hooks.c (hook_tree_tree_bool_null): Rename to
1015 hook_tree_tree_tree_bool_null. Take one more argument of type
1017 * hooks.h: Update the prototype of hook_tree_tree_bool_null.
1018 * target-def.h (TARGET_FOLD_BUILTIN): Define it as
1019 hook_tree_tree_tree_bool_null.
1020 * target.h (gcc_target): Update the prototype of fold_builtin.
1021 * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
1022 arguments of CALL_EXPR.
1023 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update. Mention the
1026 2005-03-20 Jan Hubicka <jh@suse.cz>
1028 * cgraph.h (cgraph_node): Add prev_clone pointer.
1029 * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
1030 (cgraph_clone_node): Produce doubly linked chain.
1032 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
1034 * c-common.c (handle_aligned_attribute, check_function_sentinel,
1035 get_nonnull_operand, handle_sentinel_attribute,
1036 check_function_arguments_recurse): Do not strip NOPS from
1038 * c-decl.c (check_bitfield_type_and_width, build_enumerator):
1040 * c-format.c (get_constant): Likewise.
1041 * c-parser.c (c_parser_postfix_expression): Likewise.
1042 * c-typeck.c (set_init_index): Likewise.
1043 (convert_arguments): Don't check for NOP_EXPR containing integer
1046 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
1048 * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
1049 fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
1050 Take decomposed arguments of CALL_EXPR.
1051 (fold_builtin_1): Update calls to the functions mentioned
1054 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
1056 * c-decl.c (check_bitfield_type_and_width): Require bit-field
1057 width to have integer type.
1058 (build_enumerator): Require enumerator value to have integer type.
1060 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
1062 * doc/extend.texi (__builtin_inf): Move statement about INFINITY
1065 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
1067 * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
1068 std=iso9899:199x): Correct descriptions.
1070 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
1072 * config.gcc: Consistently use solaris2.1[0-9]* instead of
1075 2005-03-19 Kazu Hirata <kazu@cs.umass.edu>
1077 * builtins.c (fold_builtin_memcpy): Take decomposed arguments
1079 (expand_builtin_memcpy, fold_builtin_1): Update calls to
1080 fold_builtin_memcpy.
1082 * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
1083 arguments of CALL_EXPR.
1084 (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
1085 fold_builtin_found, fold_builtin_1): Update calls to
1086 fold_trunc_transparent_mathfn.
1088 2005-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1091 * fold-const.c (fold_widened_comparison): Don't optimize casts of
1092 function pointers on targets that require function pointer
1094 (fold_sign_changed_comparison): Likewise.
1096 2005-03-19 Bernd Schmidt <bernd.schmidt@analog.com>
1098 * combine.c (try_combine): When changing the mode of a hard reg, make
1099 sure that doing so is valid.
1101 2005-03-19 Richard Sandiford <rsandifo@redhat.com>
1103 * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
1104 (TARGET_HANDLE_OPTION): Override default.
1105 (avr_handle_option): New function.
1106 * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
1107 (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
1108 (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
1109 (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
1110 (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
1111 (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
1112 (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
1113 (TARGET_OPTIONS): Delete.
1114 * config/avr/avr.opt: New file.
1116 2005-03-18 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1118 * config/m32r/m32r-protos.h: Remove the prototypes for
1119 call_address_operand, symbolic_operand, seth_add3_operand,
1120 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1121 reg_or_uint16_operand, reg_or_cmp_int16_operand,
1122 two_insn_const_operand, move_src_operand,
1123 move_double_src_operand, move_dest_operand,
1124 eqne_comparison_operator, signed_comparison_operator,
1125 large_insn_p, conditional_move_operand, carry_compare_operand,
1126 m32r_block_immediate_operand, extend_operand,
1127 reg_or_eq_int16_operand, int8_operand, and
1128 reg_or_zero_operand.
1129 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1130 seth_add3_operand, int8_operand, cmp_int16_operand,
1131 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1132 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1133 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1134 move_double_src_operand, move_dest_operand,
1135 eqne_comparison_operator, signed_comparison_operator,
1136 extend_operand, small_insn_p, large_insn_p,
1137 conditional_move_operand, carry_compare_operand,
1138 m32r_block_immediate_operand): Move to predicates.md.
1139 (MAX_MOVE_BYTES): Move to m32r.h.
1140 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1141 * config/m32r/m32r.md: Include predicates.md.
1142 * config/m32r/predicates.md: New.
1144 2005-03-18 James E Wilson <wilson@specifixinc.com>
1147 * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
1150 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1152 * config/mn10300/mn10300-protos.h: Remove the prototypes for
1153 call_address_operand, const_8bit_operand.
1154 * config/mn10300/mn10300.c (call_address_operand,
1155 const_8bit_operand, const_1f_operand): Move to predicates.md.
1156 * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
1157 * config/mn10300/mn10300.md: Include predicates.md.
1158 * config/mn10300/predicates.md: New.
1160 2005-03-18 Joseph S. Myers <joseph@codesourcery.com>
1162 * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
1163 declarations in diagnostics and %E for identifiers, not %s.
1165 2005-03-18 Jan Hubicka <jh@suse.cz>
1166 Dale Johannesen <dalej@apple.com>
1168 * basic-block.h (scale_bbs_frequencies_int,
1169 scale_bbs_frequencies_gcov_type): Declare.
1170 * cfg.c (RDIV): New macro.
1171 (update_bb_frequency_for_threading): Fix.
1172 * basic-block.h (scale_bbs_frequencies_int,
1173 scale_bbs_frequencies_gcov_type): New.
1174 * cfgloopmanip.c (scale_bbs_frequencies): Kill.
1175 (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
1176 scale_bbs_frequencies_int.
1177 * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
1179 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1181 * config/m32r/m32r-protos.h: Remove the prototypes for
1182 call_address_operand, symbolic_operand, seth_add3_operand,
1183 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1184 reg_or_uint16_operand, reg_or_cmp_int16_operand,
1185 two_insn_const_operand, move_src_operand,
1186 move_double_src_operand, move_dest_operand,
1187 eqne_comparison_operator, signed_comparison_operator,
1188 large_insn_p, conditional_move_operand, carry_compare_operand,
1189 m32r_block_immediate_operand, extend_operand,
1190 reg_or_eq_int16_operand, int8_operand, and
1191 reg_or_zero_operand.
1192 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1193 seth_add3_operand, int8_operand, cmp_int16_operand,
1194 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1195 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1196 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1197 move_double_src_operand, move_dest_operand,
1198 eqne_comparison_operator, signed_comparison_operator,
1199 extend_operand, small_insn_p, large_insn_p,
1200 conditional_move_operand, carry_compare_operand,
1201 m32r_block_immediate_operand): Move to predicates.md.
1202 (MAX_MOVE_BYTES): Move to m32r.h.
1203 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1204 * config/m32r/m32r.md: Include predicates.md.
1205 * config/m32r/predicates.md: New.
1207 * config/pa/pa-protos.h: Add prototypes for magic_milli and
1209 * config/pa/pa.c (reg_or_0_operand, call_operand_address,
1210 symbolic_operand, symbolic_memory_operand,
1211 reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
1212 indexed_memory_operand, move_dest_operand, move_src_operand,
1213 prefetch_cc_operand, prefetch_nocc_operand,
1214 reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
1215 arith_operand, arith11_operand, pre_cint_operand,
1216 post_cint_operan, arith_double_operand, ireg_or_int5_operand,
1217 ireg_operand, int5_operand, uint5_operand, int11_operand,
1218 uint32_operand, arith5_operand, and_operand, ior_operand,
1219 lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
1220 pc_or_label_operand, div_operand, plus_xor_ior_operator,
1221 shadd_operand, movb_comparison_operator,
1222 cmpib_comparison_operator): Move to predicates.md.
1223 (magic_milli, shadd_constant_p): Make it extern.
1224 * config/pa/pa.h (PREDICATE_CODES): Remove.
1225 * config/pa/pa.md: Include predicates.md.
1226 * config/pa/predicates.md: New.
1228 * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
1231 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1233 * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
1234 config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
1235 config/alpha/freebsd.h, config/alpha/linux.h,
1236 config/alpha/netbsd.h, config/alpha/osf5.h,
1237 config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
1238 config/h8300/h8300-protos.h, config/h8300/h8300.c,
1239 config/h8300/h8300.h, config/ia64/unwind-ia64.c,
1240 doc/cppopts.texi: Update copyright.
1242 2005-03-18 Jan Hubicka <jh@suse.cz>
1245 * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
1247 * varasm.c (find_decl_and_mark_needed): Mark needed only when not
1250 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1252 * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
1255 2005-03-18 Paolo Bonzini <bonzini@gnu.org>
1257 * combine.c (gen_binary): Remove.
1258 (known_cond, simplify_shift_const, find_split_point,
1259 combine_simplify_rtx, simplify_if_then_else, simplify_set,
1260 simplify_logical, expand_field_assignment, extract_left_shift,
1261 force_to_mode, if_then_else_cond, apply_distributive_law,
1262 simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
1263 simplify_comparison, reversed_comparison): Replace with
1264 simplify_gen_binary, simplify_gen_relational or
1265 distribute_and_simplify_rtx.
1266 (distribute_and_simplify_rtx): New function.
1268 2005-03-18 Alexey Neyman <alex.neyman@auriga.ru>
1269 Paolo Bonzini <gcc.gnu.org>
1271 * calls.c (setjmp_call_p, special_function_p): Update comments
1272 at the head of the functions.
1274 2005-03-18 Jan Hubicka <jh@suse.cz>
1276 * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
1278 * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
1279 function body should be released; do not proactively release function
1280 bodies in non-unit-at-a-time mode.
1282 2005-03-18 Ralf Corsepius <ralf.corsepius@rtems.org>
1284 * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
1285 mno-fp-ret-in-387 multilib variants.
1287 2005-03-18 Richard Sandiford <rsandifo@redhat.com>
1289 * common.opt (m): Remove.
1290 * opts.c (handle_option): Pass 'm' options to set_target_switch if
1292 (common_handle_option): Remove OPT_m case.
1294 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1296 * builtins.c (fold_builtin_bitop): Take decomposed arguments
1298 (fold_builtin_1): Update a call to fold_builtin_bitop.
1300 * builtins.c (fold_builtin_signbit): Take decomposed arguments
1302 (fold_builtin_1): Update a call to fold_builtin_signbit.
1304 2005-03-17 Dorit Naishlos <dorit@il.ibm.com>
1306 PR tree-optimization/20474
1307 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
1308 size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
1310 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
1312 * config/h8300/h8300-protos.h: Remove prototypes for
1313 general_operand_src, general_operand_dst, single_one_operand,
1314 single_zero_operand, call_insn_operand,
1315 two_insn_adds_subs_operand, small_call_insn_operand,
1316 jump_address_operand, bit_operand, bit_memory_operand,
1317 stack_pointer_operand, const_int_gt_2_operand,
1318 const_int_ge_8_operand, const_int_qi_operand,
1319 const_int_hi_operand, incdec_operand, bit_operator,
1320 nshift_operator, eqne_operator, gtle_operator,
1321 gtuleu_operator, iorxor_operator.
1322 Add prototypes for h8sx_shift_type h8sx_classify_shift and
1323 h8300_ldm_stm_parallel.
1324 * config/h8300/h8300.c (h8sx_shift_type,): Move to
1326 (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
1327 SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
1328 (h8300_ldm_stm_parallel): Make it extern.
1329 (h8300_ldm_parallel, h8300_stm_parallel,
1330 h8300_return_parallel, general_operand_src,
1331 general_operand_dst, h8300_dst_operand, h8300_src_operand,
1332 nibble_operand, reg_or_nibble_operand, single_one_operand,
1333 single_zero_operand, call_insn_operand,
1334 two_insn_adds_subs_operand, small_call_insn_operand,
1335 jump_address_operand, bit_operand, bit_memory_operand,
1336 stack_pointer_operand, const_int_gt_2_operand,
1337 const_int_ge_8_operand, const_int_qi_operand,
1338 const_int_hi_operand, incdec_operand, eqne_operator,
1339 gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
1340 h8sx_binary_memory_operator, h8sx_unary_memory_operator,
1341 h8sx_unary_shift_operator, h8sx_binary_shift_operator,
1342 nshift_operator): Move to predicates.md.
1343 * config/h8300/h8300.h (PREDICATE_CODES): Remove.
1344 * config/h8300/h8300.md: Include predicates.md.
1345 * config/h8300/predicates.md: New.
1347 2005-03-17 Richard Henderson <rth@redhat.com>
1349 * config.gcc (ia64*-*-hpux*): Add extra_options.
1350 * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
1351 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1352 * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
1353 (ia64_tls_size_string, ia64_tune_string): Remove.
1354 (ia64_tune): Init to PROCESSOR_ITANIUM2.
1355 (TARGET_DEFAULT_TARGET_FLAGS): New.
1356 (TARGET_HANDLE_OPTION): New.
1357 (ia64_override_options): Move options parsing ...
1358 (ia64_handle_option): ... here. New.
1359 * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
1360 MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
1361 MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
1362 MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
1363 MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
1364 MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
1365 MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
1366 TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
1367 TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
1368 TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
1369 TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
1370 TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
1371 TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
1372 TARGET_EARLY_STOP_BITS): Remove.
1373 (TARGET_ILP32): Default false.
1374 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
1375 (enum ia64_inline_type): New.
1376 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1377 * config/ia64/ia64.md: Update for new definitions of
1378 TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
1379 * config/ia64/ia64.opt: New file.
1380 * config/ia64/ilp32.opt: New file.
1382 2005-03-17 H.J. Lu <hongjiu.lu@intel.com>
1385 * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
1387 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
1389 * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
1390 instead of MASK_H8300S.
1391 * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
1392 MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
1393 MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
1394 MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
1395 TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
1396 TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
1397 TARGET_SWITCHES): Remove.
1398 (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
1400 * config/h8300/h8300.opt: New.
1402 * config/alpha/alpha.opt, config/arc/arc.opt,
1403 config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
1406 2005-03-17 Ian Lance Taylor <ian@airs.com>
1410 2005-03-17 Richard Sandiford <rsandifo@redhat.com>
1412 * config/arc/arc.c (arc_cpu_string): Make static. Default to "base"
1413 (arc_text_string, arc_data_string, arc_rodata_string): Make static.
1414 (TARGET_HANDLE_OPTION): Override default.
1415 (arc_handle_option): New function.
1416 (arc_init): Remove code to set arch_cpu_string.
1417 * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
1418 (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
1419 (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
1420 (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
1421 (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
1422 (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
1423 (arc_rodata_string, TARGET_OPTIONS): Delete.
1424 * config/arc/arc.opt: New file.
1426 2005-03-17 Richard Henderson <rth@redhat.com>
1428 * doc/extend.texi (Weak Pragmas): New section.
1429 (attribute alias): Clarify that target must be in the same
1432 2005-03-17 Richard Henderson <rth@redhat.com>
1434 * config/alpha/alpha.opt: New file.
1435 * config/alpha/alpha.c (alpha_tune): New. Rename all existing uses
1437 (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
1438 alpha_fprm_string, alpha_fptm_string): Make static.
1439 (alpha_tls_size_string): Remove.
1440 (alpha_handle_option): New.
1441 (override_options): Update for alpha_cpu/alpha_tune split.
1442 (alpha_file_start): Likewise.
1443 (TARGET_DEFAULT_TARGET_FLAGS): New.
1444 (TARGET_HANDLE_OPTION): New.
1445 * config/alpha/alpha.h (alpha_tune): Declare.
1446 (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
1447 MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
1448 MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
1449 TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
1450 TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
1451 TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
1452 MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
1453 MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
1454 TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
1455 TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
1456 (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
1457 (TARGET_DEFAULT): Remove MASK_FP.
1458 (TARGET_FP): Redefined based on TARGET_SOFT_FP.
1459 (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
1460 (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
1461 alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
1462 alpha_tls_size_string): Remove.
1463 * config/alpha/alpha.md (prefetch): Use alpha_cpu.
1464 (attribute tune): Rename from attribute cpu.
1465 * config/alpha/ev4.md: Update to match.
1466 * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
1467 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
1468 * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
1469 * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
1470 * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
1471 * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
1473 2005-03-16 James E. Wilson <wilson@specifixinc.com>
1475 * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
1476 and return without creating new state if before_nops_num is nonzero.
1477 * config/ia64/ia64.md (first_insn): New attribute.
1478 (alloc): Set it to yes.
1480 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1482 * tree-vectorizer.c (new_vec_stmt_info): Initialize
1483 STMT_VINFO_SUBVARS to NULL.
1484 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
1486 2005-03-16 Dale Johannesen <dalej@apple.com>
1488 * rtlanal.c (find_first_parameter_load): Rewrite to
1489 return actual first param load or the call if none,
1490 instead of first in block, when not all loads exist.
1492 2005-03-16 Roger Sayle <roger@eyesopen.com>
1494 * optabs.c (expand_copysign_absneg): Make static.
1495 * optabs.h (expand_copysign_absneg): Delete prototype.
1496 * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
1498 2005-03-16 Richard Henderson <rth@redhat.com>
1501 * varasm.c (struct alias_pair): Rename from struct output_def_pair.
1502 (alias_pairs): Rename from output_defs.
1503 (find_decl_and_mark_needed): Split out from assemble_alias.
1504 (do_assemble_alias): New.
1505 (assemble_output_def): Remove.
1506 (finish_aliases_1, finish_aliases_2): New.
1507 (process_pending_assemble_output_defs): Remove.
1508 (assemble_alias): Defer aliases for which we don't yet have a
1509 non-external decl for the target symbol.
1510 * passes.c (rest_of_decl_compilation): Register variables with cgraph.
1511 * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
1512 * toplev.c (compile_file): Use finish_aliases_2 instead of
1513 process_pending_assemble_output_defs.
1514 * tree.h (finish_aliases_1, finish_aliases_2): Declare.
1515 (process_pending_assemble_output_defs): Remove.
1517 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1519 Fix PR tree-optimization/20489
1521 * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
1522 for empty structures.
1524 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1526 Fix PR tree-optimization/20490
1528 * tree-ssa-pre.c (create_expression_by_pieces): Use
1529 force_gimple_operand on result of fold.
1531 2005-03-16 Andrew Pinski <pinskia@physics.uc.edu>
1533 * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
1534 of closing parenthesis.
1536 2005-03-16 Kazu Hirata <kazu@cs.umass.edu>
1538 * builtins.c (expand_movstr): Update a call to
1539 fold_builtin_strcpy.
1540 (expand_builtin_strncpy): Update a call to
1541 fold_builtin_strncpy.
1542 (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
1543 arguments of CALL_EXPR.
1544 (fold_builtin_1): Update calls to fold_builtin_strcpy and
1545 fold_builtin_strncpy.
1546 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1547 * tree.h: Update the prototypes of fold_builtin_strcpy and
1548 fold_builtin_strncpy.
1550 2005-03-16 Steven Bosscher <stevenb@suse.de>
1551 Dorit Naishlos <dorit@il.ibm.com>
1553 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
1554 UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
1557 2005-03-16 Steven Bosscher <stevenb@suse.de>
1559 * tree-inline.c (walk_type_fields, walk_tree,
1560 walk_tree_without_duplicates): Move from here...
1561 * tree.c: ...to here.
1563 2005-03-15 Zack Weinberg <zack@codesourcery.com>
1565 * BASE-VER, DATESTAMP, DEV-PHASE: New files.
1566 * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
1567 (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1568 (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
1569 (version): Define using $(BASEVER_c).
1570 (Makefile, config.status, build/gcov-iov.o): No longer depends on
1572 (version.o): Depend on version files; add custom generation command.
1573 (prefix.o): Define BASEVER on command line.
1574 (s-iov): Depend on version files; adjust command.
1575 (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
1577 (gcc-vers.texi): New rule.
1578 (doc/%.info, doc/%.dvi): Add -I . to command line.
1579 (doc/gccinstall.dvi): Likewise.
1580 (PACKAGE): Delete. All uses replaced with "gcc".
1581 * aclocal.m4: Do not include gcc-version.m4.
1582 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1583 Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
1584 Set is_release based on contents of DEV-PHASE.
1585 Set gcc_version based on contents of BASE-VER.
1586 Define WIN32_REGISTRY_KEY only if the user overrode the default.
1587 * config.in, configure: Regenerate.
1588 * gccbug.in: Determine version of GCC in use at runtime.
1589 * gcov-iov.c: Get version number and development phase from
1590 command line, not by including version.c.
1591 * intl.c: Replace all uses of PACKAGE with "gcc".
1592 * libada-mk.in: Delete unused "gcc_version" variable.
1593 * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
1594 * version.c: (VERSUFFIX): New hook for redistributors; adjust
1595 commentary to match.
1596 (version_string): Put together from pieces.
1597 * config/alpha/x-vms: Do not use $(gcc_version).
1598 * config/i386/t-nwld: Likewise.
1599 * doc/include/gcc-common.texi: Include gcc-vers.texi for
1600 version-GCC and DEVELOPMENT.
1602 2005-03-15 Roger Sayle <roger@eyesopen.com>
1604 PR tree-optimization/17454
1605 * tree.c (tree_size): Add case for TREE_BINFO.
1606 * fold-const.c (fold_checksum_tree): Only clear the overloaded
1607 field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
1609 2005-03-15 Roger Sayle <roger@eyesopen.com>
1611 * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
1612 op1 whilst expanding the signed widenening multiply variant.
1614 2005-03-15 Richard Sandiford <rsandifo@redhat.com>
1616 * toplev.c (display_target_options): Avoid unused variable warning if
1617 TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
1618 * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
1619 (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
1620 (mips_isa): Initialize to MIPS_ABI_DEFAULT.
1621 (mips_isa_info): New variable.
1622 (mips_parse_cpu): Remove the first argument and leave the caller
1624 (TARGET_HANDLE_OPTION): Override default.
1625 (mips_handle_option): New function. Move option validation code from...
1626 (override_options): ...here. Update calls to mips_parse_cpu.
1627 * config/mips/mips.h (mips_arch_string, mips_tune_string)
1628 (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
1629 (SUBTARGET_TARGET_OPTIONS): Delete.
1630 * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
1631 (mno-flush-func, mtune=): New options.
1633 2005-03-15 Roger Sayle <roger@eyesopen.com>
1634 Richard Henderson <rth@redhat.com>
1636 * real.c (c4x_single_format, c4x_extended_format): Provide values
1637 for signbit_ro for c4x's single and extended floating point formats.
1638 * optabs.c (expand_copysign): Use the floating point format's
1639 signbit_ro for expanding via expand_copysign_absneg, and it's
1640 signbit_rw field for expanding via expand_copysign_bit.
1642 2005-03-15 Dorit Naishlos <dorit@il.ibm.com>
1644 * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
1645 known_alignment_for_access_p.
1646 (known_alignment_for_access_p): New.
1647 (do_peeling_for_alignment): Field made int instead of bool and renamed
1648 to peeling_for_alignment.
1649 (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
1650 * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
1651 functionality used to be in vect_analyze_operations.
1652 (vect_analyze_operations): Code to determine vectorization factor was
1653 moved to vect_determine_vectorization_factor.
1654 (vect_enhance_data_refs_alignment): Update to correct alignment when it
1655 is known instead of -1. Set LOOP_PEELING_FOR_ALIGNMENT to peeling
1657 (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
1658 be part of vect_analyze_operations).
1659 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
1660 creating the guard condition, as the number of iterations may be
1662 (slpeel_tree_peel_loop_to_edge): Use new name of
1663 LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
1664 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
1665 alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
1666 (vect_do_peeling_for_alignment): Use fold.
1667 (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
1669 (vect_update_inits_of_dr): Renamed to
1670 vect_update_init_of_dr.
1671 (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
1672 (vectorizable_store): Fix assertion to use == instead of =.
1674 2005-03-15 Daniel Jacobowitz <dan@codesourcery.com>
1676 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
1677 call_used_regs for wCG registers.
1679 2005-03-15 Ulrich Weigand <uweigand@de.ibm.com>
1681 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
1682 for non-offsettable memory references to cope with outstanding reload
1683 replacements, take 2.
1685 2005-03-15 Uros Bizjak <uros@kss-loka.si>
1688 * config/i386/i386.h (x86_fisttp): New.
1689 (TARGET_FISTTP): New macro.
1690 * config/i386/i386.c (x86_fisttp): Set for NOCONA.
1691 (output_fix_trunc): Add fisttp parameter. Generate fisttp x87
1692 instruction when fisttp flag is set.
1693 * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
1695 * config/i386/i386.md (type attribute): Add fisttp.
1696 (unit attribute): Set to i387 for fisttp type.
1697 (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
1698 (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
1700 (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
1701 Generate fisttp patterns for TARGET_FISTTP. Implement using mode
1703 (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
1704 patterns for TARGET_FISTTP. Enable patterns for
1705 (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
1706 (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
1707 fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
1708 implement fisttp x87 insn.
1709 (fix_trunc*_i387_fisttp splitters): New patterns.
1710 (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
1711 Rename to *fix_trunc<mode>_i387_1. Implement using mode macros.
1712 Disable patterns for TARGET_FISTTP. Add comment about FLAGS_REG
1714 (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
1715 Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
1716 Implement using mode macros. Disable patterns for TARGET_FISTTP.
1717 (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
1718 fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
1719 fix_trunc<mode>_i387_with_temp. Implement using mode macros.
1720 Disable patterns for TARGET_FISTTP.
1721 (fix_trunc*_i387 splitters): Implement usign mode macros.
1722 (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
1723 fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
1724 (fix_trunx*_sse peephole2s): Implement using mode macros.
1726 2005-03-15 J"orn Rennecke <joern.rennecke@st.com>
1728 PR rtl-optimization/20291
1729 * combine.c (try_combine): If splitting fails, re-try with
1730 original combined pattern, i.e. before clobber stripping.
1732 2005-03-14 Eric Christopher <echristo@redhat.com>
1734 * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
1735 STACK_GROWS_DOWNWARD.
1737 2005-03-14 Roger Sayle <roger@eyesopen.com>
1739 * real.h (struct real_format): Split the signbit field into two
1740 two fields, signbit_ro and signbit_rw.
1741 * real.c (ieee_single_format, mips_single_format, ieee_double_format,
1742 mips_double_format, ieee_extended_motorola_format,
1743 ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
1744 ieee_extended_intel_128_format, ibm_extended_format,
1745 mips_extended_format, ieee_quad_format, mips_quad_format,
1746 vax_f_format, vax_d_format, vax_g_format, i370_single_format,
1747 i370_double_format, c4x_single_format, c4x_extended_format,
1748 real_internal_format): Update initializers for new field.
1749 * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
1750 real_format structure.
1751 * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
1752 field of the real_format structure.
1754 2005-03-14 Daniel Berlin <dberlin@dberlin.org>
1756 Fix PR tree-optimization/20458
1758 * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
1759 DECL_EXTERNAL on STRUCT_FIELD tags.
1760 (clear_call_clobbered): Ditto.
1761 * tree-ssa-operands.c (note_addressable): Make sure the original
1762 variable doesn't slip into the addressable list if we have
1764 * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
1767 2005-03-14 Geoffrey Keating <geoffk@apple.com>
1769 * doc/cppopts.texi (-fexec-charset): Add concept index entry.
1770 (-fwide-exec-charset): Likewise.
1771 (-finput-charset): Likewise.
1772 * doc/invoke.texi (Warning Options): Document -Wnormalized=.
1773 * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
1774 * c.opt (Wnormalized): New.
1776 2005-03-14 Devang Patel <dpatel@apple.com>
1778 * doc/invoke.texi: Add reference to Visibility document.
1780 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1782 * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
1783 MASK_SPLIT_ADDRESSES.
1784 * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
1785 (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
1786 (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
1787 (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
1788 (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
1789 (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
1790 (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
1791 (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
1792 (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
1793 (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
1794 (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
1795 (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
1796 (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
1797 (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
1798 (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
1799 (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
1800 (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
1801 (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
1802 (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
1803 (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
1804 (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
1805 (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
1806 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
1807 (TARGET_EXPLICIT_RELOCS): Delete.
1808 (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
1809 (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
1810 * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
1811 (override_options): Set MASK_LONG64 if -mint64 is given and no
1812 -mlongXX option is. Complain about -mint64 -mlong32.
1813 (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
1814 MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
1815 * config/mips/mips.opt: New file.
1817 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1819 * config.gcc (extra_options): New variable for listing option files.
1820 Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
1821 * configure.ac (extra_opt_files): New AC_SUBST variable.
1822 (tm_file_list, tm_include_list): Include options.h first.
1823 * configure: Regenerate.
1824 * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
1825 (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
1826 (s-options-h): New rule.
1827 (options.h): Depend on it.
1828 (TEXI_GCCINT_FILES): Add options.texi.
1829 * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
1830 * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
1831 * target.h (gcc_target): Add default_target_flags and handle_option.
1832 * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
1833 (TARGET_HANDLE_OPTION): New macros.
1834 (TARGET_INITIALIZER): Include them.
1835 * opt-functions.awk (opt_args, nth_arg): New functions.
1836 (switch_flags): Handle the "Target" flag.
1838 (var_name): Use opt_args and nth_arg.
1839 (var_set, var_ref): Likewise. Handle "Mask" and "InverseMask".
1840 * opth-gen.awk: Declare target_flags. Declare MASK_* and TARGET_*
1841 macros for the "Mask" and "InverseMask" options.
1842 * opts.h (cl_var_cond): New enum.
1843 (cl_option): Replace the "has_set_value" and "set_value" fields with
1844 "var_cond" and "var_value".
1845 (CL_TARGET): New macro.
1846 (option_enabled, print_filtered_help): Declare.
1847 (decode_options): Move definition.
1848 * opts.c (handle_option): Search for the original option before
1849 removing any "no-" prefix. Handle CL_TARGET. Adjust for the new
1850 var_cond and var_value fields. Use targetm.handle_option to handle
1852 (decode_options): Set target_flags to targetm.default_target_flags.
1853 (print_filtered_help): Make global. Handle CL_TARGET.
1854 (option_enabled): New function.
1855 * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
1856 (display_target_options, set_target_switch, print_switch_values)
1857 (default_pch_valid_p): Guard uses of target_switches with
1858 #ifdef TARGET_SWITCHES. Also...
1859 (display_target_options): Display the CL_TARGET entries in cl_options.
1860 (set_target_option): Don't complain about the "" option when
1861 TARGET_SWITCHES is undefined.
1862 (print_switch_values): Use option_enabled.
1863 (default_pch_valid_p): Check cl_options[] when looking for something
1864 that has changed the value of target_flags.
1865 * c.opt: Remove documentation from top of file.
1866 * doc/gccint.texi: Add an "Options" chapter. Include options.texi.
1867 * doc/sourecebuild.texi: Refer to the new options documentation
1868 instead of c.opt. Document machine-specific .opt files.
1869 * doc/tm.texi (target_flags): Say that this variable is declared
1871 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
1872 (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
1874 * doc/options.texi: New file.
1876 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
1879 * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
1882 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
1885 * gimplify.c (gimplify_cond_expr): Add fallback argument. Use a
1886 temporary variable of pointer type if an lvalues is required.
1887 (gimplify_modify_expr_rhs): Request an rvalue from it.
1888 (gimplify_expr): Pass fallback on.
1890 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1892 * cfgbuild.c: Update comments.
1894 2005-03-14 Roger Sayle <roger@eyesopen.com>
1896 PR rtl-optimization/17236
1897 * optabs.c (expand_doubleword_mult): New helper function split out
1898 from expand_binop. Permute the order in which instructions are
1899 emitted to minimize the number of simultaneously live registers.
1900 (expand_binop): Call expand_doubleword_mult to synthesize a double
1901 word multiplication.
1903 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1905 * basic-block.h: Update the prototypes of cached_make_edge and
1907 * cfg.c (cached_make_edge): Take edge_cache representing one
1908 row of the adjacency matrix of edges.
1909 * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
1910 (make_edges): Initialize edge_cache to represent one row of
1911 the adjacency matrix of edges.
1913 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1915 * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
1917 (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
1918 Remove unused removed_phis variable.
1919 (conditional_replacement): Use build1/build2.
1920 (abs_replacement): Use last_and_only_stmt and build1/build2.
1922 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1924 * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
1925 ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
1926 * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
1927 (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
1928 * c-common.c (handle_novops_attribute): New function.
1929 (c_common_attribute_table): Add "no vops" entry.
1930 * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
1931 * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
1932 * tree-ssa-operands.c (get_call_expr_operands): Do not
1933 create virtual operands for calls with ECF_NOVOPS flag.
1934 * tree.h (DECL_IS_NOVOPS): New macro.
1935 (struct tree_decl): Add novops_flag.
1936 (ECF_NOVOPS): New constant.
1938 2005-03-14 Uros Bizjak <uros@kss-loka.si>
1941 * config/i386/i386.c (x86_use_himode_fiop): New.
1942 (x86_use_simode_fiop): Rename from x86_use_fiop.
1943 * config/i386/i386.h (x86_use_himode_fiop): Declare.
1944 (TARGET_USE_HIMODE_FIOP): New.
1945 (x86_use_simode_fiop): Rename from x86_use_fiop.
1946 (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
1948 * config/i386/i386.md (X87MODEI12): New mode macro define.
1949 (*cmpfp_<mode>): Rename from *cmpfp_si. Use X87MODEI12 mode macro
1950 to implement x87 FP compare with HImode input operands.
1951 (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
1952 Use X87MODEI12 mode macro to handle HImode input operands.
1953 (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
1954 *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
1955 Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
1956 *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
1957 macro to implement x87 operators with HImode input operands.
1958 (fop splitters): Use X87MODEI12 mode macro to handle HImode
1961 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1963 * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
1965 * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
1966 constants invariant.
1968 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1970 * basic-block.h (BB_VISITED): Removed.
1971 * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
1973 2005-03-14 Falk Hueffner <falk@debian.org>
1976 * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
1978 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1980 * ggc-zone.c: Fix comment typos.
1982 * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
1983 stringpool.c, config/mips/mips-protos.h: Update copyright.
1985 2005-03-14 Alan Modra <amodra@bigpond.net.au>
1987 * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
1988 throughout with its typedef, "rtx".
1989 * config/rs6000/rs6000.c: Likewise. Formatting fixes.
1990 (rs6000_tls_symbol_ref_1): Remove inline keyword.
1991 * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting. Reorder
1992 regs in comment to match code.
1994 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1996 * except.c (check_handled): Make it static.
1997 * except.h: Remove the corresponding prototype.
1999 * function.c (get_func_frame_size): Make it static.
2000 * function.h: Remove the corresponding type.
2002 * regclass.c (reg_class_superclasses, reg_class_subclasses):
2004 * hard-reg-set.h: Remove the corresponding declarations.
2006 * tree-cfg.c (verify_stmts): Check that
2007 bb_for_stmt (stmt) == bb for every PHI node and statement.
2009 2005-03-14 Alan Modra <amodra@bigpond.net.au>
2011 * config.gcc: Remove excess indentation.
2012 (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
2014 2005-03-13 Roger Sayle <roger@eyesopen.com>
2017 * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
2018 * fold-const.c (fold_sign_changed_comparison): Likewise.
2019 (fold_binary): Optimize comparisons against widened operands if
2020 the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
2022 2005-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2024 * config/sparc/sparc.c (struct_value_alias_set): New global variable.
2025 (sparc_override_options): Initialize it.
2026 (sparc_struct_value_rtx): Set it on the MEM to be returned.
2028 2005-03-13 David Edelsohn <edelsohn@gnu.org>
2030 * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
2031 (reg_or_none500mem_operand): New predicate.
2032 (zero_reg_mem_operand): New predicate.
2033 * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
2034 to reg_or_none500mem_operand.
2035 (extendsfdf2_fpr): Add MEM alternative.
2036 (extenddftf2_internal): Change operand2 predicate to
2037 zero_reg_mem_operand.
2039 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2041 * ggc-zone.c: Rewritten.
2043 * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
2045 * configure.ac: Define GGC_ZONE for --with-gc=zone.
2046 * config.in: Regenerated.
2047 * configure: Regenerated.
2048 * gengtype.c (write_types_process_field, write_func_for_structure):
2049 Pass new argument to gt_pch_note_object.
2050 * ggc-common.c (struct ptr_data): Add TYPE.
2051 (gt_pch_note_object): Take TYPE argument and save it.
2052 (call_count): Update call to ggc_pch_count_object.
2053 (call_alloc): Update call to ggc_pch_alloc_object.
2054 (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
2056 * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
2057 * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
2058 (ggc_alloc_zone_stat): Delete.
2059 (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
2060 * ggc.h (gt_pch_note_object, ggc_pch_count_object)
2061 (ggc_pch_alloc_object): Update prototypes.
2062 (garbage_zone): Delete.
2063 (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
2064 GGC_ZONE conditional. Update. Change tree_zone and rtl_zone into
2066 (tree_id_zone): New variable.
2067 (ggc_alloc_cleared_zone): Remove unused.
2068 (ggc_alloc_zone): Define.
2069 (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
2070 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
2071 ggc_alloc_zone_stat.
2072 * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
2073 * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
2074 (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
2075 (make_node_stat): Likewise. Use tree_id_zone.
2077 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2078 Joseph S. Myers <joseph@codesourcery.com>
2080 * configure.ac: Check for MIPS TLS.
2081 * configure: Regenerated.
2082 * config/mips/mips-protos.h (enum mips_symbol_type): Add
2083 SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
2084 SYMBOL_GOTTPREL, and SYMBOL_TPREL.
2085 * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
2086 (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
2087 (mips_classify_symbol, mips_symbolic_constant_p)
2088 (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
2089 (mips_tls_operand_p, mips_call_tls_get_addr)
2090 (mips_legitimize_tls_address, mips_cannot_force_const_mem)
2091 (mips_tls_symbol_ref_1): New functions.
2092 (mips_legitimize_address, mips_legitimize_const_move): Call
2093 mips_legitimize_tls_address.
2094 (override_options): Handle V1_REG and TLS symbols. Disable TLS
2096 * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
2097 (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
2098 (mips_char_to_class): Document V1_REG.
2099 (HAVE_AS_TLS): Provide default.
2100 * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
2102 (load_got<mode>): Renamed from *load_got<mode>. Allow when
2104 (tls_get_tp_<mode>): New instruction.
2106 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2108 * configure.ac: Update checks for target tools.
2109 * configure: Regenerated.
2111 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2113 * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
2115 2005-03-13 Roger Sayle <roger@eyesopen.com>
2117 * expmed.c (expand_mult): Use synthetic multiplication sequences for
2118 more classes of DImode multiplication by constant. Allow both
2119 multiplication by small negative constants (by performing a
2120 multiplication by a positive constant and negating the result) and
2121 multiplications by large powers of two, by using a left shift.
2123 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
2125 * tree-into-ssa.c (find_idf): Speed up by putting the indexes
2126 of basic blocks into work_stack.
2128 * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
2129 config/mips/vr.h: Update copyright.
2131 * c-decl.c (c_init_decl_processing): Remove useless calls to
2132 build_function_type.
2134 * builtins.c (fold_trunc_transparent_mathfn,
2135 fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
2136 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
2137 fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
2138 fold_builtin_strcpy, fold_builtin_strncpy,
2139 fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
2142 * builtins.c (expand_builtin_mathfn_3): Remove local variable
2145 * lambda-code.c (lambda_compute_auxillary_space): Remove local
2146 variable determinant.
2148 * tree-cfg.c (group_case_labels): Remove local variable type.
2150 * tree-ssa-live.c (build_tree_conflict_graph): Remove local
2153 * tree-ssa-phiopt.c (value_replacement): Remove local variable
2156 2005-03-13 Andy Hutchinson <HutchinsonAndy@netscape.net>
2159 * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
2160 (*movmemqi_insn): Delete.
2161 (*movmemhi): Delete.
2163 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
2165 * builtins.c (fold_builtin_classify): Take decomposed
2166 arguments of CALL_EXPR.
2167 (fold_builtin_1): Update a call to fold_builtin_classify.
2169 2005-03-13 Joseph S. Myers <joseph@codesourcery.com>
2172 * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
2173 through into call to parser_xref_tag after parse error.
2174 (c_parser_struct_declaration): Consistently return NULL_TREE on
2177 2005-03-12 Daniel Berlin <dberlin@dberlin.org>
2179 * tree-flow-inline.h (ref_contains_array_ref): New function.
2180 (lookup_subvars_for_var): Ditto.
2181 (get_subvars_for_var): Ditto.
2182 (var_can_have_subvars): Ditto.
2184 * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
2185 (struct subvar): New type.
2187 * tree-dfa.c (okay_component_ref_for_subvars): New function.
2189 * tree-optimize.c (init_tree_optimization_passes): Call
2190 pass_create_structure_vars.
2192 * tree-ssa-alias.c: Include vec.h.
2193 (init_alias_info): Don't auto-clear call clobbered on struct-field
2195 (compute_flow_insensitive_aliasing): Handle subvars.
2196 (group_aliases): Handle STRUCT_FIELD aliases.
2197 (setup_pointers_and_addressables): Ditto.
2198 Don't mark variables non-addressable if they still have
2199 addressable subvars.
2200 Also mark subvars addressable when the real variable is marked
2202 (add_pointed_to_var): Try to prune the pointed-to set by only
2203 pointing to subvars when possible.
2204 Otherwise, make sure we set addresses_needed and pt_vars to
2205 properly include subvars.
2206 (bitpos_of_field): New function.
2207 (push_fields_onto_fieldstack): Ditto.
2208 (get_or_create_used_part_for): Ditto.
2209 (create_overlap_variables_for): Ditto.
2210 (find_used_portions): Ditto.
2211 (create_structure_vars): Ditto.
2212 (pass_create_structure_vars): New structure.
2214 * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
2215 (get_expr_operands): Handle subvars. Also try to turn
2216 COMPONENT_REF accesses into must-defs now that we can accurately
2218 (note_addressable): Try to only mark as addressable those subvars
2219 we know a COMPONENT_REF touches.
2220 (overlap_subvar): New function.
2222 * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
2223 Handle subvar storing.
2224 (vect_address_analysis): Update caller of vect_object_analysis.
2226 * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
2228 * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
2229 (STMT_VINFO_SUBVARS): New macro.
2231 * common.opts: add flag_tree_salias.
2233 * opts.c (decode_options): flag_tree_salias defaults to on.
2235 * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
2237 * doc/tree-ssa.texi: Document structural alias analysis.
2239 2005-03-12 Steven Bosscher <stevenb@suse.de>
2241 * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
2242 * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
2243 * tree-ssa-operands.c (get_expr_operands): Likewise.
2244 (get_expr_operands): Likewise for ERROR_MARK.
2246 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
2248 * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
2251 * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
2254 * tree-ssa-pre.c (compute_avail): Remove local variable val.
2255 (mark_operand_necessary): Remove local variable ver.
2257 * tree-vect-transform.c (vect_get_new_vect_var): Remove local
2258 variable prefix_len.
2260 * value-prof.c (mod_subtract_transform): Remove local variable
2263 * builtins.c (fold_builtin_exponent): Take decomposed
2264 arguments of CALL_EXPR.
2265 (fold_builtin_1): Update a call to fold_builtin_exponent.
2267 * builtins.c (fold_builtin_logarithm): Take decomposed
2268 arguments of CALL_EXPR.
2269 (fold_builtin_1): Update a call to fold_builtin_logarithm.
2271 * c-decl.c (c_init_decl_processing): Remove local variables
2272 ptr_ftype_void and ptr_ftype_ptr.
2274 * gimplify.c (gimplify_expr): Remove local variables r0 and
2277 * reg-stack.c (move_for_stack_reg): Remove local variable
2279 (compare_for_stack_reg): Remove local variable flags_user.
2280 (convert_regs_1): Remove local variable deleted.
2282 * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
2284 (combine_blocks): Remove local variables exits and new_e.
2286 * tree-inline.c (expand_call_inline): Remove local variable
2289 * tree-ssa-live.c (create_ssa_var_map,
2290 calculate_live_on_entry): Remove local variable snn.
2292 2005-03-12 Geoffrey Keating <geoffk@apple.com>
2294 * c-lex.c (c_lex_with_flags): Add parameter to call to
2297 2005-03-11 Per Bothner <per@bothner.com>
2299 * c-tree.h (struct c_declarator): New id_loc field.
2300 * c-pragma.h (c_lex_with_flags): Take position reference.
2301 * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
2302 iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
2303 (c_lex): Pass dummy location to c_lex_with_flags.
2304 * c-parser.c (c_lex_one_token): Set c_token's location using
2305 c_lex_with_flags, instead of input_location, which might be "ahead".
2306 (c_parser_direct_declarator): Set declarator's id_loc from
2308 * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
2309 declarator's id_loc, rather than probably-imprecise input_location.
2310 (build_id_declarator): Initialize c_declarator's id_loc field.
2312 2005-03-11 Roger Sayle <roger@eyesopen.com>
2315 * builtins.c (expand_builtin_signbit): Force the signbit's word
2316 into an integer register to avoid SUBREGs of floating point modes.
2318 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
2320 * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
2321 target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
2322 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
2323 config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
2325 2005-03-11 David Edelsohn <edelsohn@gnu.org>
2327 PR rtl-optimization/20306
2328 * expr.c (emit_move_complex): Set try_int false if mode is
2329 MODE_COMPLEX_FLOAT and mov_optab exists for inner mode. Only try
2330 emit_block_move if try_int is true.
2332 2005-03-11 Richard Henderson <rth@redhat.com>
2335 * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
2336 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
2339 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
2341 * config/mips/mips.h (mips_fix_vr4130_string): Declare.
2342 (TARGET_FIX_VR4130): New macro.
2343 (TARGET_OPTIONS): Add -mfix-vr4130.
2344 (ISA_HAS_MACCHI): New macro.
2345 (ASM_SPEC): Add -mfix-vr4130.
2346 * config/mips/mips.c (mips_fix_vr4130_string): New variable.
2347 (override_options): Handle mips_fix_vr4130_string.
2348 (mips_avoid_hazards): Clear all_noreorder_p
2349 if we're working around VR4130 errata and the macc alternatives
2351 * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
2352 (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
2353 * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
2354 (MULTILIB_DEFAULTS): Remove leading "march=".
2355 (DRIVER_SELF_SPECS): Likewise. Make -mfix-vr4130 imply -march=vr4130
2356 if no architecture option is given.
2357 * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
2359 (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
2360 * doc/invoke.texi: Document -mfix-vr4130.
2362 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
2364 * config/mips/mips.c (override_options): Only warn about -mint64
2365 deprecation if TARGET_INT64.
2367 2005-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2369 * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
2370 ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
2371 ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
2372 are non-specific regarding the nonnull parameter positions.
2373 (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
2374 ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
2375 ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
2376 ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
2378 * builtins.def: Use the non-specific "nonnull" attibute lists.
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): Improve comments.
2385 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
2387 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2388 single_pred_edge, single_succ, single_pred): New inline functions.
2389 * bb-reorder.c (rotate_loop, find_traces_1_round,
2390 add_labels_and_missing_jumps, fix_up_fall_thru_edges,
2391 duplicate_computed_gotos): Use the single_succ/pred functions.
2392 * cfganal.c (forwarder_block_p): Ditto.
2393 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
2394 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2395 outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
2396 merge_seq_blocks): Ditto.
2397 * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
2398 * cfglayout.c (fixup_reorder_chain): Ditto.
2399 * cfgloop.c (mark_single_exit_loops, update_latch_info,
2400 canonicalize_loop_headers, verify_loop_structure): Ditto.
2401 * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
2402 mfb_update_loops, create_preheader, force_single_succ_latches,
2403 create_loop_notes): Ditto.
2404 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
2405 force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
2406 commit_one_edge_insertion, purge_dead_edges,
2407 cfg_layout_can_merge_blocks_p): Ditto.
2408 * except.c (sjlj_emit_function_enter): Ditto.
2409 * flow.c (init_propagate_block_info): Ditto.
2410 * function.c (thread_prologue_and_epilogue_insns): Ditto.
2411 * gcse.c (find_implicit_sets, bypass_conditional_jumps,
2412 insert_insn_end_bb): Ditto.
2413 * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
2414 find_if_case_2): Ditto.
2415 * lambda-code.c (perfect_nestify): Ditto.
2416 * lcm.c (optimize_mode_switching): Ditto.
2417 * loop-doloop.c (doloop_modify): Ditto.
2418 * loop-init.c (loop_optimizer_init): Ditto.
2419 * loop-iv.c (simplify_using_initial_values): Ditto.
2420 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
2421 * loop-unswitch.c (unswitch_loop): Ditto.
2422 * modulo-sched.c (generate_prolog_epilog): Ditto.
2423 * predict.c (combine_predictions_for_insn, estimate_probability,
2424 tree_estimate_probability, last_basic_block_p,
2425 estimate_bb_frequencies): Ditto.
2426 * profile.c (branch_prob): Ditto.
2427 * regrename.c (copyprop_hardreg_forward): Ditto.
2428 * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
2429 * tracer.c (layout_superblocks): Ditto.
2430 * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
2431 cfg_remove_useless_stmts_bb, cleanup_control_flow,
2432 cleanup_control_expr_graph, disband_implicit_edges,
2433 tree_find_edge_insert_loc, bsi_commit_edge_inserts,
2434 tree_verify_flow_info, tree_make_forwarder_block,
2435 tree_forwarder_block_p, remove_forwarder_block,
2436 remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
2437 * tree-if-conv.c (tree_if_conversion): Ditto.
2438 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
2439 * tree-ssa-dce.c (remove_dead_stmt): Ditto.
2440 * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
2441 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
2442 copy_loop_headers): Ditto.
2443 * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
2444 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
2445 * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
2446 lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
2447 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
2448 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
2449 * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
2450 * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
2451 * tree-ssa-threadupdate.c (redirect_edges): Ditto.
2452 * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
2453 eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
2454 * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
2455 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2456 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
2457 slpeel_add_loop_guard): Ditto.
2459 2005-03-11 James A. Morrison <phython@gcc.gnu.org>
2461 PR tree-optimization/15784
2462 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2465 * stmt.c (expand_case): Don't change index_type. Convert minval
2468 PR tree-optimization/20130
2469 * fold-const.c (fold): Fold x * -1 into -x.
2471 2005-03-11 Kaz Kojima <kkojima@gcc.gnu.org>
2473 PR rtl-optimization/20331
2474 * rtlanal.c (modified_between_p): Check its address first for MEM.
2475 (modified_in_p): Likewise.
2477 2005-03-11 Joseph S. Myers <joseph@codesourcery.com>
2479 * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
2481 2005-03-10 Steven Bosscher <stevenb@suse.de>
2483 * expr.c (expand_expr_real_1): If possible, use a conditional
2484 move for expanding MIN_EXPR and MAX_EXPR.
2485 Use temp for moving around rtx-en.
2487 2005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
2490 * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
2493 2005-03-10 Roger Sayle <roger@eyesopen.com>
2495 * builtins.c (expand_builtin_signbit): Extend to handle floating
2496 point modes wider than the largest integer type, using the
2497 operand_subword_force function to obtain the signbit's word.
2499 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2502 * combine.c (try_combine): If recog_for_combine added CLOBBERs
2503 to NEWI2PAT, fail to combine if they are used by NEWPAT.
2505 2005-03-10 Aldy Hernandez <aldyh@redhat.com>
2507 * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
2509 2005-03-10 Kazu Hirata <kazu@cs.umass.edu>
2511 * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
2513 (perform_edge_inserts): Unconditionally call
2514 free_dominator_info.
2516 * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
2518 2005-03-10 Bob Wilson <bob.wilson@acm.org>
2520 * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
2522 2005-03-10 Nathan Sidwell <nathan@codesourcery.com>
2524 * bitmap.c (bitmap_copy): Remove manual loop unrolling.
2526 * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
2528 (rtl_register_value_prof_hooks,
2529 tree_value_profile_transformations,
2530 tree_register_value_prof_hooks): Likewise.
2531 * var-tracking.c (stack_adjust_offset_pre_post,
2532 variable_htab_free, variable_union, dataflow_set_different_2,
2533 count_uses, variable_was_changed, set_frame_base_location,
2534 set_variable_part, emit_note_insn_var_location, vt_emit_notes,
2535 vt_add_function_parameters): Likewise.
2536 * varasm.c (named_section_real, named_section, make_decl_rtl,
2537 asm_emit_uninitialised, assemble_integer, decode_addr_const,
2538 const_hash_1, compare_constant, copy_constant, force_const_mem,
2539 output_constant_pool_2, output_constant_pool_1, output_constant,
2540 output_constructor, make_decl_one_only, decl_tls_model,
2541 default_no_named_section, default_elf_select_section_1,
2542 default_unique_section_1): Likewise.
2543 * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
2544 * vmsdbgout.c (addr_const_to_string): Likewise.
2547 * function.c (struct assign_parm_data_one): Remove last_named
2549 (assign_parm_find_data_types): Don't determine last_named.
2550 Reorder named_parm determination.
2551 (assign_parms): Only setup varargs on the last non-varadic
2554 2005-03-10 Kazuhiro Inaoka <inaoka.lazuhiro@renesas.com>
2556 * config/m32r/m32r.md (load_sda_base_32): New pattern. Loads
2557 sda base address on medium model.
2559 2005-03-10 Zdenek Dvorak <dvorakz@suse.cz>
2561 * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
2562 * cfgloop.c (flow_loop_nodes_find): Export.
2563 * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
2565 * cfgloopmanip.c (fix_loop_structure): New function.
2566 * predict.c (predict_loops): Clean up the loops information.
2567 * tree-cfg.c (cleanup_tree_cfg_loop): New function.
2568 (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
2570 * tree-flow.h (cleanup_tree_cfg_loop): Declare.
2571 (rewrite_into_loop_closed_ssa): Declaration changed.
2572 * tree-loop-linear.c (linear_transform_loops): Add argument to
2573 rewrite_into_loop_closed_ssa call.
2574 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2575 * tree-ssa-loop-im.c (move_computations): Ditto.
2576 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
2577 * tree-vectorizer.c (vectorize_loops): Ditto.
2578 * tree-optimize.c: Include cfgloop.h.
2579 (execute_todo): Choose whether to call cleanup_tree_cfg or
2580 cleanup_tree_cfg_loop.
2581 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
2582 (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
2583 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
2584 cleanup_tree_cfg_loop call.
2585 * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
2586 (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
2587 work on part of cfg.
2589 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2592 * gimplify.c (gimplify_asm_expr): Handle input/output constraints
2593 with multiple alternatives.
2595 * stmt.c (parse_output_constraint): Fix a typo.
2597 2005-03-09 Bob Wilson <bob.wilson@acm.org>
2599 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
2600 assembly directive instead of deprecated "no-generics".
2602 2005-03-09 Ulrich Weigand <uweigand@de.ibm.com>
2604 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
2605 for non-offsettable memory references to cope with outstanding reload
2607 * config/s390/s390.md ("reload_outti"): Call find_replacement to
2608 avoid losing outstanding address reloads.
2609 ("reload_outdi", "reload_outdf"): Likewise.
2611 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2613 * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
2614 code. Add more cbrt transformations.
2616 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2618 * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
2620 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
2622 * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
2623 NULL_TREE when a given tree is not simplified.
2624 (fold): Return the original tree when any of the functions
2625 mentioned above NULL_TREE.
2627 * fold-const.c (fold_unary, fold_binary): Take decomposed
2628 arguments, code, type, op0, and op1 in case of fold_binary.
2629 (fold): Update calls to fold_unary and fold_binary.
2631 2005-03-09 Roger Sayle <roger@eyesopen.com>
2633 * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
2634 a fndecl and an arglist instead of a CALL_EXPR, exp.
2636 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
2638 * cfglayout.c (fixup_reorder_chain): Remove old_bb.
2640 * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
2642 * expr.c (expand_assignment): Remove orig_to_rtx.
2644 * fold-const.c (int_const_binop): Remove no_overflow.
2646 * ifcvt.c (noce_emit_move_insn): Remove inmode.
2648 * loop-iv.c (get_biv_step_1): Remove lhs.
2650 * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
2652 * real.c (real_nan): Remove neg.
2654 * function.c (thread_prologue_and_epilogue_insns): Remove i
2657 * tree-data-ref.c (array_base_name_differ_p): Remove ta and
2660 * tree-eh.c (tree_could_trap_p): Remove idx.
2662 * tree-into-ssa.c (ann): Remove ann.
2664 * tree-outof-ssa.c (num_nodes): Remove num_nodes.
2666 * tree-sra.c (decide_block_copy): Remove inst_count.
2668 * tree-ssa-alias.c (may_alias_p): Remove v_ann.
2670 * tree-ssa-loop-im.c (lhs): Remove.
2672 * cfgbuild.c (state, STATE, SET_STATE,
2673 BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
2675 (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
2676 (find_basic_blocks): Set the state of each basic block to
2679 2005-03-08 Jeff Law <law@redhat.com>
2681 * tree-cfg.c (cleanup_control_flow): If removal of a computed
2682 goto results in the removal of edges in the CFG, then we need
2683 to recompute dominators.
2685 2005-03-09 Ben Elliston <bje@au.ibm.com>
2687 * c-common.c (c_do_switch_warnings): Comment fix.
2689 2005-03-08 Julian Brown <julian@codesourcery.com>
2691 * Patch from 2005-03-08 reverted for causing regressions and
2692 ppc-darwin bootstrap failure.
2694 2005-03-08 Fariborz Jahanian <fjahanian@apple.com>
2696 * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
2697 Define the real function for ppc-darwin.
2698 * c-typeck.c (convert_arguments): Check for target-specific
2699 invalid argument call to unprototyped function.
2700 * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
2702 * target.h (invalid_arg_for_unprototyped_fn): New field
2704 * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
2705 default target hook.
2706 * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
2709 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2711 * c-typeck.c (constructor_stack, constructor_range_stack,
2712 initializer_stack): Make them static.
2714 * cfg.c (rbi_pool): Make it static.
2716 * gimple-low.c (lower_stmt_body): Make it static.
2717 * tree-flow.h: Remove the corresponding prototype. Don't
2720 * sched-deps.c (cache_size): Make it static.
2722 * stor-layout.c (lang_adjust_rli): Make it static.
2724 2005-03-08 Julian Brown <julian@codesourcery.com>
2726 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
2727 from being used for symbols with vague linkage when
2728 HAVE_GAS_COMDAT_GROUP is true.
2730 2005-03-08 J"orn Rennecke <joern.rennecke@st.com>
2732 * jump.c (invert_jump_1): Don't call redirect_jump_1 with
2733 nlabel == JUMP_LABEL (jump).
2735 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2737 * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
2738 gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
2739 tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
2740 tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
2742 2005-03-08 Alexey Neyman <alex.neyman@auriga.ru>
2745 * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
2746 * c-common.c (handle_returns_twice): New function.
2747 (c_common_attribute_table): Declare eturns_twice' attribute.
2748 * doc/extend.texi: Document eturns_twice' attribute.
2749 * tree.h (DECL_IS_RETURNS_TWICE): New macro.
2750 (struct tree_decl): Add returns_twice_flag.
2752 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2754 * tree-ssa-phiopt.c: Fix a comment typo.
2756 * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
2757 loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
2758 config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
2761 2005-03-08 Richard Henderson <rth@redhat.com>
2763 * config/alpha/alpha.c (code_for_builtin): Replace special-case
2764 builtin codes with ctzdi2, clzdi2, popcountdi2.
2765 (struct alpha_builtin_def): Add is_const.
2766 (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
2767 (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
2768 (alpha_init_builtins): Init them. Set nothrow and const attributes
2770 (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
2771 alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
2772 alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
2773 alpha_fold_vector_minmax, alpha_fold_builtin_perr,
2774 alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
2775 alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
2776 alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
2777 alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
2778 (TARGET_FOLD_BUILTIN): New.
2779 * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
2780 (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
2782 (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
2784 2005-03-08 Ira Rosen <irar@il.ibm.com>
2786 PR tree-optimization/20122
2787 * tree-vect-analyze.c (vect_object_analysis): Analyze initial
2788 condition of access function instead of base.
2790 2005-03-07 Jeff Law <law@redhat.com>
2791 Steven Bosscher <stevenb@suse.de>
2793 * tree-cfg.c (find_taken_edge_computed_goto): New function.
2794 (find_taken_edge): Call find_taken_edge_computed_goto as
2795 appropriate. Allow any gimple invariant rather than just
2796 INTEGER_CST for VAL.
2797 (cleanup_control_flow): Cleanup a computed goto which has turned
2799 (tree_merge_blocks): If block B has any forced labels, move
2800 them to the start of block A.
2801 * tree-ssa-dom.c (thread_across_edge): Allow threading across
2802 computed gotos as well.
2803 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
2804 removal of unnecessary computed gotos too.
2805 (lookup_redirection_data): Fix type of INSERT argument. Callers
2808 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2810 * tree-ssa-phiopt.c: Update copyright. Fix indentations.
2811 Remove trailing spaces.
2813 * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
2814 unshare_all_trees): Make them static.
2815 * tree-gimple.h: Remove the corresponding prototypes.
2817 * diagnostic.h: Remove unused prototype
2818 debug_output_buffer.
2819 * modulo-sched.c: Remove unused prototype
2820 set_row_column_for_ps.
2822 * tree-ssa-phiopt.c (tree_ssa_phiopt,
2823 replace_phi_edge_with_variable): Remove unused variable i.
2825 2005-03-07 Per Bothner <per@bothner.com>
2827 * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
2829 2005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
2832 * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
2833 bbs on the COND_EXPR instead of the PHI_NODEs.
2834 (candidate_bb_for_phi_optimization): Remove.
2835 (replace_phi_with_stmt): Rename to ...
2836 (replace_phi_edge_with_variable): this and change so that we
2837 replace the phi argument instead of removing the PHI.
2838 (conditional_replacement): Change so we deal with PHI with more
2840 (value_replacement): Likewise.
2841 (abs_replacement): Likewise.
2843 2005-03-07 Aldy Hernandez <aldyh@redhat.com>
2845 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
2846 output_e500_flip_gt_bit.
2848 * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
2850 (rs6000_generate_compare): Fix logic to look at the correct bits.
2851 (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
2853 (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
2854 gen_e500_flip_gt_bit. Rename gen_move_from_CR_eq_bit to
2855 gen_move_from_CR_gt_bit.
2857 * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
2858 ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
2859 (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
2861 * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
2862 (E500_CR_IOR_COMPARE): New constant.
2864 2005-03-08 Earl Chew <earl_chew@agilent.com>
2865 David Billinghurst <David.Billinghurst@riotinto.com>
2867 * config/i386/host-cygwin.c: New file to support precompiled
2869 * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
2870 * config.host: Use above files for cygwin host.
2872 2005-03-07 David Edelsohn <edelsohn@gnu.org>
2874 * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
2875 ordering ops from earlier change.
2877 2005-03-07 Per Bothner <per@bothner.com>
2879 Various fixes to allow us to again build if --enable-mapped-location:
2880 * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
2881 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
2882 * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
2883 local variable loc. Change logic appropriately.
2884 * tree-vect-transform.c (vect_finish_stmt_generation): Use
2885 EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
2886 * c-parser.c (c_parser_for_statement): Initialize loc variable.
2887 * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
2888 DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
2890 2005-03-07 Richard Sandiford <rsandifo@redhat.com>
2892 PR rtl-optimization/19683
2893 * reload1.c (choose_reload_regs): Pass the number of bits, not the
2894 number of bytes, to smallest_int_for_mode. Fix arguments to
2895 REG_CANNOT_CHANGE_MODE_P.
2897 2005-03-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2899 * reorg.c (relax_delay_slots): Check that the jump is
2900 conditional before trying to invert it.
2902 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
2904 * bb-reorder.c (max_entry_frequency, max_entry_frequency):
2907 * calls (stack_arg_under_construction): Make it static.
2909 * flow.c (regs_live_at_setjmp): Make it static.
2910 * flow.h: Remove the corresponding prototype.
2912 * reload1.c (reload_startobj, reload_firstobj,
2913 something_needs_operands_changed, reload_inherited,
2914 reload_inheritance_insn, reload_override_in,
2915 reload_spill_index): Make them static.
2917 * recog.c (verify_changes): Make it static.
2918 * recog.h: Remove the corresponding prototype.
2920 * cfgbuild.c (find_sub_basic_blocks): Remove.
2921 * basic-block.h: Remove the corresponding prototype.
2922 * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
2924 * doc/cfg.texi: Don't mention find_sub_basic_blocks.
2926 * tree-ssa-operands.c (check_build_stmt): Remove.
2928 * stor-layout.c (set_alignment): Remove.
2929 * tree.h: Remove the corresponding prototype.
2931 * tree-ssa-pre.c (has_abnormal_preds): Make it static.
2933 * tree-ssa-dce.c (control_dependence_map,
2934 visited_control_parents): Make them static.
2936 * cfghooks.c (verify_flow_info): Remove local variable
2939 * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
2942 * loop-unswitch.c (unswitch_loop): Remove local variable src.
2944 2005-03-07 David Billinghurst <David.Billinghurst@riotinto.com>
2946 * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
2948 2005-03-07 Joseph S. Myers <joseph@codesourcery.com>
2950 * config/ia64/hpux.h (LINK_SPEC): Add -z.
2951 * config/ia64/ia64.c (ia64_function_value): Return a REG not a
2952 PARALLEL for an empty structure.
2954 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
2956 * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
2958 * fold-const.c (fold_binary): Unroll the very first "for"
2961 2005-03-06 David Edelsohn <edelsohn@gnu.org>
2963 * config/rs6000/predicates.md (branch_comparison_operator): Remove
2964 redundant match_code test.
2965 (scc_comparison_operator): Swap match_operand and match_code
2967 (branch_positive_comparison_operator): Same.
2968 (trap_comparison_operator): Use comparison_operator and swap with
2971 2005-03-06 Marek Michalkiewicz <marekm@amelek.gda.pl>
2974 * config/avr/avr.c (print_operand): Add 'p' and 'r'.
2975 (out_movhi_r_mr): Read low byte of volatile MEM first.
2976 (out_movhi_mr_r): Write high byte of volatile MEM first.
2978 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2980 * cselib.c (reg_values, reg_values_size): Make them static.
2982 * cse.c (cse_reg_info_table): Make it static.
2984 * fold-const.c (fold_unary): Use build1 instead of copy_node.
2986 2005-03-06 Zdenek Dvorak <dvorakz@suse.cz>
2988 * cse.c (find_best_addr): Use canon_for_address.
2990 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
2992 * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
2993 (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
2994 SUBREG and MEM, respectively.
2996 * fold-const.c (fold_binary): Use code instead of t.
2998 * fold-const.c (optimize_minmax_comparison): Take decomposed
2999 arguments code, type, op0, and op1 instead of t.
3000 (fold_binary): Update a call to optimize_minmax_comparison.
3002 * fold-const.c (fold_range_test): Take decomposed arguments
3003 code, type, op0, and op1 instead of t.
3004 (fold_binary): Update a call to fold_range_test.
3006 * fold-const.c (fold_binary_op_with_conditional_arg): Take
3007 decomposed arguments code, type, op0, and op1 instead of t.
3008 (fold_binary): Update a call to fold_range_test.
3010 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
3012 * fold-const.c (fold_binary): Avoid directly using the original
3013 expression t as much as possible.
3015 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
3017 * c-semantics.c (build_stmt): Use TYPE_P instead of
3018 IS_NON_TYPE_CODE_CLASS.
3019 * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
3020 (NON_TYPE_CHECK): Use TYPE_P instead of
3021 IS_NON_TYPE_CODE_CLASS.
3023 * fold-const.c (fold): Remove handling of binary expressions.
3025 2005-03-05 James A. Morrison <phython@gcc.gnu.org>
3027 * doc/c-tree.texi: Wrap comments in @r{}.
3028 * doc/cpp.texi: Likewise.
3029 * doc/cppinternals.texi: Likewise.
3030 * doc/extend.texi: Likewise.
3031 * doc/md.texi: Likewise.
3032 * doc/objc.texi: Likewise.
3033 * doc/sourcebuild.texi: Likewise.
3034 * doc/tm.texi: Likewise.
3037 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
3039 * predict.c (apply_return_prediction): Standardize PHI chain
3041 * tree-ssa.c (ssa_redirect_edge): Likewise.
3043 * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
3044 gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
3047 * tree-phinodes.c (remove_phi_node): Drop the last argument.
3048 * tree-flow.h: Adjust the prototype for remove_phi_node.
3049 * lambda-code.c (perfect_nestify): Adjust a call to
3052 (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
3053 * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
3055 * tree-ssa-dce.c (remove_dead_phis): Likewise.
3056 * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
3057 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
3058 * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
3060 * combine.c (simplify_and_const_int): Use gen_int_mode instead
3061 of GEN_INT (trunc_int_for_mode (...)).
3062 * loop-iv.c (iv_number_of_iterations): Likewise.
3063 * postreload.c (reload_cse_move2add): Likewise.
3064 * simplify-rtx.c (simplify_const_unary_operation,
3065 simplify_const_binary_operation): Likewise.
3066 * stor-layout.c (get_mode_bounds): Likewise.
3068 * fold-const.c (fold_binary): New.
3069 (fold): Call fold_binary on binary expressions.
3071 2005-03-05 Richard Sandiford <rsandifo@redhat.com>
3073 * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
3074 * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
3075 (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
3076 (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
3077 (ASM_SPEC): Pass down -msym32 and -mno-sym32.
3079 2005-03-04 Devang Patel <dpatel@apple.com>
3081 PR tree-optimization/18815
3082 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
3083 loops with zero exit edges.
3085 2005-03-04 Devang Patel <dpatel@apple.com>
3087 * doc/invoke.texi: Remove reference to webpage that does not exist.
3089 2005-03-04 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
3090 Joseph S. Myers <joseph@codesourcery.com>
3093 * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
3094 (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
3095 * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
3096 * pa.c (get_plabel): Change argument to symbol_ref. Call
3097 maybe_get_identifier instead of get_identifier.
3098 (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
3099 (struct deferred_plabel): Replace name field with symbol field.
3100 (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
3101 ASM_OUTPUT_EXTERNAL_REAL is defined.
3102 (output_global_address): Use output_addr_const for output of all
3104 (output_deferred_plabels): Use symbol_ref instead of name for address
3106 * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
3107 ASM_OUTPUT_SYMBOL_REF): New macros.
3108 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw. Update
3110 (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
3113 2005-03-05 Joseph S. Myers <joseph@codesourcery.com>
3115 * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
3116 *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
3118 2005-03-04 Jeff Law <law@redhat.com>
3120 * basic-block.h (rediscover_loops_after_threading): Declare.
3121 * tree-ssa-dom.c: Include cfgloop.h.
3122 (tree_ssa_dominator_optimize): Discover loops and some basic
3123 properties. Remove forwarder blocks recreated by loop header
3124 canonicalization. Also mark backedges in the CFG.
3125 * tree-ssa-threadupdate.c: Include cfgloop.h
3126 (rediscover_loops_after_threading): Define.
3127 (struct local_info): New field, JUMP_THREADED.
3128 (prune_undesirable_thread_requests): New function.
3129 (redirect_edges): Clear EDGE_ABNORMAL. If edges were threaded
3130 then record that fact for the callers of redirct_edges.
3131 (thread_block): If BB has incoming backedges, then call
3132 prune_undesirable_thraed_requests. Note when we are
3133 going to have to rediscover loop information. Return a
3134 boolean indicating if any jumps were threaded.
3135 (thread_through_all_blocks): Bubble up boolean indicating
3136 if any jumps were threaded.
3137 * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
3138 (tree-ssa-threadupdate.o): Similarly.
3140 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
3142 * fold-const.c (fold_ternary): Unroll the "for" loop to
3145 2005-03-04 Andrew Haley <aph@redhat.com>
3147 * unwind-dw2-fde-glibc.c (struct
3148 unw_eh_callback_data.check_cache): New field.
3149 (frame_hdr_cache): New.
3150 (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
3151 Cache frame header info.
3153 2005-03-04 Richard Sandiford <rsandifo@redhat.com>
3155 * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
3156 (print_c_condition): Declare.
3157 * read-rtl.c (ptr_loc): New structure.
3158 (ptr_locs, ptr_loc_obstack, joined_conditions)
3159 (joined_conditions_obstack): New variables.
3160 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
3161 (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
3162 (join_c_conditions, print_c_condition): New functions.
3163 (apply_macro_to_string): Associate the new string with the same
3164 source location as the old one.
3165 (add_condition_to_string): Use join_c_conditions.
3166 (read_string): Use set_rtx_ptr_loc to record a filename and line
3167 number for the string.
3168 (read_rtx): Initialize the new variables above.
3169 * genattrtab.c (write_test_expr, write_attr_value): Use
3171 * genconditions.c (write_header): Don't define MAYBE_EVAL. Move its
3172 comment above the GCC_VERSION check.
3173 (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
3174 Inline the definition of MAYBE_EVAL.
3175 * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
3176 * genoutput.c (process_template): Likewise.
3177 * genpreds.c (write_predicate_subfunction): Likewise.
3178 (write_predicate_expr): Use print_c_condition.
3179 * genrecog.c (write_cond): Likewise.
3180 * gensupport.c (process_rtx): Use join_c_conditions to join the
3181 conditions of a define_insn_and_split. Record a source location
3182 for the string after the "&&".
3183 (alter_test_for_insn): Use join_c_conditions.
3185 2005-03-04 Andrew Pinski <pinskia@physics.uc.edu>
3188 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
3189 PR tree-optimization/15784
3190 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
3193 2005-03-04 Ben Elliston <bje@au.ibm.com>
3195 * gcc.c (option_map): Add --coverage.
3196 (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
3197 (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
3198 * config/darwin.h: Pass -lgcov for `coverage'.
3199 * doc/invoke.texi (Debugging Options): Document --coverage.
3201 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
3203 * gcse.c (bypass_block): Use find_edge wherever possible.
3205 2005-03-03 Daniel Berlin <dberlin@dbrelin.org>
3209 * c-opts.c (c_common_parse_file): Call start_source_file
3210 and end_source_file at the approriate times.
3212 * dwarf2out.c (dwarf2out_finish): Don't auto-end
3213 the main file, it will be done for us now.
3215 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
3217 * fold-const.c (fold_ternary): New.
3218 (fold): Call fold_ternary on ternary expressions. Remove
3219 handling of ternary expressions.
3221 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
3223 PR tree-optimization/15784
3224 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
3227 2005-03-03 David Edelsohn <edelsohn@gnu.org>
3229 * config/rs6000/predicates.md (branch_comparison_operator):
3230 Convert from C block to conditional format.
3232 2005-03-03 Jan Hubicka <jh@suse.cz>
3234 * tree-dfa.c (add_referenced_var): Don't walk initializer of external
3235 and non-constant public variables.
3237 2005-03-03 Kazu Hirata <kazu@cs.umass.edu>
3239 * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
3242 * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
3245 * tree-phinodes.c (remove_phi_node): Clean up by factoring out
3246 calls to release_ssa_name and release_phi_node.
3248 * fold-const.c (fold): Remove handling of unary expressions.
3250 * fold-const.c (fold_unary): Avoid directly using the original
3251 expression t as much as possible.
3253 2005-03-03 Roger Sayle <roger@eyesopen.com>
3254 Andrew Pinski <pinskia@physics.uc.edu>
3256 * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
3257 RETURN rtx, and not a LABEL_REF containing a NULL pointer.
3259 2005-03-03 Hans-Peter Nilsson <hp@axis.com>
3261 Describe special registers SRP and MOF as allocatable registers.
3262 * config/cris/cris.c (cris_md_asm_clobbers): New function.
3263 (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
3264 (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
3265 TARGET_HAS_MUL_INSNS.
3266 (cris_print_operand) <case 'd'>: New case.
3267 <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
3268 * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
3270 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
3271 (REG_ALLOC_ORDER): Update for MOF.
3272 (enum reg_class): New members MOF_REGS, GENERAL_REGS and
3274 (GENERAL_REGS): No longer a define of ALL_REGS.
3275 (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
3276 (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
3278 (CRIS_SPECIAL_REGS_CONTENTS): New macro.
3279 (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
3280 (SECONDARY_RELOAD_CLASS): Define.
3281 (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
3282 (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
3283 (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
3284 (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
3285 (REGISTER_MOVE_COST): Define.
3286 (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
3287 * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
3288 (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
3289 (CRIS_MOF_REGNUM): New define_constants.
3290 ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
3292 ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
3294 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
3295 ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
3296 Adjust for MOF being properly described as a register.
3297 (indir_to_reg_split): Name this split. Conditionalize on the
3298 destination register being a general register.
3299 (movei): Conditionalize on on operands 0 and 1 having the same
3302 2005-03-03 Alan Modra <amodra@bigpond.net.au>
3305 * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
3306 -mcpu to override any other explicitly given flags.
3308 2005-03-02 J"orn Rennecke <joern.rennecke@st.com>
3310 * recog.c (verify_changes, confirm_change_group): New functions,
3311 broken out of apply_change_group.
3312 (apply_change_group): Use them.
3313 * recog.h (verify_change, confirm_change_group): Declare.
3314 * rtl.h (redirect_jump_2): Declare.
3315 * jump.c (redirect_exp, invert_exp): Delete.
3316 (invert_exp_1): Take second parameter. Return value. Changed caller.
3317 (redirect_jump_2): New function, broken out of redirect_jump.
3318 (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
3319 (invert_jump): Use invert_jump_1 and redirect_jump_2.
3320 * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
3322 2005-03-02 Geoffrey Keating <geoffk@apple.com>
3324 * varasm.c (named_section): Use xstrdup rather than doing it by
3327 * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
3329 2005-03-02 Devang Patel <dpatel@apple.com>
3331 Undo PR tree-optimization/18815 fix.
3333 2005-03-02 Devang Patel <dpatel@apple.com>
3335 PR tree-optimization/18815
3336 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
3337 loops with zero exit edges.
3339 2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
3341 * cfg.c (connect_src, connect_dest, disconnect_src,
3342 disconnct_dest): New.
3343 (unchecked_make_edge, remove_edge, redirect_edge_succ,
3344 redirect_edge_pred): Use the new functions.
3346 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
3347 free_dominance_info only when needed.
3349 2005-03-02 David Edelsohn <edelsohn@gnu.org>
3352 * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
3353 (reg_or_sub_cint64_operand): Same.
3355 2005-03-02 Jeff Law <law@redhat.com>
3357 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
3358 CFG_ALTERED in the main DOM iteration loop.
3360 2005-03-02 Mark Mitchell <mark@codesourcery.com>
3363 * varasm.c (initializer_constant_valid_p): Allow conversions
3364 between OFFSET_TYPEs. Tidy.
3366 2005-03-02 Hans-Peter Nilsson <hp@axis.com>
3368 * config/cris/cris.md ("return"): Remove epilogue delay list
3371 2005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
3373 * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
3375 * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
3377 2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
3379 * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
3380 loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
3381 config/m68k/m68k.c, config/mips/mips.h,
3382 config/rs6000/rs6000-protos.h, doc/contrib.texi,
3383 doc/include/gcc-common.texi: Update copyright.
3385 PR middle-end/18029 and PR middle-end/18030
3386 * expr.c (optimize_bitfield_assignment_op): Add a special case
3387 to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
3389 * fold-const.c (fold_unary): New.
3390 (fold): Call fold_unary on unary expressions.
3392 2005-03-02 Richard Guenther <rguenth@gcc.gnu.org>
3394 * cgraph.h (struct cgraph_edge): Add prev_caller and
3396 (cgraph_node_remove_callees): Export.
3397 * cgraph.c (cgraph_create_edge): Initialize prev_caller
3399 (cgraph_edge_remove_callee): New function.
3400 (cgraph_edge_remove_caller): Likewise.
3401 (cgraph_remove_edge): Use.
3402 (cgraph_redirect_edge_callee): Likewise.
3403 (cgraph_node_remove_callees): New function.
3404 (cgraph_node_remove_callers): Likewise.
3405 (cgraph_remove_node): Use.
3406 * tree-optimize.c (tree_rest_of_compilation): Use
3407 cgraph_node_remove_callees instead of manual loop.
3408 * cgraphunit.c (cgraph_finalize_function): Likewise.
3409 (cgraph_expand_function): Likewise.
3410 (cgraph_remove_unreachable_nodes): Likewise.
3412 2005-03-02 Joseph S. Myers <joseph@codesourcery.com>
3415 * c-tree.h (undeclared_variable, build_external_ref): Add extra
3417 * c-decl.c (undeclared_variable): Take location as argument.
3418 * c-typeck.c (build_external_ref): Likewise.
3419 * c-parser.c (c_parser_postfix_expression): Pass location of
3420 identifier to build_external_ref.