1 2005-03-31 J"orn Rennecke <joern.rennecke@st.com>
3 * postreload-gcse.c: Include target.h.
4 (gcse_after_reload_main): Return early if we cannot modify jumps.
5 * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
7 2005-03-31 David Edelsohn <edelsohn@gnu.org>
9 * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
12 2005-03-31 Ian Lance Taylor <ian@airs.com>
14 * collect2.c (lderrout): New variable.
15 (collect_exit): Dump ldout to stdout. Dump and unlink lderrout,
16 if it is set, to stderr.
17 (handler): Unlink lderrout if it is set.
18 (dump_file): Add "to" parameter. Change all callers.
19 (main): Initialize lderrout.
20 (collect_execute): Add errname parameter. Change all callers.
21 Rename redir parameter to outname. Never pass
22 PEX_STDERR_TO_STDOUT to pex_run.
23 * collect2.h (collect_execute, dump_file): Update declarations.
24 * tlink.c (tlink_execute): Add errname parameter. Change all
26 (do_tlink): Check lderrout as well as ldout.
28 2005-03-31 Olivier Hainque <hainque@adacore.com>
30 * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
33 2005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
36 * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
39 2005-03-31 Alan Modra <amodra@bigpond.net.au>
42 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
43 label operand. Remove (use (unspec..)). Don't emit a label on
45 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
46 generate inline label for load_toc_v4_PIC_1b.
47 (rs6000_emit_load_toc_table): Likewise.
49 2005-03-31 Kazu Hirata <kazu@cs.umass.edu>
51 * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
52 ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
54 2005-03-29 Devang Patel <dpatel@apple.com>
56 * tree-sra.c (decide_block_copy): Disable scalarization of
59 2005-03-30 Stuart Hastings <stuart@apple.com>
60 Dale Johannesen <dalej@apple.com>
62 * Makefile.in (print-tree.o): Depend on tree-iterator.h.
63 * print-tree.c (print_node): Add case STATEMENT_LIST.
65 2005-03-31 Alan Modra <amodra@bigpond.net.au>
67 * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
68 (powerpc64-*-linux*): Use it. Rearrange tm_file assignment.
69 (powerpc-*-linux*): Build a biarch compiler when --enable-targets
70 is given with "powerpc64*" or "all", or when --with-cpu chooses
73 2005-03-30 James E. Wilson <wilson@specifixinc.com>
76 * dwarf2out.c (add_high_low_attributes): New function, extracted from
77 gen_lexical_block_die.
78 (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
80 2005-03-31 Jan Hubicka <jh@suse.cz>
82 2004-11-02 Jan Hubicka <jh@suse.cz>
84 * cgraph.c (cgraph_varpool_node_name): New function.
85 (dump_cgraph_varpool_node): New function.
86 (dump_varpool): New function.
87 * cgraphunit.c (cgraph_optimize): Dump varpool.
89 2004-10-16 Jan Hubicka <jh@suse.cz>
91 * cgraph.c (decide_is_variable_needed): New function.
92 (cgraph_varpool_finalize_decl): Use it.
93 * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
95 * final.c (output_addr_const): Do not call mark_referenced.
96 * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
98 * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
99 (check_global_declarations): Ifdef out code clearing DECL_RTL.
100 * tree-optimize.c (execute_inline): Mark functions called.
101 * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
103 2004-10-11 Jan Hubicka <jh@suse.cz>
105 * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
106 (cgraph_varpool_last_needed_node): New static variable.
107 (enqueue_needed_varpool_node): Break out from ...; add items to the
108 end of queue; update first pointers.
109 (cgraph_varpool_mark_needed_node): ... here.
110 (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
111 (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
112 * cgraph.h (cgraph_varpool_node): Add analyzed field.
113 (cgraph_varpool_first_unanalyzed_node): Declare.
114 * cgraphunit.c: Include output.h.
115 (cgraph_varpool_analyze_pending_decls): New function.
116 (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
117 for errors, analyze pending decls.
118 (cgraph_finalize_compilation_unit): Only analyze decls.
119 (cgraph_optimize): Assemble the decls after expanding.
121 2005-03-30 Daniel Berlin <dberlin@dberlin.org>
123 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
124 subvars get marked properly in tags for grouping.
125 (add_pointed_to_var): Mark only actual pointed to
126 variables/subvars in addresses needed.
127 (create_overlap_variables_for): Clear call clobbered on original
129 * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
130 addresable vars with subvars into list.
131 * tree-ssa.c (verify_ssa_name): Verify original is not used where
134 2005-03-30 Richard Henderson <rth@redhat.com>
136 * cgraph.h (struct cgraph_node): Add alias.
137 * varasm.c (assemble_alias): Set it.
138 * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
139 avoid calling cgraph_expand_function.
141 2005-03-30 Tom Tromey <tromey@redhat.com>
143 * tree.def (FILE_TYPE): Removed.
144 * typeclass.h (enum type_class): Removed file_type_class.
145 * dwarf2out.c (is_base_type): Updated.
146 (gen_type_die): Likewise.
147 * dbxout.c (dbxout_type): Updated.
148 * builtins.c (type_to_class): Updated.
149 * tree.c (type_contains_placeholder_1): Updated.
150 * config/sparc/sparc.c (sparc_type_code): Updated.
151 * config/ia64/ia64.c (hfa_element_mode): Updated.
152 * expr.c (count_type_elements): Updated.
153 * stor-layout.c (layout_type): Updated.
154 * tree-inline.c (remap_type): Updated.
155 * tree-pretty-print.c (dump_generic_node): Updated.
157 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
159 * builtins.c (expand_builtin_powi): Fix mode of
160 2nd argument to match int.
161 * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
162 2nd argument type to int.
163 * libgcc2.c: Change prototype of __powi* functions to use
166 2005-03-30 Dale Johannesen <dalej@apple.com>
169 * calls.c (expand_call): Flush pending deferrals before
172 2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
176 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
177 C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
178 c_label_context, label_context_stack): New.
179 * c-decl.c (define_label): Check for jumps into statement
180 expressions. Add label to list of defined labels.
181 (start_function): Push context on label_context_stack.
182 (finish_function): Pop context from label_context_stack.
183 * c-typeck.c (label_context_stack): New.
184 (c_finish_goto_label): Check for jumps into statement
185 expressions. Add label to list of jumped to labels.
186 (struct c_switch): Add blocked_stmt_expr.
187 (c_start_case): Initialize it.
189 (c_finish_case): Verify !blocked_stmt_expr.
190 (c_begin_stmt_expr): Push context on label_context_stack.
191 Increment blocked_stmt_expr. Mark labels jumped to from outside
193 (c_finish_stmt_expr): December blocked_stmt_expr. Mark labels
194 defined in the statement expression and no longer jumpable to.
195 Mark labels jumped to from just outside the statement expression
196 as again definable. Pop context from label_context_stack.
197 * doc/extend.texi (Statement Exprs): Update.
199 2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
202 * c-decl.c (start_function): Check for old_decl being
205 2005-03-30 Ian Lance Taylor <ian@airs.com>
207 * final.c (final): Remove prescan parameter. Change all callers.
208 (final_scan_insn): Remove prescan parameter. Change all callers.
210 2005-03-30 Kazu Hirata <kazu@cs.umass.edu>
212 * tree-vectorizer.c: Fix comment typos.
214 2005-03-30 Sebastian Pop <pop@cri.ensmp.fr>
216 * tree-scalar-evolution.c (instantiate_parameters_1): Return
217 as soon as a chrec_dont_know is detected.
219 2005-03-31 Danny Smith <dannysmith@users.sourceforge.net>
221 Merge from csl-arm-branch.
222 2004-02-12 Mark Mitchell <mark@codesourcery.com>
224 * tlink.c (recompile_files): Do not assume that "rename" can
225 overwrite an existing file.
227 2005-03-31 Paolo Bonzini <bonzini@gnu.org>
229 * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
230 * gcc/configure: Regenerate.
232 2005-03-30 Alan Modra <amodra@bigpond.net.au>
234 * doc/install.texi: Update binutils requirement for powerpc*-linux.
236 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
238 * calls.c (struct arg_data): Update "partial" comment.
239 (load_register_parameters): Update "nregs" comment.
241 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
243 * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
244 (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
245 (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
246 (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
247 (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
248 (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
249 than target_flags & 0.
250 * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
251 (iq2000_arch, iq2000_parse_cpu): Delete.
252 (TARGET_HANDLE_OPTION): Override default.
253 (iq2000_handle_option): New function.
254 (override_options): Remove -march= and -mcpu= handling.
255 * config/iq2000/iq2000.opt: New file.
257 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
259 * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
260 * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
261 (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
262 (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
263 (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
264 (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
265 (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
266 (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
267 (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
268 (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
269 (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
270 (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
271 (c4x_rpts_cycles_string, c4x_cpu_version_string)
272 (TARGET_OPTIONS): Delete.
273 (c4x_rpts_cycles, c4x_cpu_version): Declare.
274 (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
275 (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
276 * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
277 (c4x_cpu_version_string): Delete.
278 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
279 (c4x_handle_option): New function. Map -m3x and -m4x options to the
280 equivalent -mcpu= option.
281 (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
282 Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
283 TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
284 or clearing the appropriate MASK_* bit.
285 (c4x_file_start): Use c4x_cpu_version.
286 * config/c4x/c4x.opt: New file.
288 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
290 * doc/options.texi: Document the new MaskExists flag.
291 * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
292 if the option has the MaskExists flag.
294 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
296 * opt-functions.awk (flag_set_p, test_flag): New functions.
297 (switch_flags): Use them.
298 * opth-gen.awk: Use flag_set_p to check for flags.
299 * optc-gen.awk: Likewise. Use opt_args to check for Init(...) flags.
301 2005-03-30 Ian Lance Taylor <ian@airs.com>
303 * config.host (i[34567]86-*-mingw32*): Don't set
304 host_can_use_collect2 to no.
306 2005-03-30 Alan Modra <amodra@bigpond.net.au>
309 * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
310 Remove convert_memory_address call duplicating that in memory_address.
312 2005-03-29 Richard Henderson <rth@redhat.com>
315 * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
316 (build_compound_literal): Likewise. Propagate decl type into the
318 (finish_decl): Likewise. Use new return value from complete_array_type
319 for zero sized arrays.
320 (complete_array_type): Move ...
321 * c-common.c (complete_array_type): ... here. Change first argument
322 to pointer-to-type-node. Consistently use sizetype for the index
323 except for zero sized arrays. Detect zero sized arrays for pedantic
324 mode diagnostics. Create a new type node instead of modifying the
326 * c-tree.h (complete_array_type): Move decl ...
327 * c-common.h (complete_array_type): ... here.
329 2005-03-29 Richard Henderson <rth@redhat.com>
332 * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
334 2005-03-29 Kazu Hirata <kazu@cs.umass.edu>
336 * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
337 debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
338 rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
339 tree-profile.c, tsystem.h, value-prof.h: Update copyright.
341 2005-03-29 Eric Christopher <echristo@redhat.com>
343 * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
344 truthvalue conversion removal.
346 2005-03-29 Ian Lance Taylor <ian@airs.com>
349 * collect2.c: Never include <vfork.h>.
350 (VFORK_STRING, vfork): Don't define.
351 (pid): Remove global variable.
352 (handler): Call raise instead of kill (getpid(), ...).
353 (collect_wait): Add pex parameter. Change all callers. Use
354 pex_get_status rather than pwait.
355 (do_wait): Add pex parameter. Change all callers.
356 (collect_execute): Return struct pex_obj * rather than void. Use
357 pex routines rather than pexecute.
358 (fork_execute): Get pex_obj from collect_execute, and pass it to
360 (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
361 Only declare quit_handler if SIGQUIT is defined.
362 (scan_libraries): Likewise.
363 * collect2.h (collect_execute): Update declaration.
364 (collect_wait): Update declaration.
365 * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
366 pass it to collect_wait.
368 2005-03-29 Joseph S. Myers <joseph@codesourcery.com>
371 * c-parser.c (c_parser_compound_statement_nostart): Give error
372 message for EOF instead of just setting parser->error.
374 2005-03-29 Dorit Naishlos <dorit@il.ibm.com>
376 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
377 (slpeel_update_phi_nodes_for_guard1): New function.
378 (slpeel_update_phi_nodes_for_guard2): New function.
379 (slpeel_tree_peel_loop_to_edge): Call above new functions instead
380 of slpeel_update_phi_nodes_for_guard.
381 (vectorize_loops): Remove call to loop_closed_rewrite.
382 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
385 2005-03-29 Richard Sandiford <rsandifo@redhat.com>
387 * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
388 (TARGET_LITTLE_ENDIAN): New macro.
389 * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
390 (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
391 (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
392 (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
393 (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
394 (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
395 (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
396 (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
397 (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
398 (TARGET_OPTIONS): Delete.
399 (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
400 (CACHE_FLUSH_TRAP): Turn into an integer.
401 (TARGET_LITTLE_ENDIAN): Define to 0 by default.
402 (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
403 -mflush-trap is in use.
404 * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
405 (m32r_cache_flush_trap_string): Delete.
406 (m32r_model) Initialize to M32R_MODEL_DEFAULT.
407 (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
408 (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
409 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
410 (m32r_handle_option): New function. Move -mflush-trap=, -mflush-func=,
411 -mmodel= and -msdata= handling from...
412 (m32r_init): ...here.
413 * config/m32r/m32r.opt: New file.
415 2005-03-29 Keith Besaw <kbesaw@us.ibm.com>
417 * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
418 (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
419 * tree-vect-analyze.c (vect_object_analysis): additional parm
420 pass back a "struct ptr_info_def *" with the points-to info.
421 (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
422 statement using info returned from vect_object_analysis.
423 * tree-vect-transform.c (update_vuses_to_preheader): New function.
424 (vect_create_data_ref_ptr): Remove updates to vars_to_rename
425 for virtual uses and defs when creating a replacement vector
426 reference. Call duplicate_ssa_name_ptr_info to define points-to
427 info for vector pointer replacement using STMT_VINFO_PTR_INFO.
428 (vectorizable_store): copy_virtual_operands and update
429 definition statements.
430 (vectorizable_load): copy_virtual_operands. Remove call to
431 mark_call_clobbered_vars_to_rename for call to "const" builtin.
432 * tree-vectorizer.c (vectorize_loops): Remove calls to
433 rewrite_into_ssa and bitmap_clear (vars_to_rename).
434 (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
435 * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
436 define macro STMT_VINFO_PTR_INFO for use in accessing.
437 * tree.h add export of duplicate_ssa_name_ptr_info.
438 * rs6000.c (altivec_init_builtins): Declare builtin function
439 __builtin_altivec_mask_for_load to be "const".
441 2005-03-29 Jakub Jelinek <jakub@redhat.com>
444 * cgraph.h (struct cgraph_varpool_node): Add alias field.
445 * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
446 assemble_variable on aliases.
447 * varasm.c (assemble_alias): Set node->alias.
448 * toplev.c (wrapup_global_declarations): Don't call
449 rest_of_decl_compilation on aliases again.
451 2005-03-29 Paul Brook <paul@codesourcery.com>
453 * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
454 * config/arm/arm.c (arm_dbx_register_number): New function.
455 * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
457 2005-03-29 Eric Botcazou <ebotcazou@libertysurf.fr>
460 * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
461 the DECL_NAME, not the DECL_ASSEMBLER_NAME.
463 2005-03-29 Dale Johannesen <dalej@apple.com>
465 * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
466 $(TREE_H) and $(COVERAGE_H).
467 * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
468 * opts.c (common_handle_option): Enable tree-based value transforms.
469 * toplev.c (process_options): Ditto.
470 * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
471 refers to references to this type.
472 * tree-flow.h: (struct stmt_ann_d): Add histograms field.
473 * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
474 for may_be_more, may_be_less.
475 (rtl_gen_pow2_profiler): Adjust.
476 (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
477 (rtl_gen_one_value_profiler): Adjust.
478 (rtl_gen_const_delta_profiler): Adjust.
479 * tree-profile.c (tree_gen_interval_profiler): Implement.
480 (tree_gen_pow2_profiler): Ditto.
481 (tree_gen_one_value_profiler): Ditto.
482 (tree_profiling): New.
483 (pass_tree_profile): Reference it.
484 * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
486 (insn_divmod_values_to_profile): Rename to
487 rtl_divmod_values_to_profile. Adjust.
488 (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
489 (insn_prefetch_values_to_profile): Adjust.
490 (rtl_value_profile_transformations): Adjust.
491 (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
492 (gen_mod_pow2): Rename to rtl_mod_pow2.
493 (gen_mod_subtract): Rename to rtl_mod_subtract.
494 (divmod_fixed_value_transform): Rename to
495 rtl_divmod_fixed_value_transform.
496 (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
497 (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
498 (rtl_find_values_to_profile): Adjust.
499 (tree_value_profile_transformations): Implement.
500 (tree_divmod_values_to_profile): New.
501 (tree_values_to_profile): New.
502 (tree_divmod_fixed_value): New.
503 (tree_mod_pow2): New.
504 (tree_mod_subtract): New.
505 (tree_divmod_fixed_value_transform): New.
506 (tree_mod_pow2_value_transform): New.
507 (tree_mod_subtract_transform): New.
508 (tree_find_values_to_profile): Implement.
509 * profile.c (instrument_values): Free histograms.
510 (compute_value_histograms): Adjust. Implement tree version.
512 2005-03-29 Uros Bizjak <uros@kss-loka.si>
514 * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
515 * config/i386/i386.c (output_fix_trunc): Add new round_mode
516 variable. Output "fldcw" depending on round_mode.
517 * config/i386/i386.md (UNSPEC_FIST): New.
518 (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
519 New isns patterns to implement lrint and llrint built-ins as x87
521 (fistdi2, fist<mode>2 splitters): New splitters.
522 (lrint<mode>2): New expanders.
524 2005-03-28 Ian Lance Taylor <ian@airs.com>
526 * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
527 0 when calling final_scan_insn.
529 2005-03-28 Jan Hubicka <jh@suse.cz>
532 * varasm.c (mark_decl_referenced): Do not mark extern inline functions
535 * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
536 types where possible.
538 2005-03-26 Per Bothner <per@bothner.com>
540 Make -f[no-]show-column also control non-cpp diagnostics.
541 * c.opt (fshow-column): Move option from here ...
542 * common.opt (fshow-column): ... to here.
543 * diagnostic.c (diagnostic_build_prefix): Only print column number
546 2005-03-27 Steven Bosscher <stevenb@suse.de>
548 * vax-protos.h (vax_output_int_move, vax_output_int_add,
549 vax_output_conditional_branch): New prototypes.
550 * vax.c (vax_output_int_move, vax_output_int_add): New functions,
551 extracted from vax.md mov and add patterns.
552 (vax_output_conditional_branch): New function to output conditional
554 * vax.md: Use mode macros for arithmetic and mov patterns.
555 Use code macros for the jump patterns.
557 2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
559 * Makefile.in (libbackend.o): Depend on version files;
560 add custom generation command.
562 2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
565 * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
566 sure that we have a REG before getting its REGNO.
568 2005-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
570 * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
571 * builtins.def (BUILT_IN_STRNDUP): New.
573 2005-03-25 Pat Haugen <pthaugen@us.ibm.com>
575 PR tree-optimization/20470
576 * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
579 2005-03-25 Mike Stump <mrs@apple.com>
581 * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
584 2005-03-25 Geoffrey Keating <geoffk@apple.com>
586 * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
587 Use our own structure definitions.
589 * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
590 (fix_truncdfsi2): Allow registers or memory as destination.
591 When TARGET_PPC_GFXOPT, generate simplified pattern.
592 (fix_truncdfsi2_internal): Use define_insn_and_split.
593 (fix_truncdfsi2_internal_gfxopt): New.
594 (fctiwz): Don't confuse register allocation by giving it no choices.
596 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
597 (EXTRA_MEMORY_CONSTRAINT): Likewise.
598 * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
599 * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
601 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
603 * dominance.c (free_dominance_info): Speed up by freeing et
604 data structures without maintaining other nodes.
605 * et-forest.c (et_free_tree_force): New.
606 * et-forest.h: Add a prototype for et_free_tree_force.
608 * tree.c (get_set_constructor_bits,
609 get_set_constructor_bytes): Remove.
610 * tree.h: Remove the corresponding prototypes.
612 2005-03-25 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
615 * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
616 (vax_rtx_costs): Return false when passed unsupported rtx's. Handle
617 FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE. Fix costs for POST_INC,
618 PRE_DEC, NEG and NOT.
620 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
622 * fold-const.c: Convert uses of fold (build (...)) to
625 2005-03-25 Zdenek Dvorak <dvorakz@suse.cz>
627 PR rtl-optimization/20249
628 * cse.c (insert_regs): Do not record equivalence of registers in
631 2005-03-24 Kazu Hirata <kazu@cs.umass.edu>
633 * emit-rtl.c (reverse_comparison): Remove.
634 * rtl.h: Remove the corresponding prototype.
636 2005-03-24 James E Wilson <wilson@specifixinc.com>
638 * doc/install.texi (--enable-altivec): Delete docs.
640 2005-03-24 David Edelsohn <edelsohn@gnu.org>
642 * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
643 SFmode and DFmode before reload when
644 flag_unsafe_math_optimizations not enabled.
646 2005-03-24 Geoffrey Keating <geoffk@apple.com>
648 * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
650 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
651 MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
653 2005-03-24 Nathan Sidwell <nathan@codesourcery.com>
655 * configure.ac (enable-checking): Add 'runtime' option.
656 * doc/install.texi (enable-checking): Document 'runtime' checking.
657 * tsystem.h (gcc_assert, gcc_unreachable): Define.
658 * config.in: Regenerated.
659 * configure: Regenerated.
661 2005-03-23 Uros Bizjak <uros@kss-loka.si>
663 * optabs.h (enum optab_index): Remove OTI_llrint.
664 (llrint_optab): Remove macro.
665 * optabs.c (init_optabs): Remove llrint_optab initialization.
666 * genopinit.c (optabs): Remove llrint_optab implementation.
667 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
670 2005-03-24 Alexandre Oliva <aoliva@redhat.com>
672 PR rtl-optimization/20532
673 * simplify-rtx.c (simplify_binary_operation_1): Protect from
674 overflow when adding coefficients for PLUS or MINUS.
675 (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
678 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
680 * langhooks.h (truthvalue_conversion): Remove.
681 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
682 LANG_HOOKS_TRUTHVALUE_CONVERSION.
683 * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
684 * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
685 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
687 2005-03-23 Kazu Hirata <kazu@cs.umass.edu>
689 * params.def: Fix a typo.
690 * config/mips/mips.c: Follow the spelling convensions.
691 * doc/invoke.texi: Fix typos.
693 2005-03-18 Dale Johannese <dalej@apple.com>
695 * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
697 2005-03-23 Daniel Berlin <dberlin@dberlin.org>
699 Fix PR tree-optimization/20601
701 * tree-ssa-pre.c (insert_aux): Add missing condition to
704 2005-03-23 Ian Lance Taylor <ian@airs.com>
706 * final.c (final_scan_insn): Don't remove no-op instructions.
707 * reload1.c (reload): Remove simple no-op instructions even when
710 2005-03-23 Dorit Naishlos <dorit@il.ib.com>
712 PR tree-optimization/20501
713 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
714 reporting that peeling for alignment is applied moved to...
715 * (vect_analyze_data_refs_alignment): Here.
717 2005-03-23 Ian Lance Taylor <ian@airs.com>
719 * reorg.c (dbr_schedule): Remove #if 0 code to call final.
721 2005-03-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
723 * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
724 Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
726 2005-03-23 Hans-Peter Nilsson <hp@axis.com>
728 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
729 imply that this is called once, independent of asms in code.
730 Adjust to now being pased output and input lists. Mention helper
731 function decl_overlaps_hard_reg_set_p.
732 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
733 hook_tree_tree_identity and to take three trees, returning third.
734 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
736 * stmt.c: include hard-reg-set.h before tree.h.
737 (decl_overlaps_hard_reg_set_p): New function, broken out from...
738 (decl_conflicts_with_clobbers_p): Call
739 decl_overlaps_hard_reg_set_p.
740 (expand_asm_operands): Pass output and input lists in call to
741 targetm.md_asm_clobbers.
742 * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
743 hook_tree_tree_tree_tree_3rd_identity.
744 * target.h (struct gcc_target.md_asm_clobbers): Take three tree
746 * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
747 * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
748 parameters, first two unused.
749 * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
750 parameters. Only add MOF to clobbers if there's no 'h' mentioned
751 in constraint letters and MOF is not mentioned as a asm-declared
752 register in neither of the input and output lists.
754 2005-03-23 DJ Delorie <dj@redhat.com>
756 * optabs.c (expand_binop): Make sure the first subword's result
759 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
761 * c-common.c (c_common_truthvalue_conversion): Adjust comment.
762 Call c_common_truthvalue_conversion rather than
763 lang_hooks.truthvalue_conversion.
764 * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
765 * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
767 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
768 c_common_truthvalue_conversion.
769 * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
770 c_parser_conditional_expression, c_parser_binary_expression): Call
771 c_objc_common_truthvalue_conversion.
772 * c-typeck.c (build_unary_op): Call
773 c_objc_common_truthvalue_conversion.
774 (build_conditional_expr): Do not call
775 lang_hooks.truthvalue_conversion.
776 (build_binary_op): Call c_common_truthvalue_conversion.
777 (c_objc_common_truthvalue_conversion): Moved from
778 c-objc-common.c. Call default_function_array_conversion instead
779 of default_conversion.
781 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
783 * c-common.h (default_conversion): Remove.
784 (perform_integral_promotions): Add.
785 * c-tree.h (default_conversion): Add.
786 * c-typeck.c (perform_integral_promotions): New, split out from
788 * c-common.c (check_case_value): Use perform_integral_promotions,
789 not default_conversion.
790 (c_add_case_label): Don't continue processing case label after
793 2005-03-23 Mark Mitchell <mark@codesourcery.com>
795 * gcc.c (do_spec_1): Do not add a -L path for a directory in
796 the prefix list if we have already added a multilib directory
798 (main): Do not add MD_EXEC_PREFIX to the list of directories to
801 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
803 * reload1.c (indirect_symref_ok, reload_obstack): Make them
805 * reload.h: Remove the prototype for indirect_symref_ok.
807 * reload1.c (indirect_symref_ok): Make it global.
808 * reload.h: Add a prototype for indirect_symref_ok.
810 2005-03-22 Kaz Kojima <kkojima@gcc.gnu.org>
812 * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
815 2005-03-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
817 * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
819 2005-03-22 Daniel Berlin <dberlin@dberlin.org>
821 * c-opts.c (c_common_parse_file): Only start/end main source file
822 if debug hooks says the writer wants it.
823 * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
825 (xcoff_debug_hooks): Ditto.
826 * debug.c (do_nothing_hooks): Ditto.
827 * debug.h (gcc_debug_hooks): Ditto.
828 * dwarf2out.c (dwarf2_debug_hooks): Ditto.
829 * sdbout.c (sdb_debug_hooks): Ditto.
830 * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
832 2005-03-22 Mark Mitchell <mark@codesourcery.com>
834 * doc/extend.texi: Deprecate C++ min/max operators.
836 2005-03-22 Zdenek Dvorak <dvorakz@suse.cz>
838 * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
839 artificial original candidates.
841 2005-03-22 Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
842 Jan Hubicka <jh@suse.cz>
843 Steven Bosscher <stevenb@suse.de>
845 * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
846 call cost based on argument sizes.
847 (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
849 * params.def: (max-inline-inssn-single): Set to 450.
850 (max-inline-insns-auto): Set to 90.
851 (max-inline-insns-recursive): Set to 450
852 (max-inline-insns-recursive-auto): Set to 450.
853 (large-function-insns): Set to 2700.
854 (inline-call-cost): New parameter.
855 * tree-inline.c (estimate_move_cost): New function.
856 (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
857 for non-gimple-regs, set cost to 0 for gimple-regs. Compute call size
859 * tree-inline.h (estimate_move_cost): Declare.
860 * invoke.texi: (max-inline-inssn-single): Change default to 450.
861 (max-inline-insns-auto): Change default to 90.
862 (max-inline-insns-recursive): Change default to 450
863 (max-inline-insns-recursive-auto): Change default to 450.
864 (large-function-insns): Change default to 2700.
865 (inline-call-cost): Document new parameter.
867 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
869 * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
870 (TARGET_DEFAULT): Delete.
871 * config/i860/i860.opt: New file.
873 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
875 * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
876 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
877 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
878 (frv_sched_lookahead): Delete.
879 * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
880 (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
881 (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
882 (MASK_LIBPIC, MASK_ACC_4, MASK_PACK, MASK_LONG_CALLS)
883 (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
884 (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
885 (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
886 (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
887 (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
888 (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
889 (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
890 (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
891 (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
892 (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
893 (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
894 (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
895 (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
896 (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
897 (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
898 (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
899 (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
900 (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
901 * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
902 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
903 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
904 (frv_sched_lookahead): Delete.
905 (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
906 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
907 (frv_handle_option): New function. Move -mcpu= handling from...
908 (frv_override_options): ...here. Remove handling of other
910 (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
911 TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
912 (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
913 and TARGET_NO_MULTI_CE.
914 (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
916 * config/frv/frv.opt: New file.
918 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
920 * fold-const.c (fold_ternary): Take decomposed arguments of
922 (fold): Update a call to fold_ternary.
924 * fold-const.c (fold_build1, fold_build2, fold_build3): New.
925 * tree.h: Add corresponding prototypes.
927 2005-03-22 Jakub Jelinek <jakub@redhat.com>
930 * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
931 between jump table and its label.
932 * final.c (shorten_branches): Handle notes in between ADDR_VEC
933 resp. ADDR_DIFF_VEC and the label preceeding it.
934 (final_scan_insn): Likewise. Ensure ADDR_VEC resp. ADDR_DIFF_VEC
935 is emitted in the right section.
937 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
939 * fold-const.c (fold_unary, fold_binary): Update comments
942 2005-03-22 Hans-Peter Nilsson <hp@axis.com>
944 PR rtl-optimization/20527
945 * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
946 REG_INC note, test that the register also isn't mentioned in PRED
949 2005-03-22 Ben Elliston <bje@au.ibm.com>
951 * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
954 2005-03-21 Mike Stump <mrs@apple.com>
956 * varasm.c (default_assemble_visibility): Remove extra ().
958 2005-03-21 Roger Sayle <roger@eyesopen.com>
961 * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
962 to determine whether a block can be duplicated, rather than test
963 whether the block contains noncopyable insns ourselves.
965 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
967 * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
970 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
972 * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
974 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
976 * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
977 (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
978 * config/fr30/fr30.opt: New file.
980 2005-03-18 Daniel Berlin <dberlin@dberlin.org>
982 Fix PR tree-optimization/20542
984 * tree-flow-inline.h (overlap_subvar): Move to here.
985 * tree-ssa-operands.c: From here.
986 * tree-flow.h (overlap_subvar): Declare.
987 * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
988 * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
989 for variables with subvars.
991 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
994 * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
995 * modulo-sched.c (const_iteration_count): Return on NULL
997 (print_node_sched_params): Return on NULL dump_file.
998 (generate_reg_moves): Handle reg-anti dependencies and disregard
999 closing branch when generating register moves.
1000 (sms_schedule): Mark the SMSed block dirty.
1001 * passes.c (rest_of_handle_sms): Call update_life_info for all
1003 * testsuite/gcc.dg/20050321-1.c: New test.
1005 2005-03-21 Bob Wilson <bob.wilson@acm.org>
1007 * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
1008 * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
1009 movqi_internal): Likewise.
1011 2005-03-21 Bob Wilson <bob.wilson@acm.org>
1013 * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
1014 xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
1015 xtensa_b4const): Delete prototypes.
1016 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
1017 xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
1018 (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
1019 xtensa_extra_constraint): New prototypes.
1020 (add_operand, arith_operand, nonimmed_operand, mem_operand,
1021 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
1022 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
1023 move_operand, const_float_1_operand, fpmem_offset_operand,
1024 branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
1025 * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
1026 (xtensa_b4const_or_zero): ...this. Change return type to bool and
1027 argument type to HOST_WIDE_INT.
1028 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
1029 xtensa_mask_immediate): Likewise.
1030 (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
1031 Likewise. Also make these functions static.
1032 (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
1033 (xtensa_const_ok_for_letter_p): New.
1034 (add_operand, arith_operand, nonimmed_operand, mem_operand,
1035 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
1036 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
1037 move_operand, const_float_1_operand, fpmem_offset_operand,
1038 branch_operator, ubranch_operator, boolean_operator): Move to
1040 (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
1041 (xtensa_mem_offset): Change return type to bool.
1042 (xtensa_extra_constraint): New.
1043 (gen_int_relational): Update type of const_range_p function pointer.
1044 Use xtensa_b4const_or_zero.
1045 * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
1046 xtensa_const_ok_for_letter_p. Update comments.
1047 (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
1048 (PREDICATE_CODES): Delete.
1049 * config/xtensa/xtensa.md: Include predicates.md.
1050 * config/xtensa/predicates.md: New file.
1052 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
1054 * config/v850/v850-protos.h: Remove the prototypes for
1055 reg_or_int9_operand, reg_or_const_operand,
1056 pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
1057 reg_or_0_operand, reg_or_int5_operand, call_address_operand,
1058 movsi_source_operand, power_of_two_operand,
1059 not_power_of_two_operand, special_symbolref_operand,
1060 pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
1061 register_is_ok_for_epilogue.
1062 * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
1063 reg_or_int9_operand, reg_or_const_operand,
1064 call_address_operand, special_symbolref_operand,
1065 movsi_source_operand, power_of_two_operand,
1066 not_power_of_two_operand, register_is_ok_for_epilogue,
1067 pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
1068 pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
1070 * config/v850/v850.h (PREDICATE_CODES): Remove.
1071 * config/v850/v850.md: Include predicates.md.
1072 * config/v850/predicates.md: New.
1074 2005-03-21 Zack Weinberg <zack@codesourcery.com>
1076 * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
1077 (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1078 (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
1079 (itoolsdir, itoolsdatadir): Move definition above new first use.
1080 (install-itoolsdirs): New rule.
1081 (install-mkheaders): Depend on install-itoolsdirs, not
1082 install-include-dir.
1084 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
1086 * tree-into-ssa.c: Remove obsolete comments.
1088 2005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
1090 * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
1091 unrolling if -fpeel-loops is specified, too.
1092 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1093 Remove superfluous check for flag_unroll_loops.
1095 2005-03-21 Uros Bizjak <uros@kss-loka.si>
1097 * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
1098 (lrint_optab, llrint_optab): Define corresponding macros.
1099 * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
1100 * genopinit.c (optabs): Implement lrint_optab using lrintsi2
1101 pattern and llrint_optab using llrintdi2 patterns.
1102 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
1103 using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
1104 (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
1105 BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
1106 flag_unsafe_math_optimizations is set.
1108 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
1110 * combine.c (combine_simplify_rtx, simplify_if_then_else,
1111 simplify_logical, if_then_else_cond, known_cond,
1112 simplify_comparison): Adjust calls to reverse_comparison.
1113 Don't use combine_reversed_comparison_code).
1114 (combine_reversed_comparison_code): Remove.
1115 (reversed_comparison): Using reversed_comparison_code, move it...
1116 * jump.c (reversed_comparison): ... here.
1117 * rtl.h (reversed_comparison): Add prototype.
1119 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
1121 * builtins.c (fold_builtin): Take decomposed arguments of
1123 * fold-const.c (fold_ternary): Update a call to fold_builtin.
1124 * gimplify.c (gimplify_call_expr): Likewise.
1125 * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
1126 * tree.h: Update the prototype of fold_builtin.
1128 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
1130 * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
1131 * rtlhooks.c (gen_lowpart_no_emit_general): New.
1132 * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
1133 (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
1134 * simplify-rtx.c (simplify_binary_operation_1): Use it.
1136 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
1138 * builtins.c (fold_builtin_1): Take decomposed arguments of
1140 (fold_builtin): Update a call to fold_builtin_1.
1142 2005-03-21 Nathan Sidwell <nathan@codesourcery.com>
1145 * gcov.c (output_lines): Only output function block summary when
1146 outputting branch information.
1147 * doc/gcov.texi: Document format of preamble and additional block
1150 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
1152 * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
1153 (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
1154 the defaults false if BITS_PER_UNIT != 8.
1155 (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
1156 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
1157 than BITS_PER_UNIT != 8.
1158 (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
1159 (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
1160 (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
1162 * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
1163 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
1165 2005-03-20 Roger Sayle <roger@eyesopen.com>
1168 * fold-const.c (fold_binary): Fix type mismatch between
1169 TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
1170 (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
1171 for non-truth-valued expressions.
1173 * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
1174 and FUNCTION_DECL in the main switch.
1175 <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
1176 TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
1177 we also need to convert their operands to match.
1178 <TRUTH_NOT_EXPR>: Likewise.
1180 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
1182 * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
1183 diagnostic without checking whether an lvalue.
1184 * c-common.h (lvalue_p): Remove.
1185 (enum lvalue_use): Update comment.
1186 (lvalue_or_else): Replace by lvalue_error.
1187 * c-typeck.c (lvalue_p): Make static.
1188 (lvalue_or_else): New. Call lvalue_error.
1190 2005-03-21 Alan Modra <amodra@bigpond.net.au>
1192 * config/rs6000/rs6000.c (rs6000_parm_start): New function.
1193 (function_arg_advance): Use rs6000_parm_start.
1194 (function_arg, rs6000_arg_partial_bytes): Likewise.
1196 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
1198 * c-common.c (check_case_value): Adjust comment about stripping
1200 (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
1201 * c-typeck.c (default_conversion, convert_arguments,
1202 build_modify_expr, convert_for_assignment, store_init_value,
1203 digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
1204 manually. Remove inaccurate comments.
1206 2005-03-20 Roger Sayle <roger@eyesopen.com>
1207 Joseph S. Myers <joseph@codesourcery.com>
1209 * varasm.c (do_assemble_alias): Restore comment describing function.
1210 Annotate the target parameter as potentially unused.
1212 2005-03-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
1215 * config/avr/avr.c (avr_output_function_prologue): Do not use
1216 current_function_name() in a label, use a local label instead.
1218 2005-03-20 David Edelsohn <edelsohn@gnu.org>
1220 * config/rs6000/rs6000.c (rs6000_generate_compare): Test
1221 flag_finite_math_only, not flag_unsafe_math_optimizations.
1223 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
1225 * builtins.c (fold_builtin_1): Update a call to
1226 targetm.fold_builtin.
1227 * hooks.c (hook_tree_tree_bool_null): Rename to
1228 hook_tree_tree_tree_bool_null. Take one more argument of type
1230 * hooks.h: Update the prototype of hook_tree_tree_bool_null.
1231 * target-def.h (TARGET_FOLD_BUILTIN): Define it as
1232 hook_tree_tree_tree_bool_null.
1233 * target.h (gcc_target): Update the prototype of fold_builtin.
1234 * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
1235 arguments of CALL_EXPR.
1236 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update. Mention the
1239 2005-03-20 Jan Hubicka <jh@suse.cz>
1241 * cgraph.h (cgraph_node): Add prev_clone pointer.
1242 * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
1243 (cgraph_clone_node): Produce doubly linked chain.
1245 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
1247 * c-common.c (handle_aligned_attribute, check_function_sentinel,
1248 get_nonnull_operand, handle_sentinel_attribute,
1249 check_function_arguments_recurse): Do not strip NOPS from
1251 * c-decl.c (check_bitfield_type_and_width, build_enumerator):
1253 * c-format.c (get_constant): Likewise.
1254 * c-parser.c (c_parser_postfix_expression): Likewise.
1255 * c-typeck.c (set_init_index): Likewise.
1256 (convert_arguments): Don't check for NOP_EXPR containing integer
1259 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
1261 * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
1262 fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
1263 Take decomposed arguments of CALL_EXPR.
1264 (fold_builtin_1): Update calls to the functions mentioned
1267 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
1269 * c-decl.c (check_bitfield_type_and_width): Require bit-field
1270 width to have integer type.
1271 (build_enumerator): Require enumerator value to have integer type.
1273 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
1275 * doc/extend.texi (__builtin_inf): Move statement about INFINITY
1278 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
1280 * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
1281 std=iso9899:199x): Correct descriptions.
1283 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
1285 * config.gcc: Consistently use solaris2.1[0-9]* instead of
1288 2005-03-19 Kazu Hirata <kazu@cs.umass.edu>
1290 * builtins.c (fold_builtin_memcpy): Take decomposed arguments
1292 (expand_builtin_memcpy, fold_builtin_1): Update calls to
1293 fold_builtin_memcpy.
1295 * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
1296 arguments of CALL_EXPR.
1297 (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
1298 fold_builtin_found, fold_builtin_1): Update calls to
1299 fold_trunc_transparent_mathfn.
1301 2005-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1304 * fold-const.c (fold_widened_comparison): Don't optimize casts of
1305 function pointers on targets that require function pointer
1307 (fold_sign_changed_comparison): Likewise.
1309 2005-03-19 Bernd Schmidt <bernd.schmidt@analog.com>
1311 * combine.c (try_combine): When changing the mode of a hard reg, make
1312 sure that doing so is valid.
1314 2005-03-19 Richard Sandiford <rsandifo@redhat.com>
1316 * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
1317 (TARGET_HANDLE_OPTION): Override default.
1318 (avr_handle_option): New function.
1319 * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
1320 (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
1321 (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
1322 (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
1323 (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
1324 (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
1325 (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
1326 (TARGET_OPTIONS): Delete.
1327 * config/avr/avr.opt: New file.
1329 2005-03-18 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1331 * config/m32r/m32r-protos.h: Remove the prototypes for
1332 call_address_operand, symbolic_operand, seth_add3_operand,
1333 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1334 reg_or_uint16_operand, reg_or_cmp_int16_operand,
1335 two_insn_const_operand, move_src_operand,
1336 move_double_src_operand, move_dest_operand,
1337 eqne_comparison_operator, signed_comparison_operator,
1338 large_insn_p, conditional_move_operand, carry_compare_operand,
1339 m32r_block_immediate_operand, extend_operand,
1340 reg_or_eq_int16_operand, int8_operand, and
1341 reg_or_zero_operand.
1342 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1343 seth_add3_operand, int8_operand, cmp_int16_operand,
1344 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1345 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1346 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1347 move_double_src_operand, move_dest_operand,
1348 eqne_comparison_operator, signed_comparison_operator,
1349 extend_operand, small_insn_p, large_insn_p,
1350 conditional_move_operand, carry_compare_operand,
1351 m32r_block_immediate_operand): Move to predicates.md.
1352 (MAX_MOVE_BYTES): Move to m32r.h.
1353 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1354 * config/m32r/m32r.md: Include predicates.md.
1355 * config/m32r/predicates.md: New.
1357 2005-03-18 James E Wilson <wilson@specifixinc.com>
1360 * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
1363 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1365 * config/mn10300/mn10300-protos.h: Remove the prototypes for
1366 call_address_operand, const_8bit_operand.
1367 * config/mn10300/mn10300.c (call_address_operand,
1368 const_8bit_operand, const_1f_operand): Move to predicates.md.
1369 * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
1370 * config/mn10300/mn10300.md: Include predicates.md.
1371 * config/mn10300/predicates.md: New.
1373 2005-03-18 Joseph S. Myers <joseph@codesourcery.com>
1375 * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
1376 declarations in diagnostics and %E for identifiers, not %s.
1378 2005-03-18 Jan Hubicka <jh@suse.cz>
1379 Dale Johannesen <dalej@apple.com>
1381 * basic-block.h (scale_bbs_frequencies_int,
1382 scale_bbs_frequencies_gcov_type): Declare.
1383 * cfg.c (RDIV): New macro.
1384 (update_bb_frequency_for_threading): Fix.
1385 * basic-block.h (scale_bbs_frequencies_int,
1386 scale_bbs_frequencies_gcov_type): New.
1387 * cfgloopmanip.c (scale_bbs_frequencies): Kill.
1388 (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
1389 scale_bbs_frequencies_int.
1390 * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
1392 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1394 * config/m32r/m32r-protos.h: Remove the prototypes for
1395 call_address_operand, symbolic_operand, seth_add3_operand,
1396 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1397 reg_or_uint16_operand, reg_or_cmp_int16_operand,
1398 two_insn_const_operand, move_src_operand,
1399 move_double_src_operand, move_dest_operand,
1400 eqne_comparison_operator, signed_comparison_operator,
1401 large_insn_p, conditional_move_operand, carry_compare_operand,
1402 m32r_block_immediate_operand, extend_operand,
1403 reg_or_eq_int16_operand, int8_operand, and
1404 reg_or_zero_operand.
1405 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1406 seth_add3_operand, int8_operand, cmp_int16_operand,
1407 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1408 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1409 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1410 move_double_src_operand, move_dest_operand,
1411 eqne_comparison_operator, signed_comparison_operator,
1412 extend_operand, small_insn_p, large_insn_p,
1413 conditional_move_operand, carry_compare_operand,
1414 m32r_block_immediate_operand): Move to predicates.md.
1415 (MAX_MOVE_BYTES): Move to m32r.h.
1416 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1417 * config/m32r/m32r.md: Include predicates.md.
1418 * config/m32r/predicates.md: New.
1420 * config/pa/pa-protos.h: Add prototypes for magic_milli and
1422 * config/pa/pa.c (reg_or_0_operand, call_operand_address,
1423 symbolic_operand, symbolic_memory_operand,
1424 reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
1425 indexed_memory_operand, move_dest_operand, move_src_operand,
1426 prefetch_cc_operand, prefetch_nocc_operand,
1427 reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
1428 arith_operand, arith11_operand, pre_cint_operand,
1429 post_cint_operan, arith_double_operand, ireg_or_int5_operand,
1430 ireg_operand, int5_operand, uint5_operand, int11_operand,
1431 uint32_operand, arith5_operand, and_operand, ior_operand,
1432 lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
1433 pc_or_label_operand, div_operand, plus_xor_ior_operator,
1434 shadd_operand, movb_comparison_operator,
1435 cmpib_comparison_operator): Move to predicates.md.
1436 (magic_milli, shadd_constant_p): Make it extern.
1437 * config/pa/pa.h (PREDICATE_CODES): Remove.
1438 * config/pa/pa.md: Include predicates.md.
1439 * config/pa/predicates.md: New.
1441 * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
1444 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1446 * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
1447 config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
1448 config/alpha/freebsd.h, config/alpha/linux.h,
1449 config/alpha/netbsd.h, config/alpha/osf5.h,
1450 config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
1451 config/h8300/h8300-protos.h, config/h8300/h8300.c,
1452 config/h8300/h8300.h, config/ia64/unwind-ia64.c,
1453 doc/cppopts.texi: Update copyright.
1455 2005-03-18 Jan Hubicka <jh@suse.cz>
1458 * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
1460 * varasm.c (find_decl_and_mark_needed): Mark needed only when not
1463 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1465 * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
1468 2005-03-18 Paolo Bonzini <bonzini@gnu.org>
1470 * combine.c (gen_binary): Remove.
1471 (known_cond, simplify_shift_const, find_split_point,
1472 combine_simplify_rtx, simplify_if_then_else, simplify_set,
1473 simplify_logical, expand_field_assignment, extract_left_shift,
1474 force_to_mode, if_then_else_cond, apply_distributive_law,
1475 simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
1476 simplify_comparison, reversed_comparison): Replace with
1477 simplify_gen_binary, simplify_gen_relational or
1478 distribute_and_simplify_rtx.
1479 (distribute_and_simplify_rtx): New function.
1481 2005-03-18 Alexey Neyman <alex.neyman@auriga.ru>
1482 Paolo Bonzini <gcc.gnu.org>
1484 * calls.c (setjmp_call_p, special_function_p): Update comments
1485 at the head of the functions.
1487 2005-03-18 Jan Hubicka <jh@suse.cz>
1489 * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
1491 * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
1492 function body should be released; do not proactively release function
1493 bodies in non-unit-at-a-time mode.
1495 2005-03-18 Ralf Corsepius <ralf.corsepius@rtems.org>
1497 * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
1498 mno-fp-ret-in-387 multilib variants.
1500 2005-03-18 Richard Sandiford <rsandifo@redhat.com>
1502 * common.opt (m): Remove.
1503 * opts.c (handle_option): Pass 'm' options to set_target_switch if
1505 (common_handle_option): Remove OPT_m case.
1507 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1509 * builtins.c (fold_builtin_bitop): Take decomposed arguments
1511 (fold_builtin_1): Update a call to fold_builtin_bitop.
1513 * builtins.c (fold_builtin_signbit): Take decomposed arguments
1515 (fold_builtin_1): Update a call to fold_builtin_signbit.
1517 2005-03-17 Dorit Naishlos <dorit@il.ibm.com>
1519 PR tree-optimization/20474
1520 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
1521 size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
1523 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
1525 * config/h8300/h8300-protos.h: Remove prototypes for
1526 general_operand_src, general_operand_dst, single_one_operand,
1527 single_zero_operand, call_insn_operand,
1528 two_insn_adds_subs_operand, small_call_insn_operand,
1529 jump_address_operand, bit_operand, bit_memory_operand,
1530 stack_pointer_operand, const_int_gt_2_operand,
1531 const_int_ge_8_operand, const_int_qi_operand,
1532 const_int_hi_operand, incdec_operand, bit_operator,
1533 nshift_operator, eqne_operator, gtle_operator,
1534 gtuleu_operator, iorxor_operator.
1535 Add prototypes for h8sx_shift_type h8sx_classify_shift and
1536 h8300_ldm_stm_parallel.
1537 * config/h8300/h8300.c (h8sx_shift_type,): Move to
1539 (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
1540 SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
1541 (h8300_ldm_stm_parallel): Make it extern.
1542 (h8300_ldm_parallel, h8300_stm_parallel,
1543 h8300_return_parallel, general_operand_src,
1544 general_operand_dst, h8300_dst_operand, h8300_src_operand,
1545 nibble_operand, reg_or_nibble_operand, single_one_operand,
1546 single_zero_operand, call_insn_operand,
1547 two_insn_adds_subs_operand, small_call_insn_operand,
1548 jump_address_operand, bit_operand, bit_memory_operand,
1549 stack_pointer_operand, const_int_gt_2_operand,
1550 const_int_ge_8_operand, const_int_qi_operand,
1551 const_int_hi_operand, incdec_operand, eqne_operator,
1552 gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
1553 h8sx_binary_memory_operator, h8sx_unary_memory_operator,
1554 h8sx_unary_shift_operator, h8sx_binary_shift_operator,
1555 nshift_operator): Move to predicates.md.
1556 * config/h8300/h8300.h (PREDICATE_CODES): Remove.
1557 * config/h8300/h8300.md: Include predicates.md.
1558 * config/h8300/predicates.md: New.
1560 2005-03-17 Richard Henderson <rth@redhat.com>
1562 * config.gcc (ia64*-*-hpux*): Add extra_options.
1563 * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
1564 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1565 * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
1566 (ia64_tls_size_string, ia64_tune_string): Remove.
1567 (ia64_tune): Init to PROCESSOR_ITANIUM2.
1568 (TARGET_DEFAULT_TARGET_FLAGS): New.
1569 (TARGET_HANDLE_OPTION): New.
1570 (ia64_override_options): Move options parsing ...
1571 (ia64_handle_option): ... here. New.
1572 * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
1573 MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
1574 MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
1575 MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
1576 MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
1577 MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
1578 MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
1579 TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
1580 TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
1581 TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
1582 TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
1583 TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
1584 TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
1585 TARGET_EARLY_STOP_BITS): Remove.
1586 (TARGET_ILP32): Default false.
1587 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
1588 (enum ia64_inline_type): New.
1589 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1590 * config/ia64/ia64.md: Update for new definitions of
1591 TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
1592 * config/ia64/ia64.opt: New file.
1593 * config/ia64/ilp32.opt: New file.
1595 2005-03-17 H.J. Lu <hongjiu.lu@intel.com>
1598 * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
1600 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
1602 * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
1603 instead of MASK_H8300S.
1604 * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
1605 MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
1606 MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
1607 MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
1608 TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
1609 TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
1610 TARGET_SWITCHES): Remove.
1611 (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
1613 * config/h8300/h8300.opt: New.
1615 * config/alpha/alpha.opt, config/arc/arc.opt,
1616 config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
1619 2005-03-17 Ian Lance Taylor <ian@airs.com>
1623 2005-03-17 Richard Sandiford <rsandifo@redhat.com>
1625 * config/arc/arc.c (arc_cpu_string): Make static. Default to "base"
1626 (arc_text_string, arc_data_string, arc_rodata_string): Make static.
1627 (TARGET_HANDLE_OPTION): Override default.
1628 (arc_handle_option): New function.
1629 (arc_init): Remove code to set arch_cpu_string.
1630 * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
1631 (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
1632 (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
1633 (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
1634 (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
1635 (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
1636 (arc_rodata_string, TARGET_OPTIONS): Delete.
1637 * config/arc/arc.opt: New file.
1639 2005-03-17 Richard Henderson <rth@redhat.com>
1641 * doc/extend.texi (Weak Pragmas): New section.
1642 (attribute alias): Clarify that target must be in the same
1645 2005-03-17 Richard Henderson <rth@redhat.com>
1647 * config/alpha/alpha.opt: New file.
1648 * config/alpha/alpha.c (alpha_tune): New. Rename all existing uses
1650 (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
1651 alpha_fprm_string, alpha_fptm_string): Make static.
1652 (alpha_tls_size_string): Remove.
1653 (alpha_handle_option): New.
1654 (override_options): Update for alpha_cpu/alpha_tune split.
1655 (alpha_file_start): Likewise.
1656 (TARGET_DEFAULT_TARGET_FLAGS): New.
1657 (TARGET_HANDLE_OPTION): New.
1658 * config/alpha/alpha.h (alpha_tune): Declare.
1659 (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
1660 MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
1661 MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
1662 TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
1663 TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
1664 TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
1665 MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
1666 MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
1667 TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
1668 TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
1669 (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
1670 (TARGET_DEFAULT): Remove MASK_FP.
1671 (TARGET_FP): Redefined based on TARGET_SOFT_FP.
1672 (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
1673 (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
1674 alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
1675 alpha_tls_size_string): Remove.
1676 * config/alpha/alpha.md (prefetch): Use alpha_cpu.
1677 (attribute tune): Rename from attribute cpu.
1678 * config/alpha/ev4.md: Update to match.
1679 * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
1680 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
1681 * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
1682 * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
1683 * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
1684 * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
1686 2005-03-16 James E. Wilson <wilson@specifixinc.com>
1688 * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
1689 and return without creating new state if before_nops_num is nonzero.
1690 * config/ia64/ia64.md (first_insn): New attribute.
1691 (alloc): Set it to yes.
1693 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1695 * tree-vectorizer.c (new_vec_stmt_info): Initialize
1696 STMT_VINFO_SUBVARS to NULL.
1697 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
1699 2005-03-16 Dale Johannesen <dalej@apple.com>
1701 * rtlanal.c (find_first_parameter_load): Rewrite to
1702 return actual first param load or the call if none,
1703 instead of first in block, when not all loads exist.
1705 2005-03-16 Roger Sayle <roger@eyesopen.com>
1707 * optabs.c (expand_copysign_absneg): Make static.
1708 * optabs.h (expand_copysign_absneg): Delete prototype.
1709 * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
1711 2005-03-16 Richard Henderson <rth@redhat.com>
1714 * varasm.c (struct alias_pair): Rename from struct output_def_pair.
1715 (alias_pairs): Rename from output_defs.
1716 (find_decl_and_mark_needed): Split out from assemble_alias.
1717 (do_assemble_alias): New.
1718 (assemble_output_def): Remove.
1719 (finish_aliases_1, finish_aliases_2): New.
1720 (process_pending_assemble_output_defs): Remove.
1721 (assemble_alias): Defer aliases for which we don't yet have a
1722 non-external decl for the target symbol.
1723 * passes.c (rest_of_decl_compilation): Register variables with cgraph.
1724 * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
1725 * toplev.c (compile_file): Use finish_aliases_2 instead of
1726 process_pending_assemble_output_defs.
1727 * tree.h (finish_aliases_1, finish_aliases_2): Declare.
1728 (process_pending_assemble_output_defs): Remove.
1730 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1732 Fix PR tree-optimization/20489
1734 * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
1735 for empty structures.
1737 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1739 Fix PR tree-optimization/20490
1741 * tree-ssa-pre.c (create_expression_by_pieces): Use
1742 force_gimple_operand on result of fold.
1744 2005-03-16 Andrew Pinski <pinskia@physics.uc.edu>
1746 * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
1747 of closing parenthesis.
1749 2005-03-16 Kazu Hirata <kazu@cs.umass.edu>
1751 * builtins.c (expand_movstr): Update a call to
1752 fold_builtin_strcpy.
1753 (expand_builtin_strncpy): Update a call to
1754 fold_builtin_strncpy.
1755 (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
1756 arguments of CALL_EXPR.
1757 (fold_builtin_1): Update calls to fold_builtin_strcpy and
1758 fold_builtin_strncpy.
1759 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1760 * tree.h: Update the prototypes of fold_builtin_strcpy and
1761 fold_builtin_strncpy.
1763 2005-03-16 Steven Bosscher <stevenb@suse.de>
1764 Dorit Naishlos <dorit@il.ibm.com>
1766 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
1767 UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
1770 2005-03-16 Steven Bosscher <stevenb@suse.de>
1772 * tree-inline.c (walk_type_fields, walk_tree,
1773 walk_tree_without_duplicates): Move from here...
1774 * tree.c: ...to here.
1776 2005-03-15 Zack Weinberg <zack@codesourcery.com>
1778 * BASE-VER, DATESTAMP, DEV-PHASE: New files.
1779 * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
1780 (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1781 (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
1782 (version): Define using $(BASEVER_c).
1783 (Makefile, config.status, build/gcov-iov.o): No longer depends on
1785 (version.o): Depend on version files; add custom generation command.
1786 (prefix.o): Define BASEVER on command line.
1787 (s-iov): Depend on version files; adjust command.
1788 (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
1790 (gcc-vers.texi): New rule.
1791 (doc/%.info, doc/%.dvi): Add -I . to command line.
1792 (doc/gccinstall.dvi): Likewise.
1793 (PACKAGE): Delete. All uses replaced with "gcc".
1794 * aclocal.m4: Do not include gcc-version.m4.
1795 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1796 Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
1797 Set is_release based on contents of DEV-PHASE.
1798 Set gcc_version based on contents of BASE-VER.
1799 Define WIN32_REGISTRY_KEY only if the user overrode the default.
1800 * config.in, configure: Regenerate.
1801 * gccbug.in: Determine version of GCC in use at runtime.
1802 * gcov-iov.c: Get version number and development phase from
1803 command line, not by including version.c.
1804 * intl.c: Replace all uses of PACKAGE with "gcc".
1805 * libada-mk.in: Delete unused "gcc_version" variable.
1806 * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
1807 * version.c: (VERSUFFIX): New hook for redistributors; adjust
1808 commentary to match.
1809 (version_string): Put together from pieces.
1810 * config/alpha/x-vms: Do not use $(gcc_version).
1811 * config/i386/t-nwld: Likewise.
1812 * doc/include/gcc-common.texi: Include gcc-vers.texi for
1813 version-GCC and DEVELOPMENT.
1815 2005-03-15 Roger Sayle <roger@eyesopen.com>
1817 PR tree-optimization/17454
1818 * tree.c (tree_size): Add case for TREE_BINFO.
1819 * fold-const.c (fold_checksum_tree): Only clear the overloaded
1820 field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
1822 2005-03-15 Roger Sayle <roger@eyesopen.com>
1824 * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
1825 op1 whilst expanding the signed widenening multiply variant.
1827 2005-03-15 Richard Sandiford <rsandifo@redhat.com>
1829 * toplev.c (display_target_options): Avoid unused variable warning if
1830 TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
1831 * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
1832 (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
1833 (mips_isa): Initialize to MIPS_ABI_DEFAULT.
1834 (mips_isa_info): New variable.
1835 (mips_parse_cpu): Remove the first argument and leave the caller
1837 (TARGET_HANDLE_OPTION): Override default.
1838 (mips_handle_option): New function. Move option validation code from...
1839 (override_options): ...here. Update calls to mips_parse_cpu.
1840 * config/mips/mips.h (mips_arch_string, mips_tune_string)
1841 (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
1842 (SUBTARGET_TARGET_OPTIONS): Delete.
1843 * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
1844 (mno-flush-func, mtune=): New options.
1846 2005-03-15 Roger Sayle <roger@eyesopen.com>
1847 Richard Henderson <rth@redhat.com>
1849 * real.c (c4x_single_format, c4x_extended_format): Provide values
1850 for signbit_ro for c4x's single and extended floating point formats.
1851 * optabs.c (expand_copysign): Use the floating point format's
1852 signbit_ro for expanding via expand_copysign_absneg, and it's
1853 signbit_rw field for expanding via expand_copysign_bit.
1855 2005-03-15 Dorit Naishlos <dorit@il.ibm.com>
1857 * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
1858 known_alignment_for_access_p.
1859 (known_alignment_for_access_p): New.
1860 (do_peeling_for_alignment): Field made int instead of bool and renamed
1861 to peeling_for_alignment.
1862 (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
1863 * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
1864 functionality used to be in vect_analyze_operations.
1865 (vect_analyze_operations): Code to determine vectorization factor was
1866 moved to vect_determine_vectorization_factor.
1867 (vect_enhance_data_refs_alignment): Update to correct alignment when it
1868 is known instead of -1. Set LOOP_PEELING_FOR_ALIGNMENT to peeling
1870 (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
1871 be part of vect_analyze_operations).
1872 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
1873 creating the guard condition, as the number of iterations may be
1875 (slpeel_tree_peel_loop_to_edge): Use new name of
1876 LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
1877 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
1878 alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
1879 (vect_do_peeling_for_alignment): Use fold.
1880 (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
1882 (vect_update_inits_of_dr): Renamed to
1883 vect_update_init_of_dr.
1884 (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
1885 (vectorizable_store): Fix assertion to use == instead of =.
1887 2005-03-15 Daniel Jacobowitz <dan@codesourcery.com>
1889 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
1890 call_used_regs for wCG registers.
1892 2005-03-15 Ulrich Weigand <uweigand@de.ibm.com>
1894 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
1895 for non-offsettable memory references to cope with outstanding reload
1896 replacements, take 2.
1898 2005-03-15 Uros Bizjak <uros@kss-loka.si>
1901 * config/i386/i386.h (x86_fisttp): New.
1902 (TARGET_FISTTP): New macro.
1903 * config/i386/i386.c (x86_fisttp): Set for NOCONA.
1904 (output_fix_trunc): Add fisttp parameter. Generate fisttp x87
1905 instruction when fisttp flag is set.
1906 * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
1908 * config/i386/i386.md (type attribute): Add fisttp.
1909 (unit attribute): Set to i387 for fisttp type.
1910 (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
1911 (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
1913 (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
1914 Generate fisttp patterns for TARGET_FISTTP. Implement using mode
1916 (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
1917 patterns for TARGET_FISTTP. Enable patterns for
1918 (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
1919 (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
1920 fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
1921 implement fisttp x87 insn.
1922 (fix_trunc*_i387_fisttp splitters): New patterns.
1923 (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
1924 Rename to *fix_trunc<mode>_i387_1. Implement using mode macros.
1925 Disable patterns for TARGET_FISTTP. Add comment about FLAGS_REG
1927 (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
1928 Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
1929 Implement using mode macros. Disable patterns for TARGET_FISTTP.
1930 (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
1931 fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
1932 fix_trunc<mode>_i387_with_temp. Implement using mode macros.
1933 Disable patterns for TARGET_FISTTP.
1934 (fix_trunc*_i387 splitters): Implement usign mode macros.
1935 (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
1936 fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
1937 (fix_trunx*_sse peephole2s): Implement using mode macros.
1939 2005-03-15 J"orn Rennecke <joern.rennecke@st.com>
1941 PR rtl-optimization/20291
1942 * combine.c (try_combine): If splitting fails, re-try with
1943 original combined pattern, i.e. before clobber stripping.
1945 2005-03-14 Eric Christopher <echristo@redhat.com>
1947 * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
1948 STACK_GROWS_DOWNWARD.
1950 2005-03-14 Roger Sayle <roger@eyesopen.com>
1952 * real.h (struct real_format): Split the signbit field into two
1953 two fields, signbit_ro and signbit_rw.
1954 * real.c (ieee_single_format, mips_single_format, ieee_double_format,
1955 mips_double_format, ieee_extended_motorola_format,
1956 ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
1957 ieee_extended_intel_128_format, ibm_extended_format,
1958 mips_extended_format, ieee_quad_format, mips_quad_format,
1959 vax_f_format, vax_d_format, vax_g_format, i370_single_format,
1960 i370_double_format, c4x_single_format, c4x_extended_format,
1961 real_internal_format): Update initializers for new field.
1962 * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
1963 real_format structure.
1964 * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
1965 field of the real_format structure.
1967 2005-03-14 Daniel Berlin <dberlin@dberlin.org>
1969 Fix PR tree-optimization/20458
1971 * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
1972 DECL_EXTERNAL on STRUCT_FIELD tags.
1973 (clear_call_clobbered): Ditto.
1974 * tree-ssa-operands.c (note_addressable): Make sure the original
1975 variable doesn't slip into the addressable list if we have
1977 * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
1980 2005-03-14 Geoffrey Keating <geoffk@apple.com>
1982 * doc/cppopts.texi (-fexec-charset): Add concept index entry.
1983 (-fwide-exec-charset): Likewise.
1984 (-finput-charset): Likewise.
1985 * doc/invoke.texi (Warning Options): Document -Wnormalized=.
1986 * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
1987 * c.opt (Wnormalized): New.
1989 2005-03-14 Devang Patel <dpatel@apple.com>
1991 * doc/invoke.texi: Add reference to Visibility document.
1993 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1995 * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
1996 MASK_SPLIT_ADDRESSES.
1997 * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
1998 (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
1999 (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
2000 (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
2001 (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
2002 (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
2003 (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
2004 (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
2005 (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
2006 (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
2007 (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
2008 (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
2009 (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
2010 (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
2011 (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
2012 (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
2013 (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
2014 (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
2015 (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
2016 (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
2017 (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
2018 (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
2019 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
2020 (TARGET_EXPLICIT_RELOCS): Delete.
2021 (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
2022 (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
2023 * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
2024 (override_options): Set MASK_LONG64 if -mint64 is given and no
2025 -mlongXX option is. Complain about -mint64 -mlong32.
2026 (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
2027 MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
2028 * config/mips/mips.opt: New file.
2030 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
2032 * config.gcc (extra_options): New variable for listing option files.
2033 Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
2034 * configure.ac (extra_opt_files): New AC_SUBST variable.
2035 (tm_file_list, tm_include_list): Include options.h first.
2036 * configure: Regenerate.
2037 * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
2038 (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
2039 (s-options-h): New rule.
2040 (options.h): Depend on it.
2041 (TEXI_GCCINT_FILES): Add options.texi.
2042 * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
2043 * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
2044 * target.h (gcc_target): Add default_target_flags and handle_option.
2045 * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
2046 (TARGET_HANDLE_OPTION): New macros.
2047 (TARGET_INITIALIZER): Include them.
2048 * opt-functions.awk (opt_args, nth_arg): New functions.
2049 (switch_flags): Handle the "Target" flag.
2051 (var_name): Use opt_args and nth_arg.
2052 (var_set, var_ref): Likewise. Handle "Mask" and "InverseMask".
2053 * opth-gen.awk: Declare target_flags. Declare MASK_* and TARGET_*
2054 macros for the "Mask" and "InverseMask" options.
2055 * opts.h (cl_var_cond): New enum.
2056 (cl_option): Replace the "has_set_value" and "set_value" fields with
2057 "var_cond" and "var_value".
2058 (CL_TARGET): New macro.
2059 (option_enabled, print_filtered_help): Declare.
2060 (decode_options): Move definition.
2061 * opts.c (handle_option): Search for the original option before
2062 removing any "no-" prefix. Handle CL_TARGET. Adjust for the new
2063 var_cond and var_value fields. Use targetm.handle_option to handle
2065 (decode_options): Set target_flags to targetm.default_target_flags.
2066 (print_filtered_help): Make global. Handle CL_TARGET.
2067 (option_enabled): New function.
2068 * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
2069 (display_target_options, set_target_switch, print_switch_values)
2070 (default_pch_valid_p): Guard uses of target_switches with
2071 #ifdef TARGET_SWITCHES. Also...
2072 (display_target_options): Display the CL_TARGET entries in cl_options.
2073 (set_target_option): Don't complain about the "" option when
2074 TARGET_SWITCHES is undefined.
2075 (print_switch_values): Use option_enabled.
2076 (default_pch_valid_p): Check cl_options[] when looking for something
2077 that has changed the value of target_flags.
2078 * c.opt: Remove documentation from top of file.
2079 * doc/gccint.texi: Add an "Options" chapter. Include options.texi.
2080 * doc/sourecebuild.texi: Refer to the new options documentation
2081 instead of c.opt. Document machine-specific .opt files.
2082 * doc/tm.texi (target_flags): Say that this variable is declared
2084 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
2085 (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
2087 * doc/options.texi: New file.
2089 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
2092 * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
2095 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
2098 * gimplify.c (gimplify_cond_expr): Add fallback argument. Use a
2099 temporary variable of pointer type if an lvalues is required.
2100 (gimplify_modify_expr_rhs): Request an rvalue from it.
2101 (gimplify_expr): Pass fallback on.
2103 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
2105 * cfgbuild.c: Update comments.
2107 2005-03-14 Roger Sayle <roger@eyesopen.com>
2109 PR rtl-optimization/17236
2110 * optabs.c (expand_doubleword_mult): New helper function split out
2111 from expand_binop. Permute the order in which instructions are
2112 emitted to minimize the number of simultaneously live registers.
2113 (expand_binop): Call expand_doubleword_mult to synthesize a double
2114 word multiplication.
2116 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
2118 * basic-block.h: Update the prototypes of cached_make_edge and
2120 * cfg.c (cached_make_edge): Take edge_cache representing one
2121 row of the adjacency matrix of edges.
2122 * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
2123 (make_edges): Initialize edge_cache to represent one row of
2124 the adjacency matrix of edges.
2126 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
2128 * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
2130 (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
2131 Remove unused removed_phis variable.
2132 (conditional_replacement): Use build1/build2.
2133 (abs_replacement): Use last_and_only_stmt and build1/build2.
2135 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
2137 * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
2138 ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
2139 * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
2140 (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
2141 * c-common.c (handle_novops_attribute): New function.
2142 (c_common_attribute_table): Add "no vops" entry.
2143 * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
2144 * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
2145 * tree-ssa-operands.c (get_call_expr_operands): Do not
2146 create virtual operands for calls with ECF_NOVOPS flag.
2147 * tree.h (DECL_IS_NOVOPS): New macro.
2148 (struct tree_decl): Add novops_flag.
2149 (ECF_NOVOPS): New constant.
2151 2005-03-14 Uros Bizjak <uros@kss-loka.si>
2154 * config/i386/i386.c (x86_use_himode_fiop): New.
2155 (x86_use_simode_fiop): Rename from x86_use_fiop.
2156 * config/i386/i386.h (x86_use_himode_fiop): Declare.
2157 (TARGET_USE_HIMODE_FIOP): New.
2158 (x86_use_simode_fiop): Rename from x86_use_fiop.
2159 (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
2161 * config/i386/i386.md (X87MODEI12): New mode macro define.
2162 (*cmpfp_<mode>): Rename from *cmpfp_si. Use X87MODEI12 mode macro
2163 to implement x87 FP compare with HImode input operands.
2164 (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
2165 Use X87MODEI12 mode macro to handle HImode input operands.
2166 (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
2167 *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
2168 Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
2169 *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
2170 macro to implement x87 operators with HImode input operands.
2171 (fop splitters): Use X87MODEI12 mode macro to handle HImode
2174 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
2176 * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
2178 * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
2179 constants invariant.
2181 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
2183 * basic-block.h (BB_VISITED): Removed.
2184 * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
2186 2005-03-14 Falk Hueffner <falk@debian.org>
2189 * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
2191 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
2193 * ggc-zone.c: Fix comment typos.
2195 * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
2196 stringpool.c, config/mips/mips-protos.h: Update copyright.
2198 2005-03-14 Alan Modra <amodra@bigpond.net.au>
2200 * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
2201 throughout with its typedef, "rtx".
2202 * config/rs6000/rs6000.c: Likewise. Formatting fixes.
2203 (rs6000_tls_symbol_ref_1): Remove inline keyword.
2204 * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting. Reorder
2205 regs in comment to match code.
2207 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
2209 * except.c (check_handled): Make it static.
2210 * except.h: Remove the corresponding prototype.
2212 * function.c (get_func_frame_size): Make it static.
2213 * function.h: Remove the corresponding type.
2215 * regclass.c (reg_class_superclasses, reg_class_subclasses):
2217 * hard-reg-set.h: Remove the corresponding declarations.
2219 * tree-cfg.c (verify_stmts): Check that
2220 bb_for_stmt (stmt) == bb for every PHI node and statement.
2222 2005-03-14 Alan Modra <amodra@bigpond.net.au>
2224 * config.gcc: Remove excess indentation.
2225 (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
2227 2005-03-13 Roger Sayle <roger@eyesopen.com>
2230 * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
2231 * fold-const.c (fold_sign_changed_comparison): Likewise.
2232 (fold_binary): Optimize comparisons against widened operands if
2233 the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
2235 2005-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2237 * config/sparc/sparc.c (struct_value_alias_set): New global variable.
2238 (sparc_override_options): Initialize it.
2239 (sparc_struct_value_rtx): Set it on the MEM to be returned.
2241 2005-03-13 David Edelsohn <edelsohn@gnu.org>
2243 * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
2244 (reg_or_none500mem_operand): New predicate.
2245 (zero_reg_mem_operand): New predicate.
2246 * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
2247 to reg_or_none500mem_operand.
2248 (extendsfdf2_fpr): Add MEM alternative.
2249 (extenddftf2_internal): Change operand2 predicate to
2250 zero_reg_mem_operand.
2252 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2254 * ggc-zone.c: Rewritten.
2256 * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
2258 * configure.ac: Define GGC_ZONE for --with-gc=zone.
2259 * config.in: Regenerated.
2260 * configure: Regenerated.
2261 * gengtype.c (write_types_process_field, write_func_for_structure):
2262 Pass new argument to gt_pch_note_object.
2263 * ggc-common.c (struct ptr_data): Add TYPE.
2264 (gt_pch_note_object): Take TYPE argument and save it.
2265 (call_count): Update call to ggc_pch_count_object.
2266 (call_alloc): Update call to ggc_pch_alloc_object.
2267 (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
2269 * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
2270 * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
2271 (ggc_alloc_zone_stat): Delete.
2272 (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
2273 * ggc.h (gt_pch_note_object, ggc_pch_count_object)
2274 (ggc_pch_alloc_object): Update prototypes.
2275 (garbage_zone): Delete.
2276 (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
2277 GGC_ZONE conditional. Update. Change tree_zone and rtl_zone into
2279 (tree_id_zone): New variable.
2280 (ggc_alloc_cleared_zone): Remove unused.
2281 (ggc_alloc_zone): Define.
2282 (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
2283 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
2284 ggc_alloc_zone_stat.
2285 * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
2286 * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
2287 (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
2288 (make_node_stat): Likewise. Use tree_id_zone.
2290 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2291 Joseph S. Myers <joseph@codesourcery.com>
2293 * configure.ac: Check for MIPS TLS.
2294 * configure: Regenerated.
2295 * config/mips/mips-protos.h (enum mips_symbol_type): Add
2296 SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
2297 SYMBOL_GOTTPREL, and SYMBOL_TPREL.
2298 * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
2299 (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
2300 (mips_classify_symbol, mips_symbolic_constant_p)
2301 (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
2302 (mips_tls_operand_p, mips_call_tls_get_addr)
2303 (mips_legitimize_tls_address, mips_cannot_force_const_mem)
2304 (mips_tls_symbol_ref_1): New functions.
2305 (mips_legitimize_address, mips_legitimize_const_move): Call
2306 mips_legitimize_tls_address.
2307 (override_options): Handle V1_REG and TLS symbols. Disable TLS
2309 * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
2310 (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
2311 (mips_char_to_class): Document V1_REG.
2312 (HAVE_AS_TLS): Provide default.
2313 * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
2315 (load_got<mode>): Renamed from *load_got<mode>. Allow when
2317 (tls_get_tp_<mode>): New instruction.
2319 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2321 * configure.ac: Update checks for target tools.
2322 * configure: Regenerated.
2324 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2326 * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
2328 2005-03-13 Roger Sayle <roger@eyesopen.com>
2330 * expmed.c (expand_mult): Use synthetic multiplication sequences for
2331 more classes of DImode multiplication by constant. Allow both
2332 multiplication by small negative constants (by performing a
2333 multiplication by a positive constant and negating the result) and
2334 multiplications by large powers of two, by using a left shift.
2336 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
2338 * tree-into-ssa.c (find_idf): Speed up by putting the indexes
2339 of basic blocks into work_stack.
2341 * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
2342 config/mips/vr.h: Update copyright.
2344 * c-decl.c (c_init_decl_processing): Remove useless calls to
2345 build_function_type.
2347 * builtins.c (fold_trunc_transparent_mathfn,
2348 fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
2349 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
2350 fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
2351 fold_builtin_strcpy, fold_builtin_strncpy,
2352 fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
2355 * builtins.c (expand_builtin_mathfn_3): Remove local variable
2358 * lambda-code.c (lambda_compute_auxillary_space): Remove local
2359 variable determinant.
2361 * tree-cfg.c (group_case_labels): Remove local variable type.
2363 * tree-ssa-live.c (build_tree_conflict_graph): Remove local
2366 * tree-ssa-phiopt.c (value_replacement): Remove local variable
2369 2005-03-13 Andy Hutchinson <HutchinsonAndy@netscape.net>
2372 * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
2373 (*movmemqi_insn): Delete.
2374 (*movmemhi): Delete.
2376 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
2378 * builtins.c (fold_builtin_classify): Take decomposed
2379 arguments of CALL_EXPR.
2380 (fold_builtin_1): Update a call to fold_builtin_classify.
2382 2005-03-13 Joseph S. Myers <joseph@codesourcery.com>
2385 * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
2386 through into call to parser_xref_tag after parse error.
2387 (c_parser_struct_declaration): Consistently return NULL_TREE on
2390 2005-03-12 Daniel Berlin <dberlin@dberlin.org>
2392 * tree-flow-inline.h (ref_contains_array_ref): New function.
2393 (lookup_subvars_for_var): Ditto.
2394 (get_subvars_for_var): Ditto.
2395 (var_can_have_subvars): Ditto.
2397 * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
2398 (struct subvar): New type.
2400 * tree-dfa.c (okay_component_ref_for_subvars): New function.
2402 * tree-optimize.c (init_tree_optimization_passes): Call
2403 pass_create_structure_vars.
2405 * tree-ssa-alias.c: Include vec.h.
2406 (init_alias_info): Don't auto-clear call clobbered on struct-field
2408 (compute_flow_insensitive_aliasing): Handle subvars.
2409 (group_aliases): Handle STRUCT_FIELD aliases.
2410 (setup_pointers_and_addressables): Ditto.
2411 Don't mark variables non-addressable if they still have
2412 addressable subvars.
2413 Also mark subvars addressable when the real variable is marked
2415 (add_pointed_to_var): Try to prune the pointed-to set by only
2416 pointing to subvars when possible.
2417 Otherwise, make sure we set addresses_needed and pt_vars to
2418 properly include subvars.
2419 (bitpos_of_field): New function.
2420 (push_fields_onto_fieldstack): Ditto.
2421 (get_or_create_used_part_for): Ditto.
2422 (create_overlap_variables_for): Ditto.
2423 (find_used_portions): Ditto.
2424 (create_structure_vars): Ditto.
2425 (pass_create_structure_vars): New structure.
2427 * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
2428 (get_expr_operands): Handle subvars. Also try to turn
2429 COMPONENT_REF accesses into must-defs now that we can accurately
2431 (note_addressable): Try to only mark as addressable those subvars
2432 we know a COMPONENT_REF touches.
2433 (overlap_subvar): New function.
2435 * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
2436 Handle subvar storing.
2437 (vect_address_analysis): Update caller of vect_object_analysis.
2439 * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
2441 * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
2442 (STMT_VINFO_SUBVARS): New macro.
2444 * common.opts: add flag_tree_salias.
2446 * opts.c (decode_options): flag_tree_salias defaults to on.
2448 * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
2450 * doc/tree-ssa.texi: Document structural alias analysis.
2452 2005-03-12 Steven Bosscher <stevenb@suse.de>
2454 * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
2455 * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
2456 * tree-ssa-operands.c (get_expr_operands): Likewise.
2457 (get_expr_operands): Likewise for ERROR_MARK.
2459 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
2461 * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
2464 * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
2467 * tree-ssa-pre.c (compute_avail): Remove local variable val.
2468 (mark_operand_necessary): Remove local variable ver.
2470 * tree-vect-transform.c (vect_get_new_vect_var): Remove local
2471 variable prefix_len.
2473 * value-prof.c (mod_subtract_transform): Remove local variable
2476 * builtins.c (fold_builtin_exponent): Take decomposed
2477 arguments of CALL_EXPR.
2478 (fold_builtin_1): Update a call to fold_builtin_exponent.
2480 * builtins.c (fold_builtin_logarithm): Take decomposed
2481 arguments of CALL_EXPR.
2482 (fold_builtin_1): Update a call to fold_builtin_logarithm.
2484 * c-decl.c (c_init_decl_processing): Remove local variables
2485 ptr_ftype_void and ptr_ftype_ptr.
2487 * gimplify.c (gimplify_expr): Remove local variables r0 and
2490 * reg-stack.c (move_for_stack_reg): Remove local variable
2492 (compare_for_stack_reg): Remove local variable flags_user.
2493 (convert_regs_1): Remove local variable deleted.
2495 * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
2497 (combine_blocks): Remove local variables exits and new_e.
2499 * tree-inline.c (expand_call_inline): Remove local variable
2502 * tree-ssa-live.c (create_ssa_var_map,
2503 calculate_live_on_entry): Remove local variable snn.
2505 2005-03-12 Geoffrey Keating <geoffk@apple.com>
2507 * c-lex.c (c_lex_with_flags): Add parameter to call to
2510 2005-03-11 Per Bothner <per@bothner.com>
2512 * c-tree.h (struct c_declarator): New id_loc field.
2513 * c-pragma.h (c_lex_with_flags): Take position reference.
2514 * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
2515 iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
2516 (c_lex): Pass dummy location to c_lex_with_flags.
2517 * c-parser.c (c_lex_one_token): Set c_token's location using
2518 c_lex_with_flags, instead of input_location, which might be "ahead".
2519 (c_parser_direct_declarator): Set declarator's id_loc from
2521 * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
2522 declarator's id_loc, rather than probably-imprecise input_location.
2523 (build_id_declarator): Initialize c_declarator's id_loc field.
2525 2005-03-11 Roger Sayle <roger@eyesopen.com>
2528 * builtins.c (expand_builtin_signbit): Force the signbit's word
2529 into an integer register to avoid SUBREGs of floating point modes.
2531 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
2533 * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
2534 target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
2535 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
2536 config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
2538 2005-03-11 David Edelsohn <edelsohn@gnu.org>
2540 PR rtl-optimization/20306
2541 * expr.c (emit_move_complex): Set try_int false if mode is
2542 MODE_COMPLEX_FLOAT and mov_optab exists for inner mode. Only try
2543 emit_block_move if try_int is true.
2545 2005-03-11 Richard Henderson <rth@redhat.com>
2548 * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
2549 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
2552 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
2554 * config/mips/mips.h (mips_fix_vr4130_string): Declare.
2555 (TARGET_FIX_VR4130): New macro.
2556 (TARGET_OPTIONS): Add -mfix-vr4130.
2557 (ISA_HAS_MACCHI): New macro.
2558 (ASM_SPEC): Add -mfix-vr4130.
2559 * config/mips/mips.c (mips_fix_vr4130_string): New variable.
2560 (override_options): Handle mips_fix_vr4130_string.
2561 (mips_avoid_hazards): Clear all_noreorder_p
2562 if we're working around VR4130 errata and the macc alternatives
2564 * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
2565 (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
2566 * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
2567 (MULTILIB_DEFAULTS): Remove leading "march=".
2568 (DRIVER_SELF_SPECS): Likewise. Make -mfix-vr4130 imply -march=vr4130
2569 if no architecture option is given.
2570 * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
2572 (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
2573 * doc/invoke.texi: Document -mfix-vr4130.
2575 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
2577 * config/mips/mips.c (override_options): Only warn about -mint64
2578 deprecation if TARGET_INT64.
2580 2005-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2582 * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
2583 ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
2584 ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
2585 are non-specific regarding the nonnull parameter positions.
2586 (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
2587 ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
2588 ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
2589 ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
2591 * builtins.def: Use the non-specific "nonnull" attibute lists.
2593 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
2595 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2596 single_pred_edge, single_succ, single_pred): Improve comments.
2598 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
2600 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2601 single_pred_edge, single_succ, single_pred): New inline functions.
2602 * bb-reorder.c (rotate_loop, find_traces_1_round,
2603 add_labels_and_missing_jumps, fix_up_fall_thru_edges,
2604 duplicate_computed_gotos): Use the single_succ/pred functions.
2605 * cfganal.c (forwarder_block_p): Ditto.
2606 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
2607 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2608 outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
2609 merge_seq_blocks): Ditto.
2610 * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
2611 * cfglayout.c (fixup_reorder_chain): Ditto.
2612 * cfgloop.c (mark_single_exit_loops, update_latch_info,
2613 canonicalize_loop_headers, verify_loop_structure): Ditto.
2614 * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
2615 mfb_update_loops, create_preheader, force_single_succ_latches,
2616 create_loop_notes): Ditto.
2617 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
2618 force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
2619 commit_one_edge_insertion, purge_dead_edges,
2620 cfg_layout_can_merge_blocks_p): Ditto.
2621 * except.c (sjlj_emit_function_enter): Ditto.
2622 * flow.c (init_propagate_block_info): Ditto.
2623 * function.c (thread_prologue_and_epilogue_insns): Ditto.
2624 * gcse.c (find_implicit_sets, bypass_conditional_jumps,
2625 insert_insn_end_bb): Ditto.
2626 * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
2627 find_if_case_2): Ditto.
2628 * lambda-code.c (perfect_nestify): Ditto.
2629 * lcm.c (optimize_mode_switching): Ditto.
2630 * loop-doloop.c (doloop_modify): Ditto.
2631 * loop-init.c (loop_optimizer_init): Ditto.
2632 * loop-iv.c (simplify_using_initial_values): Ditto.
2633 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
2634 * loop-unswitch.c (unswitch_loop): Ditto.
2635 * modulo-sched.c (generate_prolog_epilog): Ditto.
2636 * predict.c (combine_predictions_for_insn, estimate_probability,
2637 tree_estimate_probability, last_basic_block_p,
2638 estimate_bb_frequencies): Ditto.
2639 * profile.c (branch_prob): Ditto.
2640 * regrename.c (copyprop_hardreg_forward): Ditto.
2641 * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
2642 * tracer.c (layout_superblocks): Ditto.
2643 * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
2644 cfg_remove_useless_stmts_bb, cleanup_control_flow,
2645 cleanup_control_expr_graph, disband_implicit_edges,
2646 tree_find_edge_insert_loc, bsi_commit_edge_inserts,
2647 tree_verify_flow_info, tree_make_forwarder_block,
2648 tree_forwarder_block_p, remove_forwarder_block,
2649 remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
2650 * tree-if-conv.c (tree_if_conversion): Ditto.
2651 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
2652 * tree-ssa-dce.c (remove_dead_stmt): Ditto.
2653 * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
2654 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
2655 copy_loop_headers): Ditto.
2656 * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
2657 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
2658 * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
2659 lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
2660 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
2661 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
2662 * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
2663 * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
2664 * tree-ssa-threadupdate.c (redirect_edges): Ditto.
2665 * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
2666 eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
2667 * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
2668 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2669 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
2670 slpeel_add_loop_guard): Ditto.
2672 2005-03-11 James A. Morrison <phython@gcc.gnu.org>
2674 PR tree-optimization/15784
2675 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2678 * stmt.c (expand_case): Don't change index_type. Convert minval
2681 PR tree-optimization/20130
2682 * fold-const.c (fold): Fold x * -1 into -x.
2684 2005-03-11 Kaz Kojima <kkojima@gcc.gnu.org>
2686 PR rtl-optimization/20331
2687 * rtlanal.c (modified_between_p): Check its address first for MEM.
2688 (modified_in_p): Likewise.
2690 2005-03-11 Joseph S. Myers <joseph@codesourcery.com>
2692 * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
2694 2005-03-10 Steven Bosscher <stevenb@suse.de>
2696 * expr.c (expand_expr_real_1): If possible, use a conditional
2697 move for expanding MIN_EXPR and MAX_EXPR.
2698 Use temp for moving around rtx-en.
2700 2005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
2703 * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
2706 2005-03-10 Roger Sayle <roger@eyesopen.com>
2708 * builtins.c (expand_builtin_signbit): Extend to handle floating
2709 point modes wider than the largest integer type, using the
2710 operand_subword_force function to obtain the signbit's word.
2712 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2715 * combine.c (try_combine): If recog_for_combine added CLOBBERs
2716 to NEWI2PAT, fail to combine if they are used by NEWPAT.
2718 2005-03-10 Aldy Hernandez <aldyh@redhat.com>
2720 * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
2722 2005-03-10 Kazu Hirata <kazu@cs.umass.edu>
2724 * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
2726 (perform_edge_inserts): Unconditionally call
2727 free_dominator_info.
2729 * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
2731 2005-03-10 Bob Wilson <bob.wilson@acm.org>
2733 * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
2735 2005-03-10 Nathan Sidwell <nathan@codesourcery.com>
2737 * bitmap.c (bitmap_copy): Remove manual loop unrolling.
2739 * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
2741 (rtl_register_value_prof_hooks,
2742 tree_value_profile_transformations,
2743 tree_register_value_prof_hooks): Likewise.
2744 * var-tracking.c (stack_adjust_offset_pre_post,
2745 variable_htab_free, variable_union, dataflow_set_different_2,
2746 count_uses, variable_was_changed, set_frame_base_location,
2747 set_variable_part, emit_note_insn_var_location, vt_emit_notes,
2748 vt_add_function_parameters): Likewise.
2749 * varasm.c (named_section_real, named_section, make_decl_rtl,
2750 asm_emit_uninitialised, assemble_integer, decode_addr_const,
2751 const_hash_1, compare_constant, copy_constant, force_const_mem,
2752 output_constant_pool_2, output_constant_pool_1, output_constant,
2753 output_constructor, make_decl_one_only, decl_tls_model,
2754 default_no_named_section, default_elf_select_section_1,
2755 default_unique_section_1): Likewise.
2756 * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
2757 * vmsdbgout.c (addr_const_to_string): Likewise.
2760 * function.c (struct assign_parm_data_one): Remove last_named
2762 (assign_parm_find_data_types): Don't determine last_named.
2763 Reorder named_parm determination.
2764 (assign_parms): Only setup varargs on the last non-varadic
2767 2005-03-10 Kazuhiro Inaoka <inaoka.lazuhiro@renesas.com>
2769 * config/m32r/m32r.md (load_sda_base_32): New pattern. Loads
2770 sda base address on medium model.
2772 2005-03-10 Zdenek Dvorak <dvorakz@suse.cz>
2774 * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
2775 * cfgloop.c (flow_loop_nodes_find): Export.
2776 * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
2778 * cfgloopmanip.c (fix_loop_structure): New function.
2779 * predict.c (predict_loops): Clean up the loops information.
2780 * tree-cfg.c (cleanup_tree_cfg_loop): New function.
2781 (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
2783 * tree-flow.h (cleanup_tree_cfg_loop): Declare.
2784 (rewrite_into_loop_closed_ssa): Declaration changed.
2785 * tree-loop-linear.c (linear_transform_loops): Add argument to
2786 rewrite_into_loop_closed_ssa call.
2787 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2788 * tree-ssa-loop-im.c (move_computations): Ditto.
2789 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
2790 * tree-vectorizer.c (vectorize_loops): Ditto.
2791 * tree-optimize.c: Include cfgloop.h.
2792 (execute_todo): Choose whether to call cleanup_tree_cfg or
2793 cleanup_tree_cfg_loop.
2794 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
2795 (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
2796 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
2797 cleanup_tree_cfg_loop call.
2798 * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
2799 (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
2800 work on part of cfg.
2802 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2805 * gimplify.c (gimplify_asm_expr): Handle input/output constraints
2806 with multiple alternatives.
2808 * stmt.c (parse_output_constraint): Fix a typo.
2810 2005-03-09 Bob Wilson <bob.wilson@acm.org>
2812 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
2813 assembly directive instead of deprecated "no-generics".
2815 2005-03-09 Ulrich Weigand <uweigand@de.ibm.com>
2817 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
2818 for non-offsettable memory references to cope with outstanding reload
2820 * config/s390/s390.md ("reload_outti"): Call find_replacement to
2821 avoid losing outstanding address reloads.
2822 ("reload_outdi", "reload_outdf"): Likewise.
2824 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2826 * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
2827 code. Add more cbrt transformations.
2829 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2831 * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
2833 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
2835 * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
2836 NULL_TREE when a given tree is not simplified.
2837 (fold): Return the original tree when any of the functions
2838 mentioned above NULL_TREE.
2840 * fold-const.c (fold_unary, fold_binary): Take decomposed
2841 arguments, code, type, op0, and op1 in case of fold_binary.
2842 (fold): Update calls to fold_unary and fold_binary.
2844 2005-03-09 Roger Sayle <roger@eyesopen.com>
2846 * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
2847 a fndecl and an arglist instead of a CALL_EXPR, exp.
2849 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
2851 * cfglayout.c (fixup_reorder_chain): Remove old_bb.
2853 * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
2855 * expr.c (expand_assignment): Remove orig_to_rtx.
2857 * fold-const.c (int_const_binop): Remove no_overflow.
2859 * ifcvt.c (noce_emit_move_insn): Remove inmode.
2861 * loop-iv.c (get_biv_step_1): Remove lhs.
2863 * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
2865 * real.c (real_nan): Remove neg.
2867 * function.c (thread_prologue_and_epilogue_insns): Remove i
2870 * tree-data-ref.c (array_base_name_differ_p): Remove ta and
2873 * tree-eh.c (tree_could_trap_p): Remove idx.
2875 * tree-into-ssa.c (ann): Remove ann.
2877 * tree-outof-ssa.c (num_nodes): Remove num_nodes.
2879 * tree-sra.c (decide_block_copy): Remove inst_count.
2881 * tree-ssa-alias.c (may_alias_p): Remove v_ann.
2883 * tree-ssa-loop-im.c (lhs): Remove.
2885 * cfgbuild.c (state, STATE, SET_STATE,
2886 BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
2888 (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
2889 (find_basic_blocks): Set the state of each basic block to
2892 2005-03-08 Jeff Law <law@redhat.com>
2894 * tree-cfg.c (cleanup_control_flow): If removal of a computed
2895 goto results in the removal of edges in the CFG, then we need
2896 to recompute dominators.
2898 2005-03-09 Ben Elliston <bje@au.ibm.com>
2900 * c-common.c (c_do_switch_warnings): Comment fix.
2902 2005-03-08 Julian Brown <julian@codesourcery.com>
2904 * Patch from 2005-03-08 reverted for causing regressions and
2905 ppc-darwin bootstrap failure.
2907 2005-03-08 Fariborz Jahanian <fjahanian@apple.com>
2909 * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
2910 Define the real function for ppc-darwin.
2911 * c-typeck.c (convert_arguments): Check for target-specific
2912 invalid argument call to unprototyped function.
2913 * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
2915 * target.h (invalid_arg_for_unprototyped_fn): New field
2917 * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
2918 default target hook.
2919 * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
2922 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2924 * c-typeck.c (constructor_stack, constructor_range_stack,
2925 initializer_stack): Make them static.
2927 * cfg.c (rbi_pool): Make it static.
2929 * gimple-low.c (lower_stmt_body): Make it static.
2930 * tree-flow.h: Remove the corresponding prototype. Don't
2933 * sched-deps.c (cache_size): Make it static.
2935 * stor-layout.c (lang_adjust_rli): Make it static.
2937 2005-03-08 Julian Brown <julian@codesourcery.com>
2939 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
2940 from being used for symbols with vague linkage when
2941 HAVE_GAS_COMDAT_GROUP is true.
2943 2005-03-08 J"orn Rennecke <joern.rennecke@st.com>
2945 * jump.c (invert_jump_1): Don't call redirect_jump_1 with
2946 nlabel == JUMP_LABEL (jump).
2948 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2950 * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
2951 gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
2952 tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
2953 tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
2955 2005-03-08 Alexey Neyman <alex.neyman@auriga.ru>
2958 * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
2959 * c-common.c (handle_returns_twice): New function.
2960 (c_common_attribute_table): Declare eturns_twice' attribute.
2961 * doc/extend.texi: Document eturns_twice' attribute.
2962 * tree.h (DECL_IS_RETURNS_TWICE): New macro.
2963 (struct tree_decl): Add returns_twice_flag.
2965 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2967 * tree-ssa-phiopt.c: Fix a comment typo.
2969 * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
2970 loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
2971 config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
2974 2005-03-08 Richard Henderson <rth@redhat.com>
2976 * config/alpha/alpha.c (code_for_builtin): Replace special-case
2977 builtin codes with ctzdi2, clzdi2, popcountdi2.
2978 (struct alpha_builtin_def): Add is_const.
2979 (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
2980 (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
2981 (alpha_init_builtins): Init them. Set nothrow and const attributes
2983 (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
2984 alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
2985 alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
2986 alpha_fold_vector_minmax, alpha_fold_builtin_perr,
2987 alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
2988 alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
2989 alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
2990 alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
2991 (TARGET_FOLD_BUILTIN): New.
2992 * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
2993 (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
2995 (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
2997 2005-03-08 Ira Rosen <irar@il.ibm.com>
2999 PR tree-optimization/20122
3000 * tree-vect-analyze.c (vect_object_analysis): Analyze initial
3001 condition of access function instead of base.
3003 2005-03-07 Jeff Law <law@redhat.com>
3004 Steven Bosscher <stevenb@suse.de>
3006 * tree-cfg.c (find_taken_edge_computed_goto): New function.
3007 (find_taken_edge): Call find_taken_edge_computed_goto as
3008 appropriate. Allow any gimple invariant rather than just
3009 INTEGER_CST for VAL.
3010 (cleanup_control_flow): Cleanup a computed goto which has turned
3012 (tree_merge_blocks): If block B has any forced labels, move
3013 them to the start of block A.
3014 * tree-ssa-dom.c (thread_across_edge): Allow threading across
3015 computed gotos as well.
3016 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
3017 removal of unnecessary computed gotos too.
3018 (lookup_redirection_data): Fix type of INSERT argument. Callers
3021 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
3023 * tree-ssa-phiopt.c: Update copyright. Fix indentations.
3024 Remove trailing spaces.
3026 * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
3027 unshare_all_trees): Make them static.
3028 * tree-gimple.h: Remove the corresponding prototypes.
3030 * diagnostic.h: Remove unused prototype
3031 debug_output_buffer.
3032 * modulo-sched.c: Remove unused prototype
3033 set_row_column_for_ps.
3035 * tree-ssa-phiopt.c (tree_ssa_phiopt,
3036 replace_phi_edge_with_variable): Remove unused variable i.
3038 2005-03-07 Per Bothner <per@bothner.com>
3040 * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
3042 2005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
3045 * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
3046 bbs on the COND_EXPR instead of the PHI_NODEs.
3047 (candidate_bb_for_phi_optimization): Remove.
3048 (replace_phi_with_stmt): Rename to ...
3049 (replace_phi_edge_with_variable): this and change so that we
3050 replace the phi argument instead of removing the PHI.
3051 (conditional_replacement): Change so we deal with PHI with more
3053 (value_replacement): Likewise.
3054 (abs_replacement): Likewise.
3056 2005-03-07 Aldy Hernandez <aldyh@redhat.com>
3058 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
3059 output_e500_flip_gt_bit.
3061 * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
3063 (rs6000_generate_compare): Fix logic to look at the correct bits.
3064 (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
3066 (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
3067 gen_e500_flip_gt_bit. Rename gen_move_from_CR_eq_bit to
3068 gen_move_from_CR_gt_bit.
3070 * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
3071 ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
3072 (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
3074 * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
3075 (E500_CR_IOR_COMPARE): New constant.
3077 2005-03-08 Earl Chew <earl_chew@agilent.com>
3078 David Billinghurst <David.Billinghurst@riotinto.com>
3080 * config/i386/host-cygwin.c: New file to support precompiled
3082 * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
3083 * config.host: Use above files for cygwin host.
3085 2005-03-07 David Edelsohn <edelsohn@gnu.org>
3087 * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
3088 ordering ops from earlier change.
3090 2005-03-07 Per Bothner <per@bothner.com>
3092 Various fixes to allow us to again build if --enable-mapped-location:
3093 * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
3094 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
3095 * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
3096 local variable loc. Change logic appropriately.
3097 * tree-vect-transform.c (vect_finish_stmt_generation): Use
3098 EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
3099 * c-parser.c (c_parser_for_statement): Initialize loc variable.
3100 * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
3101 DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
3103 2005-03-07 Richard Sandiford <rsandifo@redhat.com>
3105 PR rtl-optimization/19683
3106 * reload1.c (choose_reload_regs): Pass the number of bits, not the
3107 number of bytes, to smallest_int_for_mode. Fix arguments to
3108 REG_CANNOT_CHANGE_MODE_P.
3110 2005-03-07 Eric Botcazou <ebotcazou@libertysurf.fr>
3112 * reorg.c (relax_delay_slots): Check that the jump is
3113 conditional before trying to invert it.
3115 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
3117 * bb-reorder.c (max_entry_frequency, max_entry_frequency):
3120 * calls (stack_arg_under_construction): Make it static.
3122 * flow.c (regs_live_at_setjmp): Make it static.
3123 * flow.h: Remove the corresponding prototype.
3125 * reload1.c (reload_startobj, reload_firstobj,
3126 something_needs_operands_changed, reload_inherited,
3127 reload_inheritance_insn, reload_override_in,
3128 reload_spill_index): Make them static.
3130 * recog.c (verify_changes): Make it static.
3131 * recog.h: Remove the corresponding prototype.
3133 * cfgbuild.c (find_sub_basic_blocks): Remove.
3134 * basic-block.h: Remove the corresponding prototype.
3135 * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
3137 * doc/cfg.texi: Don't mention find_sub_basic_blocks.
3139 * tree-ssa-operands.c (check_build_stmt): Remove.
3141 * stor-layout.c (set_alignment): Remove.
3142 * tree.h: Remove the corresponding prototype.
3144 * tree-ssa-pre.c (has_abnormal_preds): Make it static.
3146 * tree-ssa-dce.c (control_dependence_map,
3147 visited_control_parents): Make them static.
3149 * cfghooks.c (verify_flow_info): Remove local variable
3152 * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
3155 * loop-unswitch.c (unswitch_loop): Remove local variable src.
3157 2005-03-07 David Billinghurst <David.Billinghurst@riotinto.com>
3159 * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
3161 2005-03-07 Joseph S. Myers <joseph@codesourcery.com>
3163 * config/ia64/hpux.h (LINK_SPEC): Add -z.
3164 * config/ia64/ia64.c (ia64_function_value): Return a REG not a
3165 PARALLEL for an empty structure.
3167 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
3169 * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
3171 * fold-const.c (fold_binary): Unroll the very first "for"
3174 2005-03-06 David Edelsohn <edelsohn@gnu.org>
3176 * config/rs6000/predicates.md (branch_comparison_operator): Remove
3177 redundant match_code test.
3178 (scc_comparison_operator): Swap match_operand and match_code
3180 (branch_positive_comparison_operator): Same.
3181 (trap_comparison_operator): Use comparison_operator and swap with
3184 2005-03-06 Marek Michalkiewicz <marekm@amelek.gda.pl>
3187 * config/avr/avr.c (print_operand): Add 'p' and 'r'.
3188 (out_movhi_r_mr): Read low byte of volatile MEM first.
3189 (out_movhi_mr_r): Write high byte of volatile MEM first.
3191 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
3193 * cselib.c (reg_values, reg_values_size): Make them static.
3195 * cse.c (cse_reg_info_table): Make it static.
3197 * fold-const.c (fold_unary): Use build1 instead of copy_node.
3199 2005-03-06 Zdenek Dvorak <dvorakz@suse.cz>
3201 * cse.c (find_best_addr): Use canon_for_address.
3203 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
3205 * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
3206 (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
3207 SUBREG and MEM, respectively.
3209 * fold-const.c (fold_binary): Use code instead of t.
3211 * fold-const.c (optimize_minmax_comparison): Take decomposed
3212 arguments code, type, op0, and op1 instead of t.
3213 (fold_binary): Update a call to optimize_minmax_comparison.
3215 * fold-const.c (fold_range_test): Take decomposed arguments
3216 code, type, op0, and op1 instead of t.
3217 (fold_binary): Update a call to fold_range_test.
3219 * fold-const.c (fold_binary_op_with_conditional_arg): Take
3220 decomposed arguments code, type, op0, and op1 instead of t.
3221 (fold_binary): Update a call to fold_range_test.
3223 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
3225 * fold-const.c (fold_binary): Avoid directly using the original
3226 expression t as much as possible.
3228 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
3230 * c-semantics.c (build_stmt): Use TYPE_P instead of
3231 IS_NON_TYPE_CODE_CLASS.
3232 * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
3233 (NON_TYPE_CHECK): Use TYPE_P instead of
3234 IS_NON_TYPE_CODE_CLASS.
3236 * fold-const.c (fold): Remove handling of binary expressions.
3238 2005-03-05 James A. Morrison <phython@gcc.gnu.org>
3240 * doc/c-tree.texi: Wrap comments in @r{}.
3241 * doc/cpp.texi: Likewise.
3242 * doc/cppinternals.texi: Likewise.
3243 * doc/extend.texi: Likewise.
3244 * doc/md.texi: Likewise.
3245 * doc/objc.texi: Likewise.
3246 * doc/sourcebuild.texi: Likewise.
3247 * doc/tm.texi: Likewise.
3250 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
3252 * predict.c (apply_return_prediction): Standardize PHI chain
3254 * tree-ssa.c (ssa_redirect_edge): Likewise.
3256 * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
3257 gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
3260 * tree-phinodes.c (remove_phi_node): Drop the last argument.
3261 * tree-flow.h: Adjust the prototype for remove_phi_node.
3262 * lambda-code.c (perfect_nestify): Adjust a call to
3265 (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
3266 * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
3268 * tree-ssa-dce.c (remove_dead_phis): Likewise.
3269 * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
3270 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
3271 * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
3273 * combine.c (simplify_and_const_int): Use gen_int_mode instead
3274 of GEN_INT (trunc_int_for_mode (...)).
3275 * loop-iv.c (iv_number_of_iterations): Likewise.
3276 * postreload.c (reload_cse_move2add): Likewise.
3277 * simplify-rtx.c (simplify_const_unary_operation,
3278 simplify_const_binary_operation): Likewise.
3279 * stor-layout.c (get_mode_bounds): Likewise.
3281 * fold-const.c (fold_binary): New.
3282 (fold): Call fold_binary on binary expressions.
3284 2005-03-05 Richard Sandiford <rsandifo@redhat.com>
3286 * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
3287 * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
3288 (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
3289 (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
3290 (ASM_SPEC): Pass down -msym32 and -mno-sym32.
3292 2005-03-04 Devang Patel <dpatel@apple.com>
3294 PR tree-optimization/18815
3295 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
3296 loops with zero exit edges.
3298 2005-03-04 Devang Patel <dpatel@apple.com>
3300 * doc/invoke.texi: Remove reference to webpage that does not exist.
3302 2005-03-04 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
3303 Joseph S. Myers <joseph@codesourcery.com>
3306 * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
3307 (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
3308 * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
3309 * pa.c (get_plabel): Change argument to symbol_ref. Call
3310 maybe_get_identifier instead of get_identifier.
3311 (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
3312 (struct deferred_plabel): Replace name field with symbol field.
3313 (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
3314 ASM_OUTPUT_EXTERNAL_REAL is defined.
3315 (output_global_address): Use output_addr_const for output of all
3317 (output_deferred_plabels): Use symbol_ref instead of name for address
3319 * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
3320 ASM_OUTPUT_SYMBOL_REF): New macros.
3321 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw. Update
3323 (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
3326 2005-03-05 Joseph S. Myers <joseph@codesourcery.com>
3328 * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
3329 *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
3331 2005-03-04 Jeff Law <law@redhat.com>
3333 * basic-block.h (rediscover_loops_after_threading): Declare.
3334 * tree-ssa-dom.c: Include cfgloop.h.
3335 (tree_ssa_dominator_optimize): Discover loops and some basic
3336 properties. Remove forwarder blocks recreated by loop header
3337 canonicalization. Also mark backedges in the CFG.
3338 * tree-ssa-threadupdate.c: Include cfgloop.h
3339 (rediscover_loops_after_threading): Define.
3340 (struct local_info): New field, JUMP_THREADED.
3341 (prune_undesirable_thread_requests): New function.
3342 (redirect_edges): Clear EDGE_ABNORMAL. If edges were threaded
3343 then record that fact for the callers of redirct_edges.
3344 (thread_block): If BB has incoming backedges, then call
3345 prune_undesirable_thraed_requests. Note when we are
3346 going to have to rediscover loop information. Return a
3347 boolean indicating if any jumps were threaded.
3348 (thread_through_all_blocks): Bubble up boolean indicating
3349 if any jumps were threaded.
3350 * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
3351 (tree-ssa-threadupdate.o): Similarly.
3353 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
3355 * fold-const.c (fold_ternary): Unroll the "for" loop to
3358 2005-03-04 Andrew Haley <aph@redhat.com>
3360 * unwind-dw2-fde-glibc.c (struct
3361 unw_eh_callback_data.check_cache): New field.
3362 (frame_hdr_cache): New.
3363 (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
3364 Cache frame header info.
3366 2005-03-04 Richard Sandiford <rsandifo@redhat.com>
3368 * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
3369 (print_c_condition): Declare.
3370 * read-rtl.c (ptr_loc): New structure.
3371 (ptr_locs, ptr_loc_obstack, joined_conditions)
3372 (joined_conditions_obstack): New variables.
3373 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
3374 (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
3375 (join_c_conditions, print_c_condition): New functions.
3376 (apply_macro_to_string): Associate the new string with the same
3377 source location as the old one.
3378 (add_condition_to_string): Use join_c_conditions.
3379 (read_string): Use set_rtx_ptr_loc to record a filename and line
3380 number for the string.
3381 (read_rtx): Initialize the new variables above.
3382 * genattrtab.c (write_test_expr, write_attr_value): Use
3384 * genconditions.c (write_header): Don't define MAYBE_EVAL. Move its
3385 comment above the GCC_VERSION check.
3386 (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
3387 Inline the definition of MAYBE_EVAL.
3388 * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
3389 * genoutput.c (process_template): Likewise.
3390 * genpreds.c (write_predicate_subfunction): Likewise.
3391 (write_predicate_expr): Use print_c_condition.
3392 * genrecog.c (write_cond): Likewise.
3393 * gensupport.c (process_rtx): Use join_c_conditions to join the
3394 conditions of a define_insn_and_split. Record a source location
3395 for the string after the "&&".
3396 (alter_test_for_insn): Use join_c_conditions.
3398 2005-03-04 Andrew Pinski <pinskia@physics.uc.edu>
3401 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
3402 PR tree-optimization/15784
3403 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
3406 2005-03-04 Ben Elliston <bje@au.ibm.com>
3408 * gcc.c (option_map): Add --coverage.
3409 (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
3410 (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
3411 * config/darwin.h: Pass -lgcov for `coverage'.
3412 * doc/invoke.texi (Debugging Options): Document --coverage.
3414 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
3416 * gcse.c (bypass_block): Use find_edge wherever possible.
3418 2005-03-03 Daniel Berlin <dberlin@dbrelin.org>