1 2006-05-08 Chao-ying Fu <fu@mips.com>
2 Richard Sandiford <richard@codesourcery.com>
4 * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
5 (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
6 * config/mips/mips.md (UNSPEC_SCC): New constant.
7 * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
8 * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
9 (mips_emit_compare): Use it.
10 (mips_expand_vcondv2sf): New function.
12 2006-05-08 Daniel Berlin <dberlin@dberlin.org>
14 Fix PR tree-optimization/27093
15 * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
16 renaming when they become not-used_alone.
18 2006-05-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20 * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
21 relocation and relocation stubs.
23 2006-05-08 Eric Christopher <echristo@apple.com>
25 * unwind-dw2-fde-darwin.c (examine_objects): Only check data
28 2006-05-08 Jan Hubicka <jh@suse.cz>
31 * cgraphunit.c (decide_is_function_needed): When not optimizing even
32 unused static functions are needed.
34 2006-05-08 Roger Sayle <roger@eyesopen.com>
37 * reload.c (find_reloads_toplev): Only return the simplified SUBREG
38 of a reg_equiv_constant if the result is a legitimate constant.
40 2006-05-08 Uros Bizjak <uros@kss-loka.si>
43 * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
44 standard 80387 constants, raise the cost to prevent
45 compress_float_constant() to generate load from memory.
47 2006-05-08 Kazu Hirata <kazu@codesourcery.com>
49 * config/arm/constraints.md (c): Fix a typo.
51 * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
54 2006-05-07 H.J. Lu <hongjiu.lu@intel.com>
57 * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
59 (_mm_mwait): Likewise.
61 * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
63 (sse3_monitor): Make it 32bit only.
64 (sse3_monitor64): New. 64bit monitor.
66 2006-05-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
69 * config/i386/i386.c (classify_argument): Skip fields with invalid
72 2006-05-07 Richard Guenther <rguenther@suse.de>
74 PR tree-optimization/27409
75 * tree-ssa-structalias.c (get_constraint_for_component_ref):
76 Do not try to find zero-sized subvars.
78 2006-05-07 Richard Guenther <rguenther@suse.de>
80 PR tree-optimization/27136
81 * tree-ssa-loop-niter.c (get_val_for): Correct function
82 comment, assert requirements.
83 (loop_niter_by_eval): Stop processing if the iterated
84 value did not simplify.
86 2006-05-07 Mircea Namolaru <namolaru@il.ibm.com>
88 * opts.c (flag_see): remove its setting at -O3.
90 2006-05-07 Richard Earnshaw <rearnsha@arm.com>
92 * genpeep.c (main): Make insn-peep.c depend on flags.h.
93 * arm/constraints.md: New file.
94 * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
95 (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
96 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
97 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
98 (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
99 (EXTRA_MEMORY_CONSTRAINT): Likewise.
100 * arm.md: Include constraints.md.
101 (thumb_movsi_insn): Use satisfies_constraint_J.
102 (movhi, movqi): Use satisfies_constraint_I.
104 2006-04-29 Anatoly Sokolov <aesok@post.ru>
106 * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
107 for atmeg a645 device.
109 2006-05-06 Richard Guenther <rguenther@suse.de>
111 PR tree-optimization/27151
112 * tree-vect-transform.c (vectorizable_condition): Punt on
113 values that have a different type than the condition.
115 2006-05-03 Aldy Hernandez <aldyh@redhat.com>
118 * c-parser.c (c_parser_cast_expression): Only insert casts into
119 hash table if pointer.
120 * function.c (used_types_insert_helper): Rename from
122 (used_types_insert): Call used_types_insert_helper.
123 * function.h (used_types_insert): Accept only one argument.
125 2006-05-05 David Edelsohn <edesohn@gnu.org>
127 * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
128 scratch with output modifier.
130 2006-05-04 David Edelsohn <edelsohn@gnu.org>
133 * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
134 with output modifier.
136 2006-05-04 Richard Sandiford <richard@codesourcery.com>
139 * config/mips/mips.c (mips_symbolic_address_p): Return true
140 for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
141 SYMBOL_GOTTPREL, and SYMBOL_TLS.
143 2006-05-04 Richard Guenther <rguenther@suse.de>
145 PR tree-optimization/14287
146 PR tree-optimization/14844
147 PR tree-optimization/19792
148 PR tree-optimization/21608
149 PR tree-optimization/27090
150 * tree-ssa-pre.c (try_combine_conversion): New function.
151 (compute_avail): After constructing the value-handle
152 expression, use try_combine_conversion to combine NOP_EXPRs
153 with previous value-handle expressions and use the result if it
156 2006-05-04 Joseph S. Myers <joseph@codesourcery.com>
158 * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
160 2006-05-04 Jan Hubicka <jh@suse.cz>
163 * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
165 2006-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
167 * config/bfin/predicates.md (const01_rtx): Tell generator programs
168 that this only matches CONST_INTs. All users changed to VOIDmode
171 * config/bfin/bfin.c: Include "optabs.h".
172 (bfin_rtx_costs): Some costs for vector operations, to allow combine
174 (enum bfin_builtins): Add a number of fractional and vector builtins.
175 (bfin_init_builtins): Likewise.
176 (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
177 (safe_vector_operand, bfin_expand_binop_builtin,
178 bfin_expand_unop_builtin): New functions.
179 (bfin_expand_builtin): Handle the new builtins.
180 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
183 2006-05-04 Leehod Baruch <leehod@il.ibm.com>
186 * Makefile.in (OBJS-common): Add see.o.
187 (see.o): Add dependencies.
188 * common.opt (fsee): New flag for the see optimization was added.
189 * opts.c (flag_see): Initialized.
190 * passes.c (init_optimization_passes, pass_see): New pass.
191 * rtl.h (see_main): Declaration as extern.
192 * timevar.def (TV_SEE): New.
193 * tree-pass.h (pass_see): Declaration as extern.
194 * invoke.texi (-fsee): Document.
195 * recog.c (validate_simplify_insn): New function.
196 * recog.h (validate_simplify_insn): Declaration as extern.
197 * df-problems.c (df_chain_dump): Check for NULL.
199 2006-05-04 Kenneth Zadeck <zadeck@naturalbridge.com>
200 Daniel Berlin <dberlin@dberlin.org>
202 * cfgrtl.c (insert_insn_bb_end_new): New function.
203 * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
205 2006-05-04 Leehod Baruch <leehod.baruch@weizmann.ac.il>
207 * df.h (struct web_entry): Moved from web.c.
208 (union_defs): Declaration as extern.
209 (unionfind_root): Likewise.
210 (unionfind_union): Likewise.
211 * web.c (struct web_entry): Moved to df.h.
212 (unionfind_root): Remove static declaration.
213 (unionfind_union): Likewise.
214 (union_defs): Likewise and generalize to use callback function.
215 (web_main): Update arguments for union_defs function call.
217 2006-05-04 Richard Guenther <rguenther@suse.de>
219 PR tree-optimization/26447
220 * tree-ssa-pre.c (realify_fake_stores): For necessary loads
221 produce SSA_NAME copies before the store stmt to avoid
222 breaking exception handling.
224 2006-05-04 Jakub Jelinek <jakub@redhat.com>
227 * gimplify.c (omp_is_private): If var is shared in some outer context,
228 return false instead of true. Stop searching on parallel context
231 2006-05-03 Alexandre Oliva <aoliva@redhat.com>
234 * coverage.c: Use get_gcov_unsigned_t() instead of
235 unsigned_type_node all over.
237 2006-05-02 Andrew MacLeod <amacleod@redhat.com>
239 PR tree-optimization/27381
240 * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
241 maintain the same immediate_use links.
242 * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
243 node rather than segfaulting.
245 2006-05-03 Jakub Jelinek <jakub@redhat.com>
248 * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
249 rather than TREE_CODE to OMP_CLAUSE_REDUCTION. Set also GOVD_SEEN
250 bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
252 2006-05-02 Daniel Berlin <dberlin@dberlin.org>
254 Fix PR tree-optimization/26626
255 * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
257 * tree-ssa-operands.c (access_can_touch_variable): Allow
258 typecasting through union pointers.
260 2006-05-02 Jakub Jelinek <jakub@redhat.com>
263 * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
264 (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
265 to find if var will be a global variable even in the nested context.
266 (omp_copy_decl): Only check for global variable at the end, it might
267 be overridden in outer contexts.
268 (scan_sharing_clauses): For global variables don't create a field.
269 (lower_rec_input_clauses): Do nothing for global shared variables.
270 Emit a barrier at the end of ILIST if there were any decls in both
271 firstprivate and lastprivate clauses.
272 (lower_send_clauses): Do nothing for global variables except for
275 2006-05-02 Zdenek Dvorak <dvorakz@suse.cz>
277 * tree.c (unsigned_type_for, signed_type_for): Make sure a type
278 of the correct signedness is returned.
280 2006-05-02 Jeff Law <law@redhat.com>
282 PR tree-optimization/27364
283 * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
284 multiply expressions.
286 2006-05-02 Tom Tromey <tromey@redhat.com>
288 * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
290 2006-05-02 Kazu Hirata <kazu@codesourcery.com>
293 * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
294 -mthumb -fPIC are used.
296 2006-05-02 Stanislaw Skowronek <skylark@linux-mips.org>
297 Joshua Kinard <kumba@gentoo.org>
300 * gcc/config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
301 with 64-bit pointers.
303 2006-05-02 Paul Brook <paul@codesourcery.com>
305 * config/arm/arm.c (add_minipool_forward_ref): Check if insn
307 (create_fix_barrier): Check that a suitable barrier location is
309 (arm_reorg): Include ftmp->address in allowable range of addresses.
311 2006-05-02 David Billinghurst <David.Billinghurst@riotinto.com>
314 * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
317 2006-05-02 Jakub Jelinek <jakub@redhat.com>
320 * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
321 around RESULT_DECL for result passed by reference.
322 (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
323 * omp-low.c (use_pointer_for_field): Don't look at
324 DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
325 (scan_omp_1): Call remap_decl on RESULT_DECLs.
326 (lower_rec_input_clauses): Don't allocate VLA memory for the second
327 time or var for passing by reference for
328 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses. Allow creation of
329 TREE_ADDRESSABLE variables when passing by reference.
331 * omp-low.c (dump_omp_region): Fix output formatting.
334 * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
335 (expand_omp_parallel): Likewise.
336 * tree-cfg.c (move_sese_region_to_fn): Likewise.
339 * omp-low.c (lower_omp_sections): Call maybe_catch_exception
340 on statement list containing also constructors and destructors.
341 (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
344 * except.c (duplicate_eh_regions): Fix clearing of
345 cfun->eh->region_array entries.
347 2006-05-01 DJ Delorie <dj@redhat.com>
349 * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
351 (gcc_cv_objdump): Likewise.
352 * configure: Regenerated.
354 2006-05-01 Kazu Hirata <kazu@codesourcery.com>
357 * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
358 templates for case 3 and 4.
360 2006-05-01 DJ Delorie <dj@redhat.com>
362 * vec.c: Include bconfig.h when appropriate.
363 * Makefile.in (build/vec.o): Adjust dependencies.
364 * mkconfig.sh: Make sure config.h isn't used for build machine
367 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
369 * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
371 (mark_phi_for_rewrite): New function.
372 (insert_phi_nodes_for, mark_use_interesting): Call
373 mark_phi_for_rewrite.
374 (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
375 (update_ssa): Initialize and free phis_to_rewrite.
377 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
379 PR rtl-optimization/27291
380 * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
381 folded to a constant.
383 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
385 PR tree-optimization/27283
386 * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
387 not whole # of iteration descriptions.
388 (niter_for_exit): Return just # of iterations. Fail if # of iterations
389 uses abnormal ssa name.
390 (niter_for_single_dom_exit): Ditto.
391 (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
392 return just the number of iterations.
394 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
396 PR tree-optimization/27144
397 * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
398 (record_estimate): Only record constant upper bound.
399 (infer_loop_bounds_from_undefined): Call
400 compute_estimated_nb_iterations just once.
401 (proved_non_wrapping_p): Renamed to ...
402 (n_of_executions_at_most): ... this. Expect bound to be a constant.
403 (convert_step_widening, scev_probably_wraps_p): Call
404 n_of_executions_at_most instead of proved_non_wrapping_p.
405 (substitute_in_loop_info): Do not replace values in bounds.
406 * cfgloop.h (struct nb_iter_bound): Remove "additional" field. Update
409 2006-05-01 Richard Henderson <rth@redhat.com>
412 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
413 c_parser_skip_to_pragma_eol. Convert to switch statement. Handle
416 2006-05-01 Roger Sayle <roger@eyesopen.com>
418 * c-typeck.c (parser_build_binary_op): Don't call the function
419 unsigned_conversion_warning to spot operand/result type overflow.
420 (build_binary_op): Instead, call convert_and_check instead of
421 convert to report the problem when the operands are promoted.
422 * c-common.c (unsigned_conversion_warning): Make static.
423 * c-common.h (unsigned_conversion_warning): Delete prototype.
425 2006-05-01 Richard Guenther <rguenther@suse.de>
427 PR tree-optimization/26726
428 * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
430 (find_interesting_uses_address): ... we work around here
431 by folding INDIRECT_REFs in the substituted base.
433 2006-05-01 Diego Novillo <dnovillo@redhat.com>
435 * omp-low.c (dump_omp_region): Add newlines.
437 2006-04-30 Roger Sayle <roger@eyesopen.com>
439 * common.opt (Woverflow): New command line option.
440 * c-common.c (constant_expression_warning): Check warn_overflow.
441 (overflow_waring): Pass OPT_Woverflow to warning.
442 (unsigned_conversion_warning): Likewise.
443 (convert_and_check): Likewise.
444 * doc/invoke.texi: Document new command line option.
446 2006-04-30 David Edelsohn <edelsohn@gnu.org>
448 * config/rs6000/rs6000.c (rs6000_override_options): Enable
449 TARGET_NO_FP_IN_TOC for section anchors.
450 (optimization_options): Enable section anchors for all
451 non-"Objective" languages.
453 2006-04-28 Eric Christopher <echristo@apple.com>
455 * config/darwin-c.c (darwin_ms_struct): Move this
456 (darwin_set_default_type_attributes): and this...
457 * config/darwin.c: ... here.
458 * config/darwin.h (darwin_ms_struct): Declare.
460 2006-04-28 Andrew MacLeod <amacleod@redhat.com>
462 * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
464 2006-04-28 Roger Sayle <roger@eyesopen.com>
467 * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
468 (push_array_bounds): Delete prototype. Change BOUNDS argument to
469 an unsigned HOST_WIDE_INT.
470 (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
472 (really_start_incremental_init): No need to call convert because
473 bitsize_zero_node is already of type bitsizetype.
474 (push_init_level): Extract the value of constructor_index as an
475 unsigned HOST_WIDE_INT quantity, using tree_low_cst.
476 (process_init_element): Likewise.
478 2006-04-28 Joseph S. Myers <joseph@codesourcery.com>
480 * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
481 value before passing to make_relative_prefix.
483 2006-04-28 Alan Modra <amodra@bigpond.net.au>
486 * builtins.c (expand_builtin_memset): Expand val in original mode.
488 2006-04-27 Eric Christopher <echristo@apple.com>
490 * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
492 * config/darwin-c.c (darwin_ms_struct): New.
493 (darwin_pragma_ms_struct): Ditto.
494 (darwin_set_default_type_attributes): Ditto.
495 * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
496 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
497 Register ms_struct pragma.
498 * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
499 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
500 * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
501 darwin_set_default_type_attributes if TARGET_MACHO.
503 2006-04-27 Andrew MacLeod <amacleod@redhat.com>
505 PR tree-optimization/26854
506 * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
507 * doc/tree-ssa.texi: Update immuse iterator documentation.
508 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
509 * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
510 * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
511 first_safe_imm_use, next_safe_imm_use): Remove.
512 (end_imm_use_stmt_p): New. Check for end of immuse stmt traversal.
513 (end_imm_use_stmt_traverse): New. Terminate immuse stmt traversal.
514 (move_use_after_head): New. Helper function to sort immuses in a stmt.
515 (link_use_stmts_after): New. Link all immuses in a stmt consescutively.
516 (first_imm_use_stmt): New. Get first stmt in an immuse list.
517 (next_imm_use_stmt): New. Get next stmt in an immuse list.
518 (first_imm_use_on_stmt): New. Get first immuse on a stmt.
519 (end_imm_use_on_stmt_p): New. Check for end of immuses on a stmt.
520 (next_imm_use_on_stmt): New. Move to next immuse on a stmt.
521 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
522 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
523 (perfect_nestify): Use new iterator.
524 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
526 * tree-flow.h (struct immediate_use_iterator_d): Add comments.
527 (next_imm_name): New field in struct immediate_use_iterator_d.
528 (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
529 (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
530 FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
531 * tree-cfg.c (replace_uses_by): Use new iterator.
532 * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
533 * tree-ssa-operands.c (correct_use_link): Remove.
534 (finalize_ssa_use_ops): No longer call correct_use_link.
536 2006-04-27 Stuart Hastings <stuart@apple.com>
538 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
539 * config/t-darwin (crt3.o): Use it.
540 * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
541 'pmode', use Pmode instead of SImode for SYMBOL_REF.
542 * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
543 call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
544 call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
547 2006-04-27 Roger Sayle <roger@eyesopen.com>
549 * expmed.c (store_fixed_bit_field): If we're not optimizing for
550 size, force the intermediate into a new pseudo rather instead of
551 performing both a bitwise AND and a bitwise IOR in memory.
553 2006-04-27 Richard Guenther <rguenther@suse.de>
555 PR rtl-optimization/26685
556 * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
557 this one "max-flow-memory-locations".
559 2006-04-27 Richard Guenther <rguenther@suse.de>
561 PR tree-optimization/25148
562 * tree-vrp.c (compare_values): Remove code dealing with
563 comparisons against type min/max value. Honour overflow
564 and negative constants in code dealing with comparisons
565 of plus and minus expressions.
566 (value_inside_range): Use fold_binary with LE_EXPR and
567 GE_EXPR rather than compare_values.
569 2006-04-27 Dirk Mueller <dmueller@suse.de>
571 * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
574 2006-04-26 Kenneth Zadeck <zadeck@naturalbridge.com>
576 * basic-block.h (safe_insert_insn_on_edge): Removed.
577 * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
579 2006-04-26 David Edelsohn <edelsohn@gnu.org>
580 Paolo Bonzini <bonzini@gnu.org>
583 * combine.c (simplify_and_const_int_1): Use gen_int_mode.
584 (simplify_and_const_int): Same.
586 2006-04-26 Aldy Hernandez <aldyh@redhat.com>
588 * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
590 2006-04-26 Jakub Jelinek <jakub@redhat.com>
593 * cgraph.c (cgraph_varpool_finalize_decl): Don't call
594 cgraph_varpool_assemble_pending_decls if -fopenmp, unless
595 cgraph_global_info_ready.
598 * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
601 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
602 either decl or init is error_mark_node.
605 * tree-flow.h (struct omp_region): Add sched_kind.
606 * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
607 instead of extracting omp for data.
608 (expand_omp_for): Save extracted sched_kind.
610 2006-04-25 Roger Sayle <roger@eyesopen.com>
612 * expmed.c (store_bit_field): Also check whether the bitsize is
613 valid for the machine's "insv" instruction before moving the
614 target into a pseudo for use with the insv.
615 * config/i386/predicates.md (const8_operand): New predicate.
616 * config/i386/i386.md (extv, extzv, insv): Use the new
617 const8_operand predicate where appropriate.
619 2006-04-25 DJ Delorie <dj@redhat.com>
621 * doc/install.texi (Specific): Clarify that this is not a list of
622 supported hosts or targets.
624 2006-04-25 Richard Sandiford <richard@codesourcery.com>
626 PR rtl-optimization/26725
627 * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
628 block's BB_DIRTY flag.
630 2006-04-25 Geoffrey Keating <geoffk@apple.com>
632 * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
635 * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
638 2006-04-25 David Edelsohn <edelsohn@gnu.org>
640 * varasm.c (align_variable): New function.
641 (get_block_for_decl): Apply align_variable to DECL before
642 calculating section information.
643 (assemble_variable): Split out alignment computation.
645 2006-04-25 Andreas Krebbel <krebbel1@de.ibm.com>
647 * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
650 2006-04-25 Bernd Schmidt <bernd.schmidt@analog.com>
652 * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
653 MODE_PARTIAL_INT mode.
654 * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
655 * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
657 (hard_regno_mode_ok): V2PDImode is ok for accumulators.
658 * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
660 * config/bfin/predicates.md (const01_operand, vec_shift_operand):
662 * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
664 (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
665 MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
666 MACFLAG_IH): Likewise.
667 (movstricthi_1): Renamed from "*movstricthi".
668 (load_accumulator, load_accumulator_pair, movsi_insv, insv,
669 ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
670 abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
671 movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
672 movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
673 movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
674 addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
675 sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
676 addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
677 mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
678 ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
679 flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
680 flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
681 flag_macv2hi_parts, flag_macv2hi_parts_acconly,
682 flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
684 * doc/rtl.texi (ss_ashift): Improve wording.
686 2006-04-24 Geoffrey Keating <geoffk@apple.com>
688 * dwarf2out.c (verify_marks_clear): New.
689 (prune_unused_types): Call verify_marks_clear initially, not
692 2006-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
694 * rtl.def (SS_ASHIFT, SS_NEG): New codes.
695 * doc/rtl.texi: Document them.
696 * simplify-rtx.c (simplify_unary_operation,
697 simplify_binary_operation_1): Don't abort when we see them.
699 2006-04-24 Mark Mitchell <mark@codesourcery.com>
702 2006-04-23 Mark Mitchell <mark@codesourcery.com>
703 * configure.ac: Completely disregard languages that are not
705 * configure: Regenerated.
707 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
708 Richard Guenther <rguenther@suse.de>
710 PR tree-optimization/27236
711 * tree-inline.c (copy_body_r): Make sure to copy
712 TREE_THIS_VOLATILE flag.
714 2006-04-24 Richard Guenther <rguenther@suse.de>
717 * tree-complex.c (update_parameter_components): Don't handle
718 unused parameters which have no default def.
720 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
721 Richard Guenther <rguenther@suse.de>
723 PR tree-optimization/27218
724 * tree-inline.c (expand_call_inline): Strip useless type
725 conversions for the return slot address.
727 2006-04-24 Richard Guenther <rguenther@suse.de>
729 * cfgloop.h (struct loops): Remove unused field array. Reorder
731 (LOOP_PREFETCH): Remove.
733 2006-04-24 Richard Guenther <rguenther@suse.de>
735 PR tree-optimization/22525
736 * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
737 variable, adjust types of generated expressions.
739 2006-04-23 H.J. Lu <hongjiu.lu@intel.com>
741 * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
742 (tree-vect-patterns.o): Likewise.
744 (cselib.o): Likewise.
745 (loop-doloop.o): Likewise.
746 (regclass.o): Likewise.
747 (reload1.o): Likewise.
748 (explow.o): Replace target.h with $(TARGET_H).
749 (ipa-prop.o): Likewise.
750 (ipa-cp.o): Likewise.
751 (ipa-inline.o): Likewise.
753 (reg-stack.o): Likewise.
755 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
757 * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
759 2006-04-23 Mark Mitchell <mark@codesourcery.com>
761 * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
763 * configure.ac: Completely disregard languages that are not
765 * configure: Regenerated.
768 * c-common.h (c_build_bitfield_integer_type): Declare.
769 * c-decl.c (c_build_bitfield_integer_type): Move to ...
770 * c-common.c (c_build_bitfield_integer_type): ... here.
772 2006-04-23 Roger Sayle <roger@eyesopen.com>
775 * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
776 a SImode SUBREG of a floating point register after no_new_pseudos.
778 2006-04-23 Roger Sayle <roger@eyesopen.com>
780 * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
781 identify potentially eliminable registers to additionally catch
782 VIRTUAL_INCOMING_ARGS_REGNUM.
783 (addsi3): Update the conditions on when to use addsi_small_int.
785 2006-04-23 Roger Sayle <roger@eyesopen.com>
788 * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
789 STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
790 rtx to stack_pointer_rtx or frame_pointer_rtx directly.
792 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
794 * fold-const.c (range_predecessor): Use operand_equal_p
795 as the predicate for equality.
796 (range_successor): Likewise.
798 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
801 * config/soft-fp/op-common.h: Fix a typo.
803 2006-04-22 Frank Ch. Eigler <fche@redhat.com>
806 * common.opt (flag_mudflap_threads): Overload flag_mudflap.
807 * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
809 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
811 * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
813 * doc/tm.texi: Fix a typo.
815 2006-04-21 Geoffrey Keating <geoffk@apple.com>
817 * dwarf2out.c (struct die_struct): Document that die_sib makes
818 a circular linked list.
819 (FOR_EACH_CHILD): New.
820 (reverse_die_lists): Delete.
821 (reverse_all_dies): Delete.
822 (add_dwarf_attr): Correct documentation.
823 (remove_child_with_prev): New.
824 (remove_child_TAG): Update for change to die_struct, use
825 remove_child_with_prev.
826 (add_child_die): Update for change to die_struct.
827 (splice_child_die): Use remove_child_with_prev and add_child_die.
828 (print_die): Use FOR_EACH_CHILD.
829 (die_checksum): Likewise.
830 (assign_symbol_names): Likewise.
831 (output_location_lists): Likewise.
832 (build_abbrev_table): Likewise.
833 (calc_die_sizes): Likewise.
834 (mark_dies): Likewise.
835 (unmark_dies): Likewise.
836 (unmark_all_dies): Likewise.
837 (output_die): Likewise.
838 (prune_unused_types_mark): Likewise.
839 (prune_unused_types_walk): Likewise.
840 (same_die_p): Update for change to die_struct.
841 (break_out_includes): Likewise.
842 (prune_unused_types_prune): Likewise.
843 (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
844 (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
846 (dwarf2out_finish): Don't call reverse_all_dies.
848 2006-04-21 Eric Christopher <echristo@apple.com>
850 * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
851 in comments and function names.
853 2006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
856 * c-typeck.c (digest_init): Robustify.
858 * c-typeck.c (pop_init_level): Simplify.
860 2006-04-21 Steve Ellcey <sje@cup.hp.com>
862 * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
864 2006-04-21 Paul Brook <paul@codesourcery.com>
866 * config/arm/arm.c (arm_override_options): Error on iWMMXt and
867 hardware floating point.
869 2006-04-21 David Edelsohn <edelsohn@gnu.org>
871 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
874 2006-04-21 Nick Clifton <nickc@redhat.com>
876 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
879 2006-04-21 Alan Modra <amodra@bigpond.net.au>
882 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
883 C++ lang type in traceback table for Objective-C++.
885 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
887 2006-04-20 H.J. Lu <hongjiu.lu@intel.com>
889 * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
891 2006-04-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
894 * tree-mudflap.c (mudflap_finish_file): Skip function when there
895 were errors. Remove check for erroneous objects.
897 2006-04-20 Jeff Law <law@redhat.com>
899 PR tree-optimization/26854
900 * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
901 checking for zero or one use.
902 * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
903 * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
904 * tree-ssa-reassoc.c (negate_value): Similarly.
905 (reassociate_bb): Similarly.
907 2006-04-20 Jakub Jelinek <jakub@redhat.com>
909 * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
910 TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
911 than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
913 2006-04-20 Alan Modra <amodra@bigpond.net.au>
915 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
916 fp regs if the last fp arg doesn't fit in regs.
918 2006-04-20 Kaz Kojima <kkojima@gcc.gnu.org>
921 * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
922 that the last insn has the REG_INC note.
924 2006-04-19 Carlos O'Donell <carlos@codesourcery.com>
925 Nathan Sidwell <nathan@codesourcery.com>
928 * stor-layout.c (update_alignment_for_field): Do not align
930 (place_union_field): Place union field at the start of the union.
931 (place_field): Move ERROR_MARK check later, and use the current
932 allocation position to maintain monotonicity.
934 2006-04-19 Zdenek Dvorak <dvorakz@suse.cz>
936 * dominance.c: Include timevar.h.
937 (calculate_dominance_info): Use TV_DOMINANCE.
938 * timevar.def (TV_DOMINANCE): New timevar.
939 * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
941 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
943 PR rtl-optimization/14261
944 * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
945 move would be an INSV insn.
946 (noce_process_if_block): Don't optimize if the destination is a
947 ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
949 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
951 * config/s390/s390.md: Add comments with the instructions emitted
952 by an insn pattern if macros are used.
954 2006-04-19 Alan Modra <amodra@bigpond.net.au>
956 PR rtl-optimization/26026
957 * fold-const.c (fold_binary): Optimize div and mod where the divisor
958 is a known power of two shifted left a variable amount.
960 2006-04-18 Geoffrey Keating <geoffk@apple.com>
962 * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
963 to hash table twice when the debug_str section has SECTION_MERGE.
965 2006-04-18 Joseph S. Myers <joseph@codesourcery.com>
967 * config/soft-fp: New directory. From glibc.
968 * config/soft-fp/t-softfp: New.
969 * config/soft-fp/README: New.
970 * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
971 * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
972 (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
973 (LIBGCC_DEPS): Add $(SFP_MACHINE).
974 * config.gcc: Use rs6000/t-fprules-fpbit or
975 rs6000/t-fprules-softfp and soft-fp/t-softfp together with
977 * config/rs6000/sfp-machine.h: New. Based on glibc.
978 * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
980 * config/rs6000/t-fprules: Remove fp-bit rules.
981 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
982 * config/rs6000/t-linux64: Likewise. Remove duplicates from
983 LIB2FUNCS_EXTRA. Remove fp-bit rules.
984 (softfp_wrap_start, softfp_wrap_end): New.
986 2006-04-18 DJ Delorie <dj@redhat.com>
988 * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
990 2006-04-18 Devang Patel <dpatel@apple.com>
992 * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
994 2006-04-18 Nick Clifton <nickc@redhat.com>
996 * config/sh/t-symbian: Add rule to build sh-c.o
997 * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
998 of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
999 (sh_symbian_encode_section_info): Likewise.
1001 2006-04-18 Andreas Krebbel <krebbel1@de.ibm.com>
1003 * builtins.c (expand_builtin_strcmp): Cover label definition of
1004 do_libcall with HAVE_cmpstrnsi.
1006 2006-04-18 Kazu Hirata <kazu@codesourcery.com>
1008 * function.c (temp_slots_at_level, max_slot_level): Use VEC
1010 * function.h (temp_slot_p): New.
1011 (function): Change the type of x_used_temp_slots to
1012 VEC(temp_slot_p,gc) *.
1014 2006-04-18 Nick Clifton <nickc@redhat.com>
1016 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
1017 flag_strength_reduce.
1019 * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
1021 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
1025 Partial revert of revision 112637
1026 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
1027 Dale Johannesen <dalej@apple.com>
1030 * regclass.c (struct reg_pref): Update documentation.
1031 (regclass): Set prefclass to NO_REGS if memory is the best option.
1032 (record_reg_classes): Cope with a prefclass set to NO_REGS.
1034 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
1036 PR tree-optimization/26821
1037 * tree-ssa-math-opts.c (get_constant_one): New.
1038 (insert_reciprocals): Use it.
1040 2006-04-17 Geoffrey Keating <geoffk@apple.com>
1042 * dwarf2out.c (free_AT): Delete.
1043 (remove_AT): Update string ref counts.
1044 (remove_child_TAG): Don't call free_die.
1046 (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
1047 or DW_TAG_GNU_EINCL.
1048 (prune_unused_types_walk_attribs): Reset string refcounts.
1049 (prune_unused_types_update_strings): New.
1050 (prune_unused_types_prune): Don't make unnecessary stores. Don't
1051 call free_die. Do call prune_unused_types_update_strings.
1052 (prune_unused_types): Empty debug_str_hash.
1054 2006-04-17 Roger Sayle <roger@eyesopen.com>
1056 * expr.c (expand_assignment): Optimize away no-op moves where the
1057 source and destination are equal and have no side-effects.
1059 2006-04-17 Richard Guenther <rguenther@suse.de>
1062 * reload.c (push_reload): Guard calls to get_secondary_mem
1065 2006-04-16 Kazu Hirata <kazu@codesourcery.com>
1067 * alias.c (reg_base_value, old_reg_base_value): Change the
1068 type to VEC(rtx,gc) *.
1069 (REG_BASE_VALUE, find_base_value, record_set,
1070 init_alias_analysis): Use VEC instead of VARRAY.
1072 * alias.c (alias_sets): Change the type to
1073 VEC(alias_set_entry,gc) *.
1074 (get_alias_set_entry, new_alias_set, record_alias_subset): Use
1075 VEC instead of VARRAY.
1076 (last_alias_set): Remove.
1078 * cgraph.h (cgraph_edge_p): New.
1079 Update the prototype of cgraph_function_versioning.
1080 * cgraphunit.c (cgraph_copy_node_for_versioning,
1081 cgraph_function_versioning): Use VEC instead of VARRAY.
1082 * ipa-cp.c (ipcp_insert_stage): Likewise.
1084 2006-04-16 Roger Sayle <roger@eyesopen.com>
1087 * fold-const.c (fold_ternary): When converting "A ? B : C" into either
1088 "A op B" or "A op C", we may need to convert A to the type of B and C.
1090 2006-04-16 Adam Nemet <anemet@caviumnetworks.com>
1092 * target.h (struct gcc_target): Add mode_rep_extended.
1093 * rtlanal.c (num_sign_bit_copies_in_rep): New global.
1094 (init_num_sign_bit_copies_in_rep): Initialize it using
1096 (truncate_to_mode): Use it.
1097 (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
1098 * targhooks.h (default_mode_rep_extended): Declare it.
1099 * targhooks.c (default_mode_rep_extended): Define it.
1100 * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to
1101 default_mode_rep_extended.
1102 (TARGET_INITIALIZER): Include it.
1103 * doc/tm.texi (Misc): Document it.
1104 * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
1105 (mips_truncated_to_mode): New function.
1107 2006-04-16 Roger Sayle <roger@eyesopen.com>
1110 * expr.c (compress_float_constant): Copy the narrow constant into
1111 a new pseudo before extending it to its final width.
1113 2006-04-16 Roger Sayle <roger@eyesopen.com>
1114 Andrew Pinski <pinskia@gcc.gnu.org>
1115 Dale Johannesen <dalej@apple.com>
1118 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
1119 special case code to implement V8HImode and V16QImode with SSE2.
1121 2006-04-15 Roger Sayle <roger@eyesopen.com>
1123 * config/i386/i386.c (ix86_va_start): Ensure all integer constant
1124 trees are constructed with a suitable tree type.
1126 2006-04-15 Roger Sayle <roger@eyesopen.com>
1128 * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
1129 (integer_onep): Likewise.
1130 (integer_all_onesp): Likewise.
1131 (integer_pow2p): Likewise.
1132 (integer_nonzerop): Likewise.
1133 (real_zerop): Likewise.
1134 (real_onep): Likewise.
1135 (real_twop): Likewise.
1136 (real_minus_onep): Likewise.
1137 (int_size_in_bytes): Likewise.
1138 (host_integerp): Likewise.
1140 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
1142 * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
1143 jump.c, mips-tfile.c, omp-low.c, sched-int.h,
1144 tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
1146 * tree-ssa-structalias.h (alias_info): Remove num_references.
1148 2006-04-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1150 * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
1151 (output_bvb patterns): Likewise.
1152 * pa.c (output_bb): Use 'bb' insn for long branch case.
1153 (output_bvb): Likewise use '{bvb|bb}' for long branch case.
1154 (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
1155 1. Correct length operand for alternatives 1 and 2.
1156 (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
1157 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3.
1159 2006-04-14 Roger Sayle <roger@eyesopen.com>
1161 * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
1162 is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
1163 were accidentally reverted by r112959.
1165 2006-04-15 Jakub Jelinek <jakub@redhat.com>
1168 * except.h (eh_region_outermost): New prototype.
1169 * except.c (eh_region_outermost): New function.
1170 * tree-cfg.c (find_outermost_region_in_block): Use it.
1172 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
1174 * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
1176 * reload1.c (reg_equiv_memory_loc_varray): Rename to
1177 reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *.
1178 (init_reload, reload): Use VEC instead of VARRAY.
1179 * reload.h: Update the prototype for
1180 reg_equiv_memory_loc_varray.
1182 2006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com>
1183 Eric Botcazou <ebotcazou@libertysurf.fr>
1185 * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
1188 2005-04-13 Uros Bizjak <uros@kss-loka.si>
1191 * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
1192 to expand fallback builtin function call.
1194 2006-04-14 Alan Modra <amodra@bigpond.net.au>
1197 * builtins.c: (expand_builtin_memset): Stabilize args before expansion
1198 and emit libcall here in case the builtin fails.
1199 (expand_builtin_strcmp): Always emit the libcall here on failure.
1201 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
1203 * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
1204 * flow.c (reg_n_info): Change the type to
1205 VEC(reg_info_p,heap) *.
1206 * regclass.c (allocate_reg_info, free_reg_info): Use VEC
1208 * regs.h (reg_info_p): New.
1209 (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
1210 REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
1211 REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
1214 2006-04-13 Eric Botcazou <ebotcazou@adacore.com>
1216 * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
1218 * params.h (MAX_SCHED_READY_INSNS): New macro.
1219 * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
1220 past MAX_SCHED_READY_INSNS during the first scheduling pass.
1221 (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
1222 the ready list for 1 cycle during the first scheduling pass.
1223 * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
1225 2006-04-13 Richard Henderson <rth@redhat.com>
1228 * gimple-low.c (lower_omp_directive): Remove dead code.
1229 (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
1230 * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
1231 * omp-low.c (struct omp_region): Move to tree-flow.h.
1232 (root_omp_region): Export.
1233 (omp_regions, lookup_omp_region): Remove.
1234 (determine_parallel_type): Update for struct omp_region changes.
1235 (dump_omp_region): Dump regions with block numbers.
1236 (new_omp_region): Take type and block instead of stmt; malloc
1238 (free_omp_region_1, free_omp_regions): New.
1239 (expand_parallel_call): Take entry_stmt as argument; update for
1240 changes to omp_region.
1241 (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
1242 (remove_exit_barriers): New.
1243 (expand_omp_parallel): Update for struct omp_region changes.
1244 (expand_omp_synch): Likewise.
1245 (expand_omp): Likewise.
1246 (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
1247 (expand_omp_for_static_chunk): Likewise.
1248 (expand_omp_for): Likewise.
1249 (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
1250 (expand_omp_sections): Similarly, with GOMP_sections_end.
1251 (expand_omp_single): New.
1252 (build_omp_regions_1): Update for OMP_CONTINUE.
1253 (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
1254 (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
1255 OMP_SECTIONS_SECTIONS.
1256 (lower_omp_single_simple): Don't emit barrier here.
1257 (lower_omp_single_copy): Likewise.
1258 (lower_omp_single): Fix bindings, and lower to straightline now.
1259 (lower_omp_master, lower_omp_ordered): Likewise.
1260 (lower_omp_critical): Likewise.
1261 (lower_omp_for): Likewise. Emit OMP_CONTINUE.
1262 * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
1263 omp edges, free it afterward.
1264 (make_omp_sections_edges): Remove.
1265 (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
1266 (move_stmt_r): Handle OMP_CONTINUE.
1267 * tree-flow.h (struct omp_region): Move from omp-low.c. Switch
1268 statement pointers to basic blocks. Add type member.
1269 (root_omp_region, new_omp_region, free_omp_regions): Declare.
1270 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
1271 * tree-inline.c (estimate_num_insns_1): Likewise.
1272 * tree-pretty-print.c (dump_generic_node): Likewise.
1273 * tree-ssa-operands.c (get_expr_operands): Likewise.
1274 * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
1275 (OMP_RETURN): Rename from OMP_RETURN_EXPR.
1276 (OMP_CONTINUE): New.
1277 * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
1278 (OMP_SECTIONS_SECTIONS): Remove.
1279 (OMP_SECTION_LAST): New.
1280 (OMP_RETURN_NOWAIT): New.
1282 2006-04-13 Roger Sayle <roger@eyesopen.com>
1284 * fold-const.c (native_encode_vector, native_interpret_real):
1285 Correct obvious mistakes in the previous check-in.
1287 2006-04-13 Roger Sayle <roger@eyesopen.com>
1289 * fold-const.c (native_encode_expr): New function to encode
1290 the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
1291 or VECTOR_CST into a specified buffer.
1292 (native_encode_int): New function.
1293 (native_encode_real): New function.
1294 (native_encode_complex): New function.
1295 (native_encode_vector): New function.
1296 (native_interpret_expr): Inverse of native_encode_expr to convert
1297 a target representation into an INTEGER_CST, REAL_CST etc...
1298 (native_interpret_int): New function.
1299 (native_interpret_real): New function.
1300 (native_interpret_complex): New function.
1301 (native_interpret_vector): New function.
1302 (fold_view_convert_expr): New function to constant fold/evaluate
1303 a VIEW_CONVERT_EXPR of a suitable constant expression.
1304 (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
1305 Change call of build1 to fold_build1 when constructing a
1308 2006-04-13 Paolo Bonzini <bonzini@gnu.org>
1309 Ulrich Weigand <uweigand@de.ibm.com>
1312 * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
1315 2006-04-13 Alan Modra <amodra@bigpond.net.au>
1318 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
1319 optimize to lo_sum for DFmode if !TARGET_FPRS.
1321 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
1323 * tree-ssa-alias.c (set_initial_properties, init_alias_info,
1324 delete_alias_info, compute_flow_sensitive_aliasing,
1325 group_aliases): Use VEC instead of VARRAY.
1326 * tree-ssa-structalias.c (update_alias_info): Likewise.
1327 * tree-ssa-structalias.h (alias_info): Change the type of
1328 processed_ptrs to VEC(tree,heap) *.
1330 2006-04-12 J"orn Rennecke <joern.rennecke@st.com>
1333 * config/sh/lib1funcs.h: New file, broken out of:
1334 * config/sh/lib1funcs.asm.
1335 * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
1337 * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
1338 * config/sh/lib1funcs-Os-4-200.asm: New file.
1339 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
1340 * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
1341 (EXTRA_MULTILIB_PARTS): Include it.
1342 ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
1343 ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
1344 * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
1345 * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
1348 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
1350 * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
1351 * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
1352 tpa_compact, root_var_init, type_var_init): Use VEC instead of
1354 * tree-ssa-live.h: Include vecprim.h.
1355 (tree_partition_associator_d): Change the type of
1356 first_partition to VEC(int,heap) *.
1357 (tpa_first_partition): Use VEC instead of VARRAY.
1359 * Makefile.in (GTFILES): Move functions.h after tree.h.
1360 * function.c (reset_block_changes, record_block_change,
1361 check_block_change, free_block_changes): Use VEC instead of
1363 * function.h (function): Change the type of
1364 ib_boundaries_block to VEC(tree,gc) *.
1365 * tree-inline.c (copy_cfg_body): Initialize
1366 ib_boundaries_block to NULL instead of (varray_type) 0.
1368 2006-04-12 Roger Sayle <roger@eyesopen.com>
1370 * expr.c (emit_group_store): Correct operand order in call to
1371 subreg_lowpart_offset. Always create paradoxical SUBREGs with
1372 a SUBREG_BYTE of zero.
1374 2006-04-12 Richard Guenther <rguenther@suse.de>
1376 * profile.c (compute_branch_probabilities): Remove code
1377 encapsulated in !ir_type (), which are remanents of the
1378 removed RTL profiling code.
1379 * rtl-profile.c: Remove.
1381 2006-04-12 Alan Modra <amodra@bigpond.net.au>
1383 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
1384 magic NULL_RTX comment.
1385 (function_arg): Store entire fp arg to mem if any part should go
1387 (rs6000_arg_partial_bytes): Adjust for above change.
1389 2006-04-11 Roger Sayle <roger@eyesopen.com>
1391 * dwarf2out.c (output_call_frame_info): Create debug_frame_section
1392 if it hasn't been initialized by dwarf2out_init.
1394 2006-04-11 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
1396 * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
1397 symbolic constants in branch patterns.
1399 2006-04-11 Roger Sayle <roger@eyesopen.com>
1401 * caller-save.c: #include "addresses.h" after #include "tm_p.h".
1403 2006-04-11 Richard Sandiford <richard@codesourcery.com>
1405 PR rtl-optimization/27073
1406 * gcse.c (try_replace_reg): Revert last change. Continue to search
1407 for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
1410 2006-04-11 Eric Botcazou <ebotcazou@libertysurf.fr>
1412 * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
1413 aggregate types other than record and union types.
1414 (function_arg): Likewise.
1415 (function_arg_pass_by_reference): In 64-bit mode, return 0 for
1417 (function_value): In 64-bit mode, return objects that require it
1420 2006-04-11 Roger Sayle <roger@eyesopen.com>
1422 * dwarf2out.c (premark_used_types): Remove problematic prototype.
1424 2006-04-11 Jakub Jelinek <jakub@redhat.com>
1426 * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
1428 2006-04-03 Jeff Law <law@redhat.com>
1431 * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
1432 alias information too.
1434 2006-04-10 Mike Frysinger <vapier@gentoo.org>
1436 * gcc/Makefile.in (gcc-cross): Add $(exeext) to target name.
1438 2006-04-10 Aldy Hernandez <aldyh@redhat.com>
1441 * dwarf2out.c (struct die_struct): Add die_perennial_p field.
1442 (premark_used_types_helper): New.
1443 (premark_used_types): New.
1444 (gen_subprogram_die): Call premark_used_types.
1445 (prune_unused_types_walk): Do not prune perennial dies.
1446 * function.c (used_types_insert): New.
1447 * function.h (struct function): Add used_types_hash field.
1448 (used_types_insert): Add prototype.
1449 * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
1450 * c-parser.c (c_parser_cast_expression): Save casted types in used
1453 2006-04-11 Mark Mitchell <mark@codesourcery.com>
1456 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
1457 rs6000_explicit_options.float_gprs.
1459 2006-04-10 Roger Sayle <roger@eyesopen.com>
1461 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
1462 from ix86_expand_vector_init_low_nonzero. Take an additional
1463 one_var argument indicating which element is non-zero. Support
1464 one_var != 0 for V4SFmode and V4SImode by permuting the result.
1465 (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
1466 with one_var instead of ix86_expand_vector_init_low_nonzero.
1468 2006-04-10 Kazu Hirata <kazu@codesourcery.com>
1470 * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
1471 tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
1472 global.o, cfglayout.o, lambda-code.o, reg-stack.o,
1473 build/genextract.o): Depend on vecprim.h.
1474 * cfglayout.c, df-problems.c, function.c, genextract.c,
1475 global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
1476 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
1480 2006-04-10 Geoffrey Keating <geoffk@apple.com>
1482 * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
1483 Declare VECs of this type.
1484 (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
1485 (remove_children): Delete.
1486 (add_dwarf_attr): Use VEC routines.
1487 (add_AT_flag): Update for changes to add_dwarf_attr.
1488 (add_AT_int): Likewise.
1489 (add_AT_unsigned): Likewise.
1490 (add_AT_long_long): Likewise.
1491 (add_AT_vec): Likewise.
1492 (add_AT_string): Likewise.
1493 (add_AT_die_ref): Likewise.
1494 (add_AT_fde_ref): Likewise.
1495 (add_AT_loc): Likewise.
1496 (add_AT_loc_list): Likewise.
1497 (add_AT_addr): Likewise.
1498 (add_AT_lbl_id): Likewise.
1499 (add_AT_lineptr): Likewise.
1500 (add_AT_macptr): Likewise.
1501 (add_AT_offset): Likewise.
1502 (add_AT_range_list): Likewise.
1503 (get_AT): Use VEC_iterate.
1504 (remove_AT): Use VEC_ordered_remove.
1505 (free_die): Fold remove_children into here; have it use VEC_iterate.
1506 (print_die): Use VEC_iterate on attrs.
1507 (reverse_die_lists): Don't reverse attr lists.
1508 (die_checksum): Use VEC_iterate on attrs.
1509 (same_die_p): Likewise.
1510 (output_location_lists): Likewise.
1511 (build_abbrev_table): Likewise.
1512 (size_of_die): Likewise.
1513 (unmark_all_dies): Likewise.
1514 (output_abbrev_section): Likewise.
1515 (output_die): Likewise.
1516 (prune_unused_types_walk_attribs): Likewise.
1518 2006-04-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1520 * doc/install.texi (*-*-solaris2*): Point to the configure page.
1522 2006-04-10 Jakub Jelinek <jakub@redhat.com>
1525 * dwarf2out.c (is_symbol_die): Return true also for namespaces.
1527 2006-04-09 Roger Sayle <roger@eyesopen.com>
1529 * expr.c (store_constructor): Don't bother clearing target if
1530 we're about to assign a vector to it using vec_init_optab.
1532 2006-04-10 Daniel Berlin <dberlin@dberlin.org>
1534 * tree-ssa-alias.c (lhs_may_store_to): New function.
1535 (recalculate_used_alone): Handle LHS of calls.
1537 2006-04-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1541 * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
1542 * pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a.
1543 (LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here.
1544 (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
1545 (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
1546 (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
1547 section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
1548 stubs. Add ".align 8" directives before all ".dword" directives.
1549 (GTHREAD_USE_WEAK): Revise comment.
1550 (TARGET_ATTRIBUTE_WEAK): Define.
1551 * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
1552 dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
1553 * stublib.c: New file.
1558 * pa.md (cbranch patterns): Revise arguments used in calls to
1559 output_cbranch, output_bb and output_bvd. Add long branch length
1561 (fbranch patterns): Handle long branches.
1562 (jump): Revise length check. Revise arguments for output_lbranch call.
1563 Add long branch length attributes.
1564 (decrement_and_branch_until_zero): Add long branch length attributes.
1565 (output_movb, output_parallel_addb and output_parallel_movb patterns):
1566 Likewise. Revise arguments for output_parallel_addb and
1567 output_parallel_movb calls.
1568 * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
1569 output_parallel_movb and output_parallel_addb): Update prototypes.
1570 * pa.c (output_cbranch): Revise arguments. Correct handling of
1571 nullification in long branches.
1572 (output_lbranch): Add new argument to control extraction of delay
1574 (output_bb): Handle long branches.
1575 (output_bvb, output_dbra, output_movb, output_parallel_movb,
1576 output_parallel_addb): Likewise.
1578 2006-04-09 Richard Sandiford <richard@codesourcery.com>
1580 PR rtl-optimization/27073
1581 * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
1584 2006-04-08 Daniel Berlin <dberlin@dberlin.org>
1586 * tree.h (tree_memory_tag): Add old_used_alone.
1587 (SMT_OLD_USED_ALONE): New macro.
1588 * tree-ssa-alias.c (recalculate_used_alone): Stop
1589 marking things for renaming unnecessarily.
1591 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
1593 * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
1594 config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
1595 config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
1596 haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
1597 sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
1598 tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
1599 tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow
1600 spelling convensions.
1601 * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
1602 doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
1603 typos. Follow spelling conventions.
1605 2006-04-07 DJ Delorie <dj@redhat.com>
1607 * config/m32c/m32c.c (m32c_function_arg): Structures are always
1608 passed on the stack.
1609 (m32c_init_cumulative_args): When a function returns a structure,
1610 always pass the pointer to that return area on the stack.
1611 (m32c_function_arg_advance): Don't increment the parameter number
1612 if we're processing the returned structure pointer.
1613 (pushm_info): Reverse order of registers.
1615 2006-04-07 Sebastian Pop <pop@cri.ensmp.fr>
1617 * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
1618 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
1619 number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
1620 estimate_numbers_of_iterations_loop): Use build_int_cst instead of
1622 * tree-chrec.c (chrec_fold_multiply_poly_poly,
1623 chrec_fold_multiply): Same.
1624 * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
1625 force_expr_to_var_cost): Same.
1626 * tree-mudflap.c (mf_xform_derefs_1): Same.
1627 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
1629 2006-04-07 David Edelsohn <edelsohn@gnu.org>
1631 * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
1632 treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra
1635 2006-04-07 Jan Hubicka <jh@suse.cz>
1637 * ipa-inline.c (cgraph_early_inlining): Collect garbage.
1639 2006-04-07 Richard Guenther <rguenther@suse.de>
1641 PR tree-optimization/26135
1642 * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
1643 loads for store copy-prop.
1644 (copy_prop_visit_stmt): Likewise.
1646 2006-04-05 Robert Millan <robertmh@gnu.org>
1648 * gcc/config/i386/linux.h: Add a comment to mark macros that are
1649 being overriden in config/k*bsd-gnu.h.
1650 * gcc/config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
1652 * gcc/config/knetbsd-gnu.h: Ditto.
1654 2006-04-06 Jan Hubicka <jh@suse.cz>
1658 * coverage.c (coverage_checksum_string): Reorganize loop to not read
1661 2006-04-06 Mike Stump <mrs@apple.com>
1663 * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
1664 for HAVE_nonlocal_goto to be consistent.
1665 (expand_builtin_nonlocal_goto): Likewise.
1666 (expand_builtin_strcmp): Use #ifdef instead of #if
1667 for HAVE_cmpstrnsi to be consistent.
1669 2006-04-05 DJ Delorie <dj@redhat.com>
1671 * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
1674 2006-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
1676 * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
1677 got-relative addressing for anything but SImode.
1679 * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
1680 even if the calling function doesn't modify them.
1682 2006-04-05 Richard Guenther <rguenther@suse.de>
1684 PR tree-optimization/26919
1685 * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
1686 to cgraph_estimate_size_after_inlining.
1688 2006-04-05 Alan Modra <amodra@bigpond.net.au>
1690 * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
1692 2006-04-05 Sebastian Pop <pop@cri.ensmp.fr>
1694 PR tree-optimization/26996
1695 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
1696 VECTOR_TYPE variables.
1698 2006-04-05 Richard Guenther <rguenther@suse.de>
1700 PR tree-optimization/26763
1701 * fold-const.c (fold_comparison): Move folding of
1702 PTR + CST CMP PTR + CST ...
1703 (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR.
1705 2006-04-05 Gerald Pfeifer <gerald@pfeifer.com>
1707 * doc/install.texi (Prerequisites): Refine some wording on
1708 bootstrapping and ksh.
1709 Move the version numbers of DejaGnu here from the testing section
1710 and fix casing of names.
1711 Fix markup and clarify wording for autogen requirements.
1712 Refer to GCJ instead of just java.
1713 Refer to SVN instead of CVS.
1714 Describe diffutils as useful instead of necessary.
1715 (Downloading the source): Refer to SVN instead of CVS.
1716 Adjust a link to our web site accordingly.
1717 (Configuration): Fix casing of Bison.
1718 (Building): Refer to SVN instead of CVS.
1719 Fix a sentence on the use of Bison and remove duplicate (and
1720 incorrect) version number of Bison requirement.
1721 Remove one redundant list of packages needed for building.
1722 (Specific): Avoid reference to CVS.
1724 2006-04-04 Eric Christopher <echristo@apple.com>
1726 * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
1727 (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
1728 (rs6000_handle_struct_attribute): New.
1729 (rs6000_ms_bitfield_layout_p): Ditto.
1731 2006-04-04 Geoffrey Keating <geoffk@apple.com>
1733 * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
1734 NULL for dso parameter to atexit_common.
1736 2006-04-04 Eric Christopher <echristo@apple.com>
1738 * config/i386/i386.c (machopic_output_stub): Output \t
1739 between instructions and operands.
1741 2006-04-04 David Edelsohn <edelsohn@gnu.org>
1743 * config/rs6000/rs6000.c (num_insns_constant_wide): Change
1744 satisfies_constraint_[IL] to explicit tests on value.
1746 2006-04-04 Sebastian Pop <pop@cri.ensmp.fr>
1748 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1749 set_nb_iterations_in_loop): Use build_int_cst instead of
1751 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
1752 build_int_cst instead of convert.
1754 2006-04-04 Carlos O'Donell <carlos@codesourcery.com>
1756 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
1757 new value 2 for incoming.
1758 * function.c (expand_function_start): Call struct_value_rtx
1760 * config/sparc/sparc.md: Comment updated_return.
1761 * config/sparc/sparc.opt: Add -mstd-struct-return option.
1762 * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
1763 struct return if sparc_std_struct_return and incoming is 2.
1764 (print_operand): Do not adjust return if
1765 sparc_std_struct_return.
1767 2006-04-04 Roger Sayle <roger@eyesopen.com>
1769 * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
1770 convert in the middle-end.
1771 * expr.c (store_expr, store_constructor, get_inner_reference,
1772 expand_expr_real_1, string_constant, try_casesi, try_tablejump):
1774 * tree.c (build_range_type): Likewise.
1776 2006-04-04 Tom Tromey <tromey@redhat.com>
1778 * doc/install.texi (Prerequisites): Mention jar.
1780 2006-04-04 Daniel Berlin <dberlin@dberlin.org>
1782 * doc/tree-ssa.texi (Preserving the virtual ssa form): New
1785 2006-04-04 Matthias Klose <doko@debian.org>
1787 * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
1788 * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
1791 2006-04-03 Geoffrey Keating <geoffk@apple.com>
1793 * doc/extend.texi (Function Attributes): Rewrite visibility
1794 attribute documentation.
1795 * doc/invoke.texi (C++ Dialect Options): Rewrite
1796 -fvisibility-inlines-hidden documentation to describe something
1797 entirely different, although in practise compatible.
1798 (Code Gen Options): Warn about system headers in -fvisibiltity=
1801 * doc/extend.texi (Other Builtins): Document that
1802 __builtin_nan is a compile-time constant only when its argument
1805 2006-04-03 Adam Nemet <anemet@caviumnetworks.com>
1807 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
1808 trying to remove TRUNCATE check if all bits outside the new mode
1809 are identical to the sign bit.
1811 2006-04-03 Jeff Law <law@redhat.com>
1813 * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
1814 and operand scanning in some common cases.
1816 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
1817 Dale Johannesen <dalej@apple.com>
1820 * regclass.c (struct reg_pref): Update documentation.
1821 (regclass): Set prefclass to NO_REGS if memory is the best option.
1822 (record_reg_classes): Cope with a prefclass set to NO_REGS.
1823 * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
1824 into account. For non-registers, equate an empty preferred
1825 reload class to a `!' in the constraint; move the if clause to
1826 do so after those that reject the insn.
1827 (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
1829 (find_dummy_reload): Likewise.
1830 * doc/tm.texi (Register Classes): Document what it means
1831 if PREFERRED_*_RELOAD_CLASS return NO_REGS.
1832 * config/i386/i386.c (ix86_preferred_reload_class): Force
1833 using SSE registers (and return NO_REGS for floating-point
1834 constants) if math is done with SSE.
1835 (ix86_preferred_output_reload_class): New.
1836 * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
1837 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
1838 * config/i386/i386.md: Remove # register preferences.
1840 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
1843 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1844 chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
1845 the type of nb_iter.
1846 (instantiate_parameters_1): Convert the operands before calling
1847 chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
1848 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
1850 2006-04-02 Roger Sayle <roger@eyesopen.com>
1852 * builtins.c (dummy_object): Use build_int_cst instead of convert.
1853 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
1855 * dojump.c (do_jump): Likewise.
1856 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
1857 * gimplify.c (gimple_boolify, gimplify_init_constructor,
1858 gimplify_boolean_expr): Likewise.
1859 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1860 * varasm.c (array_size_for_constructor): Likewise.
1861 * tree-object-size.c (compute_object_offset): Likewise.
1863 2006-04-02 Roger Sayle <roger@eyesopen.com>
1866 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
1867 NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
1869 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
1871 PR tree-optimization/26939
1872 * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
1874 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
1876 * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
1877 at_stmt. Convert the type of operands before calling
1878 build_polynomial_chrec.
1879 (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
1881 (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
1882 (instantiate_parameters_1): Convert the type of operands before calling
1883 build_polynomial_chrec.
1884 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
1885 chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
1886 reset_evolution_in_loop): Insert asserts to check the types of the
1888 (chrec_type): Moved...
1889 (eq_evolutions_p): Use operand_equal_p.
1890 * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
1891 the types of the operands.
1892 (chrec_type): ...here.
1893 * tree-data-ref.c (create_data_ref): Convert the operands before
1894 calling chrec_replace_initial_condition.
1895 (same_access_functions, analyze_subscript_affine_affine,
1896 analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
1897 (compute_subscript_distance, analyze_ziv_subscript,
1898 analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
1899 analyze_miv_subscript): Convert the operands before calling
1900 chrec_fold_minus or chrec_fold_plus.
1902 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
1904 * tree-data-ref.c (compute_all_dependences): Use a pointer to
1905 the dependence_relations vector.
1906 (compute_data_dependences_for_loop): Adjust call to
1907 compute_all_dependences.
1909 2006-04-01 Roger Sayle <roger@eyesopen.com>
1910 Richard Henderson <rth@redhat.com>
1912 * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
1913 gimple_boolify on the condition before calling gimplify_expr.
1915 2006-03-31 Bob Wilson <bob.wilson@acm.org>
1917 * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
1918 to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
1919 the frame size. Update to use the new macros.
1920 * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
1921 * config/xtensa/ieee754-df.S: Likewise.
1923 2006-03-31 Richard Henderson <rth@redhat.com>
1925 * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
1926 (make_edges): ... here. Control fallthru creation with a local
1927 variable. Do not play with fake edges.
1928 (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
1929 (make_goto_expr_edges): Don't play with fake edges. Make for_call
1932 2006-04-01 Joseph S. Myers <joseph@codesourcery.com>
1934 * dwarf2.h (DW64_CIE_ID): Define.
1935 * dwarf2out.c (DWARF_CIE_ID): Define.
1936 (output_call_frame_info): Output 0xffffffff before standard 8-byte
1937 length header. Use DWARF_CIE_ID.
1938 (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
1939 dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
1941 2006-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
1943 * config/sh/linux-atomic.asm: New file.
1944 * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
1946 2006-03-31 DJ Delorie <dj@redhat.com>
1948 * config/m32c/cond.md: Set condition flags properly throughout.
1949 * config/m32c/minmax.md: Likewise.
1950 * config/m32c/prologue.md: Likewise.
1951 * config/m32c/bitops.md: Likewise.
1952 * config/m32c/muldiv.md: Likewise.
1953 * config/m32c/mov.md: Likewise.
1954 * config/m32c/addsub.md: Likewise.
1955 * config/m32c/m32c.md: Likewise.
1956 * config/m32c/jump.md: Likewise.
1957 * config/m32c/shift.md: Likewise.
1959 * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
1960 conditionally output the pattern for this.
1961 * config/m32c/m32c.c (flags_needed_for_conditional): New.
1962 (m32c_compare_redundant): New.
1963 (m32c_output_compare): New.
1964 * config/m32c/m32c-protos.h (m32c_output_compare): New.
1966 * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
1967 dest, not src. Allow other 4-byte modes.
1969 2006-03-30 Denis Chertykov <denisc@overta.ru>
1971 * doc/md.texi: Refer to avr/constraints.md instead of
1974 2006-03-30 Roger Sayle <roger@eyesopen.com>
1976 * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
1977 signed vs. unsigned comparison failures on some hosts.
1979 2006-03-31 Alan Modra <amodra@bigpond.net.au>
1982 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
1983 change to FLOAT_REGS.
1985 * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
1986 (rs6000_override_options): Use it.
1987 (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi
1988 only for -mabi=spe/no-spe and -mabi=altivec.
1990 2006-03-30 Geoffrey Keating <geoffk@apple.com>
1992 * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
1995 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
1997 * Makefile.in: Rename docdir to gcc_docdir.
1999 2006-03-30 Roger Sayle <roger@eyesopen.com>
2002 * expr.c (emit_group_store): Optimize group stores into a pseudo
2003 register by using a paradoxical subreg to initialize the destination
2004 if the first or last member of the group specifies a "low part".
2006 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2009 * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
2010 * target.h (struct gcc_target.speculate_insn): Change type of the
2011 second parameter to 'int'.
2012 * lists.c (alloc_DEPS_LIST): Change signature. Update reference to
2013 the second operand of the DEPS_LIST.
2014 (copy_DEPS_LIST_list): Update reference to the second operand of the
2016 * rtl.h (alloc_DEPS_LIST): Update signature.
2017 * sched-int.h (ds_t): Change typedef to 'int'.
2018 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2020 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2022 * haifa-sched.c (try_ready): Change condition to restore
2023 non-speculative pattern of the instruction.
2024 (process_insn_depend_be_in_spec): Code to keep probability of the
2025 speculative dependence non-decreasing.
2027 2006-03-30 Jie Zhang <jie.zhang@analog.com>
2029 * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
2030 (single_move_for_movmem): ... this. Also change all uses.
2031 (bfin_expand_strmov): Renamed to...
2032 (bfin_expand_movmem): ... this. Also change all uses.
2033 * config/bfin/bfin.md (movstrsi): Renamed to...
2034 (movstrsi): ...this.
2036 2006-03-30 Paolo Bonzini <bonzini@gnu.org>
2038 PR tree-optimization/26830
2040 * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
2041 (copy_prop_visit_stmt): Remove write-only variable ann.
2042 (init_copy_prop): Check variable loop depth here. Do not simulate
2043 memory-tag and virtual operand PHIs except for store copy prop.
2045 2006-03-30 Richard Guenther <rguenther@suse.de>
2047 * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
2048 variants with double arguments.
2050 2006-03-29 David Edelsohn <edelsohn@gnu.org>
2052 * genpreds.c (write_tm_constrs_h): Delete variable p.
2053 * genconditions.c (write_header): Add tm-constrs.h to included
2055 * genpeep.c (main): Add toplev.h to included headers.
2056 * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
2057 (build/genpeep.o): Add toplev.h dependency.
2058 * config/rs6000/constraints.md: Add "W" constraint.
2060 2006-03-29 Roger Sayle <roger@eyesopen.com>
2062 * stor-layout.c (mode_for_size_tree): Remove restiction on type
2063 sizes by correctly testing whether the size fits a host integer.
2064 (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
2065 to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
2066 SImode range for the default sizetype and bitsizetype.
2068 2006-03-29 Roger Sayle <roger@eyesopen.com>
2070 * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
2071 and TREE_CONSTANT_OVERFLOW bits of the argument. Return
2072 quickly if the argument is already of the correct type.
2073 Call fold_build1 instead of build1. Tidy up blank lines.
2075 2006-03-29 David Edelsohn <edelsohn@gnu.org>
2077 * genemit.c (main): Add tm-constrs.h to included headers.
2078 * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
2079 * genpeep.c (main): Add tm-constrs.h to included headers.
2080 * genpreds.c (write_satisfies_constraint_fns): Rename to ...
2081 (write_tm_constrs_h): this and write complete file.
2082 (write_tm_preds_h): Do not emit satisfies_constraint fns.
2083 (write_insn_preds_c): Add tm-constrs.h to included headers.
2084 (gen_constrs): New variable.
2085 (parse_option): Parse "-c".
2086 (main): Invoke write_tm_constrs_h.
2087 * genrecog.c (write_header): Add tm-constrs.h to included headers.
2088 * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
2089 (object_out_file): Add tm-constrs.h dependency.
2090 (insn-emit.o): Same.
2091 (insn-output.o): Same.
2092 (insn-peep.o): Same.
2093 (insn-preds.o): Same.
2094 (insn-recog.o): Same.
2095 (tm-constsr.h): New target.
2096 (s-constrs-h): New target.
2098 * config/rs6000/constraints.md: New file.
2099 * config/rs6000/rs6000.c: Include tm-constrs.h.
2100 (num_insn_constant_wide): Convert to satisfies_constraint.
2101 (rs6000_rtx_costs): Convert to satisfies_constraint.
2102 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
2103 (CONST_OK_FOR_LETTER_P): Delete.
2104 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2105 (EXTRA_CONSTRAINT): Delete.
2106 (EXTRA_MEMORY_CONSTRAINT): Delete.
2107 (EXTRA_ADDRESS_CONSTRAINT): Delete.
2108 * config/rs6000/predicates.md: Convert to satisfies_constraint.
2109 * config/rs6000/rs6000.md: Include constraints.md. Convert to
2110 satisfies_constraint.
2112 * config/i386/i386.c: Include tm-constrs.h.
2114 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
2116 * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
2117 * tree-data-ref.c (find_data_references_in_loop,
2118 compute_data_dependences_for_loop): Use pointers to VEC.
2119 (analyze_all_data_dependences): Adjust calls.
2120 * tree-data-ref.h (find_data_references_in_loop,
2121 compute_data_dependences_for_loop): Adjust declarations.
2122 * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
2123 compute_data_dependences_for_loop.
2125 2006-03-29 Paul Brook <paul@codesourcery.com>
2127 * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
2130 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
2132 PR tree-optimization/26859
2133 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
2135 (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
2136 for the step after fold_convert.
2138 2006-03-29 Paul Brook <paul@codesourcery.com>
2140 * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
2141 (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
2143 2006-03-29 Paul Brook <paul@codesourcery.com>
2146 * targhooks.c (default_narrow_bitfield): New fuction.
2147 * targhooks.h (default_narrow_bitfield): add prototype.
2148 * target.h (gcc_target): Add narrow_volatile_bitfield.
2149 * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2150 * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
2151 * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
2152 * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2154 2006-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
2156 * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
2158 * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
2159 (NR_C_MODES): Add TDmode, DDmode and SDmode.
2160 (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
2161 (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
2162 (s390_function_arg_float): Allow SDmode and DDmode values to be
2163 passed in floating point registers.
2164 (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
2165 check with SCALAR_FLOAT_MODE_P.
2166 (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
2168 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
2170 PR tree-optimization/25985
2171 * tree-ssa-loop-niter.c (number_of_iterations_le,
2172 number_of_iterations_ne): Make comments more precise.
2173 (number_of_iterations_cond): Add only_exit argument. Use the
2174 fact that signed variables do not overflow only when only_exit
2176 (loop_only_exit_p): New.
2177 (number_of_iterations_exit): Pass result of loop_only_exit_p to
2178 number_of_iterations_cond.
2180 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
2182 PR tree-optimization/26643
2183 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
2186 2006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
2188 * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
2189 (divsi3_i4_int): Likewise.
2191 2006-03-28 Roger Sayle <roger@eyesopen.com>
2193 * expr.c (emit_group_store): Only create a new pseudo reg if the
2194 quantity it needs to hold isn't already a suitable pseudo.
2196 2006-03-28 Jeff Law <law@redhat.com>
2198 * timevar.def (TV_TREE_PHI_CPROP): New timevar.
2199 * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
2201 2006-03-28 Roger Sayle <roger@eyesopen.com>
2203 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
2204 the equivalent ~X & Y, and the symmetry related transformations.
2205 (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
2206 ~X & Y, and symmetry related transforms.
2208 2006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2210 Revert my 2006-03-27 patches.
2212 2006-03-28 Roger Sayle <roger@eyesopen.com>
2214 * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
2215 ~(T1)X, when T1 and T2 are integer types of the same precision
2216 and (T2)X isn't an extension.
2218 2006-03-28 Jeff Law <law@redhat.com>
2220 PR tree-optimization/26796
2221 * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
2222 need EH edge cleanups rather than purging them immediately.
2223 (eliminate_degenerate_phis): Handle queued EH cleanups.
2225 2006-03-28 Daniel Berlin <dberlin@dberlin.org>
2227 * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
2230 2006-03-27 Roger Sayle <roger@eyesopen.com>
2233 * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
2234 cast BIT_NOT_EXPR operand to the correct type.
2236 2006-03-27 Sebastian Pop <pop@cri.ensmp.fr>
2238 * tree-loop-linear.c: Don't include varray.h.
2239 (gather_interchange_stats, try_interchange_loops,
2240 linear_transform_loops): Use VEC instead of VARRAY.
2241 * lambda-mat.c: Don't include varray.h.
2242 * tree-chrec.c: Same.
2243 * lambda-trans.c: Same.
2244 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
2245 VEC instead of VARRAY.
2246 * tree-vectorizer.h: Idem.
2247 * tree-data-ref.c (dump_data_references,
2248 dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
2249 initialize_data_dependence_relation, finalize_ddr_dependent,
2250 compute_all_dependences, find_data_references_in_loop,
2251 compute_data_dependences_for_loop, analyze_all_data_dependences,
2252 free_dependence_relation, free_dependence_relations,
2253 free_data_refs): Idem.
2254 * tree-data-ref.h (data_reference_p, subscript_p): New.
2255 (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
2256 VEC instead of VARRAY.
2257 (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
2258 (find_data_references_in_loop, compute_data_dependences_for_loop,
2259 dump_ddrs, dump_dist_dir_vectors, dump_data_references,
2260 dump_data_dependence_relations, free_dependence_relations,
2261 free_data_refs): Adjust declaration.
2262 (lambda_transform_legal_p): Move declaration here...
2263 * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
2264 vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
2265 vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
2266 vect_analyze_data_refs): Use VEC instead of VARRAY.
2267 * lambda.h (lambda_transform_legal_p): ...from here.
2268 * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
2269 * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
2270 * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
2271 tree-chrec.o): Don't depend on VARRAY_H.
2273 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2275 * rtl.def (Copyright): Update date.
2276 (DEPS_LIST): Change type of the second operand to 'int'.
2277 * target.h (Copyright): Update date.
2278 (struct gcc_target.speculate_insn): Change type of the second parameter
2280 * lists.c (Copyright): Update date.
2281 (alloc_DEPS_LIST): Change signature. Update reference to the second
2282 operand of the DEPS_LIST.
2283 (copy_DEPS_LIST_list): Update reference to the second operand of the
2285 * rtl.h (Copyright): Update date.
2286 (alloc_DEPS_LIST): Update signature.
2287 * sched-int.h (Copyright): Update date.
2288 (ds_t): Change typedef to 'int'.
2289 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2291 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2293 * haifa-sched.c (Copyright): Update date.
2294 (try_ready): Change condition to restore non-speculative pattern
2296 (process_insn_depend_be_in_spec): Code to keep probability of the
2297 speculative dependence non-decreasing.
2299 2006-03-27 Bernd Schmidt <bernd.schmidt@analog.com>
2301 * regrename.c (replace_oldest_value_addr): Initialize a variable to
2302 shut up the compiler.
2304 2006-03-27 J"orn Rennecke <joern.rennecke@st.com>
2306 * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
2307 to use lib prefix for target.
2308 ($(T)libic_invalidate_array_4-200.a): Likewise.
2309 ($(T)libic_invalidate_array_4a.a): Likewise.
2311 2006-03-27 Andrew Stubbs <andrew.stubbs@st.com>
2312 J"orn Rennecke <joern.rennecke@st.com>
2314 * superh.opt: New file.
2315 * sh.c (boardtype, osruntime): Remove.
2316 * superh.h (SUBTARGET_OPTIONS): Remove.
2317 * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
2319 * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed
2320 arguments with ^ and/or [].
2322 * config.gcc (sh-*-*): Add quoting to account for quirk of
2324 Replace == with = in enable_incomplete_targets test.
2326 * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
2327 with MASK_LITTLE_ENDIAN.
2329 * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
2330 * config/sh/sh.opt: Added to some comments.
2331 * config/sh/superh.h: Removed some chaff.
2333 * config/sh/sh.opt: Add m4-[1234]00* options.
2334 * config/sh/sh.c (sh_handle_option): Likewise.
2335 * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
2336 (ic_invalidate_array_4-100.o): New rule.
2337 ($(T)libic_invalidate_array_4-100.a): Likewise.
2338 (ic_invalidate_array_4-200.o): Likewise.
2339 ($(T)libic_invalidate_array_4-200.a): Likewise.
2340 (ic_invalidate_array_4a.o): Likewise.
2341 ($(T)libic_invalidate_array_4a.a): Likewise.
2342 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
2343 * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
2345 * config/sh/crt1.asm: Merged in profiling code.
2346 * config/sh/superh.h (STARTFILE_SPEC): Override.
2347 * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
2348 Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
2349 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
2351 * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
2352 * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
2353 MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
2355 * sh.opt (mpretend-cmove): New option.
2356 * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
2357 * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
2358 (movsicc): Add TARGET_PRETEND_CMOVE code.
2360 2006-03-27 Andreas Krebbel <krebbel1@de.ibm.com>
2362 * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
2363 s390_class_max_nregs): New function prototypes.
2364 * config/s390/s390.c (REGNO_PAIR_OK): New macro.
2365 (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
2366 * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
2367 CLASS_MAX_NREGS): Macro bodies replaced by function calls.
2369 2006-03-26 Geoffrey Keating <geoffk@apple.com>
2371 * dwarf2out.c (add_location_or_const_value_attribute): Call
2372 tree_add_const_value_attribute if nothing else works.
2373 (reference_to_unused): New.
2374 (rtl_for_decl_init): Use reference_to_unused to decide whether
2375 to output an initializer.
2377 2006-03-27 Alan Modra <amodra@bigpond.net.au>
2380 * config/rs6000/rs6000.md (DF reg move peephole): Prevent
2381 peephole removing spe frob_di_df_2.
2383 2006-03-26 Sebastian Pop <pop@cri.ensmp.fr>
2385 * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
2386 (subscript_dependence_tester_1): Declared.
2387 (print_dir_vectors, print_dist_vectors): New.
2388 (debug_data_dependence_relation): New.
2389 (dump_data_dependence_relation): Print more details.
2390 (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
2391 (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
2392 (save_dist_v, save_dir_v, add_outer_distances,
2393 build_classic_dist_vector_1): New.
2394 (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
2395 Don't test for lambda_vector_lexico_pos.
2396 (same_access_functions, add_multivariate_self_dist,
2397 add_other_self_distances, dir_from_dist): New.
2398 (build_classic_dir_vector): Replace implementation almost identical to
2399 build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
2401 (subscript_dependence_tester_1): New.
2402 (subscript_dependence_tester): Handle the lexicographically negative
2403 distance vectors by recomputing the dependence relation.
2404 (compute_affine_dependence): Remove parameter loop_nest_depth.
2405 (compute_self_dependence): Don't call compute_subscript_distance.
2406 (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
2407 Add a parameter for the loop_nest.
2408 (find_loop_nest_1, find_loop_nest): New.
2409 (compute_data_dependences_for_loop): Compute the loop nest, and give
2410 up if the nest is not well formed.
2411 * tree-data-ref.h (loop_p): New.
2412 (struct data_dependence_relation): Replace size_vect field with
2413 loop_nest, a vec of loops.
2414 (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
2415 (DDR_LOOP_NEST): New.
2416 (print_dir_vectors, print_dist_vectors,
2417 debug_data_dependence_relation): Declared.
2418 (index_in_loop_nest): New.
2419 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
2420 DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
2423 2006-03-25 Adam Nemet <anemet@caviumnetworks.com>
2425 * simplify-rtx.c (simplify_relational_operation): Call
2426 simplify_relational_operation_1 even if mode is VOIDmode.
2428 2006-03-25 Daniel Berlin <dberlin@dberlin.org>
2430 PR tree-optimization/26804
2431 * tree.h (DECL_CALL_CLOBBERED): New macro.
2432 (tree_decl_common): Add call_clobbered_flag.
2433 * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
2434 (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
2435 (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
2436 (mark_non_addressable): Ditto.
2437 * tree-ssa.c (verify_call_clobbered): New function.
2438 (verify_alias_info): Use it.
2439 * tree-pass.h (pass_reset_cc_flags): New prototype.
2440 * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
2441 (reset_cc_flags): New function.
2442 * passes.c (init_optimization_passes): Call reset_cc_flags after
2443 initializing referenced_vars.
2445 2006-03-25 Uros Bizjak <uros@kss-loka.si>
2446 Roger Sayle <roger@eyesopen.com>
2449 * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
2450 to 1.0 for non-real operands. Implement A / A optimization for
2453 2006-03-25 H.J. Lu <hongjiu.lu@intel.com>
2455 * config/i386/i386.c (size_cost): Correct the comment for
2456 cost of storing fp registers.
2457 (i386_cost): Likewise.
2458 (i486_cost): Likewise.
2459 (pentium_cost): Likewise.
2460 (pentiumpro_cost): Likewise.
2461 (k6_cost): Likewise.
2462 (athlon_cost): Likewise.
2463 (k8_cost): Likewise.
2464 (pentium4_cost): Likewise.
2465 (nocona_cost): Likewise.
2466 (generic64_cost): Likewise.
2467 (generic32_cost): Likewise.
2469 2006-03-24 Denis Chertykov <denisc@overta.ru>
2471 * config/avr/avr-protos.h (extra_constraint): Delete.
2472 (extra_constraint_Q): New declaration.
2473 * config/avr/constraints.md: New file.
2474 * config/avr/avr.md: Include it.
2475 (REG_X, REG_Y, REG_Z, REG_W): New constants.
2476 (TMP_REGNO, ZERO_REGNO): Likewise.
2477 (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
2478 * config/avr/avr.c (avr_reg_class_from_letter): Delete.
2479 (extra_constraint): Delete.
2480 (extra_constraint_Q): Test for memory constraint 'Q'.
2481 * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
2482 (REG_CLASS_FROM_LETTER): Delete.
2483 (CONST_OK_FOR_LETTER_P): Delete.
2484 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2485 (EXTRA_CONSTRAINT): Delete.
2486 (TMP_REGNO): Delete.
2487 (ZERO_REGNO): Delete.
2489 2006-03-24 Jeff Law <law@redhat.com>
2491 * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
2492 directly. Call mark_new_vars_to_rename slightly earlier.
2494 2006-03-24 Geoffrey Keating <geoffk@apple.com>
2496 * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
2498 (gen_compile_unit_die): Use new language types for Objective-C and
2500 (dwarf2out_decl): Use is_cxx rather than testing explicitly against
2501 DW_LANG_C_plus_plus.
2504 * config/t-darwin (crt3.o): Work around bug 26840.
2505 * config/darwin-crt3.c: Rewrite.
2506 * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
2508 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
2510 * doc/invoke.texi: Document -femit-class-debug-always
2511 * common.opt: Add -femit-class-debug-always.
2513 2006-03-24 Andreas Krebbel <krebbel1@de.ibm.com>
2515 * config/s390/s390.c (s390_decompose_address): Allow SImode for
2516 index and base register.
2517 (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
2518 print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
2519 with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
2520 REGNO_OK_FOR_INDEX_P.
2521 * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
2523 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
2524 REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
2525 REG_OK_FOR_BASE_P): Definitions removed.
2527 2006-03-24 Jakub Jelinek <jakub@redhat.com>
2530 * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
2531 non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
2532 set yet or weren't marked as local yet.
2534 2006-03-24 Bernd Schmidt <bernd.schmidt@analog.com>
2536 * regrename.c (scan_rtx_address): Initialize a variable to shut up
2539 2006-03-24 Eric Botcazou <ebotcazou@adacore.com>
2541 * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
2542 (rs6000_legitimate_small_data_p): Delete.
2543 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
2544 (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
2545 and make static. Add forward declaration. Update uses.
2546 (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
2547 of offsettable_memref_p.
2548 * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
2549 Use rs6000_offsettable_memref_p instead of a less accurate predicate.
2551 2006-03-24 Jeff Law <law@redhat.com>
2553 * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
2554 around bug in immediate-use iterator.
2556 2006-03-24 Alan Modra <amodra@bigpond.net.au>
2559 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
2560 or __LITTLE_ENDIAN__.
2562 2006-03-23 J"orn Rennecke <joern.rennecke@st.com>
2564 * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
2565 * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
2566 * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
2567 * config/sh/sh.opt (mdiv=): Amend description.
2568 * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
2569 (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
2570 (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
2571 SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
2572 (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
2573 Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
2574 * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
2575 (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE /
2576 TARGET_DIVIDE_CALL_FP.
2578 2006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2580 * haifa-sched.c (choose_ready): Fix type of the local variable.
2581 Move local variables. Add comment.
2582 (check_reg_live): Change signature. Make callable from debugger.
2583 * sched-int.h (check_reg_live): Update signature.
2584 * sched-ebb.c (check_reg_live): Update parameters.
2585 * sched-rgn.c (check_reg_live): Ditto.
2586 (region_head_or_leaf_p): Check pointer before dereferencing.
2587 * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
2588 before reload on optimization levels below 1.
2590 2006-03-23 Richard Henderson <rth@redhat.com>
2592 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
2596 * config/alpha/predicates.md (local_symbolic_operand): Reject
2599 2006-03-23 Andrew Pinski <pinskia@physics.uc.edu>
2602 * tree-ssa-pre.c (create_value_expr_from): Don't reject
2603 expressions which have overflowed constants.
2605 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
2607 * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
2609 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
2611 * cfgloopmanip.c (create_loop_notes): Removed.
2612 * final.c (final_scan_insn): Do not handle loop notes.
2613 * jump.c (squeeze_notes): Ditto.
2614 * cfglayout.c (skip_insns_after_block,
2615 duplicate_insn_chain): Ditto.
2616 * cfgcleanup.c (rest_of_handle_jump2): Do not call
2618 * cfgloop.h (create_loop_notes): Declaration removed.
2620 2006-03-23 Richard Sandiford <richard@codesourcery.com>
2622 * varasm.c (output_constant_pool): Restore fnname and fndecl
2624 (assemble_start_function): Adjust call accordingly.
2625 (assemble_end_function): Likewise.
2627 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2630 * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
2633 * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
2635 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2638 * system.h (ICE_EXIT_CODE): New macro.
2639 * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
2640 (diagnostic_action_after_output): Likewise.
2641 * gcc.c (fatal_ice): New function.
2642 (execute): Use it instead of fatal.
2643 (fancy_abort): Likewise.
2644 * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
2646 2006-03-22 Jeff Law <law@redhat.com>
2648 * loop-unroll.c (analyze_iv_to_split_insn): Handle
2649 iv_analyze_result returning false.
2651 2006-03-22 Jie Zhang <jie.zhang@analog.com>
2653 * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
2655 2006-03-22 Richard Henderson <rth@redhat.com>
2658 * except.c (duplicate_eh_regions_0): New.
2659 (duplicate_eh_region_1): Duplicate the children of the node as
2660 well as the node itself. Link them up properly.
2661 (duplicate_eh_region_2): Merge into ...
2662 (duplicate_eh_regions): ... here. Take copy_region argument, and
2663 copy only a sub-tree if asked. Simplify copying and fixup.
2664 (eh_region_outer_p): New.
2665 * except.h (duplicate_eh_regions): Update decl.
2666 (eh_region_outer_p): Declare.
2667 * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
2668 (lower_omp_master): Likewise.
2669 (lower_omp_ordered): Likewise.
2670 * tree-cfg.c (struct move_stmt_d): Add new_label_map.
2671 (move_stmt_r): Use it to remap labels. Handle recursion vs
2672 remap_decls_p properly.
2673 (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR.
2674 (find_outermost_region_in_block): New.
2675 (new_label_mapper): New.
2676 (move_sese_region_to_fn): Copy eh information to the new function
2678 * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
2680 * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
2683 2006-03-22 Richard Sandiford <richard@codesourcery.com>
2685 * doc/md.texi (-mshared): Mention that -mshared code can be linked
2686 into shared libraries.
2688 2006-03-22 Richard Sandiford <richard@codesourcery.com>
2690 * doc/md.texi: Refer to i386/constraints.md instead of
2692 * config/i386/constraints.md: New file, extracted from...
2693 * config/i386/predicates.md: ...here.
2694 * config/i386/i386.md: Include constraints.md.
2696 2006-03-21 Jason Merrill <jason@redhat.com>
2698 * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
2701 * expr.c (init_block_move_fn): Force default visibility.
2702 (init_block_clear_fn): Likewise.
2703 * builtins.c (expand_builtin_fork_or_exec): Likewise.
2704 * targhooks.c (default_external_stack_protect_fail): Likewise.
2706 2006-03-21 Richard Sandiford <richard@codesourcery.com>
2708 * config/mips/predicates.md (const_call_insn_operand): Allow direct
2709 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
2710 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
2711 Use TARGET_OLDABI instead of !TARGET_NEWABI.
2712 (loadgp): Use mips_current_loadgp_style.
2713 (loadgp_noshared): New pattern.
2714 (sibcall_internal): Use MIPS_CALL.
2715 (sibcall_value_internal): Likewise.
2716 (sibcall_value_multiple_internal): Likewise.
2717 (call_internal): Likewise.
2718 (call_value_internal): Likewise.
2719 (call_value_multiple_internal): Likewise.
2720 (call_split): Use MIPS_CALL and add an 'S' constraint.
2721 (call_value_split): Likewise.
2722 (call_value_multiple_split): Likewise.
2723 * config/mips/mips.opt (-mabicalls): Tweak docstring.
2724 (-mshared): New option.
2725 * config/mips/mips-protos.h (mips_loadgp_style): New enum.
2726 (mips_current_loadgp_style): Declare.
2727 * config/mips/mips.c (mips_classify_symbol): Avoid using
2728 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
2729 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
2730 TARGET_ABSOLUTE_ABICALLS.
2731 (override_options): Adjust comments. Improve the warning that is
2732 issued when -mabicalls and -G are used together.
2733 (mips_file_start): Remove comment.
2734 (mips_current_loadgp_style): New function.
2735 (mips_gnu_local_gp): New variable.
2736 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle
2738 (mips_output_function_prologue): Use mips_current_laodgp_style.
2739 (mips_expand_prologue): Call mips_emit_loadgp before emitting
2740 the cprestore instruction.
2741 (mips_extra_live_on_entry): Fix reversed test. Don't make $25
2742 live for TARGET_ABSOLUTE_ABICALLS.
2743 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
2744 (ASM_SPEC): Pass down -mshared and -mno-shared.
2745 (MIPS_CALL): New macro.
2746 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
2748 * doc/invoke.texi (-mabicalls): Update documentation.
2749 (-mshared): Document.
2751 2006-03-21 Steve Ellcey <sje@cup.hp.com>
2753 * config/ia64/unwind-hpux.c: New file.
2754 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
2756 2006-03-21 Steve Ellcey <sje@cup.hp.com>
2759 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
2761 2006-03-21 Jeff Law <law@redhat.com>
2763 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
2764 type conversions of a VR_VARYING source to a wider type.
2766 2006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
2768 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
2769 tm_file on Solaris 10 and later.
2770 (sparc64-*-solaris2*): Likewise.
2771 (sparc-*-solaris2*): Likewise.
2772 * config/sol26.h: Rename to config/sol2-6.h.
2773 * config/sol2-10.h: New file.
2775 2006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
2778 * tree-ssa-pre.c (create_component_ref_by_pieces):
2781 2006-03-21 Jakub Jelinek <jakub@redhat.com>
2784 * tree.c (get_callee_fndecl): If CALL is error_mark_node,
2785 return it immediately.
2787 2006-03-21 Michael Matz <matz@suse.de>
2789 * genautomata.c (<struct state>, num_out_arcs, presence_signature):
2791 (remove_arc, add_arc): Update num_out_arcs member.
2792 (set_out_arc_insns_equiv_num): Returns nothing instead of number
2794 (cache_presence): New function.
2795 (compare_states_for_equiv): New function.
2796 (state_is_differed): Don't take number of outargs, adjust callers.
2797 Use new invariant for speeding up.
2798 (init_equiv_class): Create initial classes based on sorted
2800 (partition_equiv_class): Don't track out_arcs_num.
2801 (evaluate_equiv_classes): Call cache_presence on all states and
2804 2006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
2806 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
2807 * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
2808 (bfin_valid_reg_p): Test for pseudos explicitly and use only
2809 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
2811 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
2812 (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
2813 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
2814 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
2815 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
2817 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
2818 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
2819 (REGNO_REG_CLASS): ARGP is in PREGS.
2820 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
2822 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
2823 to deal with those addresses.
2824 * addresses.h: New file.
2825 * caller-save.c: Include "addresses.h".
2826 (init_caller_save): Use new base_reg_class function.
2827 * rtl-factoring.c: Include "addresses.h".
2828 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
2829 * recog.c: Include "addresses.h".
2830 (preprocess_constraints): Use new base_reg_class function.
2831 * regrename.c: Include "addresses.h".
2832 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
2833 functions. Keep track of a new var INDEX_CODE to compute valid
2835 (replace_oldest_value_addr): Likewise.
2836 (replace_oldest_value_mem): Use base_reg_class.
2837 * reload.c: Include "addresses.h".
2838 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
2839 (find_reloads): Use new base_reg_class function.
2840 (find_reloads_address): Likewise; also use regno_ok_for_base_p.
2841 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
2842 all callers and prototype changed.
2843 * reload1.c: Include "addresses.h".
2844 (maybe_fix_stack_asms): Use base_reg_class.
2845 * regclass.c: Include "addresses.h".
2846 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
2847 (init_reg_autoinc): Use new base_reg_class function.
2848 (record_reg_classes): Likewise.
2849 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
2850 OUTER_CODE and INDEX_CODE. All callers and prototype changed.
2851 Use new args to compute necessary class.
2853 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
2854 regrename.o, rtl-factoring.o): Update dependencies.
2855 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
2856 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
2857 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
2858 REG_OK_FOR_INDEX_P): Delete documentation.
2860 2006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
2862 * config.gcc (sparc-*-solaris2*): Change the default CPU setting
2863 from V7 to V9 for Solaris 7 and above.
2865 2006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
2867 * doc/invoke.texi: Document new flag -fargument-noalias-anything.
2868 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
2869 argument pointers may not alias any other storage.
2870 * common.opt: Define option -fargument-noalias-anything.
2871 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
2872 alias semantics is specified by flag_argument_noalias > 2.
2874 2006-03-20 Jeff Law <law@redhat.com>
2876 * tree-pass.h (pass_phi_only_copy_prop): Delete.
2877 (pass_phi_only_cprop): Declare.
2878 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
2880 * tree-ssa-dom.c (degenerate_phi_result): New function.
2881 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
2882 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
2883 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
2884 (eliminate_degenerate_phis): Likewise.
2885 (pass_phi_only_cprop): New pass descriptor.
2886 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
2887 support code. Callers updated.
2888 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
2889 (store_copy_prop): Likewise.
2890 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
2892 2006-03-20 Jason Merrill <jason@redhat.com>
2895 * c-pragma.c (visstack): Move out of handle_pragma_visibility.
2896 (push_visibility, pop_visibility): Likewise.
2897 * c-pragma.h: Declare them.
2899 2006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
2901 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
2903 * config/sh/sh.c (find_regmode_weight): Change the type of the first
2904 parameter and use get_ebb_head_tail.
2905 (sh_md_init_global): Adjust uses of find_regmode_weight.
2907 2006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
2909 * function.h (struct function) <x_tail_recursion_reentry>:
2910 Rename to x_stack_check_probe_note.
2911 (tail_recursion_reentry): Rename to stack_check_probe_note.
2912 * function.c: Replace tail_recursion_reentry with
2913 stack_check_probe_note everywhere.
2914 (expand_function_start): Only emit a note for
2915 stack_check_probe_note with -fstack-protect.
2916 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
2918 * emit-rtl.c (remove_unnecessary_notes): Remove.
2919 (pass_remove_unnecessary_notes): Remove.
2920 * rtl.h (remove_unnecessary_notes): Remove prototype.
2921 * final.c (final_start_function): Don't call remove_unnecessary_notes.
2922 * tree-pass.h (pass_remove_unnecessary_notes): Remove.
2923 * passes.c (pass_remove_unnecessary_notes): Don't run it.
2925 2006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
2928 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
2929 (valid_in_set): Handle ARRAY_REF.
2930 Change "if min_variant or VH" to asserts.
2931 (create_component_ref_by_pieces): Handle ARRAY_REF.
2932 (create_expression_by_pieces): Likewise.
2933 (can_PRE_operation): ARRAY_REFs can now be PRE'd.
2935 2006-03-20 David Edelsohn <edelsohn@gnu.org>
2937 * genpreds.c (write_insn_extra_address_constraint): Argument `c'
2938 is operand of switch, not str[0].
2940 2006-03-20 Alan Modra <amodra@bigpond.net.au>
2942 * config/rs6000/rs6000.c (rs6000_handle_option): Use
2943 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
2945 2006-03-19 David Edelsohn <edelsohn@gnu.org>
2947 * genpreds.c (write_tm_preds_h): Add semicolon and newline at
2948 end of insn_extra_address_constraint declaration.
2950 2006-03-19 David Edelsohn <edelsohn@gnu.org>
2952 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
2953 (no-sum-in-toc): Same.
2954 * config/rs6000/rs6000.c (rs6000_handle_option): Use new
2956 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
2957 NO_FP_IN_TOC for -fPIC instead of mask.
2959 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
2960 (BOOT_LDFLAGS): Delete.
2962 * config/rs6000/t-aix52: Same.
2964 * config/rs6000/rs6000.md (store_multiple_power): Delete.
2965 (stmsi[345678]_power): New.
2967 2006-03-17 Steve Ellcey <sje@cup.hp.com>
2969 * config/ia64/ia64.opt: Add empty line to end of file.
2971 2006-03-17 Richard Guenther <rguenther@suse.de>
2974 * builtins.c (get_pointer_alignment): For component style references
2975 adjust alignment to the component type alignment. Make sure
2976 to adjust alignment for component access of constants.
2978 2006-03-17 David Edelsohn <edelsohn@gnu.org>
2980 * config/rs6000/rs6000.md (strlensi): Emit barrier after
2983 2006-03-17 Paul Brook <paul@codesourcery.com>
2985 * doc/install.texi: Docuemnt --with-mode.
2986 * config.gcc: Add --with-mode for arm*-*-*.
2987 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
2989 2006-03-17 J"orn Rennecke <joern.rennecke@st.com>
2991 * sh.c (max_labelno_before_reorg): New variable.
2992 (sh_reorg): Initialize it.
2993 (find_barrier): Check max_labelno_before_reorg before using
2994 label_to_alignment. Take length of explicit alignment insns
2995 into account. When seeing a UNSPECV_CONST_END, return it.
2997 * sh.c (fixup_mova): Set mode of affected label to QImode.
2998 (untangle_mova): New function.
2999 (find_barrier): Use it. Check mode of label before decrementing
3001 (sh_reorg): Likewise.
3002 Set mode of all insns back to VOIDmode.
3004 * sh.c (MOVA_LABELREF): New macro.
3005 (mova_p, fixup_mova, sh_reorg): Use it.
3006 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
3007 ADDR_DIFF_VEC matches mova.
3009 2006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
3011 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
3012 with ATTRIBUTE_UNUSED.
3014 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
3016 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
3017 pointer, instead of assuming it is possible to derive the
3018 correct args size from a call insn.
3020 2006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3022 * rtl.h (CONST_INT_P): Define.
3023 * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
3024 instead of GET_CODE(x) == CONST_INT.
3025 (vax_rtx_costs): Likewise.
3026 (vax_output_int_move): Likewise.
3027 (vax_output_int_add): Likewise.
3028 (legitimate_constant_address_p): Likewise.
3029 (index_term_p): Likewise.
3030 * config/vax/vax.h (PRINT_OPERAND): Likewise.
3031 * config/vax/vax.md (and<mode>3): Likewise.
3032 (ashrsi3): Likewise.
3034 (movstricthi): Likewise.
3035 (movstrictqi): Likewise.
3036 (rotrsi3): Likewise.
3037 (five unnamed insns): Likewise.
3039 2006-03-16 Geoffrey Keating <geoffk@apple.com>
3041 * doc/tm.texi (SDB and DWARF): Add extra parameter to
3042 ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables.
3043 * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
3044 * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
3045 Pass to ASM_OUTPUT_DWARF_OFFSET.
3046 * dwarf2out.c (debug_frame_section): New.
3047 (output_call_frame_info): Use debug_frame_section. Pass it to
3048 dw2_asm_output_offset.
3049 (output_die): Pass appropriate section to dw2_asm_output_offset.
3050 (output_compilation_unit_header): Likewise.
3051 (output_pubnames): Likewise.
3052 (output_aranges): Likewise.
3053 (enum dw_val_class): Break dw_val_class_lbl_offset into
3054 dw_val_class_lineptr and dw_val_class_macptr.
3055 (add_AT_lbl_offset): Delete.
3056 (add_AT_lineptr): New.
3057 (add_AT_macptr): New.
3058 (AT_lbl): Expect a lineptr or macptr.
3059 (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
3060 (attr_checksum): Likewise.
3061 (same_dw_val_p): Likewise.
3062 (size_of_die): Likewise.
3063 (value_format): Likewise.
3064 (output_die): Likewise.
3065 (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
3067 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
3068 * config/i386/i386.c (x86_file_start): Call darwin_file_start.
3069 * config/darwin-protos.h (darwin_file_start): New.
3070 (darwin_asm_output_dwarf_offset): New.
3071 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
3072 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
3074 * config/darwin.c (darwin_emit_unwind_label): Don't output label
3075 if not EH section; simplify.
3076 (darwin_file_start): New.
3077 (darwin_asm_output_dwarf_offset): New.
3078 * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
3080 (DEBUG_INFO_SECTION): Likewise.
3081 (DEBUG_ABBREV_SECTION): Likewise.
3082 (DEBUG_ARANGES_SECTION): Likewise.
3083 (DEBUG_MACINFO_SECTION): Likewise.
3084 (DEBUG_LINE_SECTION): Likewise.
3085 (DEBUG_LOC_SECTION): Likewise.
3086 (DEBUG_PUBNAMES_SECTION): Likewise.
3087 (DEBUG_STR_SECTION): Likewise.
3088 (DEBUG_RANGES_SECTION): Likewise.
3089 (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
3090 (ASM_OUTPUT_DWARF_OFFSET): New.
3092 2006-03-16 Joseph S. Myers <joseph@codesourcery.com>
3094 * config.gcc (tm_defines): Always add to previous value rather
3097 2006-03-16 Richard Sandiford <richard@codesourcery.com>
3099 * config/mips/predicates.md (splittable_const_int_operand): New,
3100 split from move_operand.
3101 (splittable_symbolic_operand): New.
3102 (move_operand): Add commentary. Use splittable_const_int_operand.
3103 Inline mips_atomic_symbolic_constant_p.
3104 * config/mips/mips.md: Add combine splitters for handling moves
3105 of splittable_const_int_operands and splittable_symbolic_operands.
3106 * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
3107 (mips_split_symbol): Declare.
3108 (mips_move_integer): Declare.
3109 * config/mips/mips.c (mips_split_p): Make global.
3110 (TARGET_MIN_ANCHOR_OFFSET): Override default.
3111 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
3112 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
3113 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
3114 (mips_offset_within_object_p): Handle block symbols.
3115 (mips_atomic_symbolic_constant_p): Delete.
3116 (mips_cannot_force_const_mem): Return false for constants that
3117 mips_legitimize_move can handle.
3118 (mips_use_blocks_for_constant_p): New function.
3119 (mips_split_symbol): Make global.
3120 (mips_move_integer): Likewise. Add a temporary register argument.
3121 (mips_legitimize_const_move): Use splittable_const_int_operand and
3122 splittable_symbolic_operand.
3123 (mips_use_anchors_for_symbol_p): New function.
3124 * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
3125 (mips_split_p): Declare.
3127 2006-03-16 Richard Sandiford <richard@codesourcery.com>
3129 * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
3130 (mips*-*-linux*): Likewise.
3132 2006-03-16 Roger Sayle <roger@eyesopen.com>
3133 Daniel Speyer <dspeyer@wam.umd.edu>
3136 * tree-dump.c (dump_real): New function.
3137 (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
3138 * Makefile.in (REAL_H): New macro for dependencies on real.h.
3139 (tree-dump.o): Add $(REAL_H) to the dependencies.
3141 2006-03-16 Roger Sayle <roger@eyesopen.com>
3144 * real.c (real_from_string): If the mantissa is zero, don't bother
3145 parsing the exponent as the result should always be zero.
3147 2006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>
3149 * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
3151 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3153 * config/ia64/ia64.c (stops_p): Added explicit initialization.
3154 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
3155 ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
3156 ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
3157 ia64_sched_finish_global): New static functions to implement
3158 hooks from gcc_target.sched.
3159 (spec_check_no, max_uid, pending_data_specs): New static variables.
3160 (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
3161 ia64_spec_check_src_p): New static functions.
3162 (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
3163 (TARGET_SCHED_ADJUST_COST): Removed.
3164 (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
3165 TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
3166 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
3167 TARGET_SCHED_GEN_CHECK,
3168 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3169 TARGET_SCHED_SET_SCHED_FLAGS): New macros.
3170 (update_set_flags, group_barrier_needed, set_src_needs_barrier):
3171 Fixed to handle speculation checks.
3172 (rtx_needs_barrier): Fixed to handle speculative loads and
3174 (ia64_variable_issue): Added code to count speculative loads and their
3176 (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
3178 (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
3180 (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
3182 (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
3183 (ia64_reorg): Reset stops_p to NULL after it is freed.
3184 * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
3185 UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
3186 (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f,
3188 (data_speculative, control_speculative, check_load): New attributes.
3189 (mov<mode>_advanced, mov<mode>_speculative,
3190 mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
3191 zero_extend<mode>di2_speculative,
3192 zero_extend<mode>di2_speculative_advanced): New patterns for
3193 data and control speculative loads.
3194 (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
3196 (advanced_load_check_clr_<mode>, speculation_check_<mode>):
3197 New pattern for data and control speculation checks.
3198 (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
3199 ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
3200 reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
3201 Auxiliary definitions for the patterns.
3202 * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
3203 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
3205 (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
3207 (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
3208 * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
3209 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
3210 New resource constraints.
3211 (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
3213 (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
3214 * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
3215 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
3216 msched-in-control-spec, msched-ldc, msched-control-ldc,
3217 msched-spec-verbose, msched-prefer-non-data-spec-insns,
3218 msched-prefer-non-control-spec-insns,
3219 msched-count-spec-in-critical-path): New flags to tune speculative
3221 * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
3222 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
3223 msched-in-control-spec, msched-ldc, msched-control-ldc,
3224 msched-spec-verbose, msched-prefer-non-data-spec-insns,
3225 msched-prefer-non-control-spec-insns,
3226 msched-count-spec-in-critical-path): Document new flags.
3228 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3230 * target.h (struct spec_info_def): New opaque declaration.
3231 (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
3232 speculate_insn, needs_block_p, gen_check,
3233 first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
3234 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
3235 TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
3236 TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
3237 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3238 TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
3240 (TARGET_SCHED): Use new macros.
3241 * rtl.h (copy_DEPS_LIST_list): New prototype.
3242 * sched-int.h (struct sched_info): Change signature of new_ready field,
3243 adjust all initializations. New fields: add_remove_insn,
3244 begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
3245 region_head_or_leaf_p.
3246 (struct spec_info_def): New structure declaration.
3247 (spec_info_t): New typedef.
3248 (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
3249 recovery_block, orig_pat.
3250 (glat_start, glat_end): New variables declaraions.
3251 (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
3253 (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
3254 DETACH_LIFE_INFO, USE_GLAT.
3255 (enum SPEC_SCHED_FLAGS): New enumeration.
3256 (NOTE_NOTE_BB_P): New macro.
3257 (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
3258 attach_life_info, debug_spec_status, check_reg_live): New functions.
3259 (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
3260 all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
3262 (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
3263 * ddg.c (get_block_head_tail): Adjust all uses.
3264 * modulo-sched.c (get_block_head_tail): Adjust all uses.
3265 (sms_sched_info): Initialize new fields.
3266 (contributes_to_priority): Removed.
3267 * haifa-sched.c (params.h): New include.
3268 (get_block_head_tail): Adjust all uses.
3269 (ISSUE_POINTS): New macro.
3270 (glat_start, glat_end): New global variables.
3271 (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
3272 nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
3273 old_last_basic_block, before_recovery, current_sched_info_var,
3274 rgn_n_insns, luid): New static variables.
3275 (insn_cost1): New function. Move logic from insn_cost to here.
3276 (find_insn_reg_weight1): New function. Move logic from
3277 find_insn_reg_weight to here.
3278 (reemit_notes, move_insn, max_issue): Change signature.
3279 (move_insn1): Removed.
3280 (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
3281 extend_bb): New static functions to support extension of scheduler's
3283 (generate_recovery_code, process_insn_depend_be_in_spec,
3284 begin_speculative_block, add_to_speculative_block,
3285 init_before_recovery, create_recovery_block, create_check_block_twin,
3286 fix_recovery_deps): New static functions to support
3287 generation of recovery code.
3288 (fix_jump_move, find_fallthru_edge, dump_new_block_header,
3289 restore_bb_notes, move_block_after_check, move_succs): New static
3290 functions to support ebb scheduling.
3291 (init_glat, init_glat1, attach_life_info1, free_glat): New static
3292 functions to support handling of register live information.
3293 (associate_line_notes_with_blocks, change_pattern, speculate_insn,
3294 sched_remove_insn, clear_priorities, calc_priorities, bb_note,
3295 add_jump_dependencies): New static functions.
3296 (check_cfg, has_edge_p, check_sched_flags): New static functions for
3297 consistancy checking.
3298 (debug_spec_status): New function to call from debugger.
3299 (priority): Added code to handle speculation checks.
3300 (rank_for_schedule): Added code to distinguish speculative instructions.
3301 (schedule_insn): Added code to handle speculation checks.
3302 (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
3303 Fixed to handle ebbs.
3304 (move_insn): Added code to handle ebb scheduling.
3305 (max_issue): Added code to use ISSUE_POINTS of instructions.
3306 (choose_ready): Added code to choose between speculative and
3307 non-speculative instructions.
3308 (schedule_block): Added code to handle ebb scheduling and scheduling of
3309 speculative instructions.
3310 (sched_init): Initialize new variables.
3311 (sched_finish): Free new variables. Print statistics.
3312 (try_ready): Added code to handle speculative instructions.
3313 * lists.c (copy_DEPS_LIST_list): New function.
3314 * sched-deps.c (extend_dependency_caches): New function. Move logic
3315 from create_dependency_caches to here.
3316 (get_dep_weak, ds_merge): Make global.
3317 * genattr.c (main): Code to output prototype for
3318 dfa_clear_single_insn_cache.
3319 * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
3320 (output_dfa_clean_insn_cache_func): Code to output
3321 dfa_clear_single_insn_cache function.
3322 * sched-ebb.c (target_n_insns): Remove. Adjust all users to use
3324 (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
3326 (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
3327 New static variables.
3328 (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
3329 fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
3331 (ebb_sched_info): Initialize new fields.
3332 (get_block_head_tail): Adjust all uses.
3333 (compute_jump_reg_dependencies): Fixed to use glat_start.
3334 (schedule_ebb): Code to remove unreachable last block.
3335 (schedule_ebbs): Added code to update register live information.
3336 * sched-rgn.c (region_sched_info): Initialize new fields.
3337 (get_block_head_tail): Adjust all uses.
3338 (last_was_jump): Removed. Adjust users.
3339 (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
3340 add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
3341 Implement new hooks.
3342 (check_dead_notes1): New static function.
3343 (struct region): New fields: dont_calc_deps, has_real_ebb.
3344 (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
3345 (BB_TO_BLOCK): Fixed to handle EBBs.
3346 (EBB_FIRST_BB, EBB_LAST_BB): New macros.
3347 (ebb_head): New static variable.
3348 (debug_regions, contributes_to_priority): Fixed to handle EBBs.
3349 (find_single_block_regions, find_rgns, find_more_rgns): Initialize
3351 (compute_dom_prob_ps): New assertion.
3352 (check_live_1, update_live_1): Fixed to work with glat_start instead of
3353 global_live_at_start.
3354 (init_ready_list): New assertions.
3355 (can_schedule_ready_p): Split update code to begin_schedule_ready.
3356 (new_ready): Add support for BEGIN_CONTROL speculation.
3357 (schedule_insns): Fixed code that updates register live information
3359 (schedule_region): Fixed to handle EBBs.
3360 (init_regions): Use extend_regions and check_dead_notes1.
3361 * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
3362 PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
3363 * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
3364 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
3365 TARGET_SCHED_GEN_CHECK,
3366 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3367 TARGET_SCHED_SET_SCHED_FLAGS): Document.
3368 * doc/invoke.texi (max-sched-insn-conflict-delay,
3369 sched-spec-prob-cutoff): Document.
3371 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3373 * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
3374 inter_tick, queue_index.
3375 (struct sched_info): Change signature of init_ready_list field.
3376 Adjust all initializations.
3377 (RESOLVED_DEPS): New access macro.
3378 (ready_add): Remove prototype.
3379 (try_ready): Add prototype.
3380 * sched-rgn.c (init_ready_list): Use try_ready.
3381 (schedule_region): Initialize
3382 current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
3383 * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info.
3384 (init_ready_list): Use try_ready.
3385 (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
3386 * lists.c (remove_list_elem): Remove `static'.
3387 (remove_free_INSN_LIST_elem): New function.
3388 * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
3389 * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
3390 (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
3392 (readyp): New variable.
3393 (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
3394 change_queue_index, resolve_dep): New static functions.
3395 (try_ready): New function. Adjust callers in sched-rgn.c and
3396 sched-ebb.c to use it instead of ready_add.
3397 (clock_var): Move at the begining of file.
3398 (rank_for_schedule): Fix typo.
3399 (queue_insn): Add assertion. Handle QUEUE_INDEX.
3400 (ready_lastpos): Enforce assertion.
3401 (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument,
3403 (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
3404 (schedule_insn): Rewrite to use try_ready and resolve_dep.
3405 (queue_to_ready): Use free_INSN_LIST_list.
3406 (early_queue_to_ready): Fix typo.
3407 (schedule_block): Init readyp. Move init_ready_list call after the
3408 initialization of clock_var. Fix error in rejecting insn by
3409 targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code
3410 that previously corrected INSN_TICKs. Add code for handling
3412 (set_priorities): Fix typo.
3413 (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
3414 Clarify comment and code that keeps current_sched_info->next_tail
3417 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3419 * sched-rgn.c (extend_rgns): New static function.
3420 (find_rgns): Use it.
3421 (gather_region_statistics, print_region_statistics): New static
3423 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
3424 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
3426 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3427 Andrey Belevantsev <abel@ispras.ru>
3429 * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
3430 * lists.c (unused_deps_list): New variable.
3431 (free_list): Add assertions to verify the proper distinguishing
3432 between INSN_LISTs and DEPS_LISTs.
3433 (find_list_elem, remove_list_elem, remove_list_node): New static
3435 (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
3436 remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
3437 remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
3438 (alloc_INSN_LIST): Assert that the list we're working on is indeed
3440 (free_INSN_LIST_node): Likewise.
3441 * modulo-sched.c (current_sched_info): Initialize flags field.
3442 * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
3443 * rtl.def (DEPS_LIST): Define.
3444 * rtl.h: Declare new functions from lists.c.
3445 * sched-deps.c (spec_dependency_cache): New static variable.
3446 (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
3447 (add_dependence): Change return type to void. Move the logic to ...
3448 (add_or_update_back_dep_1): ... here. Handle speculative dependencies.
3449 (delete_all_dependences): Add comment about forward_dependency_cache.
3450 Handle spec_dependency_cache. Handle DEPS_LISTs.
3451 (fixup_sched_groups): Clarify the change of priority of output
3452 and anti dependencies.
3453 (sched_analyze_2): Adjust add_dependence calls to create data
3454 speculative dependence.
3455 (add_forward_dependence): Renamed to add_forw_dep, change prototype.
3456 Adjust all callers. Handle DEPS_LISTS.
3457 (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in
3458 presence of speculation.
3459 (init_dependency_caches, free_dependency_caches):
3460 Handle spec_dependency_cache.
3461 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
3462 estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
3463 New static functions.
3464 (add_or_update_back_dep, add_or_update_back_forw_dep,
3465 add_back_forw_dep, delete_back_forw_dep): New functions.
3466 * sched-int.h (ds_t, dw_t): New typedefs.
3467 (struct sched_info): Add new field flags.
3468 (struct haifa_insn_data): Add new bitfield has_internal_dep.
3469 Prototype new sched-deps.c functions.
3470 (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
3471 (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
3472 MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
3473 BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
3474 SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
3475 SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
3477 (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
3479 * sched-rgn.c (current_sched_info): Initialize flags field.
3480 (schedule_insns): Initialize current_sched_info before the sched_init
3482 * sched-ebb.c (current_sched_info): Initialize flags field.
3483 (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
3484 Call add_or_update_back_dep instead of add_dependence.
3485 Create control speculative dependencies.
3486 (schedule_insns): Initialize current_sched_info before the sched_init
3489 2006-03-16 Kaz Kojima <kkojima@gcc.gnu.org>
3491 * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
3493 (sh_fallback_frame_state): Likewise.
3495 2006-03-15 Geoffrey Keating <geoffk@apple.com>
3497 * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
3498 Do switch on default_use_cxa_atexit.
3499 (powerpc*-*-darwin*): Build crt2.o on powerpc.
3500 * config/darwin-crt3.o: New.
3501 * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
3502 to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use.
3503 (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
3505 * config/rs6000/t-darwin: Move crt2.o building to here.
3506 * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
3507 Mac OS version for using __cxa_get_exception_ptr. Don't test versions
3510 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3512 * config/vax/vax.c (nonindexed_address_p): Change logical negation
3513 from '! xxx' to '!xxx' for coding-style conformance.
3514 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
3515 (EXTRA_CONSTRAINT): Likewise.
3516 * config/vax/vax.md (four unnamed insns): Likewise.
3518 2006-03-15 Paul Brook <paul@codesourcery.com>
3520 * config/arm/arm.c (minipool_pad): New.
3521 (add_minipool_forward_ref): Include pool alignment padding in address
3523 (push_minipool_fix): Set minipool_pad.
3524 (minipool_pad): Ditto.
3526 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3528 * config/vax/vax.c (split_quadword_operands): Use MEM_P()
3529 instead of GET_CODE() == MEM and REG_P() instead of
3531 (print_operand_address): Likewise.
3532 (vax_address_cost): Likewise.
3533 (vax_rtx_costs): Likewise.
3534 (vax_notice_update_cc): Likewise.
3535 (vax_output_int_add): Likewise.
3536 (INDEX_REGISTER_P): Likewise.
3537 (BASE_REGISTER_P): Likewise.
3538 (nonindexed_address_p): Likewise.
3539 (vax_mode_dependent_address_p): Likewise.
3540 * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
3541 (PRINT_OPERAND): Likewise.
3542 * config/vax/vax.md (ashlsi3): Likewise.
3543 (ashlsi3): Likewise.
3544 (some more unnamed insns): Likewise.
3546 2006-03-15 Kazu Hirata <kazu@codesourcery.com>
3548 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
3549 iterator-style macro.
3550 (mark_control_dependent_edges_necessary): Update the use of
3551 EXECUTE_IF_CONTROL_DEPENDENT.
3553 2006-03-15 J"orn Rennecke <joern.rennecke@st.com>
3555 * config/sh/predicates.md (cache_address_operand): Special.
3556 (ua_address_operand): Likewise.
3558 2006-03-15 Zdenek Dvorak <dvorakz@suse.cz>
3560 * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
3562 * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
3564 2006-03-15 Andreas Schwab <schwab@suse.de>
3566 * gensupport.c (identify_predicable_attribute): Don't free p_false
3567 when it is still in use.
3569 2006-03-15 Eric Botcazou <ebotcazou@libertysurf.fr>
3571 * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
3572 the default setting here.
3574 2006-03-14 Steven Bosscher <stevenb.gcc@gmail.com>
3576 * tree-pass.h (pass_cfg): Remove.
3577 * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
3578 * passes.c (pass_cfg): Don't run it.
3580 2006-03-14 Kazu Hirata <kazu@codesourcery.com>
3582 * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
3583 * reg-stack.c (stack_regs_mentioned_data): Change the type to
3585 (stack_regs_mentioned): Update the uses of
3586 stack_regs_mentioned_data. Don't access the array beyond its
3588 (reg_to_stack): Update the uses of stack_regs_mentioned_data.
3589 Don't include gt-reg-stack.h.
3591 * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
3592 * system.h (UNALIGNED_WORD_ASM_OP): Poison.
3594 * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
3597 * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
3600 2006-03-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3602 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
3604 2006-03-14 Richard Guenther <rguenther@suse.de>
3606 PR tree-optimization/26672
3607 * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
3610 2006-03-14 Richard Guenther <rguenther@suse.de>
3612 PR tree-optimization/26667
3613 * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
3614 node for the callees. Always allow inlining if it will shrink
3617 2006-03-14 Richard Guenther <rguenther@suse.de>
3620 * builtins.c (get_pointer_alignment): Prefer alignment
3621 information from decls over that from types.
3623 2006-03-14 Andrew Pinski <pinskia@physics.uc.edu>
3626 * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
3628 2006-03-14 Joseph S. Myers <joseph@codesourcery.com>
3630 * config/rs6000/rs6000.opt (mdlmzb): New option.
3631 (msched-prolog, msched-epilog): Use Var not Mask.
3632 * doc/invoke.texi (-mdlmzb): Document.
3633 * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3635 (rs6000_override_options): Enable -mdlmzb for 405 and 440.
3636 * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
3638 2006-03-13 Uttam Pawar <uttamp@us.ibm.com>
3640 PR rtl-optimization/25739
3641 * bt-load.c (augment_live_range): Free tos pointer.
3643 * gensupport.c (identify_predicable_attribute): Free
3645 * gcov.c (create_file_names): Free name pointer.
3647 2006-03-13 Roger Sayle <roger@eyesopen.com>
3650 * stmt.c (emit_case_nodes): Handle the case where the index is a
3651 CONST_INT, where the comparison mode is specified by the index type.
3653 2006-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3655 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
3658 2006-03-13 Richard Sandiford <richard@codesourcery.com>
3660 * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
3661 (*branch_fp_inverted): Likewise.
3663 2006-03-13 Jakub Jelinek <jakub@redhat.com>
3666 * omp-low.c (expand_omp_for_generic): Mark istart0
3667 and iend0 as addressable.
3669 2006-03-13 Jie Zhang <jie.zhang@analog.com>
3671 * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
3673 2006-03-13 Jeff Law <law@redhat.com>
3675 * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
3676 virtual operands are interesting.
3677 (vrp_visit_stmt): Corresponding changes.
3679 2006-03-13 Bernd Schmidt <bernd.schmidt@analog.com>
3681 * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
3683 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
3684 TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
3685 * config/bfin/crti.S: Use it instead of __PIC__.
3686 * config/bfin/crtn.S: Likewise.
3688 * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
3689 call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
3691 Lose 'G' modifier for call operand.
3692 * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
3693 recognize 'G' modifier.
3695 2006-03-13 Eric Botcazou <ebotcazou@adacore.com>
3698 * gimplify.c (gimplify_switch_expr): Discard empty ranges.
3699 * stmt.c (expand_case): Likewise.
3701 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
3703 PR rtl-optimization/26254
3704 * loop-invariant.c (seq_insns_valid_p): New function.
3705 (move_invariant_reg): Only emit new code if it is valid.
3707 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
3709 * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
3711 (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
3712 (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
3713 (commit_one_edge_insertion): Do not look for loop notes.
3715 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
3717 * jump.c (follow_jumps): Do not check for loop notes. Move check for
3718 flag_test_coverage out of loop.
3720 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
3722 * final.c (shorten_branches): Remove outdated comment, and turn
3723 the if branch that guards it to continue.
3725 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
3727 * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
3728 * cfgloop.h (struct loop): Remove unused fields.
3730 2006-03-13 Kazu Hirata <kazu@codesourcery.com>
3732 * doc/invoke.texi (-fdump-rtl-loop): Remove.
3733 (-dL, -fdump-rtl-loop2): Update the dump file names
3735 * doc/invoke.texi: Update dump file names.
3737 2006-03-12 Steven Bosscher <stevenb.gcc@gmail.com>
3739 * predict.c (estimate_probability): Remove.
3740 * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
3741 * basic-block.h (estimate_probability): Remove prototype.
3742 * passes.c (finish_optimization_passes): Dump branch prediction or
3743 profiling heuristics to the .profile tree dump.
3744 (init_optimization_passes): Unqueue pass_branch_prob.
3746 * doc/invoke.texi (-fdump-rtl-bp): Remove.
3748 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
3750 * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
3751 * rtl.h (LABEL_NEXTREF): Remove field accessor.
3753 2006-03-11 Eric Botcazou <ebotcazou@adacore.com>
3755 * function.h (frame_offset_overflow): Declare.
3756 * function.c (frame_offset_overflow): New function.
3757 (assign_stack_local_1): Call it to detect that the offset overflows.
3758 * cfgexpand.c (alloc_stack_frame_space): Likewise.
3760 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
3762 * config/sh/sh.c: Include alloc-pool.h.
3763 (label_ref_list_pool): New alloc pool.
3764 (label_ref_list_t): New type for lists of labels.
3765 (struct pool_node): Make wend a label_ref_list_t.
3766 (add_constant): Use the new type, eradicate LABEL_NEXTREF
3768 (dump_table): Likewise.
3769 (sh_reorg): Set up the alloc pool before using add_constant and
3770 dump_table, and destroy it when finishing.
3772 2006-03-11 Richard Sandiford <richard@codesourcery.com>
3774 * config/mips/mips.c: Remove redundant comment.
3776 2006-03-10 Jason Merrill <jason@redhat.com>
3779 * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
3780 the target was declared 'register'.
3782 2006-03-10 Adam Nemet <anemet@caviumnetworks.com>
3784 * genpreds.c (write_insn_constraint_len): Change definition of
3785 insn_constraint_len to return size_t to match the declaration.
3787 2006-03-10 DJ Delorie <dj@redhat.com>
3789 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
3791 (m32c_expand_insv): Fix test for an AND mask.
3793 2006-03-10 Richard Guenther <rguenther@suse.de>
3796 * builtins.c (get_pointer_alignment): Handle component
3797 references for field alignment.
3799 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
3801 * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
3802 when building with libgloss.
3803 (sh*elf): Implement --without-fp option.
3804 (sh64-superh-linux*): Don't multilib.
3806 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
3808 * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
3810 2006-03-09 Andrew Pinski <pinskia@physics.uc.edu>
3812 * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
3813 Set it when one of the replacement functions returned true.
3814 Return TODO_cleanup_cfg if cfgchanged is true.
3815 (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
3817 2006-03-09 Adam Nemet <anemet@caviumnetworks.com>
3819 * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
3820 instead of gen_lowpart.
3822 2006-03-09 Richard Sandiford <richard@codesourcery.com>
3824 * config/mips/mips-protos.h (mips_output_conditional_branch): Change
3826 (mips_output_order_conditional_branch): Declare.
3827 * config/mips/mips.h (MIPS_BRANCH): New macro.
3828 * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
3829 for the comparison. Use gen_condjump.
3830 (mips_output_conditional_branch): Rework interface to take the
3831 asm templates for a direct branch and the inverse of a direct branch.
3832 (mips_output_order_conditional_branch): New function.
3833 (mips_builtin_branch_and_move): New function.
3834 (mips_expand_builtin_compare): Use it. Use VOIDmode for the
3835 branch condition. Use gen_single_cc as the condition for
3836 __builtin_mips_upper_* or __builtin_mips_lower_*.
3837 (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
3838 Use VOIDmode for the branch condition.
3839 * config/mips/predicates.md (order_operator): New predicate.
3840 * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
3841 (branch_fp): Rename to...
3842 (*branch_fp): ...this. Remove mode from comparison operator.
3843 Use new mips_output_conditional_branch interface.
3844 (branch_fp_inverted): Rename to...
3845 (*branch_fp_inverted): ...this and update as for *branch_fp.
3846 (*branch_zero<mode>): Rename to...
3847 (*branch_order<mode>): ...this. Remove mode from comparison operator.
3848 Use mips_output_order_conditional_branch. Only accept ordered
3850 (*branch_zero<mode>_inverted): Rename to...
3851 (*branch_order<mode>_inverted): ...this and update as for
3852 *branch_order<mode>.
3853 (*branch_equality<mode>): Accept zero as the second operand to
3854 the equality operator. Use the new mips_output_conditional_branch
3856 (*branch_equality<mode>_inverted): Likewise.
3857 (condjump): New expander.
3858 * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
3860 * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
3861 (bc1any2t, bc1any2f): Likewise.
3862 (single_cc): New expander.
3863 (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
3865 2006-03-09 Richard Sandiford <richard@codesourcery.com>
3867 * doc/md.texi: Update documentation of MIPS constraints.
3868 * config/mips/constraints.md: New file.
3869 * config/mips/mips.md: Include it.
3870 * config/mips/mips.c (mips_char_to_class): Delete.
3871 (override_options): Don't initialize mips_char_to_class.
3872 * config/mips/mips.h (mips_char_to_class): Delete.
3873 (REG_CLASS_FROM_LETTER): Delete.
3874 (CONST_OK_FOR_LETTER_P): Delete.
3875 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
3876 (EXTRA_CONSTRAINT_Y): Delete.
3877 (EXTRA_CONSTRAINT_STR): Delete.
3878 (CONSTRAINT_LEN): Delete.
3879 (EXTRA_MEMORY_CONSTRAINT): Delete.
3881 2006-03-09 Diego Novillo <dnovillo@redhat.com>
3883 * tree-cfg.c (move_block_to_fn): Remove the statements from the
3884 original fn's eh regions.
3886 2006-03-09 Eric Botcazou <ebotcazou@adacore.com>
3888 * fold-const.c (build_range_check): Make sure to use a valid type to
3889 apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
3892 (range_predecessor): New static function.
3893 (range_successor): Likewise.
3894 (merge_ranges): Use them to compute predecessors and successors of
3897 2006-03-09 Roger Sayle <roger@eyesopen.com>
3900 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
3901 X op C3, consider whether C3 overflows towards +Inf or -Inf.
3903 2006-03-08 DJ Delorie <dj@redhat.com>
3905 * config/m32c/addsub.md (addqi3): Disparage a0/a1.
3906 (addpsi3): Expand to include memory operands. Remove
3907 reload-specific splits.
3908 * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
3909 (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
3910 (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
3911 (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
3912 (shift1_qi, shift1_hi, insv): New.
3913 * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
3914 (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
3915 cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
3917 * config/m32c/m32c-protos.h: Update as needed.
3918 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
3919 default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1.
3920 Fail for unrecognized R* constraints.
3921 (m32c_cannot_change_mode_class): Be more picky about pseudos.
3922 (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
3923 (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
3925 (m32c_init_libfuncs): New.
3926 (m32c_legitimate_address_p): Add debug wrapper.
3927 (m32c_rtx_costs): New.
3928 (m32c_address_cost): New.
3929 (conversions): Add 'B' prefix.
3930 (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
3931 operands, or word regnames for QI operands. 'B' prints bit
3933 (m32c_expand_setmemhi): New.
3934 (m32c_expand_movmemhi): New.
3935 (m32c_expand_movstr): New.
3936 (m32c_expand_cmpstr): New.
3937 (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
3938 (m32c_expand_neg_mulpsi3): Handle non-ints.
3939 (m32c_cmp_flg_0): New.
3940 (m32c_expand_movcc): New.
3941 (m32c_expand_insv): New.
3942 (m32c_scc_pattern): New.
3943 * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take
3944 a0/a1 out of SIregs.
3945 (STORE_FLAG_VALUE): New.
3946 * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and
3949 * config/m32c/mov.md: Make constraints more liberal.
3950 (zero_extendqihi2): Optimize r0/r1 case.
3951 * config/m32c/muldiv.md (mulpsi3): Check for intvals.
3952 * config/m32c/predicates.md (m32c_any_operand): New.
3953 (m32c_nonimmediate_operand): New.
3954 (m32c_hl_operand): New.
3955 (m32c_r3_operand): New.
3958 (memsym_operand): New.
3959 (memimmed_operand): New.
3960 (a_qi_operand): New.
3961 (m32c_eqne_operator): New.
3962 (m32c_1bit8_operand): New.
3963 (m32c_1bit16_operand): New.
3964 (m32c_1mask8_operand): New.
3965 (m32c_1mask16_operand): New.
3966 * config/m32c/blkmov.md: New file.
3967 * config/m32c/t-m32c (MD_FILES): Add blkmov.
3969 2006-03-08 Andreas Tobler <a.tobler@schweiz.ch>
3971 * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
3972 unsigned to fix signed/unsigned comparison issue in
3973 DWARF2_FRAME_REG_OUT.
3974 (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
3975 unsigned comparison issue in DWARF2_FRAME_REG_OUT.
3977 * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
3978 of ptr into the ENABLE_CHECKING section.
3980 2006-03-08 Jeff Law <law@redhat.com>
3982 * tree-vrp.c (infer_value_range): Only count pointer uses
3983 and dereferences if -fdelete-null-pointer-checks is enabled.
3985 * tree-vrp.c (find_assert_locations): Infer value ranges for
3986 single use pointers, but do not create ASSERT_EXPRs for them.
3987 When a non-null range is inferred for a pointer, backwards
3988 propagate that range to other equivalent pointers through the
3991 2006-03-08 Paolo Bonzini <bonzini@gnu.org>
3994 * Makefile.in (dvi, html, install-info): Invoke the corresponding
3995 language hook targets.
3996 * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
3997 objcp/Make-lang.in: Create stub rules for dvi, html, install-info
3998 if language hook targets were missing.
4000 2006-03-07 Zdenek Dvorak <dvorakz@suse.cz>
4002 * tree-ssa-opfinalize.h: Removed.
4003 * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h