1 2005-03-30 James E. Wilson <wilson@specifixinc.com>
4 * dwarf2out.c (add_high_low_attributes): New function, extracted from
6 (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
8 2005-03-31 Jan Hubicka <jh@suse.cz>
10 2004-11-02 Jan Hubicka <jh@suse.cz>
12 * cgraph.c (cgraph_varpool_node_name): New function.
13 (dump_cgraph_varpool_node): New function.
14 (dump_varpool): New function.
15 * cgraphunit.c (cgraph_optimize): Dump varpool.
17 2004-10-16 Jan Hubicka <jh@suse.cz>
19 * cgraph.c (decide_is_variable_needed): New function.
20 (cgraph_varpool_finalize_decl): Use it.
21 * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
23 * final.c (output_addr_const): Do not call mark_referenced.
24 * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
26 * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
27 (check_global_declarations): Ifdef out code clearing DECL_RTL.
28 * tree-optimize.c (execute_inline): Mark functions called.
29 * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
31 2004-10-11 Jan Hubicka <jh@suse.cz>
33 * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
34 (cgraph_varpool_last_needed_node): New static variable.
35 (enqueue_needed_varpool_node): Break out from ...; add items to the
36 end of queue; update first pointers.
37 (cgraph_varpool_mark_needed_node): ... here.
38 (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
39 (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
40 * cgraph.h (cgraph_varpool_node): Add analyzed field.
41 (cgraph_varpool_first_unanalyzed_node): Declare.
42 * cgraphunit.c: Include output.h.
43 (cgraph_varpool_analyze_pending_decls): New function.
44 (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
45 for errors, analyze pending decls.
46 (cgraph_finalize_compilation_unit): Only analyze decls.
47 (cgraph_optimize): Assemble the decls after expanding.
49 2005-03-30 Daniel Berlin <dberlin@dberlin.org>
51 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
52 subvars get marked properly in tags for grouping.
53 (add_pointed_to_var): Mark only actual pointed to
54 variables/subvars in addresses needed.
55 (create_overlap_variables_for): Clear call clobbered on original
57 * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
58 addresable vars with subvars into list.
59 * tree-ssa.c (verify_ssa_name): Verify original is not used where
62 2005-03-30 Richard Henderson <rth@redhat.com>
64 * cgraph.h (struct cgraph_node): Add alias.
65 * varasm.c (assemble_alias): Set it.
66 * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
67 avoid calling cgraph_expand_function.
69 2005-03-30 Tom Tromey <tromey@redhat.com>
71 * tree.def (FILE_TYPE): Removed.
72 * typeclass.h (enum type_class): Removed file_type_class.
73 * dwarf2out.c (is_base_type): Updated.
74 (gen_type_die): Likewise.
75 * dbxout.c (dbxout_type): Updated.
76 * builtins.c (type_to_class): Updated.
77 * tree.c (type_contains_placeholder_1): Updated.
78 * config/sparc/sparc.c (sparc_type_code): Updated.
79 * config/ia64/ia64.c (hfa_element_mode): Updated.
80 * expr.c (count_type_elements): Updated.
81 * stor-layout.c (layout_type): Updated.
82 * tree-inline.c (remap_type): Updated.
83 * tree-pretty-print.c (dump_generic_node): Updated.
85 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
87 * builtins.c (expand_builtin_powi): Fix mode of
88 2nd argument to match int.
89 * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
90 2nd argument type to int.
91 * libgcc2.c: Change prototype of __powi* functions to use
94 2005-03-30 Dale Johannesen <dalej@apple.com>
97 * calls.c (expand_call): Flush pending deferrals before
100 2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
104 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
105 C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
106 c_label_context, label_context_stack): New.
107 * c-decl.c (define_label): Check for jumps into statement
108 expressions. Add label to list of defined labels.
109 (start_function): Push context on label_context_stack.
110 (finish_function): Pop context from label_context_stack.
111 * c-typeck.c (label_context_stack): New.
112 (c_finish_goto_label): Check for jumps into statement
113 expressions. Add label to list of jumped to labels.
114 (struct c_switch): Add blocked_stmt_expr.
115 (c_start_case): Initialize it.
117 (c_finish_case): Verify !blocked_stmt_expr.
118 (c_begin_stmt_expr): Push context on label_context_stack.
119 Increment blocked_stmt_expr. Mark labels jumped to from outside
121 (c_finish_stmt_expr): December blocked_stmt_expr. Mark labels
122 defined in the statement expression and no longer jumpable to.
123 Mark labels jumped to from just outside the statement expression
124 as again definable. Pop context from label_context_stack.
125 * doc/extend.texi (Statement Exprs): Update.
127 2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
130 * c-decl.c (start_function): Check for old_decl being
133 2005-03-30 Ian Lance Taylor <ian@airs.com>
135 * final.c (final): Remove prescan parameter. Change all callers.
136 (final_scan_insn): Remove prescan parameter. Change all callers.
138 2005-03-30 Kazu Hirata <kazu@cs.umass.edu>
140 * tree-vectorizer.c: Fix comment typos.
142 2005-03-30 Sebastian Pop <pop@cri.ensmp.fr>
144 * tree-scalar-evolution.c (instantiate_parameters_1): Return
145 as soon as a chrec_dont_know is detected.
147 2005-03-31 Danny Smith <dannysmith@users.sourceforge.net>
149 Merge from csl-arm-branch.
150 2004-02-12 Mark Mitchell <mark@codesourcery.com>
152 * tlink.c (recompile_files): Do not assume that "rename" can
153 overwrite an existing file.
155 2005-03-31 Paolo Bonzini <bonzini@gnu.org>
157 * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
158 * gcc/configure: Regenerate.
160 2005-03-30 Alan Modra <amodra@bigpond.net.au>
162 * doc/install.texi: Update binutils requirement for powerpc*-linux.
164 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
166 * calls.c (struct arg_data): Update "partial" comment.
167 (load_register_parameters): Update "nregs" comment.
169 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
171 * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
172 (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
173 (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
174 (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
175 (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
176 (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
177 than target_flags & 0.
178 * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
179 (iq2000_arch, iq2000_parse_cpu): Delete.
180 (TARGET_HANDLE_OPTION): Override default.
181 (iq2000_handle_option): New function.
182 (override_options): Remove -march= and -mcpu= handling.
183 * config/iq2000/iq2000.opt: New file.
185 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
187 * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
188 * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
189 (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
190 (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
191 (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
192 (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
193 (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
194 (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
195 (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
196 (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
197 (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
198 (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
199 (c4x_rpts_cycles_string, c4x_cpu_version_string)
200 (TARGET_OPTIONS): Delete.
201 (c4x_rpts_cycles, c4x_cpu_version): Declare.
202 (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
203 (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
204 * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
205 (c4x_cpu_version_string): Delete.
206 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
207 (c4x_handle_option): New function. Map -m3x and -m4x options to the
208 equivalent -mcpu= option.
209 (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
210 Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
211 TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
212 or clearing the appropriate MASK_* bit.
213 (c4x_file_start): Use c4x_cpu_version.
214 * config/c4x/c4x.opt: New file.
216 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
218 * doc/options.texi: Document the new MaskExists flag.
219 * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
220 if the option has the MaskExists flag.
222 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
224 * opt-functions.awk (flag_set_p, test_flag): New functions.
225 (switch_flags): Use them.
226 * opth-gen.awk: Use flag_set_p to check for flags.
227 * optc-gen.awk: Likewise. Use opt_args to check for Init(...) flags.
229 2005-03-30 Ian Lance Taylor <ian@airs.com>
231 * config.host (i[34567]86-*-mingw32*): Don't set
232 host_can_use_collect2 to no.
234 2005-03-30 Alan Modra <amodra@bigpond.net.au>
237 * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
238 Remove convert_memory_address call duplicating that in memory_address.
240 2005-03-29 Richard Henderson <rth@redhat.com>
243 * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
244 (build_compound_literal): Likewise. Propagate decl type into the
246 (finish_decl): Likewise. Use new return value from complete_array_type
247 for zero sized arrays.
248 (complete_array_type): Move ...
249 * c-common.c (complete_array_type): ... here. Change first argument
250 to pointer-to-type-node. Consistently use sizetype for the index
251 except for zero sized arrays. Detect zero sized arrays for pedantic
252 mode diagnostics. Create a new type node instead of modifying the
254 * c-tree.h (complete_array_type): Move decl ...
255 * c-common.h (complete_array_type): ... here.
257 2005-03-29 Richard Henderson <rth@redhat.com>
260 * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
262 2005-03-29 Kazu Hirata <kazu@cs.umass.edu>
264 * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
265 debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
266 rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
267 tree-profile.c, tsystem.h, value-prof.h: Update copyright.
269 2005-03-29 Eric Christopher <echristo@redhat.com>
271 * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
272 truthvalue conversion removal.
274 2005-03-29 Ian Lance Taylor <ian@airs.com>
277 * collect2.c: Never include <vfork.h>.
278 (VFORK_STRING, vfork): Don't define.
279 (pid): Remove global variable.
280 (handler): Call raise instead of kill (getpid(), ...).
281 (collect_wait): Add pex parameter. Change all callers. Use
282 pex_get_status rather than pwait.
283 (do_wait): Add pex parameter. Change all callers.
284 (collect_execute): Return struct pex_obj * rather than void. Use
285 pex routines rather than pexecute.
286 (fork_execute): Get pex_obj from collect_execute, and pass it to
288 (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
289 Only declare quit_handler if SIGQUIT is defined.
290 (scan_libraries): Likewise.
291 * collect2.h (collect_execute): Update declaration.
292 (collect_wait): Update declaration.
293 * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
294 pass it to collect_wait.
296 2005-03-29 Joseph S. Myers <joseph@codesourcery.com>
299 * c-parser.c (c_parser_compound_statement_nostart): Give error
300 message for EOF instead of just setting parser->error.
302 2005-03-29 Dorit Naishlos <dorit@il.ibm.com>
304 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
305 (slpeel_update_phi_nodes_for_guard1): New function.
306 (slpeel_update_phi_nodes_for_guard2): New function.
307 (slpeel_tree_peel_loop_to_edge): Call above new functions instead
308 of slpeel_update_phi_nodes_for_guard.
309 (vectorize_loops): Remove call to loop_closed_rewrite.
310 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
313 2005-03-29 Richard Sandiford <rsandifo@redhat.com>
315 * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
316 (TARGET_LITTLE_ENDIAN): New macro.
317 * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
318 (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
319 (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
320 (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
321 (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
322 (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
323 (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
324 (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
325 (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
326 (TARGET_OPTIONS): Delete.
327 (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
328 (CACHE_FLUSH_TRAP): Turn into an integer.
329 (TARGET_LITTLE_ENDIAN): Define to 0 by default.
330 (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
331 -mflush-trap is in use.
332 * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
333 (m32r_cache_flush_trap_string): Delete.
334 (m32r_model) Initialize to M32R_MODEL_DEFAULT.
335 (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
336 (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
337 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
338 (m32r_handle_option): New function. Move -mflush-trap=, -mflush-func=,
339 -mmodel= and -msdata= handling from...
340 (m32r_init): ...here.
341 * config/m32r/m32r.opt: New file.
343 2005-03-29 Keith Besaw <kbesaw@us.ibm.com>
345 * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
346 (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
347 * tree-vect-analyze.c (vect_object_analysis): additional parm
348 pass back a "struct ptr_info_def *" with the points-to info.
349 (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
350 statement using info returned from vect_object_analysis.
351 * tree-vect-transform.c (update_vuses_to_preheader): New function.
352 (vect_create_data_ref_ptr): Remove updates to vars_to_rename
353 for virtual uses and defs when creating a replacement vector
354 reference. Call duplicate_ssa_name_ptr_info to define points-to
355 info for vector pointer replacement using STMT_VINFO_PTR_INFO.
356 (vectorizable_store): copy_virtual_operands and update
357 definition statements.
358 (vectorizable_load): copy_virtual_operands. Remove call to
359 mark_call_clobbered_vars_to_rename for call to "const" builtin.
360 * tree-vectorizer.c (vectorize_loops): Remove calls to
361 rewrite_into_ssa and bitmap_clear (vars_to_rename).
362 (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
363 * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
364 define macro STMT_VINFO_PTR_INFO for use in accessing.
365 * tree.h add export of duplicate_ssa_name_ptr_info.
366 * rs6000.c (altivec_init_builtins): Declare builtin function
367 __builtin_altivec_mask_for_load to be "const".
369 2005-03-29 Jakub Jelinek <jakub@redhat.com>
372 * cgraph.h (struct cgraph_varpool_node): Add alias field.
373 * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
374 assemble_variable on aliases.
375 * varasm.c (assemble_alias): Set node->alias.
376 * toplev.c (wrapup_global_declarations): Don't call
377 rest_of_decl_compilation on aliases again.
379 2005-03-29 Paul Brook <paul@codesourcery.com>
381 * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
382 * config/arm/arm.c (arm_dbx_register_number): New function.
383 * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
385 2005-03-29 Eric Botcazou <ebotcazou@libertysurf.fr>
388 * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
389 the DECL_NAME, not the DECL_ASSEMBLER_NAME.
391 2005-03-29 Dale Johannesen <dalej@apple.com>
393 * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
394 $(TREE_H) and $(COVERAGE_H).
395 * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
396 * opts.c (common_handle_option): Enable tree-based value transforms.
397 * toplev.c (process_options): Ditto.
398 * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
399 refers to references to this type.
400 * tree-flow.h: (struct stmt_ann_d): Add histograms field.
401 * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
402 for may_be_more, may_be_less.
403 (rtl_gen_pow2_profiler): Adjust.
404 (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
405 (rtl_gen_one_value_profiler): Adjust.
406 (rtl_gen_const_delta_profiler): Adjust.
407 * tree-profile.c (tree_gen_interval_profiler): Implement.
408 (tree_gen_pow2_profiler): Ditto.
409 (tree_gen_one_value_profiler): Ditto.
410 (tree_profiling): New.
411 (pass_tree_profile): Reference it.
412 * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
414 (insn_divmod_values_to_profile): Rename to
415 rtl_divmod_values_to_profile. Adjust.
416 (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
417 (insn_prefetch_values_to_profile): Adjust.
418 (rtl_value_profile_transformations): Adjust.
419 (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
420 (gen_mod_pow2): Rename to rtl_mod_pow2.
421 (gen_mod_subtract): Rename to rtl_mod_subtract.
422 (divmod_fixed_value_transform): Rename to
423 rtl_divmod_fixed_value_transform.
424 (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
425 (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
426 (rtl_find_values_to_profile): Adjust.
427 (tree_value_profile_transformations): Implement.
428 (tree_divmod_values_to_profile): New.
429 (tree_values_to_profile): New.
430 (tree_divmod_fixed_value): New.
431 (tree_mod_pow2): New.
432 (tree_mod_subtract): New.
433 (tree_divmod_fixed_value_transform): New.
434 (tree_mod_pow2_value_transform): New.
435 (tree_mod_subtract_transform): New.
436 (tree_find_values_to_profile): Implement.
437 * profile.c (instrument_values): Free histograms.
438 (compute_value_histograms): Adjust. Implement tree version.
440 2005-03-29 Uros Bizjak <uros@kss-loka.si>
442 * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
443 * config/i386/i386.c (output_fix_trunc): Add new round_mode
444 variable. Output "fldcw" depending on round_mode.
445 * config/i386/i386.md (UNSPEC_FIST): New.
446 (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
447 New isns patterns to implement lrint and llrint built-ins as x87
449 (fistdi2, fist<mode>2 splitters): New splitters.
450 (lrint<mode>2): New expanders.
452 2005-03-28 Ian Lance Taylor <ian@airs.com>
454 * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
455 0 when calling final_scan_insn.
457 2005-03-28 Jan Hubicka <jh@suse.cz>
460 * varasm.c (mark_decl_referenced): Do not mark extern inline functions
463 * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
464 types where possible.
466 2005-03-26 Per Bothner <per@bothner.com>
468 Make -f[no-]show-column also control non-cpp diagnostics.
469 * c.opt (fshow-column): Move option from here ...
470 * common.opt (fshow-column): ... to here.
471 * diagnostic.c (diagnostic_build_prefix): Only print column number
474 2005-03-27 Steven Bosscher <stevenb@suse.de>
476 * vax-protos.h (vax_output_int_move, vax_output_int_add,
477 vax_output_conditional_branch): New prototypes.
478 * vax.c (vax_output_int_move, vax_output_int_add): New functions,
479 extracted from vax.md mov and add patterns.
480 (vax_output_conditional_branch): New function to output conditional
482 * vax.md: Use mode macros for arithmetic and mov patterns.
483 Use code macros for the jump patterns.
485 2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
487 * Makefile.in (libbackend.o): Depend on version files;
488 add custom generation command.
490 2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
493 * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
494 sure that we have a REG before getting its REGNO.
496 2005-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
498 * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
499 * builtins.def (BUILT_IN_STRNDUP): New.
501 2005-03-25 Pat Haugen <pthaugen@us.ibm.com>
503 PR tree-optimization/20470
504 * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
507 2005-03-25 Mike Stump <mrs@apple.com>
509 * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
512 2005-03-25 Geoffrey Keating <geoffk@apple.com>
514 * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
515 Use our own structure definitions.
517 * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
518 (fix_truncdfsi2): Allow registers or memory as destination.
519 When TARGET_PPC_GFXOPT, generate simplified pattern.
520 (fix_truncdfsi2_internal): Use define_insn_and_split.
521 (fix_truncdfsi2_internal_gfxopt): New.
522 (fctiwz): Don't confuse register allocation by giving it no choices.
524 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
525 (EXTRA_MEMORY_CONSTRAINT): Likewise.
526 * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
527 * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
529 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
531 * dominance.c (free_dominance_info): Speed up by freeing et
532 data structures without maintaining other nodes.
533 * et-forest.c (et_free_tree_force): New.
534 * et-forest.h: Add a prototype for et_free_tree_force.
536 * tree.c (get_set_constructor_bits,
537 get_set_constructor_bytes): Remove.
538 * tree.h: Remove the corresponding prototypes.
540 2005-03-25 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
543 * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
544 (vax_rtx_costs): Return false when passed unsupported rtx's. Handle
545 FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE. Fix costs for POST_INC,
546 PRE_DEC, NEG and NOT.
548 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
550 * fold-const.c: Convert uses of fold (build (...)) to
553 2005-03-25 Zdenek Dvorak <dvorakz@suse.cz>
555 PR rtl-optimization/20249
556 * cse.c (insert_regs): Do not record equivalence of registers in
559 2005-03-24 Kazu Hirata <kazu@cs.umass.edu>
561 * emit-rtl.c (reverse_comparison): Remove.
562 * rtl.h: Remove the corresponding prototype.
564 2005-03-24 James E Wilson <wilson@specifixinc.com>
566 * doc/install.texi (--enable-altivec): Delete docs.
568 2005-03-24 David Edelsohn <edelsohn@gnu.org>
570 * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
571 SFmode and DFmode before reload when
572 flag_unsafe_math_optimizations not enabled.
574 2005-03-24 Geoffrey Keating <geoffk@apple.com>
576 * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
578 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
579 MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
581 2005-03-24 Nathan Sidwell <nathan@codesourcery.com>
583 * configure.ac (enable-checking): Add 'runtime' option.
584 * doc/install.texi (enable-checking): Document 'runtime' checking.
585 * tsystem.h (gcc_assert, gcc_unreachable): Define.
586 * config.in: Regenerated.
587 * configure: Regenerated.
589 2005-03-23 Uros Bizjak <uros@kss-loka.si>
591 * optabs.h (enum optab_index): Remove OTI_llrint.
592 (llrint_optab): Remove macro.
593 * optabs.c (init_optabs): Remove llrint_optab initialization.
594 * genopinit.c (optabs): Remove llrint_optab implementation.
595 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
598 2005-03-24 Alexandre Oliva <aoliva@redhat.com>
600 PR rtl-optimization/20532
601 * simplify-rtx.c (simplify_binary_operation_1): Protect from
602 overflow when adding coefficients for PLUS or MINUS.
603 (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
606 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
608 * langhooks.h (truthvalue_conversion): Remove.
609 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
610 LANG_HOOKS_TRUTHVALUE_CONVERSION.
611 * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
612 * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
613 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
615 2005-03-23 Kazu Hirata <kazu@cs.umass.edu>
617 * params.def: Fix a typo.
618 * config/mips/mips.c: Follow the spelling convensions.
619 * doc/invoke.texi: Fix typos.
621 2005-03-18 Dale Johannese <dalej@apple.com>
623 * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
625 2005-03-23 Daniel Berlin <dberlin@dberlin.org>
627 Fix PR tree-optimization/20601
629 * tree-ssa-pre.c (insert_aux): Add missing condition to
632 2005-03-23 Ian Lance Taylor <ian@airs.com>
634 * final.c (final_scan_insn): Don't remove no-op instructions.
635 * reload1.c (reload): Remove simple no-op instructions even when
638 2005-03-23 Dorit Naishlos <dorit@il.ib.com>
640 PR tree-optimization/20501
641 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
642 reporting that peeling for alignment is applied moved to...
643 * (vect_analyze_data_refs_alignment): Here.
645 2005-03-23 Ian Lance Taylor <ian@airs.com>
647 * reorg.c (dbr_schedule): Remove #if 0 code to call final.
649 2005-03-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
651 * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
652 Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
654 2005-03-23 Hans-Peter Nilsson <hp@axis.com>
656 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
657 imply that this is called once, independent of asms in code.
658 Adjust to now being pased output and input lists. Mention helper
659 function decl_overlaps_hard_reg_set_p.
660 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
661 hook_tree_tree_identity and to take three trees, returning third.
662 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
664 * stmt.c: include hard-reg-set.h before tree.h.
665 (decl_overlaps_hard_reg_set_p): New function, broken out from...
666 (decl_conflicts_with_clobbers_p): Call
667 decl_overlaps_hard_reg_set_p.
668 (expand_asm_operands): Pass output and input lists in call to
669 targetm.md_asm_clobbers.
670 * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
671 hook_tree_tree_tree_tree_3rd_identity.
672 * target.h (struct gcc_target.md_asm_clobbers): Take three tree
674 * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
675 * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
676 parameters, first two unused.
677 * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
678 parameters. Only add MOF to clobbers if there's no 'h' mentioned
679 in constraint letters and MOF is not mentioned as a asm-declared
680 register in neither of the input and output lists.
682 2005-03-23 DJ Delorie <dj@redhat.com>
684 * optabs.c (expand_binop): Make sure the first subword's result
687 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
689 * c-common.c (c_common_truthvalue_conversion): Adjust comment.
690 Call c_common_truthvalue_conversion rather than
691 lang_hooks.truthvalue_conversion.
692 * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
693 * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
695 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
696 c_common_truthvalue_conversion.
697 * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
698 c_parser_conditional_expression, c_parser_binary_expression): Call
699 c_objc_common_truthvalue_conversion.
700 * c-typeck.c (build_unary_op): Call
701 c_objc_common_truthvalue_conversion.
702 (build_conditional_expr): Do not call
703 lang_hooks.truthvalue_conversion.
704 (build_binary_op): Call c_common_truthvalue_conversion.
705 (c_objc_common_truthvalue_conversion): Moved from
706 c-objc-common.c. Call default_function_array_conversion instead
707 of default_conversion.
709 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
711 * c-common.h (default_conversion): Remove.
712 (perform_integral_promotions): Add.
713 * c-tree.h (default_conversion): Add.
714 * c-typeck.c (perform_integral_promotions): New, split out from
716 * c-common.c (check_case_value): Use perform_integral_promotions,
717 not default_conversion.
718 (c_add_case_label): Don't continue processing case label after
721 2005-03-23 Mark Mitchell <mark@codesourcery.com>
723 * gcc.c (do_spec_1): Do not add a -L path for a directory in
724 the prefix list if we have already added a multilib directory
726 (main): Do not add MD_EXEC_PREFIX to the list of directories to
729 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
731 * reload1.c (indirect_symref_ok, reload_obstack): Make them
733 * reload.h: Remove the prototype for indirect_symref_ok.
735 * reload1.c (indirect_symref_ok): Make it global.
736 * reload.h: Add a prototype for indirect_symref_ok.
738 2005-03-22 Kaz Kojima <kkojima@gcc.gnu.org>
740 * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
743 2005-03-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
745 * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
747 2005-03-22 Daniel Berlin <dberlin@dberlin.org>
749 * c-opts.c (c_common_parse_file): Only start/end main source file
750 if debug hooks says the writer wants it.
751 * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
753 (xcoff_debug_hooks): Ditto.
754 * debug.c (do_nothing_hooks): Ditto.
755 * debug.h (gcc_debug_hooks): Ditto.
756 * dwarf2out.c (dwarf2_debug_hooks): Ditto.
757 * sdbout.c (sdb_debug_hooks): Ditto.
758 * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
760 2005-03-22 Mark Mitchell <mark@codesourcery.com>
762 * doc/extend.texi: Deprecate C++ min/max operators.
764 2005-03-22 Zdenek Dvorak <dvorakz@suse.cz>
766 * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
767 artificial original candidates.
769 2005-03-22 Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
770 Jan Hubicka <jh@suse.cz>
771 Steven Bosscher <stevenb@suse.de>
773 * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
774 call cost based on argument sizes.
775 (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
777 * params.def: (max-inline-inssn-single): Set to 450.
778 (max-inline-insns-auto): Set to 90.
779 (max-inline-insns-recursive): Set to 450
780 (max-inline-insns-recursive-auto): Set to 450.
781 (large-function-insns): Set to 2700.
782 (inline-call-cost): New parameter.
783 * tree-inline.c (estimate_move_cost): New function.
784 (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
785 for non-gimple-regs, set cost to 0 for gimple-regs. Compute call size
787 * tree-inline.h (estimate_move_cost): Declare.
788 * invoke.texi: (max-inline-inssn-single): Change default to 450.
789 (max-inline-insns-auto): Change default to 90.
790 (max-inline-insns-recursive): Change default to 450
791 (max-inline-insns-recursive-auto): Change default to 450.
792 (large-function-insns): Change default to 2700.
793 (inline-call-cost): Document new parameter.
795 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
797 * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
798 (TARGET_DEFAULT): Delete.
799 * config/i860/i860.opt: New file.
801 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
803 * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
804 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
805 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
806 (frv_sched_lookahead): Delete.
807 * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
808 (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
809 (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
810 (MASK_LIBPIC, MASK_ACC_4, MASK_PACK, MASK_LONG_CALLS)
811 (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
812 (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
813 (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
814 (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
815 (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
816 (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
817 (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
818 (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
819 (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
820 (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
821 (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
822 (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
823 (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
824 (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
825 (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
826 (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
827 (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
828 (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
829 * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
830 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
831 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
832 (frv_sched_lookahead): Delete.
833 (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
834 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
835 (frv_handle_option): New function. Move -mcpu= handling from...
836 (frv_override_options): ...here. Remove handling of other
838 (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
839 TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
840 (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
841 and TARGET_NO_MULTI_CE.
842 (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
844 * config/frv/frv.opt: New file.
846 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
848 * fold-const.c (fold_ternary): Take decomposed arguments of
850 (fold): Update a call to fold_ternary.
852 * fold-const.c (fold_build1, fold_build2, fold_build3): New.
853 * tree.h: Add corresponding prototypes.
855 2005-03-22 Jakub Jelinek <jakub@redhat.com>
858 * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
859 between jump table and its label.
860 * final.c (shorten_branches): Handle notes in between ADDR_VEC
861 resp. ADDR_DIFF_VEC and the label preceeding it.
862 (final_scan_insn): Likewise. Ensure ADDR_VEC resp. ADDR_DIFF_VEC
863 is emitted in the right section.
865 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
867 * fold-const.c (fold_unary, fold_binary): Update comments
870 2005-03-22 Hans-Peter Nilsson <hp@axis.com>
872 PR rtl-optimization/20527
873 * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
874 REG_INC note, test that the register also isn't mentioned in PRED
877 2005-03-22 Ben Elliston <bje@au.ibm.com>
879 * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
882 2005-03-21 Mike Stump <mrs@apple.com>
884 * varasm.c (default_assemble_visibility): Remove extra ().
886 2005-03-21 Roger Sayle <roger@eyesopen.com>
889 * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
890 to determine whether a block can be duplicated, rather than test
891 whether the block contains noncopyable insns ourselves.
893 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
895 * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
898 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
900 * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
902 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
904 * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
905 (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
906 * config/fr30/fr30.opt: New file.
908 2005-03-18 Daniel Berlin <dberlin@dberlin.org>
910 Fix PR tree-optimization/20542
912 * tree-flow-inline.h (overlap_subvar): Move to here.
913 * tree-ssa-operands.c: From here.
914 * tree-flow.h (overlap_subvar): Declare.
915 * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
916 * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
917 for variables with subvars.
919 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
922 * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
923 * modulo-sched.c (const_iteration_count): Return on NULL
925 (print_node_sched_params): Return on NULL dump_file.
926 (generate_reg_moves): Handle reg-anti dependencies and disregard
927 closing branch when generating register moves.
928 (sms_schedule): Mark the SMSed block dirty.
929 * passes.c (rest_of_handle_sms): Call update_life_info for all
931 * testsuite/gcc.dg/20050321-1.c: New test.
933 2005-03-21 Bob Wilson <bob.wilson@acm.org>
935 * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
936 * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
937 movqi_internal): Likewise.
939 2005-03-21 Bob Wilson <bob.wilson@acm.org>
941 * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
942 xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
943 xtensa_b4const): Delete prototypes.
944 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
945 xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
946 (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
947 xtensa_extra_constraint): New prototypes.
948 (add_operand, arith_operand, nonimmed_operand, mem_operand,
949 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
950 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
951 move_operand, const_float_1_operand, fpmem_offset_operand,
952 branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
953 * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
954 (xtensa_b4const_or_zero): ...this. Change return type to bool and
955 argument type to HOST_WIDE_INT.
956 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
957 xtensa_mask_immediate): Likewise.
958 (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
959 Likewise. Also make these functions static.
960 (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
961 (xtensa_const_ok_for_letter_p): New.
962 (add_operand, arith_operand, nonimmed_operand, mem_operand,
963 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
964 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
965 move_operand, const_float_1_operand, fpmem_offset_operand,
966 branch_operator, ubranch_operator, boolean_operator): Move to
968 (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
969 (xtensa_mem_offset): Change return type to bool.
970 (xtensa_extra_constraint): New.
971 (gen_int_relational): Update type of const_range_p function pointer.
972 Use xtensa_b4const_or_zero.
973 * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
974 xtensa_const_ok_for_letter_p. Update comments.
975 (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
976 (PREDICATE_CODES): Delete.
977 * config/xtensa/xtensa.md: Include predicates.md.
978 * config/xtensa/predicates.md: New file.
980 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
982 * config/v850/v850-protos.h: Remove the prototypes for
983 reg_or_int9_operand, reg_or_const_operand,
984 pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
985 reg_or_0_operand, reg_or_int5_operand, call_address_operand,
986 movsi_source_operand, power_of_two_operand,
987 not_power_of_two_operand, special_symbolref_operand,
988 pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
989 register_is_ok_for_epilogue.
990 * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
991 reg_or_int9_operand, reg_or_const_operand,
992 call_address_operand, special_symbolref_operand,
993 movsi_source_operand, power_of_two_operand,
994 not_power_of_two_operand, register_is_ok_for_epilogue,
995 pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
996 pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
998 * config/v850/v850.h (PREDICATE_CODES): Remove.
999 * config/v850/v850.md: Include predicates.md.
1000 * config/v850/predicates.md: New.
1002 2005-03-21 Zack Weinberg <zack@codesourcery.com>
1004 * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
1005 (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1006 (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
1007 (itoolsdir, itoolsdatadir): Move definition above new first use.
1008 (install-itoolsdirs): New rule.
1009 (install-mkheaders): Depend on install-itoolsdirs, not
1010 install-include-dir.
1012 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
1014 * tree-into-ssa.c: Remove obsolete comments.
1016 2005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
1018 * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
1019 unrolling if -fpeel-loops is specified, too.
1020 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1021 Remove superfluous check for flag_unroll_loops.
1023 2005-03-21 Uros Bizjak <uros@kss-loka.si>
1025 * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
1026 (lrint_optab, llrint_optab): Define corresponding macros.
1027 * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
1028 * genopinit.c (optabs): Implement lrint_optab using lrintsi2
1029 pattern and llrint_optab using llrintdi2 patterns.
1030 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
1031 using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
1032 (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
1033 BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
1034 flag_unsafe_math_optimizations is set.
1036 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
1038 * combine.c (combine_simplify_rtx, simplify_if_then_else,
1039 simplify_logical, if_then_else_cond, known_cond,
1040 simplify_comparison): Adjust calls to reverse_comparison.
1041 Don't use combine_reversed_comparison_code).
1042 (combine_reversed_comparison_code): Remove.
1043 (reversed_comparison): Using reversed_comparison_code, move it...
1044 * jump.c (reversed_comparison): ... here.
1045 * rtl.h (reversed_comparison): Add prototype.
1047 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
1049 * builtins.c (fold_builtin): Take decomposed arguments of
1051 * fold-const.c (fold_ternary): Update a call to fold_builtin.
1052 * gimplify.c (gimplify_call_expr): Likewise.
1053 * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
1054 * tree.h: Update the prototype of fold_builtin.
1056 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
1058 * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
1059 * rtlhooks.c (gen_lowpart_no_emit_general): New.
1060 * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
1061 (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
1062 * simplify-rtx.c (simplify_binary_operation_1): Use it.
1064 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
1066 * builtins.c (fold_builtin_1): Take decomposed arguments of
1068 (fold_builtin): Update a call to fold_builtin_1.
1070 2005-03-21 Nathan Sidwell <nathan@codesourcery.com>
1073 * gcov.c (output_lines): Only output function block summary when
1074 outputting branch information.
1075 * doc/gcov.texi: Document format of preamble and additional block
1078 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
1080 * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
1081 (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
1082 the defaults false if BITS_PER_UNIT != 8.
1083 (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
1084 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
1085 than BITS_PER_UNIT != 8.
1086 (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
1087 (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
1088 (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
1090 * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
1091 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
1093 2005-03-20 Roger Sayle <roger@eyesopen.com>
1096 * fold-const.c (fold_binary): Fix type mismatch between
1097 TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
1098 (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
1099 for non-truth-valued expressions.
1101 * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
1102 and FUNCTION_DECL in the main switch.
1103 <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
1104 TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
1105 we also need to convert their operands to match.
1106 <TRUTH_NOT_EXPR>: Likewise.
1108 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
1110 * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
1111 diagnostic without checking whether an lvalue.
1112 * c-common.h (lvalue_p): Remove.
1113 (enum lvalue_use): Update comment.
1114 (lvalue_or_else): Replace by lvalue_error.
1115 * c-typeck.c (lvalue_p): Make static.
1116 (lvalue_or_else): New. Call lvalue_error.
1118 2005-03-21 Alan Modra <amodra@bigpond.net.au>
1120 * config/rs6000/rs6000.c (rs6000_parm_start): New function.
1121 (function_arg_advance): Use rs6000_parm_start.
1122 (function_arg, rs6000_arg_partial_bytes): Likewise.
1124 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
1126 * c-common.c (check_case_value): Adjust comment about stripping
1128 (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
1129 * c-typeck.c (default_conversion, convert_arguments,
1130 build_modify_expr, convert_for_assignment, store_init_value,
1131 digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
1132 manually. Remove inaccurate comments.
1134 2005-03-20 Roger Sayle <roger@eyesopen.com>
1135 Joseph S. Myers <joseph@codesourcery.com>
1137 * varasm.c (do_assemble_alias): Restore comment describing function.
1138 Annotate the target parameter as potentially unused.
1140 2005-03-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
1143 * config/avr/avr.c (avr_output_function_prologue): Do not use
1144 current_function_name() in a label, use a local label instead.
1146 2005-03-20 David Edelsohn <edelsohn@gnu.org>
1148 * config/rs6000/rs6000.c (rs6000_generate_compare): Test
1149 flag_finite_math_only, not flag_unsafe_math_optimizations.
1151 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
1153 * builtins.c (fold_builtin_1): Update a call to
1154 targetm.fold_builtin.
1155 * hooks.c (hook_tree_tree_bool_null): Rename to
1156 hook_tree_tree_tree_bool_null. Take one more argument of type
1158 * hooks.h: Update the prototype of hook_tree_tree_bool_null.
1159 * target-def.h (TARGET_FOLD_BUILTIN): Define it as
1160 hook_tree_tree_tree_bool_null.
1161 * target.h (gcc_target): Update the prototype of fold_builtin.
1162 * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
1163 arguments of CALL_EXPR.
1164 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update. Mention the
1167 2005-03-20 Jan Hubicka <jh@suse.cz>
1169 * cgraph.h (cgraph_node): Add prev_clone pointer.
1170 * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
1171 (cgraph_clone_node): Produce doubly linked chain.
1173 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
1175 * c-common.c (handle_aligned_attribute, check_function_sentinel,
1176 get_nonnull_operand, handle_sentinel_attribute,
1177 check_function_arguments_recurse): Do not strip NOPS from
1179 * c-decl.c (check_bitfield_type_and_width, build_enumerator):
1181 * c-format.c (get_constant): Likewise.
1182 * c-parser.c (c_parser_postfix_expression): Likewise.
1183 * c-typeck.c (set_init_index): Likewise.
1184 (convert_arguments): Don't check for NOP_EXPR containing integer
1187 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
1189 * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
1190 fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
1191 Take decomposed arguments of CALL_EXPR.
1192 (fold_builtin_1): Update calls to the functions mentioned
1195 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
1197 * c-decl.c (check_bitfield_type_and_width): Require bit-field
1198 width to have integer type.
1199 (build_enumerator): Require enumerator value to have integer type.
1201 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
1203 * doc/extend.texi (__builtin_inf): Move statement about INFINITY
1206 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
1208 * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
1209 std=iso9899:199x): Correct descriptions.
1211 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
1213 * config.gcc: Consistently use solaris2.1[0-9]* instead of
1216 2005-03-19 Kazu Hirata <kazu@cs.umass.edu>
1218 * builtins.c (fold_builtin_memcpy): Take decomposed arguments
1220 (expand_builtin_memcpy, fold_builtin_1): Update calls to
1221 fold_builtin_memcpy.
1223 * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
1224 arguments of CALL_EXPR.
1225 (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
1226 fold_builtin_found, fold_builtin_1): Update calls to
1227 fold_trunc_transparent_mathfn.
1229 2005-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1232 * fold-const.c (fold_widened_comparison): Don't optimize casts of
1233 function pointers on targets that require function pointer
1235 (fold_sign_changed_comparison): Likewise.
1237 2005-03-19 Bernd Schmidt <bernd.schmidt@analog.com>
1239 * combine.c (try_combine): When changing the mode of a hard reg, make
1240 sure that doing so is valid.
1242 2005-03-19 Richard Sandiford <rsandifo@redhat.com>
1244 * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
1245 (TARGET_HANDLE_OPTION): Override default.
1246 (avr_handle_option): New function.
1247 * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
1248 (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
1249 (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
1250 (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
1251 (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
1252 (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
1253 (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
1254 (TARGET_OPTIONS): Delete.
1255 * config/avr/avr.opt: New file.
1257 2005-03-18 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1259 * config/m32r/m32r-protos.h: Remove the prototypes for
1260 call_address_operand, symbolic_operand, seth_add3_operand,
1261 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1262 reg_or_uint16_operand, reg_or_cmp_int16_operand,
1263 two_insn_const_operand, move_src_operand,
1264 move_double_src_operand, move_dest_operand,
1265 eqne_comparison_operator, signed_comparison_operator,
1266 large_insn_p, conditional_move_operand, carry_compare_operand,
1267 m32r_block_immediate_operand, extend_operand,
1268 reg_or_eq_int16_operand, int8_operand, and
1269 reg_or_zero_operand.
1270 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1271 seth_add3_operand, int8_operand, cmp_int16_operand,
1272 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1273 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1274 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1275 move_double_src_operand, move_dest_operand,
1276 eqne_comparison_operator, signed_comparison_operator,
1277 extend_operand, small_insn_p, large_insn_p,
1278 conditional_move_operand, carry_compare_operand,
1279 m32r_block_immediate_operand): Move to predicates.md.
1280 (MAX_MOVE_BYTES): Move to m32r.h.
1281 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1282 * config/m32r/m32r.md: Include predicates.md.
1283 * config/m32r/predicates.md: New.
1285 2005-03-18 James E Wilson <wilson@specifixinc.com>
1288 * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
1291 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1293 * config/mn10300/mn10300-protos.h: Remove the prototypes for
1294 call_address_operand, const_8bit_operand.
1295 * config/mn10300/mn10300.c (call_address_operand,
1296 const_8bit_operand, const_1f_operand): Move to predicates.md.
1297 * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
1298 * config/mn10300/mn10300.md: Include predicates.md.
1299 * config/mn10300/predicates.md: New.
1301 2005-03-18 Joseph S. Myers <joseph@codesourcery.com>
1303 * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
1304 declarations in diagnostics and %E for identifiers, not %s.
1306 2005-03-18 Jan Hubicka <jh@suse.cz>
1307 Dale Johannesen <dalej@apple.com>
1309 * basic-block.h (scale_bbs_frequencies_int,
1310 scale_bbs_frequencies_gcov_type): Declare.
1311 * cfg.c (RDIV): New macro.
1312 (update_bb_frequency_for_threading): Fix.
1313 * basic-block.h (scale_bbs_frequencies_int,
1314 scale_bbs_frequencies_gcov_type): New.
1315 * cfgloopmanip.c (scale_bbs_frequencies): Kill.
1316 (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
1317 scale_bbs_frequencies_int.
1318 * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
1320 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1322 * config/m32r/m32r-protos.h: Remove the prototypes for
1323 call_address_operand, symbolic_operand, seth_add3_operand,
1324 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1325 reg_or_uint16_operand, reg_or_cmp_int16_operand,
1326 two_insn_const_operand, move_src_operand,
1327 move_double_src_operand, move_dest_operand,
1328 eqne_comparison_operator, signed_comparison_operator,
1329 large_insn_p, conditional_move_operand, carry_compare_operand,
1330 m32r_block_immediate_operand, extend_operand,
1331 reg_or_eq_int16_operand, int8_operand, and
1332 reg_or_zero_operand.
1333 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1334 seth_add3_operand, int8_operand, cmp_int16_operand,
1335 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1336 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1337 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1338 move_double_src_operand, move_dest_operand,
1339 eqne_comparison_operator, signed_comparison_operator,
1340 extend_operand, small_insn_p, large_insn_p,
1341 conditional_move_operand, carry_compare_operand,
1342 m32r_block_immediate_operand): Move to predicates.md.
1343 (MAX_MOVE_BYTES): Move to m32r.h.
1344 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1345 * config/m32r/m32r.md: Include predicates.md.
1346 * config/m32r/predicates.md: New.
1348 * config/pa/pa-protos.h: Add prototypes for magic_milli and
1350 * config/pa/pa.c (reg_or_0_operand, call_operand_address,
1351 symbolic_operand, symbolic_memory_operand,
1352 reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
1353 indexed_memory_operand, move_dest_operand, move_src_operand,
1354 prefetch_cc_operand, prefetch_nocc_operand,
1355 reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
1356 arith_operand, arith11_operand, pre_cint_operand,
1357 post_cint_operan, arith_double_operand, ireg_or_int5_operand,
1358 ireg_operand, int5_operand, uint5_operand, int11_operand,
1359 uint32_operand, arith5_operand, and_operand, ior_operand,
1360 lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
1361 pc_or_label_operand, div_operand, plus_xor_ior_operator,
1362 shadd_operand, movb_comparison_operator,
1363 cmpib_comparison_operator): Move to predicates.md.
1364 (magic_milli, shadd_constant_p): Make it extern.
1365 * config/pa/pa.h (PREDICATE_CODES): Remove.
1366 * config/pa/pa.md: Include predicates.md.
1367 * config/pa/predicates.md: New.
1369 * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
1372 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1374 * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
1375 config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
1376 config/alpha/freebsd.h, config/alpha/linux.h,
1377 config/alpha/netbsd.h, config/alpha/osf5.h,
1378 config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
1379 config/h8300/h8300-protos.h, config/h8300/h8300.c,
1380 config/h8300/h8300.h, config/ia64/unwind-ia64.c,
1381 doc/cppopts.texi: Update copyright.
1383 2005-03-18 Jan Hubicka <jh@suse.cz>
1386 * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
1388 * varasm.c (find_decl_and_mark_needed): Mark needed only when not
1391 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1393 * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
1396 2005-03-18 Paolo Bonzini <bonzini@gnu.org>
1398 * combine.c (gen_binary): Remove.
1399 (known_cond, simplify_shift_const, find_split_point,
1400 combine_simplify_rtx, simplify_if_then_else, simplify_set,
1401 simplify_logical, expand_field_assignment, extract_left_shift,
1402 force_to_mode, if_then_else_cond, apply_distributive_law,
1403 simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
1404 simplify_comparison, reversed_comparison): Replace with
1405 simplify_gen_binary, simplify_gen_relational or
1406 distribute_and_simplify_rtx.
1407 (distribute_and_simplify_rtx): New function.
1409 2005-03-18 Alexey Neyman <alex.neyman@auriga.ru>
1410 Paolo Bonzini <gcc.gnu.org>
1412 * calls.c (setjmp_call_p, special_function_p): Update comments
1413 at the head of the functions.
1415 2005-03-18 Jan Hubicka <jh@suse.cz>
1417 * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
1419 * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
1420 function body should be released; do not proactively release function
1421 bodies in non-unit-at-a-time mode.
1423 2005-03-18 Ralf Corsepius <ralf.corsepius@rtems.org>
1425 * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
1426 mno-fp-ret-in-387 multilib variants.
1428 2005-03-18 Richard Sandiford <rsandifo@redhat.com>
1430 * common.opt (m): Remove.
1431 * opts.c (handle_option): Pass 'm' options to set_target_switch if
1433 (common_handle_option): Remove OPT_m case.
1435 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
1437 * builtins.c (fold_builtin_bitop): Take decomposed arguments
1439 (fold_builtin_1): Update a call to fold_builtin_bitop.
1441 * builtins.c (fold_builtin_signbit): Take decomposed arguments
1443 (fold_builtin_1): Update a call to fold_builtin_signbit.
1445 2005-03-17 Dorit Naishlos <dorit@il.ibm.com>
1447 PR tree-optimization/20474
1448 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
1449 size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
1451 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
1453 * config/h8300/h8300-protos.h: Remove prototypes for
1454 general_operand_src, general_operand_dst, single_one_operand,
1455 single_zero_operand, call_insn_operand,
1456 two_insn_adds_subs_operand, small_call_insn_operand,
1457 jump_address_operand, bit_operand, bit_memory_operand,
1458 stack_pointer_operand, const_int_gt_2_operand,
1459 const_int_ge_8_operand, const_int_qi_operand,
1460 const_int_hi_operand, incdec_operand, bit_operator,
1461 nshift_operator, eqne_operator, gtle_operator,
1462 gtuleu_operator, iorxor_operator.
1463 Add prototypes for h8sx_shift_type h8sx_classify_shift and
1464 h8300_ldm_stm_parallel.
1465 * config/h8300/h8300.c (h8sx_shift_type,): Move to
1467 (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
1468 SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
1469 (h8300_ldm_stm_parallel): Make it extern.
1470 (h8300_ldm_parallel, h8300_stm_parallel,
1471 h8300_return_parallel, general_operand_src,
1472 general_operand_dst, h8300_dst_operand, h8300_src_operand,
1473 nibble_operand, reg_or_nibble_operand, single_one_operand,
1474 single_zero_operand, call_insn_operand,
1475 two_insn_adds_subs_operand, small_call_insn_operand,
1476 jump_address_operand, bit_operand, bit_memory_operand,
1477 stack_pointer_operand, const_int_gt_2_operand,
1478 const_int_ge_8_operand, const_int_qi_operand,
1479 const_int_hi_operand, incdec_operand, eqne_operator,
1480 gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
1481 h8sx_binary_memory_operator, h8sx_unary_memory_operator,
1482 h8sx_unary_shift_operator, h8sx_binary_shift_operator,
1483 nshift_operator): Move to predicates.md.
1484 * config/h8300/h8300.h (PREDICATE_CODES): Remove.
1485 * config/h8300/h8300.md: Include predicates.md.
1486 * config/h8300/predicates.md: New.
1488 2005-03-17 Richard Henderson <rth@redhat.com>
1490 * config.gcc (ia64*-*-hpux*): Add extra_options.
1491 * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
1492 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1493 * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
1494 (ia64_tls_size_string, ia64_tune_string): Remove.
1495 (ia64_tune): Init to PROCESSOR_ITANIUM2.
1496 (TARGET_DEFAULT_TARGET_FLAGS): New.
1497 (TARGET_HANDLE_OPTION): New.
1498 (ia64_override_options): Move options parsing ...
1499 (ia64_handle_option): ... here. New.
1500 * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
1501 MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
1502 MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
1503 MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
1504 MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
1505 MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
1506 MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
1507 TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
1508 TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
1509 TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
1510 TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
1511 TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
1512 TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
1513 TARGET_EARLY_STOP_BITS): Remove.
1514 (TARGET_ILP32): Default false.
1515 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
1516 (enum ia64_inline_type): New.
1517 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1518 * config/ia64/ia64.md: Update for new definitions of
1519 TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
1520 * config/ia64/ia64.opt: New file.
1521 * config/ia64/ilp32.opt: New file.
1523 2005-03-17 H.J. Lu <hongjiu.lu@intel.com>
1526 * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
1528 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
1530 * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
1531 instead of MASK_H8300S.
1532 * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
1533 MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
1534 MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
1535 MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
1536 TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
1537 TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
1538 TARGET_SWITCHES): Remove.
1539 (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
1541 * config/h8300/h8300.opt: New.
1543 * config/alpha/alpha.opt, config/arc/arc.opt,
1544 config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
1547 2005-03-17 Ian Lance Taylor <ian@airs.com>
1551 2005-03-17 Richard Sandiford <rsandifo@redhat.com>
1553 * config/arc/arc.c (arc_cpu_string): Make static. Default to "base"
1554 (arc_text_string, arc_data_string, arc_rodata_string): Make static.
1555 (TARGET_HANDLE_OPTION): Override default.
1556 (arc_handle_option): New function.
1557 (arc_init): Remove code to set arch_cpu_string.
1558 * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
1559 (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
1560 (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
1561 (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
1562 (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
1563 (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
1564 (arc_rodata_string, TARGET_OPTIONS): Delete.
1565 * config/arc/arc.opt: New file.
1567 2005-03-17 Richard Henderson <rth@redhat.com>
1569 * doc/extend.texi (Weak Pragmas): New section.
1570 (attribute alias): Clarify that target must be in the same
1573 2005-03-17 Richard Henderson <rth@redhat.com>
1575 * config/alpha/alpha.opt: New file.
1576 * config/alpha/alpha.c (alpha_tune): New. Rename all existing uses
1578 (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
1579 alpha_fprm_string, alpha_fptm_string): Make static.
1580 (alpha_tls_size_string): Remove.
1581 (alpha_handle_option): New.
1582 (override_options): Update for alpha_cpu/alpha_tune split.
1583 (alpha_file_start): Likewise.
1584 (TARGET_DEFAULT_TARGET_FLAGS): New.
1585 (TARGET_HANDLE_OPTION): New.
1586 * config/alpha/alpha.h (alpha_tune): Declare.
1587 (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
1588 MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
1589 MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
1590 TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
1591 TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
1592 TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
1593 MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
1594 MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
1595 TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
1596 TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
1597 (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
1598 (TARGET_DEFAULT): Remove MASK_FP.
1599 (TARGET_FP): Redefined based on TARGET_SOFT_FP.
1600 (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
1601 (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
1602 alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
1603 alpha_tls_size_string): Remove.
1604 * config/alpha/alpha.md (prefetch): Use alpha_cpu.
1605 (attribute tune): Rename from attribute cpu.
1606 * config/alpha/ev4.md: Update to match.
1607 * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
1608 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
1609 * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
1610 * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
1611 * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
1612 * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
1614 2005-03-16 James E. Wilson <wilson@specifixinc.com>
1616 * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
1617 and return without creating new state if before_nops_num is nonzero.
1618 * config/ia64/ia64.md (first_insn): New attribute.
1619 (alloc): Set it to yes.
1621 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1623 * tree-vectorizer.c (new_vec_stmt_info): Initialize
1624 STMT_VINFO_SUBVARS to NULL.
1625 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
1627 2005-03-16 Dale Johannesen <dalej@apple.com>
1629 * rtlanal.c (find_first_parameter_load): Rewrite to
1630 return actual first param load or the call if none,
1631 instead of first in block, when not all loads exist.
1633 2005-03-16 Roger Sayle <roger@eyesopen.com>
1635 * optabs.c (expand_copysign_absneg): Make static.
1636 * optabs.h (expand_copysign_absneg): Delete prototype.
1637 * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
1639 2005-03-16 Richard Henderson <rth@redhat.com>
1642 * varasm.c (struct alias_pair): Rename from struct output_def_pair.
1643 (alias_pairs): Rename from output_defs.
1644 (find_decl_and_mark_needed): Split out from assemble_alias.
1645 (do_assemble_alias): New.
1646 (assemble_output_def): Remove.
1647 (finish_aliases_1, finish_aliases_2): New.
1648 (process_pending_assemble_output_defs): Remove.
1649 (assemble_alias): Defer aliases for which we don't yet have a
1650 non-external decl for the target symbol.
1651 * passes.c (rest_of_decl_compilation): Register variables with cgraph.
1652 * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
1653 * toplev.c (compile_file): Use finish_aliases_2 instead of
1654 process_pending_assemble_output_defs.
1655 * tree.h (finish_aliases_1, finish_aliases_2): Declare.
1656 (process_pending_assemble_output_defs): Remove.
1658 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1660 Fix PR tree-optimization/20489
1662 * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
1663 for empty structures.
1665 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1667 Fix PR tree-optimization/20490
1669 * tree-ssa-pre.c (create_expression_by_pieces): Use
1670 force_gimple_operand on result of fold.
1672 2005-03-16 Andrew Pinski <pinskia@physics.uc.edu>
1674 * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
1675 of closing parenthesis.
1677 2005-03-16 Kazu Hirata <kazu@cs.umass.edu>
1679 * builtins.c (expand_movstr): Update a call to
1680 fold_builtin_strcpy.
1681 (expand_builtin_strncpy): Update a call to
1682 fold_builtin_strncpy.
1683 (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
1684 arguments of CALL_EXPR.
1685 (fold_builtin_1): Update calls to fold_builtin_strcpy and
1686 fold_builtin_strncpy.
1687 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1688 * tree.h: Update the prototypes of fold_builtin_strcpy and
1689 fold_builtin_strncpy.
1691 2005-03-16 Steven Bosscher <stevenb@suse.de>
1692 Dorit Naishlos <dorit@il.ibm.com>
1694 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
1695 UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
1698 2005-03-16 Steven Bosscher <stevenb@suse.de>
1700 * tree-inline.c (walk_type_fields, walk_tree,
1701 walk_tree_without_duplicates): Move from here...
1702 * tree.c: ...to here.
1704 2005-03-15 Zack Weinberg <zack@codesourcery.com>
1706 * BASE-VER, DATESTAMP, DEV-PHASE: New files.
1707 * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
1708 (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1709 (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
1710 (version): Define using $(BASEVER_c).
1711 (Makefile, config.status, build/gcov-iov.o): No longer depends on
1713 (version.o): Depend on version files; add custom generation command.
1714 (prefix.o): Define BASEVER on command line.
1715 (s-iov): Depend on version files; adjust command.
1716 (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
1718 (gcc-vers.texi): New rule.
1719 (doc/%.info, doc/%.dvi): Add -I . to command line.
1720 (doc/gccinstall.dvi): Likewise.
1721 (PACKAGE): Delete. All uses replaced with "gcc".
1722 * aclocal.m4: Do not include gcc-version.m4.
1723 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1724 Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
1725 Set is_release based on contents of DEV-PHASE.
1726 Set gcc_version based on contents of BASE-VER.
1727 Define WIN32_REGISTRY_KEY only if the user overrode the default.
1728 * config.in, configure: Regenerate.
1729 * gccbug.in: Determine version of GCC in use at runtime.
1730 * gcov-iov.c: Get version number and development phase from
1731 command line, not by including version.c.
1732 * intl.c: Replace all uses of PACKAGE with "gcc".
1733 * libada-mk.in: Delete unused "gcc_version" variable.
1734 * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
1735 * version.c: (VERSUFFIX): New hook for redistributors; adjust
1736 commentary to match.
1737 (version_string): Put together from pieces.
1738 * config/alpha/x-vms: Do not use $(gcc_version).
1739 * config/i386/t-nwld: Likewise.
1740 * doc/include/gcc-common.texi: Include gcc-vers.texi for
1741 version-GCC and DEVELOPMENT.
1743 2005-03-15 Roger Sayle <roger@eyesopen.com>
1745 PR tree-optimization/17454
1746 * tree.c (tree_size): Add case for TREE_BINFO.
1747 * fold-const.c (fold_checksum_tree): Only clear the overloaded
1748 field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
1750 2005-03-15 Roger Sayle <roger@eyesopen.com>
1752 * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
1753 op1 whilst expanding the signed widenening multiply variant.
1755 2005-03-15 Richard Sandiford <rsandifo@redhat.com>
1757 * toplev.c (display_target_options): Avoid unused variable warning if
1758 TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
1759 * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
1760 (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
1761 (mips_isa): Initialize to MIPS_ABI_DEFAULT.
1762 (mips_isa_info): New variable.
1763 (mips_parse_cpu): Remove the first argument and leave the caller
1765 (TARGET_HANDLE_OPTION): Override default.
1766 (mips_handle_option): New function. Move option validation code from...
1767 (override_options): ...here. Update calls to mips_parse_cpu.
1768 * config/mips/mips.h (mips_arch_string, mips_tune_string)
1769 (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
1770 (SUBTARGET_TARGET_OPTIONS): Delete.
1771 * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
1772 (mno-flush-func, mtune=): New options.
1774 2005-03-15 Roger Sayle <roger@eyesopen.com>
1775 Richard Henderson <rth@redhat.com>
1777 * real.c (c4x_single_format, c4x_extended_format): Provide values
1778 for signbit_ro for c4x's single and extended floating point formats.
1779 * optabs.c (expand_copysign): Use the floating point format's
1780 signbit_ro for expanding via expand_copysign_absneg, and it's
1781 signbit_rw field for expanding via expand_copysign_bit.
1783 2005-03-15 Dorit Naishlos <dorit@il.ibm.com>
1785 * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
1786 known_alignment_for_access_p.
1787 (known_alignment_for_access_p): New.
1788 (do_peeling_for_alignment): Field made int instead of bool and renamed
1789 to peeling_for_alignment.
1790 (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
1791 * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
1792 functionality used to be in vect_analyze_operations.
1793 (vect_analyze_operations): Code to determine vectorization factor was
1794 moved to vect_determine_vectorization_factor.
1795 (vect_enhance_data_refs_alignment): Update to correct alignment when it
1796 is known instead of -1. Set LOOP_PEELING_FOR_ALIGNMENT to peeling
1798 (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
1799 be part of vect_analyze_operations).
1800 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
1801 creating the guard condition, as the number of iterations may be
1803 (slpeel_tree_peel_loop_to_edge): Use new name of
1804 LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
1805 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
1806 alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
1807 (vect_do_peeling_for_alignment): Use fold.
1808 (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
1810 (vect_update_inits_of_dr): Renamed to
1811 vect_update_init_of_dr.
1812 (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
1813 (vectorizable_store): Fix assertion to use == instead of =.
1815 2005-03-15 Daniel Jacobowitz <dan@codesourcery.com>
1817 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
1818 call_used_regs for wCG registers.
1820 2005-03-15 Ulrich Weigand <uweigand@de.ibm.com>
1822 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
1823 for non-offsettable memory references to cope with outstanding reload
1824 replacements, take 2.
1826 2005-03-15 Uros Bizjak <uros@kss-loka.si>
1829 * config/i386/i386.h (x86_fisttp): New.
1830 (TARGET_FISTTP): New macro.
1831 * config/i386/i386.c (x86_fisttp): Set for NOCONA.
1832 (output_fix_trunc): Add fisttp parameter. Generate fisttp x87
1833 instruction when fisttp flag is set.
1834 * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
1836 * config/i386/i386.md (type attribute): Add fisttp.
1837 (unit attribute): Set to i387 for fisttp type.
1838 (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
1839 (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
1841 (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
1842 Generate fisttp patterns for TARGET_FISTTP. Implement using mode
1844 (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
1845 patterns for TARGET_FISTTP. Enable patterns for
1846 (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
1847 (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
1848 fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
1849 implement fisttp x87 insn.
1850 (fix_trunc*_i387_fisttp splitters): New patterns.
1851 (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
1852 Rename to *fix_trunc<mode>_i387_1. Implement using mode macros.
1853 Disable patterns for TARGET_FISTTP. Add comment about FLAGS_REG
1855 (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
1856 Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
1857 Implement using mode macros. Disable patterns for TARGET_FISTTP.
1858 (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
1859 fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
1860 fix_trunc<mode>_i387_with_temp. Implement using mode macros.
1861 Disable patterns for TARGET_FISTTP.
1862 (fix_trunc*_i387 splitters): Implement usign mode macros.
1863 (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
1864 fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
1865 (fix_trunx*_sse peephole2s): Implement using mode macros.
1867 2005-03-15 J"orn Rennecke <joern.rennecke@st.com>
1869 PR rtl-optimization/20291
1870 * combine.c (try_combine): If splitting fails, re-try with
1871 original combined pattern, i.e. before clobber stripping.
1873 2005-03-14 Eric Christopher <echristo@redhat.com>
1875 * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
1876 STACK_GROWS_DOWNWARD.
1878 2005-03-14 Roger Sayle <roger@eyesopen.com>
1880 * real.h (struct real_format): Split the signbit field into two
1881 two fields, signbit_ro and signbit_rw.
1882 * real.c (ieee_single_format, mips_single_format, ieee_double_format,
1883 mips_double_format, ieee_extended_motorola_format,
1884 ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
1885 ieee_extended_intel_128_format, ibm_extended_format,
1886 mips_extended_format, ieee_quad_format, mips_quad_format,
1887 vax_f_format, vax_d_format, vax_g_format, i370_single_format,
1888 i370_double_format, c4x_single_format, c4x_extended_format,
1889 real_internal_format): Update initializers for new field.
1890 * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
1891 real_format structure.
1892 * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
1893 field of the real_format structure.
1895 2005-03-14 Daniel Berlin <dberlin@dberlin.org>
1897 Fix PR tree-optimization/20458
1899 * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
1900 DECL_EXTERNAL on STRUCT_FIELD tags.
1901 (clear_call_clobbered): Ditto.
1902 * tree-ssa-operands.c (note_addressable): Make sure the original
1903 variable doesn't slip into the addressable list if we have
1905 * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
1908 2005-03-14 Geoffrey Keating <geoffk@apple.com>
1910 * doc/cppopts.texi (-fexec-charset): Add concept index entry.
1911 (-fwide-exec-charset): Likewise.
1912 (-finput-charset): Likewise.
1913 * doc/invoke.texi (Warning Options): Document -Wnormalized=.
1914 * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
1915 * c.opt (Wnormalized): New.
1917 2005-03-14 Devang Patel <dpatel@apple.com>
1919 * doc/invoke.texi: Add reference to Visibility document.
1921 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1923 * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
1924 MASK_SPLIT_ADDRESSES.
1925 * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
1926 (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
1927 (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
1928 (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
1929 (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
1930 (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
1931 (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
1932 (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
1933 (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
1934 (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
1935 (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
1936 (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
1937 (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
1938 (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
1939 (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
1940 (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
1941 (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
1942 (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
1943 (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
1944 (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
1945 (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
1946 (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
1947 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
1948 (TARGET_EXPLICIT_RELOCS): Delete.
1949 (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
1950 (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
1951 * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
1952 (override_options): Set MASK_LONG64 if -mint64 is given and no
1953 -mlongXX option is. Complain about -mint64 -mlong32.
1954 (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
1955 MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
1956 * config/mips/mips.opt: New file.
1958 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1960 * config.gcc (extra_options): New variable for listing option files.
1961 Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
1962 * configure.ac (extra_opt_files): New AC_SUBST variable.
1963 (tm_file_list, tm_include_list): Include options.h first.
1964 * configure: Regenerate.
1965 * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
1966 (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
1967 (s-options-h): New rule.
1968 (options.h): Depend on it.
1969 (TEXI_GCCINT_FILES): Add options.texi.
1970 * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
1971 * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
1972 * target.h (gcc_target): Add default_target_flags and handle_option.
1973 * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
1974 (TARGET_HANDLE_OPTION): New macros.
1975 (TARGET_INITIALIZER): Include them.
1976 * opt-functions.awk (opt_args, nth_arg): New functions.
1977 (switch_flags): Handle the "Target" flag.
1979 (var_name): Use opt_args and nth_arg.
1980 (var_set, var_ref): Likewise. Handle "Mask" and "InverseMask".
1981 * opth-gen.awk: Declare target_flags. Declare MASK_* and TARGET_*
1982 macros for the "Mask" and "InverseMask" options.
1983 * opts.h (cl_var_cond): New enum.
1984 (cl_option): Replace the "has_set_value" and "set_value" fields with
1985 "var_cond" and "var_value".
1986 (CL_TARGET): New macro.
1987 (option_enabled, print_filtered_help): Declare.
1988 (decode_options): Move definition.
1989 * opts.c (handle_option): Search for the original option before
1990 removing any "no-" prefix. Handle CL_TARGET. Adjust for the new
1991 var_cond and var_value fields. Use targetm.handle_option to handle
1993 (decode_options): Set target_flags to targetm.default_target_flags.
1994 (print_filtered_help): Make global. Handle CL_TARGET.
1995 (option_enabled): New function.
1996 * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
1997 (display_target_options, set_target_switch, print_switch_values)
1998 (default_pch_valid_p): Guard uses of target_switches with
1999 #ifdef TARGET_SWITCHES. Also...
2000 (display_target_options): Display the CL_TARGET entries in cl_options.
2001 (set_target_option): Don't complain about the "" option when
2002 TARGET_SWITCHES is undefined.
2003 (print_switch_values): Use option_enabled.
2004 (default_pch_valid_p): Check cl_options[] when looking for something
2005 that has changed the value of target_flags.
2006 * c.opt: Remove documentation from top of file.
2007 * doc/gccint.texi: Add an "Options" chapter. Include options.texi.
2008 * doc/sourecebuild.texi: Refer to the new options documentation
2009 instead of c.opt. Document machine-specific .opt files.
2010 * doc/tm.texi (target_flags): Say that this variable is declared
2012 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
2013 (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
2015 * doc/options.texi: New file.
2017 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
2020 * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
2023 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
2026 * gimplify.c (gimplify_cond_expr): Add fallback argument. Use a
2027 temporary variable of pointer type if an lvalues is required.
2028 (gimplify_modify_expr_rhs): Request an rvalue from it.
2029 (gimplify_expr): Pass fallback on.
2031 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
2033 * cfgbuild.c: Update comments.
2035 2005-03-14 Roger Sayle <roger@eyesopen.com>
2037 PR rtl-optimization/17236
2038 * optabs.c (expand_doubleword_mult): New helper function split out
2039 from expand_binop. Permute the order in which instructions are
2040 emitted to minimize the number of simultaneously live registers.
2041 (expand_binop): Call expand_doubleword_mult to synthesize a double
2042 word multiplication.
2044 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
2046 * basic-block.h: Update the prototypes of cached_make_edge and
2048 * cfg.c (cached_make_edge): Take edge_cache representing one
2049 row of the adjacency matrix of edges.
2050 * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
2051 (make_edges): Initialize edge_cache to represent one row of
2052 the adjacency matrix of edges.
2054 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
2056 * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
2058 (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
2059 Remove unused removed_phis variable.
2060 (conditional_replacement): Use build1/build2.
2061 (abs_replacement): Use last_and_only_stmt and build1/build2.
2063 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
2065 * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
2066 ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
2067 * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
2068 (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
2069 * c-common.c (handle_novops_attribute): New function.
2070 (c_common_attribute_table): Add "no vops" entry.
2071 * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
2072 * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
2073 * tree-ssa-operands.c (get_call_expr_operands): Do not
2074 create virtual operands for calls with ECF_NOVOPS flag.
2075 * tree.h (DECL_IS_NOVOPS): New macro.
2076 (struct tree_decl): Add novops_flag.
2077 (ECF_NOVOPS): New constant.
2079 2005-03-14 Uros Bizjak <uros@kss-loka.si>
2082 * config/i386/i386.c (x86_use_himode_fiop): New.
2083 (x86_use_simode_fiop): Rename from x86_use_fiop.
2084 * config/i386/i386.h (x86_use_himode_fiop): Declare.
2085 (TARGET_USE_HIMODE_FIOP): New.
2086 (x86_use_simode_fiop): Rename from x86_use_fiop.
2087 (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
2089 * config/i386/i386.md (X87MODEI12): New mode macro define.
2090 (*cmpfp_<mode>): Rename from *cmpfp_si. Use X87MODEI12 mode macro
2091 to implement x87 FP compare with HImode input operands.
2092 (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
2093 Use X87MODEI12 mode macro to handle HImode input operands.
2094 (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
2095 *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
2096 Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
2097 *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
2098 macro to implement x87 operators with HImode input operands.
2099 (fop splitters): Use X87MODEI12 mode macro to handle HImode
2102 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
2104 * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
2106 * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
2107 constants invariant.
2109 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
2111 * basic-block.h (BB_VISITED): Removed.
2112 * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
2114 2005-03-14 Falk Hueffner <falk@debian.org>
2117 * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
2119 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
2121 * ggc-zone.c: Fix comment typos.
2123 * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
2124 stringpool.c, config/mips/mips-protos.h: Update copyright.
2126 2005-03-14 Alan Modra <amodra@bigpond.net.au>
2128 * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
2129 throughout with its typedef, "rtx".
2130 * config/rs6000/rs6000.c: Likewise. Formatting fixes.
2131 (rs6000_tls_symbol_ref_1): Remove inline keyword.
2132 * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting. Reorder
2133 regs in comment to match code.
2135 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
2137 * except.c (check_handled): Make it static.
2138 * except.h: Remove the corresponding prototype.
2140 * function.c (get_func_frame_size): Make it static.
2141 * function.h: Remove the corresponding type.
2143 * regclass.c (reg_class_superclasses, reg_class_subclasses):
2145 * hard-reg-set.h: Remove the corresponding declarations.
2147 * tree-cfg.c (verify_stmts): Check that
2148 bb_for_stmt (stmt) == bb for every PHI node and statement.
2150 2005-03-14 Alan Modra <amodra@bigpond.net.au>
2152 * config.gcc: Remove excess indentation.
2153 (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
2155 2005-03-13 Roger Sayle <roger@eyesopen.com>
2158 * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
2159 * fold-const.c (fold_sign_changed_comparison): Likewise.
2160 (fold_binary): Optimize comparisons against widened operands if
2161 the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
2163 2005-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2165 * config/sparc/sparc.c (struct_value_alias_set): New global variable.
2166 (sparc_override_options): Initialize it.
2167 (sparc_struct_value_rtx): Set it on the MEM to be returned.
2169 2005-03-13 David Edelsohn <edelsohn@gnu.org>
2171 * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
2172 (reg_or_none500mem_operand): New predicate.
2173 (zero_reg_mem_operand): New predicate.
2174 * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
2175 to reg_or_none500mem_operand.
2176 (extendsfdf2_fpr): Add MEM alternative.
2177 (extenddftf2_internal): Change operand2 predicate to
2178 zero_reg_mem_operand.
2180 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2182 * ggc-zone.c: Rewritten.
2184 * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
2186 * configure.ac: Define GGC_ZONE for --with-gc=zone.
2187 * config.in: Regenerated.
2188 * configure: Regenerated.
2189 * gengtype.c (write_types_process_field, write_func_for_structure):
2190 Pass new argument to gt_pch_note_object.
2191 * ggc-common.c (struct ptr_data): Add TYPE.
2192 (gt_pch_note_object): Take TYPE argument and save it.
2193 (call_count): Update call to ggc_pch_count_object.
2194 (call_alloc): Update call to ggc_pch_alloc_object.
2195 (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
2197 * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
2198 * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
2199 (ggc_alloc_zone_stat): Delete.
2200 (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
2201 * ggc.h (gt_pch_note_object, ggc_pch_count_object)
2202 (ggc_pch_alloc_object): Update prototypes.
2203 (garbage_zone): Delete.
2204 (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
2205 GGC_ZONE conditional. Update. Change tree_zone and rtl_zone into
2207 (tree_id_zone): New variable.
2208 (ggc_alloc_cleared_zone): Remove unused.
2209 (ggc_alloc_zone): Define.
2210 (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
2211 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
2212 ggc_alloc_zone_stat.
2213 * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
2214 * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
2215 (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
2216 (make_node_stat): Likewise. Use tree_id_zone.
2218 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2219 Joseph S. Myers <joseph@codesourcery.com>
2221 * configure.ac: Check for MIPS TLS.
2222 * configure: Regenerated.
2223 * config/mips/mips-protos.h (enum mips_symbol_type): Add
2224 SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
2225 SYMBOL_GOTTPREL, and SYMBOL_TPREL.
2226 * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
2227 (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
2228 (mips_classify_symbol, mips_symbolic_constant_p)
2229 (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
2230 (mips_tls_operand_p, mips_call_tls_get_addr)
2231 (mips_legitimize_tls_address, mips_cannot_force_const_mem)
2232 (mips_tls_symbol_ref_1): New functions.
2233 (mips_legitimize_address, mips_legitimize_const_move): Call
2234 mips_legitimize_tls_address.
2235 (override_options): Handle V1_REG and TLS symbols. Disable TLS
2237 * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
2238 (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
2239 (mips_char_to_class): Document V1_REG.
2240 (HAVE_AS_TLS): Provide default.
2241 * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
2243 (load_got<mode>): Renamed from *load_got<mode>. Allow when
2245 (tls_get_tp_<mode>): New instruction.
2247 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2249 * configure.ac: Update checks for target tools.
2250 * configure: Regenerated.
2252 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
2254 * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
2256 2005-03-13 Roger Sayle <roger@eyesopen.com>
2258 * expmed.c (expand_mult): Use synthetic multiplication sequences for
2259 more classes of DImode multiplication by constant. Allow both
2260 multiplication by small negative constants (by performing a
2261 multiplication by a positive constant and negating the result) and
2262 multiplications by large powers of two, by using a left shift.
2264 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
2266 * tree-into-ssa.c (find_idf): Speed up by putting the indexes
2267 of basic blocks into work_stack.
2269 * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
2270 config/mips/vr.h: Update copyright.
2272 * c-decl.c (c_init_decl_processing): Remove useless calls to
2273 build_function_type.
2275 * builtins.c (fold_trunc_transparent_mathfn,
2276 fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
2277 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
2278 fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
2279 fold_builtin_strcpy, fold_builtin_strncpy,
2280 fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
2283 * builtins.c (expand_builtin_mathfn_3): Remove local variable
2286 * lambda-code.c (lambda_compute_auxillary_space): Remove local
2287 variable determinant.
2289 * tree-cfg.c (group_case_labels): Remove local variable type.
2291 * tree-ssa-live.c (build_tree_conflict_graph): Remove local
2294 * tree-ssa-phiopt.c (value_replacement): Remove local variable
2297 2005-03-13 Andy Hutchinson <HutchinsonAndy@netscape.net>
2300 * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
2301 (*movmemqi_insn): Delete.
2302 (*movmemhi): Delete.
2304 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
2306 * builtins.c (fold_builtin_classify): Take decomposed
2307 arguments of CALL_EXPR.
2308 (fold_builtin_1): Update a call to fold_builtin_classify.
2310 2005-03-13 Joseph S. Myers <joseph@codesourcery.com>
2313 * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
2314 through into call to parser_xref_tag after parse error.
2315 (c_parser_struct_declaration): Consistently return NULL_TREE on
2318 2005-03-12 Daniel Berlin <dberlin@dberlin.org>
2320 * tree-flow-inline.h (ref_contains_array_ref): New function.
2321 (lookup_subvars_for_var): Ditto.
2322 (get_subvars_for_var): Ditto.
2323 (var_can_have_subvars): Ditto.
2325 * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
2326 (struct subvar): New type.
2328 * tree-dfa.c (okay_component_ref_for_subvars): New function.
2330 * tree-optimize.c (init_tree_optimization_passes): Call
2331 pass_create_structure_vars.
2333 * tree-ssa-alias.c: Include vec.h.
2334 (init_alias_info): Don't auto-clear call clobbered on struct-field
2336 (compute_flow_insensitive_aliasing): Handle subvars.
2337 (group_aliases): Handle STRUCT_FIELD aliases.
2338 (setup_pointers_and_addressables): Ditto.
2339 Don't mark variables non-addressable if they still have
2340 addressable subvars.
2341 Also mark subvars addressable when the real variable is marked
2343 (add_pointed_to_var): Try to prune the pointed-to set by only
2344 pointing to subvars when possible.
2345 Otherwise, make sure we set addresses_needed and pt_vars to
2346 properly include subvars.
2347 (bitpos_of_field): New function.
2348 (push_fields_onto_fieldstack): Ditto.
2349 (get_or_create_used_part_for): Ditto.
2350 (create_overlap_variables_for): Ditto.
2351 (find_used_portions): Ditto.
2352 (create_structure_vars): Ditto.
2353 (pass_create_structure_vars): New structure.
2355 * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
2356 (get_expr_operands): Handle subvars. Also try to turn
2357 COMPONENT_REF accesses into must-defs now that we can accurately
2359 (note_addressable): Try to only mark as addressable those subvars
2360 we know a COMPONENT_REF touches.
2361 (overlap_subvar): New function.
2363 * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
2364 Handle subvar storing.
2365 (vect_address_analysis): Update caller of vect_object_analysis.
2367 * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
2369 * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
2370 (STMT_VINFO_SUBVARS): New macro.
2372 * common.opts: add flag_tree_salias.
2374 * opts.c (decode_options): flag_tree_salias defaults to on.
2376 * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
2378 * doc/tree-ssa.texi: Document structural alias analysis.
2380 2005-03-12 Steven Bosscher <stevenb@suse.de>
2382 * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
2383 * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
2384 * tree-ssa-operands.c (get_expr_operands): Likewise.
2385 (get_expr_operands): Likewise for ERROR_MARK.
2387 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
2389 * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
2392 * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
2395 * tree-ssa-pre.c (compute_avail): Remove local variable val.
2396 (mark_operand_necessary): Remove local variable ver.
2398 * tree-vect-transform.c (vect_get_new_vect_var): Remove local
2399 variable prefix_len.
2401 * value-prof.c (mod_subtract_transform): Remove local variable
2404 * builtins.c (fold_builtin_exponent): Take decomposed
2405 arguments of CALL_EXPR.
2406 (fold_builtin_1): Update a call to fold_builtin_exponent.
2408 * builtins.c (fold_builtin_logarithm): Take decomposed
2409 arguments of CALL_EXPR.
2410 (fold_builtin_1): Update a call to fold_builtin_logarithm.
2412 * c-decl.c (c_init_decl_processing): Remove local variables
2413 ptr_ftype_void and ptr_ftype_ptr.
2415 * gimplify.c (gimplify_expr): Remove local variables r0 and
2418 * reg-stack.c (move_for_stack_reg): Remove local variable
2420 (compare_for_stack_reg): Remove local variable flags_user.
2421 (convert_regs_1): Remove local variable deleted.
2423 * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
2425 (combine_blocks): Remove local variables exits and new_e.
2427 * tree-inline.c (expand_call_inline): Remove local variable
2430 * tree-ssa-live.c (create_ssa_var_map,
2431 calculate_live_on_entry): Remove local variable snn.
2433 2005-03-12 Geoffrey Keating <geoffk@apple.com>
2435 * c-lex.c (c_lex_with_flags): Add parameter to call to
2438 2005-03-11 Per Bothner <per@bothner.com>
2440 * c-tree.h (struct c_declarator): New id_loc field.
2441 * c-pragma.h (c_lex_with_flags): Take position reference.
2442 * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
2443 iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
2444 (c_lex): Pass dummy location to c_lex_with_flags.
2445 * c-parser.c (c_lex_one_token): Set c_token's location using
2446 c_lex_with_flags, instead of input_location, which might be "ahead".
2447 (c_parser_direct_declarator): Set declarator's id_loc from
2449 * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
2450 declarator's id_loc, rather than probably-imprecise input_location.
2451 (build_id_declarator): Initialize c_declarator's id_loc field.
2453 2005-03-11 Roger Sayle <roger@eyesopen.com>
2456 * builtins.c (expand_builtin_signbit): Force the signbit's word
2457 into an integer register to avoid SUBREGs of floating point modes.
2459 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
2461 * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
2462 target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
2463 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
2464 config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
2466 2005-03-11 David Edelsohn <edelsohn@gnu.org>
2468 PR rtl-optimization/20306
2469 * expr.c (emit_move_complex): Set try_int false if mode is
2470 MODE_COMPLEX_FLOAT and mov_optab exists for inner mode. Only try
2471 emit_block_move if try_int is true.
2473 2005-03-11 Richard Henderson <rth@redhat.com>
2476 * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
2477 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
2480 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
2482 * config/mips/mips.h (mips_fix_vr4130_string): Declare.
2483 (TARGET_FIX_VR4130): New macro.
2484 (TARGET_OPTIONS): Add -mfix-vr4130.
2485 (ISA_HAS_MACCHI): New macro.
2486 (ASM_SPEC): Add -mfix-vr4130.
2487 * config/mips/mips.c (mips_fix_vr4130_string): New variable.
2488 (override_options): Handle mips_fix_vr4130_string.
2489 (mips_avoid_hazards): Clear all_noreorder_p
2490 if we're working around VR4130 errata and the macc alternatives
2492 * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
2493 (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
2494 * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
2495 (MULTILIB_DEFAULTS): Remove leading "march=".
2496 (DRIVER_SELF_SPECS): Likewise. Make -mfix-vr4130 imply -march=vr4130
2497 if no architecture option is given.
2498 * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
2500 (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
2501 * doc/invoke.texi: Document -mfix-vr4130.
2503 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
2505 * config/mips/mips.c (override_options): Only warn about -mint64
2506 deprecation if TARGET_INT64.
2508 2005-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2510 * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
2511 ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
2512 ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
2513 are non-specific regarding the nonnull parameter positions.
2514 (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
2515 ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
2516 ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
2517 ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
2519 * builtins.def: Use the non-specific "nonnull" attibute lists.
2521 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
2523 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2524 single_pred_edge, single_succ, single_pred): Improve comments.
2526 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
2528 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2529 single_pred_edge, single_succ, single_pred): New inline functions.
2530 * bb-reorder.c (rotate_loop, find_traces_1_round,
2531 add_labels_and_missing_jumps, fix_up_fall_thru_edges,
2532 duplicate_computed_gotos): Use the single_succ/pred functions.
2533 * cfganal.c (forwarder_block_p): Ditto.
2534 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
2535 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2536 outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
2537 merge_seq_blocks): Ditto.
2538 * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
2539 * cfglayout.c (fixup_reorder_chain): Ditto.
2540 * cfgloop.c (mark_single_exit_loops, update_latch_info,
2541 canonicalize_loop_headers, verify_loop_structure): Ditto.
2542 * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
2543 mfb_update_loops, create_preheader, force_single_succ_latches,
2544 create_loop_notes): Ditto.
2545 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
2546 force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
2547 commit_one_edge_insertion, purge_dead_edges,
2548 cfg_layout_can_merge_blocks_p): Ditto.
2549 * except.c (sjlj_emit_function_enter): Ditto.
2550 * flow.c (init_propagate_block_info): Ditto.
2551 * function.c (thread_prologue_and_epilogue_insns): Ditto.
2552 * gcse.c (find_implicit_sets, bypass_conditional_jumps,
2553 insert_insn_end_bb): Ditto.
2554 * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
2555 find_if_case_2): Ditto.
2556 * lambda-code.c (perfect_nestify): Ditto.
2557 * lcm.c (optimize_mode_switching): Ditto.
2558 * loop-doloop.c (doloop_modify): Ditto.
2559 * loop-init.c (loop_optimizer_init): Ditto.
2560 * loop-iv.c (simplify_using_initial_values): Ditto.
2561 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
2562 * loop-unswitch.c (unswitch_loop): Ditto.
2563 * modulo-sched.c (generate_prolog_epilog): Ditto.
2564 * predict.c (combine_predictions_for_insn, estimate_probability,
2565 tree_estimate_probability, last_basic_block_p,
2566 estimate_bb_frequencies): Ditto.
2567 * profile.c (branch_prob): Ditto.
2568 * regrename.c (copyprop_hardreg_forward): Ditto.
2569 * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
2570 * tracer.c (layout_superblocks): Ditto.
2571 * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
2572 cfg_remove_useless_stmts_bb, cleanup_control_flow,
2573 cleanup_control_expr_graph, disband_implicit_edges,
2574 tree_find_edge_insert_loc, bsi_commit_edge_inserts,
2575 tree_verify_flow_info, tree_make_forwarder_block,
2576 tree_forwarder_block_p, remove_forwarder_block,
2577 remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
2578 * tree-if-conv.c (tree_if_conversion): Ditto.
2579 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
2580 * tree-ssa-dce.c (remove_dead_stmt): Ditto.
2581 * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
2582 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
2583 copy_loop_headers): Ditto.
2584 * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
2585 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
2586 * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
2587 lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
2588 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
2589 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
2590 * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
2591 * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
2592 * tree-ssa-threadupdate.c (redirect_edges): Ditto.
2593 * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
2594 eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
2595 * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
2596 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2597 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
2598 slpeel_add_loop_guard): Ditto.
2600 2005-03-11 James A. Morrison <phython@gcc.gnu.org>
2602 PR tree-optimization/15784
2603 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2606 * stmt.c (expand_case): Don't change index_type. Convert minval
2609 PR tree-optimization/20130
2610 * fold-const.c (fold): Fold x * -1 into -x.
2612 2005-03-11 Kaz Kojima <kkojima@gcc.gnu.org>
2614 PR rtl-optimization/20331
2615 * rtlanal.c (modified_between_p): Check its address first for MEM.
2616 (modified_in_p): Likewise.
2618 2005-03-11 Joseph S. Myers <joseph@codesourcery.com>
2620 * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
2622 2005-03-10 Steven Bosscher <stevenb@suse.de>
2624 * expr.c (expand_expr_real_1): If possible, use a conditional
2625 move for expanding MIN_EXPR and MAX_EXPR.
2626 Use temp for moving around rtx-en.
2628 2005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
2631 * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
2634 2005-03-10 Roger Sayle <roger@eyesopen.com>
2636 * builtins.c (expand_builtin_signbit): Extend to handle floating
2637 point modes wider than the largest integer type, using the
2638 operand_subword_force function to obtain the signbit's word.
2640 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2643 * combine.c (try_combine): If recog_for_combine added CLOBBERs
2644 to NEWI2PAT, fail to combine if they are used by NEWPAT.
2646 2005-03-10 Aldy Hernandez <aldyh@redhat.com>
2648 * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
2650 2005-03-10 Kazu Hirata <kazu@cs.umass.edu>
2652 * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
2654 (perform_edge_inserts): Unconditionally call
2655 free_dominator_info.
2657 * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
2659 2005-03-10 Bob Wilson <bob.wilson@acm.org>
2661 * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
2663 2005-03-10 Nathan Sidwell <nathan@codesourcery.com>
2665 * bitmap.c (bitmap_copy): Remove manual loop unrolling.
2667 * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
2669 (rtl_register_value_prof_hooks,
2670 tree_value_profile_transformations,
2671 tree_register_value_prof_hooks): Likewise.
2672 * var-tracking.c (stack_adjust_offset_pre_post,
2673 variable_htab_free, variable_union, dataflow_set_different_2,
2674 count_uses, variable_was_changed, set_frame_base_location,
2675 set_variable_part, emit_note_insn_var_location, vt_emit_notes,
2676 vt_add_function_parameters): Likewise.
2677 * varasm.c (named_section_real, named_section, make_decl_rtl,
2678 asm_emit_uninitialised, assemble_integer, decode_addr_const,
2679 const_hash_1, compare_constant, copy_constant, force_const_mem,
2680 output_constant_pool_2, output_constant_pool_1, output_constant,
2681 output_constructor, make_decl_one_only, decl_tls_model,
2682 default_no_named_section, default_elf_select_section_1,
2683 default_unique_section_1): Likewise.
2684 * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
2685 * vmsdbgout.c (addr_const_to_string): Likewise.
2688 * function.c (struct assign_parm_data_one): Remove last_named
2690 (assign_parm_find_data_types): Don't determine last_named.
2691 Reorder named_parm determination.
2692 (assign_parms): Only setup varargs on the last non-varadic
2695 2005-03-10 Kazuhiro Inaoka <inaoka.lazuhiro@renesas.com>
2697 * config/m32r/m32r.md (load_sda_base_32): New pattern. Loads
2698 sda base address on medium model.
2700 2005-03-10 Zdenek Dvorak <dvorakz@suse.cz>
2702 * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
2703 * cfgloop.c (flow_loop_nodes_find): Export.
2704 * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
2706 * cfgloopmanip.c (fix_loop_structure): New function.
2707 * predict.c (predict_loops): Clean up the loops information.
2708 * tree-cfg.c (cleanup_tree_cfg_loop): New function.
2709 (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
2711 * tree-flow.h (cleanup_tree_cfg_loop): Declare.
2712 (rewrite_into_loop_closed_ssa): Declaration changed.
2713 * tree-loop-linear.c (linear_transform_loops): Add argument to
2714 rewrite_into_loop_closed_ssa call.
2715 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2716 * tree-ssa-loop-im.c (move_computations): Ditto.
2717 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
2718 * tree-vectorizer.c (vectorize_loops): Ditto.
2719 * tree-optimize.c: Include cfgloop.h.
2720 (execute_todo): Choose whether to call cleanup_tree_cfg or
2721 cleanup_tree_cfg_loop.
2722 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
2723 (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
2724 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
2725 cleanup_tree_cfg_loop call.
2726 * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
2727 (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
2728 work on part of cfg.
2730 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2733 * gimplify.c (gimplify_asm_expr): Handle input/output constraints
2734 with multiple alternatives.
2736 * stmt.c (parse_output_constraint): Fix a typo.
2738 2005-03-09 Bob Wilson <bob.wilson@acm.org>
2740 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
2741 assembly directive instead of deprecated "no-generics".
2743 2005-03-09 Ulrich Weigand <uweigand@de.ibm.com>
2745 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
2746 for non-offsettable memory references to cope with outstanding reload
2748 * config/s390/s390.md ("reload_outti"): Call find_replacement to
2749 avoid losing outstanding address reloads.
2750 ("reload_outdi", "reload_outdf"): Likewise.
2752 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2754 * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
2755 code. Add more cbrt transformations.
2757 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2759 * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
2761 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
2763 * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
2764 NULL_TREE when a given tree is not simplified.
2765 (fold): Return the original tree when any of the functions
2766 mentioned above NULL_TREE.
2768 * fold-const.c (fold_unary, fold_binary): Take decomposed
2769 arguments, code, type, op0, and op1 in case of fold_binary.
2770 (fold): Update calls to fold_unary and fold_binary.
2772 2005-03-09 Roger Sayle <roger@eyesopen.com>
2774 * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
2775 a fndecl and an arglist instead of a CALL_EXPR, exp.
2777 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
2779 * cfglayout.c (fixup_reorder_chain): Remove old_bb.
2781 * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
2783 * expr.c (expand_assignment): Remove orig_to_rtx.
2785 * fold-const.c (int_const_binop): Remove no_overflow.
2787 * ifcvt.c (noce_emit_move_insn): Remove inmode.
2789 * loop-iv.c (get_biv_step_1): Remove lhs.
2791 * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
2793 * real.c (real_nan): Remove neg.
2795 * function.c (thread_prologue_and_epilogue_insns): Remove i
2798 * tree-data-ref.c (array_base_name_differ_p): Remove ta and
2801 * tree-eh.c (tree_could_trap_p): Remove idx.
2803 * tree-into-ssa.c (ann): Remove ann.
2805 * tree-outof-ssa.c (num_nodes): Remove num_nodes.
2807 * tree-sra.c (decide_block_copy): Remove inst_count.
2809 * tree-ssa-alias.c (may_alias_p): Remove v_ann.
2811 * tree-ssa-loop-im.c (lhs): Remove.
2813 * cfgbuild.c (state, STATE, SET_STATE,
2814 BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
2816 (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
2817 (find_basic_blocks): Set the state of each basic block to
2820 2005-03-08 Jeff Law <law@redhat.com>
2822 * tree-cfg.c (cleanup_control_flow): If removal of a computed
2823 goto results in the removal of edges in the CFG, then we need
2824 to recompute dominators.
2826 2005-03-09 Ben Elliston <bje@au.ibm.com>
2828 * c-common.c (c_do_switch_warnings): Comment fix.
2830 2005-03-08 Julian Brown <julian@codesourcery.com>
2832 * Patch from 2005-03-08 reverted for causing regressions and
2833 ppc-darwin bootstrap failure.
2835 2005-03-08 Fariborz Jahanian <fjahanian@apple.com>
2837 * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
2838 Define the real function for ppc-darwin.
2839 * c-typeck.c (convert_arguments): Check for target-specific
2840 invalid argument call to unprototyped function.
2841 * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
2843 * target.h (invalid_arg_for_unprototyped_fn): New field
2845 * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
2846 default target hook.
2847 * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
2850 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2852 * c-typeck.c (constructor_stack, constructor_range_stack,
2853 initializer_stack): Make them static.
2855 * cfg.c (rbi_pool): Make it static.
2857 * gimple-low.c (lower_stmt_body): Make it static.
2858 * tree-flow.h: Remove the corresponding prototype. Don't
2861 * sched-deps.c (cache_size): Make it static.
2863 * stor-layout.c (lang_adjust_rli): Make it static.
2865 2005-03-08 Julian Brown <julian@codesourcery.com>
2867 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
2868 from being used for symbols with vague linkage when
2869 HAVE_GAS_COMDAT_GROUP is true.
2871 2005-03-08 J"orn Rennecke <joern.rennecke@st.com>
2873 * jump.c (invert_jump_1): Don't call redirect_jump_1 with
2874 nlabel == JUMP_LABEL (jump).
2876 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2878 * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
2879 gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
2880 tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
2881 tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
2883 2005-03-08 Alexey Neyman <alex.neyman@auriga.ru>
2886 * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
2887 * c-common.c (handle_returns_twice): New function.
2888 (c_common_attribute_table): Declare eturns_twice' attribute.
2889 * doc/extend.texi: Document eturns_twice' attribute.
2890 * tree.h (DECL_IS_RETURNS_TWICE): New macro.
2891 (struct tree_decl): Add returns_twice_flag.
2893 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2895 * tree-ssa-phiopt.c: Fix a comment typo.
2897 * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
2898 loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
2899 config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
2902 2005-03-08 Richard Henderson <rth@redhat.com>
2904 * config/alpha/alpha.c (code_for_builtin): Replace special-case
2905 builtin codes with ctzdi2, clzdi2, popcountdi2.
2906 (struct alpha_builtin_def): Add is_const.
2907 (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
2908 (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
2909 (alpha_init_builtins): Init them. Set nothrow and const attributes
2911 (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
2912 alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
2913 alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
2914 alpha_fold_vector_minmax, alpha_fold_builtin_perr,
2915 alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
2916 alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
2917 alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
2918 alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
2919 (TARGET_FOLD_BUILTIN): New.
2920 * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
2921 (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
2923 (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
2925 2005-03-08 Ira Rosen <irar@il.ibm.com>
2927 PR tree-optimization/20122
2928 * tree-vect-analyze.c (vect_object_analysis): Analyze initial
2929 condition of access function instead of base.
2931 2005-03-07 Jeff Law <law@redhat.com>
2932 Steven Bosscher <stevenb@suse.de>
2934 * tree-cfg.c (find_taken_edge_computed_goto): New function.
2935 (find_taken_edge): Call find_taken_edge_computed_goto as
2936 appropriate. Allow any gimple invariant rather than just
2937 INTEGER_CST for VAL.
2938 (cleanup_control_flow): Cleanup a computed goto which has turned
2940 (tree_merge_blocks): If block B has any forced labels, move
2941 them to the start of block A.
2942 * tree-ssa-dom.c (thread_across_edge): Allow threading across
2943 computed gotos as well.
2944 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
2945 removal of unnecessary computed gotos too.
2946 (lookup_redirection_data): Fix type of INSERT argument. Callers
2949 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2951 * tree-ssa-phiopt.c: Update copyright. Fix indentations.
2952 Remove trailing spaces.
2954 * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
2955 unshare_all_trees): Make them static.
2956 * tree-gimple.h: Remove the corresponding prototypes.
2958 * diagnostic.h: Remove unused prototype
2959 debug_output_buffer.
2960 * modulo-sched.c: Remove unused prototype
2961 set_row_column_for_ps.
2963 * tree-ssa-phiopt.c (tree_ssa_phiopt,
2964 replace_phi_edge_with_variable): Remove unused variable i.
2966 2005-03-07 Per Bothner <per@bothner.com>
2968 * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
2970 2005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
2973 * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
2974 bbs on the COND_EXPR instead of the PHI_NODEs.
2975 (candidate_bb_for_phi_optimization): Remove.
2976 (replace_phi_with_stmt): Rename to ...
2977 (replace_phi_edge_with_variable): this and change so that we
2978 replace the phi argument instead of removing the PHI.
2979 (conditional_replacement): Change so we deal with PHI with more
2981 (value_replacement): Likewise.
2982 (abs_replacement): Likewise.
2984 2005-03-07 Aldy Hernandez <aldyh@redhat.com>
2986 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
2987 output_e500_flip_gt_bit.
2989 * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
2991 (rs6000_generate_compare): Fix logic to look at the correct bits.
2992 (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
2994 (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
2995 gen_e500_flip_gt_bit. Rename gen_move_from_CR_eq_bit to
2996 gen_move_from_CR_gt_bit.
2998 * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
2999 ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
3000 (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
3002 * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
3003 (E500_CR_IOR_COMPARE): New constant.
3005 2005-03-08 Earl Chew <earl_chew@agilent.com>
3006 David Billinghurst <David.Billinghurst@riotinto.com>
3008 * config/i386/host-cygwin.c: New file to support precompiled
3010 * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
3011 * config.host: Use above files for cygwin host.
3013 2005-03-07 David Edelsohn <edelsohn@gnu.org>
3015 * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
3016 ordering ops from earlier change.
3018 2005-03-07 Per Bothner <per@bothner.com>
3020 Various fixes to allow us to again build if --enable-mapped-location:
3021 * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
3022 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
3023 * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
3024 local variable loc. Change logic appropriately.
3025 * tree-vect-transform.c (vect_finish_stmt_generation): Use
3026 EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
3027 * c-parser.c (c_parser_for_statement): Initialize loc variable.
3028 * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
3029 DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
3031 2005-03-07 Richard Sandiford <rsandifo@redhat.com>
3033 PR rtl-optimization/19683
3034 * reload1.c (choose_reload_regs): Pass the number of bits, not the
3035 number of bytes, to smallest_int_for_mode. Fix arguments to
3036 REG_CANNOT_CHANGE_MODE_P.
3038 2005-03-07 Eric Botcazou <ebotcazou@libertysurf.fr>
3040 * reorg.c (relax_delay_slots): Check that the jump is
3041 conditional before trying to invert it.
3043 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
3045 * bb-reorder.c (max_entry_frequency, max_entry_frequency):
3048 * calls (stack_arg_under_construction): Make it static.
3050 * flow.c (regs_live_at_setjmp): Make it static.
3051 * flow.h: Remove the corresponding prototype.
3053 * reload1.c (reload_startobj, reload_firstobj,
3054 something_needs_operands_changed, reload_inherited,
3055 reload_inheritance_insn, reload_override_in,
3056 reload_spill_index): Make them static.
3058 * recog.c (verify_changes): Make it static.
3059 * recog.h: Remove the corresponding prototype.
3061 * cfgbuild.c (find_sub_basic_blocks): Remove.
3062 * basic-block.h: Remove the corresponding prototype.
3063 * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
3065 * doc/cfg.texi: Don't mention find_sub_basic_blocks.
3067 * tree-ssa-operands.c (check_build_stmt): Remove.
3069 * stor-layout.c (set_alignment): Remove.
3070 * tree.h: Remove the corresponding prototype.
3072 * tree-ssa-pre.c (has_abnormal_preds): Make it static.
3074 * tree-ssa-dce.c (control_dependence_map,
3075 visited_control_parents): Make them static.
3077 * cfghooks.c (verify_flow_info): Remove local variable
3080 * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
3083 * loop-unswitch.c (unswitch_loop): Remove local variable src.
3085 2005-03-07 David Billinghurst <David.Billinghurst@riotinto.com>
3087 * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
3089 2005-03-07 Joseph S. Myers <joseph@codesourcery.com>
3091 * config/ia64/hpux.h (LINK_SPEC): Add -z.
3092 * config/ia64/ia64.c (ia64_function_value): Return a REG not a
3093 PARALLEL for an empty structure.
3095 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
3097 * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
3099 * fold-const.c (fold_binary): Unroll the very first "for"
3102 2005-03-06 David Edelsohn <edelsohn@gnu.org>
3104 * config/rs6000/predicates.md (branch_comparison_operator): Remove
3105 redundant match_code test.
3106 (scc_comparison_operator): Swap match_operand and match_code
3108 (branch_positive_comparison_operator): Same.
3109 (trap_comparison_operator): Use comparison_operator and swap with
3112 2005-03-06 Marek Michalkiewicz <marekm@amelek.gda.pl>
3115 * config/avr/avr.c (print_operand): Add 'p' and 'r'.
3116 (out_movhi_r_mr): Read low byte of volatile MEM first.
3117 (out_movhi_mr_r): Write high byte of volatile MEM first.
3119 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
3121 * cselib.c (reg_values, reg_values_size): Make them static.
3123 * cse.c (cse_reg_info_table): Make it static.
3125 * fold-const.c (fold_unary): Use build1 instead of copy_node.
3127 2005-03-06 Zdenek Dvorak <dvorakz@suse.cz>
3129 * cse.c (find_best_addr): Use canon_for_address.
3131 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
3133 * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
3134 (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
3135 SUBREG and MEM, respectively.
3137 * fold-const.c (fold_binary): Use code instead of t.
3139 * fold-const.c (optimize_minmax_comparison): Take decomposed
3140 arguments code, type, op0, and op1 instead of t.
3141 (fold_binary): Update a call to optimize_minmax_comparison.
3143 * fold-const.c (fold_range_test): Take decomposed arguments
3144 code, type, op0, and op1 instead of t.
3145 (fold_binary): Update a call to fold_range_test.
3147 * fold-const.c (fold_binary_op_with_conditional_arg): Take
3148 decomposed arguments code, type, op0, and op1 instead of t.
3149 (fold_binary): Update a call to fold_range_test.
3151 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
3153 * fold-const.c (fold_binary): Avoid directly using the original
3154 expression t as much as possible.
3156 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
3158 * c-semantics.c (build_stmt): Use TYPE_P instead of
3159 IS_NON_TYPE_CODE_CLASS.
3160 * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
3161 (NON_TYPE_CHECK): Use TYPE_P instead of
3162 IS_NON_TYPE_CODE_CLASS.
3164 * fold-const.c (fold): Remove handling of binary expressions.
3166 2005-03-05 James A. Morrison <phython@gcc.gnu.org>
3168 * doc/c-tree.texi: Wrap comments in @r{}.
3169 * doc/cpp.texi: Likewise.
3170 * doc/cppinternals.texi: Likewise.
3171 * doc/extend.texi: Likewise.
3172 * doc/md.texi: Likewise.
3173 * doc/objc.texi: Likewise.
3174 * doc/sourcebuild.texi: Likewise.
3175 * doc/tm.texi: Likewise.
3178 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
3180 * predict.c (apply_return_prediction): Standardize PHI chain
3182 * tree-ssa.c (ssa_redirect_edge): Likewise.
3184 * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
3185 gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
3188 * tree-phinodes.c (remove_phi_node): Drop the last argument.
3189 * tree-flow.h: Adjust the prototype for remove_phi_node.
3190 * lambda-code.c (perfect_nestify): Adjust a call to
3193 (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
3194 * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
3196 * tree-ssa-dce.c (remove_dead_phis): Likewise.
3197 * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
3198 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
3199 * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
3201 * combine.c (simplify_and_const_int): Use gen_int_mode instead
3202 of GEN_INT (trunc_int_for_mode (...)).
3203 * loop-iv.c (iv_number_of_iterations): Likewise.
3204 * postreload.c (reload_cse_move2add): Likewise.
3205 * simplify-rtx.c (simplify_const_unary_operation,
3206 simplify_const_binary_operation): Likewise.
3207 * stor-layout.c (get_mode_bounds): Likewise.
3209 * fold-const.c (fold_binary): New.
3210 (fold): Call fold_binary on binary expressions.
3212 2005-03-05 Richard Sandiford <rsandifo@redhat.com>
3214 * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
3215 * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
3216 (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
3217 (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
3218 (ASM_SPEC): Pass down -msym32 and -mno-sym32.
3220 2005-03-04 Devang Patel <dpatel@apple.com>
3222 PR tree-optimization/18815
3223 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
3224 loops with zero exit edges.
3226 2005-03-04 Devang Patel <dpatel@apple.com>
3228 * doc/invoke.texi: Remove reference to webpage that does not exist.
3230 2005-03-04 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
3231 Joseph S. Myers <joseph@codesourcery.com>
3234 * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
3235 (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
3236 * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
3237 * pa.c (get_plabel): Change argument to symbol_ref. Call
3238 maybe_get_identifier instead of get_identifier.
3239 (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
3240 (struct deferred_plabel): Replace name field with symbol field.
3241 (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
3242 ASM_OUTPUT_EXTERNAL_REAL is defined.
3243 (output_global_address): Use output_addr_const for output of all
3245 (output_deferred_plabels): Use symbol_ref instead of name for address
3247 * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
3248 ASM_OUTPUT_SYMBOL_REF): New macros.
3249 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw. Update
3251 (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
3254 2005-03-05 Joseph S. Myers <joseph@codesourcery.com>
3256 * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
3257 *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
3259 2005-03-04 Jeff Law <law@redhat.com>
3261 * basic-block.h (rediscover_loops_after_threading): Declare.
3262 * tree-ssa-dom.c: Include cfgloop.h.
3263 (tree_ssa_dominator_optimize): Discover loops and some basic
3264 properties. Remove forwarder blocks recreated by loop header
3265 canonicalization. Also mark backedges in the CFG.
3266 * tree-ssa-threadupdate.c: Include cfgloop.h
3267 (rediscover_loops_after_threading): Define.
3268 (struct local_info): New field, JUMP_THREADED.
3269 (prune_undesirable_thread_requests): New function.
3270 (redirect_edges): Clear EDGE_ABNORMAL. If edges were threaded
3271 then record that fact for the callers of redirct_edges.
3272 (thread_block): If BB has incoming backedges, then call
3273 prune_undesirable_thraed_requests. Note when we are
3274 going to have to rediscover loop information. Return a
3275 boolean indicating if any jumps were threaded.
3276 (thread_through_all_blocks): Bubble up boolean indicating
3277 if any jumps were threaded.
3278 * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
3279 (tree-ssa-threadupdate.o): Similarly.
3281 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
3283 * fold-const.c (fold_ternary): Unroll the "for" loop to
3286 2005-03-04 Andrew Haley <aph@redhat.com>
3288 * unwind-dw2-fde-glibc.c (struct
3289 unw_eh_callback_data.check_cache): New field.
3290 (frame_hdr_cache): New.
3291 (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
3292 Cache frame header info.
3294 2005-03-04 Richard Sandiford <rsandifo@redhat.com>
3296 * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
3297 (print_c_condition): Declare.
3298 * read-rtl.c (ptr_loc): New structure.
3299 (ptr_locs, ptr_loc_obstack, joined_conditions)
3300 (joined_conditions_obstack): New variables.
3301 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
3302 (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
3303 (join_c_conditions, print_c_condition): New functions.
3304 (apply_macro_to_string): Associate the new string with the same
3305 source location as the old one.
3306 (add_condition_to_string): Use join_c_conditions.
3307 (read_string): Use set_rtx_ptr_loc to record a filename and line
3308 number for the string.
3309 (read_rtx): Initialize the new variables above.
3310 * genattrtab.c (write_test_expr, write_attr_value): Use
3312 * genconditions.c (write_header): Don't define MAYBE_EVAL. Move its
3313 comment above the GCC_VERSION check.
3314 (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
3315 Inline the definition of MAYBE_EVAL.
3316 * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
3317 * genoutput.c (process_template): Likewise.
3318 * genpreds.c (write_predicate_subfunction): Likewise.
3319 (write_predicate_expr): Use print_c_condition.
3320 * genrecog.c (write_cond): Likewise.
3321 * gensupport.c (process_rtx): Use join_c_conditions to join the
3322 conditions of a define_insn_and_split. Record a source location
3323 for the string after the "&&".
3324 (alter_test_for_insn): Use join_c_conditions.
3326 2005-03-04 Andrew Pinski <pinskia@physics.uc.edu>
3329 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
3330 PR tree-optimization/15784
3331 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
3334 2005-03-04 Ben Elliston <bje@au.ibm.com>
3336 * gcc.c (option_map): Add --coverage.
3337 (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
3338 (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
3339 * config/darwin.h: Pass -lgcov for `coverage'.
3340 * doc/invoke.texi (Debugging Options): Document --coverage.
3342 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
3344 * gcse.c (bypass_block): Use find_edge wherever possible.
3346 2005-03-03 Daniel Berlin <dberlin@dbrelin.org>
3350 * c-opts.c (c_common_parse_file): Call start_source_file
3351 and end_source_file at the approriate times.
3353 * dwarf2out.c (dwarf2out_finish): Don't auto-end
3354 the main file, it will be done for us now.
3356 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
3358 * fold-const.c (fold_ternary): New.
3359 (fold): Call fold_ternary on ternary expressions. Remove
3360 handling of ternary expressions.
3362 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
3364 PR tree-optimization/15784
3365 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
3368 2005-03-03 David Edelsohn <edelsohn@gnu.org>
3370 * config/rs6000/predicates.md (branch_comparison_operator):
3371 Convert from C block to conditional format.
3373 2005-03-03 Jan Hubicka <jh@suse.cz>
3375 * tree-dfa.c (add_referenced_var): Don't walk initializer of external
3376 and non-constant public variables.
3378 2005-03-03 Kazu Hirata <kazu@cs.umass.edu>
3380 * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
3383 * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
3386 * tree-phinodes.c (remove_phi_node): Clean up by factoring out
3387 calls to release_ssa_name and release_phi_node.
3389 * fold-const.c (fold): Remove handling of unary expressions.
3391 * fold-const.c (fold_unary): Avoid directly using the original
3392 expression t as much as possible.
3394 2005-03-03 Roger Sayle <roger@eyesopen.com>
3395 Andrew Pinski <pinskia@physics.uc.edu>
3397 * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
3398 RETURN rtx, and not a LABEL_REF containing a NULL pointer.
3400 2005-03-03 Hans-Peter Nilsson <hp@axis.com>
3402 Describe special registers SRP and MOF as allocatable registers.
3403 * config/cris/cris.c (cris_md_asm_clobbers): New function.
3404 (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
3405 (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
3406 TARGET_HAS_MUL_INSNS.
3407 (cris_print_operand) <case 'd'>: New case.
3408 <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
3409 * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
3411 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
3412 (REG_ALLOC_ORDER): Update for MOF.
3413 (enum reg_class): New members MOF_REGS, GENERAL_REGS and
3415 (GENERAL_REGS): No longer a define of ALL_REGS.
3416 (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
3417 (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
3419 (CRIS_SPECIAL_REGS_CONTENTS): New macro.
3420 (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
3421 (SECONDARY_RELOAD_CLASS): Define.