1 2006-05-04 David Edelsohn <edelsohn@gnu.org>
4 * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
7 2006-05-04 Richard Sandiford <richard@codesourcery.com>
10 * config/mips/mips.c (mips_symbolic_address_p): Return true
11 for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
12 SYMBOL_GOTTPREL, and SYMBOL_TLS.
14 2006-05-04 Richard Guenther <rguenther@suse.de>
16 PR tree-optimization/14287
17 PR tree-optimization/14844
18 PR tree-optimization/19792
19 PR tree-optimization/21608
20 PR tree-optimization/27090
21 * tree-ssa-pre.c (try_combine_conversion): New function.
22 (compute_avail): After constructing the value-handle
23 expression, use try_combine_conversion to combine NOP_EXPRs
24 with previous value-handle expressions and use the result if it
27 2006-05-04 Joseph S. Myers <joseph@codesourcery.com>
29 * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
31 2006-05-04 Jan Hubicka <jh@suse.cz>
34 * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
36 2006-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
38 * config/bfin/predicates.md (const01_rtx): Tell generator programs
39 that this only matches CONST_INTs. All users changed to VOIDmode
42 * config/bfin/bfin.c: Include "optabs.h".
43 (bfin_rtx_costs): Some costs for vector operations, to allow combine
45 (enum bfin_builtins): Add a number of fractional and vector builtins.
46 (bfin_init_builtins): Likewise.
47 (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
48 (safe_vector_operand, bfin_expand_binop_builtin,
49 bfin_expand_unop_builtin): New functions.
50 (bfin_expand_builtin): Handle the new builtins.
51 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
54 2006-05-04 Leehod Baruch <leehod@il.ibm.com>
57 * Makefile.in (OBJS-common): Add see.o.
58 (see.o): Add dependencies.
59 * common.opt (fsee): New flag for the see optimization was added.
60 * opts.c (flag_see): Initialized.
61 * passes.c (init_optimization_passes, pass_see): New pass.
62 * rtl.h (see_main): Declaration as extern.
63 * timevar.def (TV_SEE): New.
64 * tree-pass.h (pass_see): Declaration as extern.
65 * invoke.texi (-fsee): Document.
66 * recog.c (validate_simplify_insn): New function.
67 * recog.h (validate_simplify_insn): Declaration as extern.
68 * df-problems.c (df_chain_dump): Check for NULL.
70 2006-05-04 Kenneth Zadeck <zadeck@naturalbridge.com>
71 Daniel Berlin <dberlin@dberlin.org>
73 * cfgrtl.c (insert_insn_bb_end_new): New function.
74 * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
76 2006-05-04 Leehod Baruch <leehod.baruch@weizmann.ac.il>
78 * df.h (struct web_entry): Moved from web.c.
79 (union_defs): Declaration as extern.
80 (unionfind_root): Likewise.
81 (unionfind_union): Likewise.
82 * web.c (struct web_entry): Moved to df.h.
83 (unionfind_root): Remove static declaration.
84 (unionfind_union): Likewise.
85 (union_defs): Likewise and generalize to use callback function.
86 (web_main): Update arguments for union_defs function call.
88 2006-05-04 Richard Guenther <rguenther@suse.de>
90 PR tree-optimization/26447
91 * tree-ssa-pre.c (realify_fake_stores): For necessary loads
92 produce SSA_NAME copies before the store stmt to avoid
93 breaking exception handling.
95 2006-05-04 Jakub Jelinek <jakub@redhat.com>
98 * gimplify.c (omp_is_private): If var is shared in some outer context,
99 return false instead of true. Stop searching on parallel context
102 2006-05-03 Alexandre Oliva <aoliva@redhat.com>
105 * coverage.c: Use get_gcov_unsigned_t() instead of
106 unsigned_type_node all over.
108 2006-05-02 Andrew MacLeod <amacleod@redhat.com>
110 PR tree-optimization/27381
111 * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
112 maintain the same immediate_use links.
113 * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
114 node rather than segfaulting.
116 2006-05-03 Jakub Jelinek <jakub@redhat.com>
119 * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
120 rather than TREE_CODE to OMP_CLAUSE_REDUCTION. Set also GOVD_SEEN
121 bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
123 2006-05-02 Daniel Berlin <dberlin@dberlin.org>
125 Fix PR tree-optimization/26626
126 * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
128 * tree-ssa-operands.c (access_can_touch_variable): Allow
129 typecasting through union pointers.
131 2006-05-02 Jakub Jelinek <jakub@redhat.com>
134 * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
135 (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
136 to find if var will be a global variable even in the nested context.
137 (omp_copy_decl): Only check for global variable at the end, it might
138 be overridden in outer contexts.
139 (scan_sharing_clauses): For global variables don't create a field.
140 (lower_rec_input_clauses): Do nothing for global shared variables.
141 Emit a barrier at the end of ILIST if there were any decls in both
142 firstprivate and lastprivate clauses.
143 (lower_send_clauses): Do nothing for global variables except for
146 2006-05-02 Zdenek Dvorak <dvorakz@suse.cz>
148 * tree.c (unsigned_type_for, signed_type_for): Make sure a type
149 of the correct signedness is returned.
151 2006-05-02 Jeff Law <law@redhat.com>
153 PR tree-optimization/27364
154 * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
155 multiply expressions.
157 2006-05-02 Tom Tromey <tromey@redhat.com>
159 * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
161 2006-05-02 Kazu Hirata <kazu@codesourcery.com>
164 * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
165 -mthumb -fPIC are used.
167 2006-05-02 Joshua Kinard <kumba@gentoo.org>
170 * gcc/config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
171 with 64-bit pointers.
173 2006-05-02 Paul Brook <paul@codesourcery.com>
175 * config/arm/arm.c (add_minipool_forward_ref): Check if insn
177 (create_fix_barrier): Check that a suitable barrier location is
179 (arm_reorg): Include ftmp->address in allowable range of addresses.
181 2006-05-02 David Billinghurst <David.Billinghurst@riotinto.com>
184 * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
187 2006-05-02 Jakub Jelinek <jakub@redhat.com>
190 * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
191 around RESULT_DECL for result passed by reference.
192 (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
193 * omp-low.c (use_pointer_for_field): Don't look at
194 DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
195 (scan_omp_1): Call remap_decl on RESULT_DECLs.
196 (lower_rec_input_clauses): Don't allocate VLA memory for the second
197 time or var for passing by reference for
198 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses. Allow creation of
199 TREE_ADDRESSABLE variables when passing by reference.
201 * omp-low.c (dump_omp_region): Fix output formatting.
204 * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
205 (expand_omp_parallel): Likewise.
206 * tree-cfg.c (move_sese_region_to_fn): Likewise.
209 * omp-low.c (lower_omp_sections): Call maybe_catch_exception
210 on statement list containing also constructors and destructors.
211 (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
214 * except.c (duplicate_eh_regions): Fix clearing of
215 cfun->eh->region_array entries.
217 2006-05-01 DJ Delorie <dj@redhat.com>
219 * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
221 (gcc_cv_objdump): Likewise.
222 * configure: Regenerated.
224 2006-05-01 Kazu Hirata <kazu@codesourcery.com>
227 * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
228 templates for case 3 and 4.
230 2006-05-01 DJ Delorie <dj@redhat.com>
232 * vec.c: Include bconfig.h when appropriate.
233 * Makefile.in (build/vec.o): Adjust dependencies.
234 * mkconfig.sh: Make sure config.h isn't used for build machine
237 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
239 * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
241 (mark_phi_for_rewrite): New function.
242 (insert_phi_nodes_for, mark_use_interesting): Call
243 mark_phi_for_rewrite.
244 (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
245 (update_ssa): Initialize and free phis_to_rewrite.
247 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
249 PR rtl-optimization/27291
250 * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
251 folded to a constant.
253 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
255 PR tree-optimization/27283
256 * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
257 not whole # of iteration descriptions.
258 (niter_for_exit): Return just # of iterations. Fail if # of iterations
259 uses abnormal ssa name.
260 (niter_for_single_dom_exit): Ditto.
261 (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
262 return just the number of iterations.
264 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
266 PR tree-optimization/27144
267 * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
268 (record_estimate): Only record constant upper bound.
269 (infer_loop_bounds_from_undefined): Call
270 compute_estimated_nb_iterations just once.
271 (proved_non_wrapping_p): Renamed to ...
272 (n_of_executions_at_most): ... this. Expect bound to be a constant.
273 (convert_step_widening, scev_probably_wraps_p): Call
274 n_of_executions_at_most instead of proved_non_wrapping_p.
275 (substitute_in_loop_info): Do not replace values in bounds.
276 * cfgloop.h (struct nb_iter_bound): Remove "additional" field. Update
279 2006-05-01 Richard Henderson <rth@redhat.com>
282 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
283 c_parser_skip_to_pragma_eol. Convert to switch statement. Handle
286 2006-05-01 Roger Sayle <roger@eyesopen.com>
288 * c-typeck.c (parser_build_binary_op): Don't call the function
289 unsigned_conversion_warning to spot operand/result type overflow.
290 (build_binary_op): Instead, call convert_and_check instead of
291 convert to report the problem when the operands are promoted.
292 * c-common.c (unsigned_conversion_warning): Make static.
293 * c-common.h (unsigned_conversion_warning): Delete prototype.
295 2006-05-01 Richard Guenther <rguenther@suse.de>
297 PR tree-optimization/26726
298 * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
300 (find_interesting_uses_address): ... we work around here
301 by folding INDIRECT_REFs in the substituted base.
303 2006-05-01 Diego Novillo <dnovillo@redhat.com>
305 * omp-low.c (dump_omp_region): Add newlines.
307 2006-04-30 Roger Sayle <roger@eyesopen.com>
309 * common.opt (Woverflow): New command line option.
310 * c-common.c (constant_expression_warning): Check warn_overflow.
311 (overflow_waring): Pass OPT_Woverflow to warning.
312 (unsigned_conversion_warning): Likewise.
313 (convert_and_check): Likewise.
314 * doc/invoke.texi: Document new command line option.
316 2006-04-30 David Edelsohn <edelsohn@gnu.org>
318 * config/rs6000/rs6000.c (rs6000_override_options): Enable
319 TARGET_NO_FP_IN_TOC for section anchors.
320 (optimization_options): Enable section anchors for all
321 non-"Objective" languages.
323 2006-04-28 Eric Christopher <echristo@apple.com>
325 * config/darwin-c.c (darwin_ms_struct): Move this
326 (darwin_set_default_type_attributes): and this...
327 * config/darwin.c: ... here.
328 * config/darwin.h (darwin_ms_struct): Declare.
330 2006-04-28 Andrew MacLeod <amacleod@redhat.com>
332 * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
334 2006-04-28 Roger Sayle <roger@eyesopen.com>
337 * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
338 (push_array_bounds): Delete prototype. Change BOUNDS argument to
339 an unsigned HOST_WIDE_INT.
340 (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
342 (really_start_incremental_init): No need to call convert because
343 bitsize_zero_node is already of type bitsizetype.
344 (push_init_level): Extract the value of constructor_index as an
345 unsigned HOST_WIDE_INT quantity, using tree_low_cst.
346 (process_init_element): Likewise.
348 2006-04-28 Joseph S. Myers <joseph@codesourcery.com>
350 * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
351 value before passing to make_relative_prefix.
353 2006-04-28 Alan Modra <amodra@bigpond.net.au>
356 * builtins.c (expand_builtin_memset): Expand val in original mode.
358 2006-04-27 Eric Christopher <echristo@apple.com>
360 * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
362 * config/darwin-c.c (darwin_ms_struct): New.
363 (darwin_pragma_ms_struct): Ditto.
364 (darwin_set_default_type_attributes): Ditto.
365 * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
366 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
367 Register ms_struct pragma.
368 * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
369 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
370 * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
371 darwin_set_default_type_attributes if TARGET_MACHO.
373 2006-04-27 Andrew MacLeod <amacleod@redhat.com>
375 PR tree-optimization/26854
376 * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
377 * doc/tree-ssa.texi: Update immuse iterator documentation.
378 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
379 * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
380 * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
381 first_safe_imm_use, next_safe_imm_use): Remove.
382 (end_imm_use_stmt_p): New. Check for end of immuse stmt traversal.
383 (end_imm_use_stmt_traverse): New. Terminate immuse stmt traversal.
384 (move_use_after_head): New. Helper function to sort immuses in a stmt.
385 (link_use_stmts_after): New. Link all immuses in a stmt consescutively.
386 (first_imm_use_stmt): New. Get first stmt in an immuse list.
387 (next_imm_use_stmt): New. Get next stmt in an immuse list.
388 (first_imm_use_on_stmt): New. Get first immuse on a stmt.
389 (end_imm_use_on_stmt_p): New. Check for end of immuses on a stmt.
390 (next_imm_use_on_stmt): New. Move to next immuse on a stmt.
391 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
392 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
393 (perfect_nestify): Use new iterator.
394 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
396 * tree-flow.h (struct immediate_use_iterator_d): Add comments.
397 (next_imm_name): New field in struct immediate_use_iterator_d.
398 (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
399 (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
400 FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
401 * tree-cfg.c (replace_uses_by): Use new iterator.
402 * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
403 * tree-ssa-operands.c (correct_use_link): Remove.
404 (finalize_ssa_use_ops): No longer call correct_use_link.
406 2006-04-27 Stuart Hastings <stuart@apple.com>
408 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
409 * config/t-darwin (crt3.o): Use it.
410 * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
411 'pmode', use Pmode instead of SImode for SYMBOL_REF.
412 * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
413 call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
414 call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
417 2006-04-27 Roger Sayle <roger@eyesopen.com>
419 * expmed.c (store_fixed_bit_field): If we're not optimizing for
420 size, force the intermediate into a new pseudo rather instead of
421 performing both a bitwise AND and a bitwise IOR in memory.
423 2006-04-27 Richard Guenther <rguenther@suse.de>
425 PR rtl-optimization/26685
426 * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
427 this one "max-flow-memory-locations".
429 2006-04-27 Richard Guenther <rguenther@suse.de>
431 PR tree-optimization/25148
432 * tree-vrp.c (compare_values): Remove code dealing with
433 comparisons against type min/max value. Honour overflow
434 and negative constants in code dealing with comparisons
435 of plus and minus expressions.
436 (value_inside_range): Use fold_binary with LE_EXPR and
437 GE_EXPR rather than compare_values.
439 2006-04-27 Dirk Mueller <dmueller@suse.de>
441 * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
444 2006-04-26 Kenneth Zadeck <zadeck@naturalbridge.com>
446 * basic-block.h (safe_insert_insn_on_edge): Removed.
447 * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
450 2006-04-26 David Edelsohn <edelsohn@gnu.org>
451 Paolo Bonzini <bonzini@gnu.org>
454 * combine.c (simplify_and_const_int_1): Use gen_int_mode.
455 (simplify_and_const_int): Same.
457 2006-04-26 Aldy Hernandez <aldyh@redhat.com>
459 * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
461 2006-04-26 Jakub Jelinek <jakub@redhat.com>
464 * cgraph.c (cgraph_varpool_finalize_decl): Don't call
465 cgraph_varpool_assemble_pending_decls if -fopenmp, unless
466 cgraph_global_info_ready.
469 * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
472 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
473 either decl or init is error_mark_node.
476 * tree-flow.h (struct omp_region): Add sched_kind.
477 * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
478 instead of extracting omp for data.
479 (expand_omp_for): Save extracted sched_kind.
481 2006-04-25 Roger Sayle <roger@eyesopen.com>
483 * expmed.c (store_bit_field): Also check whether the bitsize is
484 valid for the machine's "insv" instruction before moving the
485 target into a pseudo for use with the insv.
486 * config/i386/predicates.md (const8_operand): New predicate.
487 * config/i386/i386.md (extv, extzv, insv): Use the new
488 const8_operand predicate where appropriate.
490 2006-04-25 DJ Delorie <dj@redhat.com>
492 * doc/install.texi (Specific): Clarify that this is not a list of
493 supported hosts or targets.
495 2006-04-25 Richard Sandiford <richard@codesourcery.com>
497 PR rtl-optimization/26725
498 * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
499 block's BB_DIRTY flag.
501 2006-04-25 Geoffrey Keating <geoffk@apple.com>
503 * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
506 * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
509 2006-04-25 David Edelsohn <edelsohn@gnu.org>
511 * varasm.c (align_variable): New function.
512 (get_block_for_decl): Apply align_variable to DECL before
513 calculating section information.
514 (assemble_variable): Split out alignment computation.
516 2006-04-25 Andreas Krebbel <krebbel1@de.ibm.com>
518 * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
521 2006-04-25 Bernd Schmidt <bernd.schmidt@analog.com>
523 * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
524 MODE_PARTIAL_INT mode.
525 * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
526 * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
528 (hard_regno_mode_ok): V2PDImode is ok for accumulators.
529 * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
531 * config/bfin/predicates.md (const01_operand, vec_shift_operand):
533 * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
535 (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
536 MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
537 MACFLAG_IH): Likewise.
538 (movstricthi_1): Renamed from "*movstricthi".
539 (load_accumulator, load_accumulator_pair, movsi_insv, insv,
540 ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
541 abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
542 movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
543 movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
544 movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
545 addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
546 sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
547 addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
548 mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
549 ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
550 flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
551 flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
552 flag_macv2hi_parts, flag_macv2hi_parts_acconly,
553 flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
555 * doc/rtl.texi (ss_ashift): Improve wording.
557 2006-04-24 Geoffrey Keating <geoffk@apple.com>
559 * dwarf2out.c (verify_marks_clear): New.
560 (prune_unused_types): Call verify_marks_clear initially, not
563 2006-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
565 * rtl.def (SS_ASHIFT, SS_NEG): New codes.
566 * doc/rtl.texi: Document them.
567 * simplify-rtx.c (simplify_unary_operation,
568 simplify_binary_operation_1): Don't abort when we see them.
570 2006-04-24 Mark Mitchell <mark@codesourcery.com>
573 2006-04-23 Mark Mitchell <mark@codesourcery.com>
574 * configure.ac: Completely disregard languages that are not
576 * configure: Regenerated.
578 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
579 Richard Guenther <rguenther@suse.de>
581 PR tree-optimization/27236
582 * tree-inline.c (copy_body_r): Make sure to copy
583 TREE_THIS_VOLATILE flag.
585 2006-04-24 Richard Guenther <rguenther@suse.de>
588 * tree-complex.c (update_parameter_components): Don't handle
589 unused parameters which have no default def.
591 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
592 Richard Guenther <rguenther@suse.de>
594 PR tree-optimization/27218
595 * tree-inline.c (expand_call_inline): Strip useless type
596 conversions for the return slot address.
598 2006-04-24 Richard Guenther <rguenther@suse.de>
600 * cfgloop.h (struct loops): Remove unused field array. Reorder
602 (LOOP_PREFETCH): Remove.
604 2006-04-24 Richard Guenther <rguenther@suse.de>
606 PR tree-optimization/22525
607 * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
608 variable, adjust types of generated expressions.
610 2006-04-23 H.J. Lu <hongjiu.lu@intel.com>
612 * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
613 (tree-vect-patterns.o): Likewise.
615 (cselib.o): Likewise.
616 (loop-doloop.o): Likewise.
617 (regclass.o): Likewise.
618 (reload1.o): Likewise.
619 (explow.o): Replace target.h with $(TARGET_H).
620 (ipa-prop.o): Likewise.
621 (ipa-cp.o): Likewise.
622 (ipa-inline.o): Likewise.
624 (reg-stack.o): Likewise.
626 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
628 * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
630 2006-04-23 Mark Mitchell <mark@codesourcery.com>
632 * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
634 * configure.ac: Completely disregard languages that are not
636 * configure: Regenerated.
639 * c-common.h (c_build_bitfield_integer_type): Declare.
640 * c-decl.c (c_build_bitfield_integer_type): Move to ...
641 * c-common.c (c_build_bitfield_integer_type): ... here.
643 2006-04-23 Roger Sayle <roger@eyesopen.com>
646 * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
647 a SImode SUBREG of a floating point register after no_new_pseudos.
649 2006-04-23 Roger Sayle <roger@eyesopen.com>
651 * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
652 identify potentially eliminable registers to additionally catch
653 VIRTUAL_INCOMING_ARGS_REGNUM.
654 (addsi3): Update the conditions on when to use addsi_small_int.
656 2006-04-23 Roger Sayle <roger@eyesopen.com>
659 * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
660 STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
661 rtx to stack_pointer_rtx or frame_pointer_rtx directly.
663 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
665 * fold-const.c (range_predecessor): Use operand_equal_p
666 as the predicate for equality.
667 (range_successor): Likewise.
669 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
672 * config/soft-fp/op-common.h: Fix a typo.
674 2006-04-22 Frank Ch. Eigler <fche@redhat.com>
677 * common.opt (flag_mudflap_threads): Overload flag_mudflap.
678 * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
680 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
682 * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
684 * doc/tm.texi: Fix a typo.
686 2006-04-21 Geoffrey Keating <geoffk@apple.com>
688 * dwarf2out.c (struct die_struct): Document that die_sib makes
689 a circular linked list.
690 (FOR_EACH_CHILD): New.
691 (reverse_die_lists): Delete.
692 (reverse_all_dies): Delete.
693 (add_dwarf_attr): Correct documentation.
694 (remove_child_with_prev): New.
695 (remove_child_TAG): Update for change to die_struct, use
696 remove_child_with_prev.
697 (add_child_die): Update for change to die_struct.
698 (splice_child_die): Use remove_child_with_prev and add_child_die.
699 (print_die): Use FOR_EACH_CHILD.
700 (die_checksum): Likewise.
701 (assign_symbol_names): Likewise.
702 (output_location_lists): Likewise.
703 (build_abbrev_table): Likewise.
704 (calc_die_sizes): Likewise.
705 (mark_dies): Likewise.
706 (unmark_dies): Likewise.
707 (unmark_all_dies): Likewise.
708 (output_die): Likewise.
709 (prune_unused_types_mark): Likewise.
710 (prune_unused_types_walk): Likewise.
711 (same_die_p): Update for change to die_struct.
712 (break_out_includes): Likewise.
713 (prune_unused_types_prune): Likewise.
714 (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
715 (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
717 (dwarf2out_finish): Don't call reverse_all_dies.
719 2006-04-21 Eric Christopher <echristo@apple.com>
721 * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
722 in comments and function names.
724 2006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
727 * c-typeck.c (digest_init): Robustify.
729 * c-typeck.c (pop_init_level): Simplify.
731 2006-04-21 Steve Ellcey <sje@cup.hp.com>
733 * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
735 2006-04-21 Paul Brook <paul@codesourcery.com>
737 * config/arm/arm.c (arm_override_options): Error on iWMMXt and
738 hardware floating point.
740 2006-04-21 David Edelsohn <edelsohn@gnu.org>
742 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
745 2006-04-21 Nick Clifton <nickc@redhat.com>
747 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
750 2006-04-21 Alan Modra <amodra@bigpond.net.au>
753 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
754 C++ lang type in traceback table for Objective-C++.
756 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
758 2006-04-20 H.J. Lu <hongjiu.lu@intel.com>
760 * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
762 2006-04-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
765 * tree-mudflap.c (mudflap_finish_file): Skip function when there
766 were errors. Remove check for erroneous objects.
768 2006-04-20 Jeff Law <law@redhat.com>
770 PR tree-optimization/26854
771 * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
772 checking for zero or one use.
773 * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
774 * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
775 * tree-ssa-reassoc.c (negate_value): Similarly.
776 (reassociate_bb): Similarly.
778 2006-04-20 Jakub Jelinek <jakub@redhat.com>
780 * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
781 TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
782 than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
784 2006-04-20 Alan Modra <amodra@bigpond.net.au>
786 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
787 fp regs if the last fp arg doesn't fit in regs.
789 2006-04-20 Kaz Kojima <kkojima@gcc.gnu.org>
792 * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
793 that the last insn has the REG_INC note.
795 2006-04-19 Carlos O'Donell <carlos@codesourcery.com>
796 Nathan Sidwell <nathan@codesourcery.com>
799 * stor-layout.c (update_alignment_for_field): Do not align
801 (place_union_field): Place union field at the start of the union.
802 (place_field): Move ERROR_MARK check later, and use the current
803 allocation position to maintain monotonicity.
805 2006-04-19 Zdenek Dvorak <dvorakz@suse.cz>
807 * dominance.c: Include timevar.h.
808 (calculate_dominance_info): Use TV_DOMINANCE.
809 * timevar.def (TV_DOMINANCE): New timevar.
810 * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
812 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
814 PR rtl-optimization/14261
815 * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
816 move would be an INSV insn.
817 (noce_process_if_block): Don't optimize if the destination is a
818 ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
820 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
822 * config/s390/s390.md: Add comments with the instructions emitted
823 by an insn pattern if macros are used.
825 2006-04-19 Alan Modra <amodra@bigpond.net.au>
827 PR rtl-optimization/26026
828 * fold-const.c (fold_binary): Optimize div and mod where the divisor
829 is a known power of two shifted left a variable amount.
831 2006-04-18 Geoffrey Keating <geoffk@apple.com>
833 * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
834 to hash table twice when the debug_str section has SECTION_MERGE.
836 2006-04-18 Joseph S. Myers <joseph@codesourcery.com>
838 * config/soft-fp: New directory. From glibc.
839 * config/soft-fp/t-softfp: New.
840 * config/soft-fp/README: New.
841 * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
842 * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
843 (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
844 (LIBGCC_DEPS): Add $(SFP_MACHINE).
845 * config.gcc: Use rs6000/t-fprules-fpbit or
846 rs6000/t-fprules-softfp and soft-fp/t-softfp together with
848 * config/rs6000/sfp-machine.h: New. Based on glibc.
849 * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
851 * config/rs6000/t-fprules: Remove fp-bit rules.
852 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
853 * config/rs6000/t-linux64: Likewise. Remove duplicates from
854 LIB2FUNCS_EXTRA. Remove fp-bit rules.
855 (softfp_wrap_start, softfp_wrap_end): New.
857 2006-04-18 DJ Delorie <dj@redhat.com>
859 * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
861 2006-04-18 Devang Patel <dpatel@apple.com>
863 * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
865 2006-04-18 Nick Clifton <nickc@redhat.com>
867 * config/sh/t-symbian: Add rule to build sh-c.o
868 * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
869 of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
870 (sh_symbian_encode_section_info): Likewise.
872 2006-04-18 Andreas Krebbel <krebbel1@de.ibm.com>
874 * builtins.c (expand_builtin_strcmp): Cover label definition of
875 do_libcall with HAVE_cmpstrnsi.
877 2006-04-18 Kazu Hirata <kazu@codesourcery.com>
879 * function.c (temp_slots_at_level, max_slot_level): Use VEC
881 * function.h (temp_slot_p): New.
882 (function): Change the type of x_used_temp_slots to
883 VEC(temp_slot_p,gc) *.
885 2006-04-18 Nick Clifton <nickc@redhat.com>
887 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
888 flag_strength_reduce.
890 * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
892 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
896 Partial revert of revision 112637
897 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
898 Dale Johannesen <dalej@apple.com>
901 * regclass.c (struct reg_pref): Update documentation.
902 (regclass): Set prefclass to NO_REGS if memory is the best option.
903 (record_reg_classes): Cope with a prefclass set to NO_REGS.
905 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
907 PR tree-optimization/26821
908 * tree-ssa-math-opts.c (get_constant_one): New.
909 (insert_reciprocals): Use it.
911 2006-04-17 Geoffrey Keating <geoffk@apple.com>
913 * dwarf2out.c (free_AT): Delete.
914 (remove_AT): Update string ref counts.
915 (remove_child_TAG): Don't call free_die.
917 (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
919 (prune_unused_types_walk_attribs): Reset string refcounts.
920 (prune_unused_types_update_strings): New.
921 (prune_unused_types_prune): Don't make unnecessary stores. Don't
922 call free_die. Do call prune_unused_types_update_strings.
923 (prune_unused_types): Empty debug_str_hash.
925 2006-04-17 Roger Sayle <roger@eyesopen.com>
927 * expr.c (expand_assignment): Optimize away no-op moves where the
928 source and destination are equal and have no side-effects.
930 2006-04-17 Richard Guenther <rguenther@suse.de>
933 * reload.c (push_reload): Guard calls to get_secondary_mem
936 2006-04-16 Kazu Hirata <kazu@codesourcery.com>
938 * alias.c (reg_base_value, old_reg_base_value): Change the
939 type to VEC(rtx,gc) *.
940 (REG_BASE_VALUE, find_base_value, record_set,
941 init_alias_analysis): Use VEC instead of VARRAY.
943 * alias.c (alias_sets): Change the type to
944 VEC(alias_set_entry,gc) *.
945 (get_alias_set_entry, new_alias_set, record_alias_subset): Use
946 VEC instead of VARRAY.
947 (last_alias_set): Remove.
949 * cgraph.h (cgraph_edge_p): New.
950 Update the prototype of cgraph_function_versioning.
951 * cgraphunit.c (cgraph_copy_node_for_versioning,
952 cgraph_function_versioning): Use VEC instead of VARRAY.
953 * ipa-cp.c (ipcp_insert_stage): Likewise.
955 2006-04-16 Roger Sayle <roger@eyesopen.com>
958 * fold-const.c (fold_ternary): When converting "A ? B : C" into either
959 "A op B" or "A op C", we may need to convert A to the type of B and C.
961 2006-04-16 Adam Nemet <anemet@caviumnetworks.com>
963 * target.h (struct gcc_target): Add mode_rep_extended.
964 * rtlanal.c (num_sign_bit_copies_in_rep): New global.
965 (init_num_sign_bit_copies_in_rep): Initialize it using
967 (truncate_to_mode): Use it.
968 (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
969 * targhooks.h (default_mode_rep_extended): Declare it.
970 * targhooks.c (default_mode_rep_extended): Define it.
971 * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to
972 default_mode_rep_extended.
973 (TARGET_INITIALIZER): Include it.
974 * doc/tm.texi (Misc): Document it.
975 * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
976 (mips_truncated_to_mode): New function.
978 2006-04-16 Roger Sayle <roger@eyesopen.com>
981 * expr.c (compress_float_constant): Copy the narrow constant into
982 a new pseudo before extending it to its final width.
984 2006-04-16 Roger Sayle <roger@eyesopen.com>
985 Andrew Pinski <pinskia@gcc.gnu.org>
986 Dale Johannesen <dalej@apple.com>
989 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
990 special case code to implement V8HImode and V16QImode with SSE2.
992 2006-04-15 Roger Sayle <roger@eyesopen.com>
994 * config/i386/i386.c (ix86_va_start): Ensure all integer constant
995 trees are constructed with a suitable tree type.
997 2006-04-15 Roger Sayle <roger@eyesopen.com>
999 * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
1000 (integer_onep): Likewise.
1001 (integer_all_onesp): Likewise.
1002 (integer_pow2p): Likewise.
1003 (integer_nonzerop): Likewise.
1004 (real_zerop): Likewise.
1005 (real_onep): Likewise.
1006 (real_twop): Likewise.
1007 (real_minus_onep): Likewise.
1008 (int_size_in_bytes): Likewise.
1009 (host_integerp): Likewise.
1011 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
1013 * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
1014 jump.c, mips-tfile.c, omp-low.c, sched-int.h,
1015 tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
1017 * tree-ssa-structalias.h (alias_info): Remove num_references.
1019 2006-04-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1021 * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
1022 (output_bvb patterns): Likewise.
1023 * pa.c (output_bb): Use 'bb' insn for long branch case.
1024 (output_bvb): Likewise use '{bvb|bb}' for long branch case.
1025 (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
1026 1. Correct length operand for alternatives 1 and 2.
1027 (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
1028 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3.
1030 2006-04-14 Roger Sayle <roger@eyesopen.com>
1032 * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
1033 is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
1034 were accidentally reverted by r112959.
1036 2006-04-15 Jakub Jelinek <jakub@redhat.com>
1039 * except.h (eh_region_outermost): New prototype.
1040 * except.c (eh_region_outermost): New function.
1041 * tree-cfg.c (find_outermost_region_in_block): Use it.
1043 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
1045 * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
1047 * reload1.c (reg_equiv_memory_loc_varray): Rename to
1048 reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *.
1049 (init_reload, reload): Use VEC instead of VARRAY.
1050 * reload.h: Update the prototype for
1051 reg_equiv_memory_loc_varray.
1053 2006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com>
1054 Eric Botcazou <ebotcazou@libertysurf.fr>
1056 * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
1059 2005-04-13 Uros Bizjak <uros@kss-loka.si>
1062 * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
1063 to expand fallback builtin function call.
1065 2006-04-14 Alan Modra <amodra@bigpond.net.au>
1068 * builtins.c: (expand_builtin_memset): Stabilize args before expansion
1069 and emit libcall here in case the builtin fails.
1070 (expand_builtin_strcmp): Always emit the libcall here on failure.
1072 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
1074 * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
1075 * flow.c (reg_n_info): Change the type to
1076 VEC(reg_info_p,heap) *.
1077 * regclass.c (allocate_reg_info, free_reg_info): Use VEC
1079 * regs.h (reg_info_p): New.
1080 (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
1081 REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
1082 REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
1085 2006-04-13 Eric Botcazou <ebotcazou@adacore.com>
1087 * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
1089 * params.h (MAX_SCHED_READY_INSNS): New macro.
1090 * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
1091 past MAX_SCHED_READY_INSNS during the first scheduling pass.
1092 (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
1093 the ready list for 1 cycle during the first scheduling pass.
1094 * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
1096 2006-04-13 Richard Henderson <rth@redhat.com>
1099 * gimple-low.c (lower_omp_directive): Remove dead code.
1100 (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
1101 * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
1102 * omp-low.c (struct omp_region): Move to tree-flow.h.
1103 (root_omp_region): Export.
1104 (omp_regions, lookup_omp_region): Remove.
1105 (determine_parallel_type): Update for struct omp_region changes.
1106 (dump_omp_region): Dump regions with block numbers.
1107 (new_omp_region): Take type and block instead of stmt; malloc
1109 (free_omp_region_1, free_omp_regions): New.
1110 (expand_parallel_call): Take entry_stmt as argument; update for
1111 changes to omp_region.
1112 (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
1113 (remove_exit_barriers): New.
1114 (expand_omp_parallel): Update for struct omp_region changes.
1115 (expand_omp_synch): Likewise.
1116 (expand_omp): Likewise.
1117 (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
1118 (expand_omp_for_static_chunk): Likewise.
1119 (expand_omp_for): Likewise.
1120 (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
1121 (expand_omp_sections): Similarly, with GOMP_sections_end.
1122 (expand_omp_single): New.
1123 (build_omp_regions_1): Update for OMP_CONTINUE.
1124 (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
1125 (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
1126 OMP_SECTIONS_SECTIONS.
1127 (lower_omp_single_simple): Don't emit barrier here.
1128 (lower_omp_single_copy): Likewise.
1129 (lower_omp_single): Fix bindings, and lower to straightline now.
1130 (lower_omp_master, lower_omp_ordered): Likewise.
1131 (lower_omp_critical): Likewise.
1132 (lower_omp_for): Likewise. Emit OMP_CONTINUE.
1133 * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
1134 omp edges, free it afterward.
1135 (make_omp_sections_edges): Remove.
1136 (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
1137 (move_stmt_r): Handle OMP_CONTINUE.
1138 * tree-flow.h (struct omp_region): Move from omp-low.c. Switch
1139 statement pointers to basic blocks. Add type member.
1140 (root_omp_region, new_omp_region, free_omp_regions): Declare.
1141 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
1142 * tree-inline.c (estimate_num_insns_1): Likewise.
1143 * tree-pretty-print.c (dump_generic_node): Likewise.
1144 * tree-ssa-operands.c (get_expr_operands): Likewise.
1145 * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
1146 (OMP_RETURN): Rename from OMP_RETURN_EXPR.
1147 (OMP_CONTINUE): New.
1148 * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
1149 (OMP_SECTIONS_SECTIONS): Remove.
1150 (OMP_SECTION_LAST): New.
1151 (OMP_RETURN_NOWAIT): New.
1153 2006-04-13 Roger Sayle <roger@eyesopen.com>
1155 * fold-const.c (native_encode_vector, native_interpret_real):
1156 Correct obvious mistakes in the previous check-in.
1158 2006-04-13 Roger Sayle <roger@eyesopen.com>
1160 * fold-const.c (native_encode_expr): New function to encode
1161 the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
1162 or VECTOR_CST into a specified buffer.
1163 (native_encode_int): New function.
1164 (native_encode_real): New function.
1165 (native_encode_complex): New function.
1166 (native_encode_vector): New function.
1167 (native_interpret_expr): Inverse of native_encode_expr to convert
1168 a target representation into an INTEGER_CST, REAL_CST etc...
1169 (native_interpret_int): New function.
1170 (native_interpret_real): New function.
1171 (native_interpret_complex): New function.
1172 (native_interpret_vector): New function.
1173 (fold_view_convert_expr): New function to constant fold/evaluate
1174 a VIEW_CONVERT_EXPR of a suitable constant expression.
1175 (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
1176 Change call of build1 to fold_build1 when constructing a
1179 2006-04-13 Paolo Bonzini <bonzini@gnu.org>
1180 Ulrich Weigand <uweigand@de.ibm.com>
1183 * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
1186 2006-04-13 Alan Modra <amodra@bigpond.net.au>
1189 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
1190 optimize to lo_sum for DFmode if !TARGET_FPRS.
1192 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
1194 * tree-ssa-alias.c (set_initial_properties, init_alias_info,
1195 delete_alias_info, compute_flow_sensitive_aliasing,
1196 group_aliases): Use VEC instead of VARRAY.
1197 * tree-ssa-structalias.c (update_alias_info): Likewise.
1198 * tree-ssa-structalias.h (alias_info): Change the type of
1199 processed_ptrs to VEC(tree,heap) *.
1201 2006-04-12 J"orn Rennecke <joern.rennecke@st.com>
1204 * config/sh/lib1funcs.h: New file, broken out of:
1205 * config/sh/lib1funcs.asm.
1206 * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
1208 * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
1209 * config/sh/lib1funcs-Os-4-200.asm: New file.
1210 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
1211 * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
1212 (EXTRA_MULTILIB_PARTS): Include it.
1213 ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
1214 ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
1215 * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
1216 * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
1219 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
1221 * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
1222 * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
1223 tpa_compact, root_var_init, type_var_init): Use VEC instead of
1225 * tree-ssa-live.h: Include vecprim.h.
1226 (tree_partition_associator_d): Change the type of
1227 first_partition to VEC(int,heap) *.
1228 (tpa_first_partition): Use VEC instead of VARRAY.
1230 * Makefile.in (GTFILES): Move functions.h after tree.h.
1231 * function.c (reset_block_changes, record_block_change,
1232 check_block_change, free_block_changes): Use VEC instead of
1234 * function.h (function): Change the type of
1235 ib_boundaries_block to VEC(tree,gc) *.
1236 * tree-inline.c (copy_cfg_body): Initialize
1237 ib_boundaries_block to NULL instead of (varray_type) 0.
1239 2006-04-12 Roger Sayle <roger@eyesopen.com>
1241 * expr.c (emit_group_store): Correct operand order in call to
1242 subreg_lowpart_offset. Always create paradoxical SUBREGs with
1243 a SUBREG_BYTE of zero.
1245 2006-04-12 Richard Guenther <rguenther@suse.de>
1247 * profile.c (compute_branch_probabilities): Remove code
1248 encapsulated in !ir_type (), which are remanents of the
1249 removed RTL profiling code.
1250 * rtl-profile.c: Remove.
1252 2006-04-12 Alan Modra <amodra@bigpond.net.au>
1254 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
1255 magic NULL_RTX comment.
1256 (function_arg): Store entire fp arg to mem if any part should go
1258 (rs6000_arg_partial_bytes): Adjust for above change.
1260 2006-04-11 Roger Sayle <roger@eyesopen.com>
1262 * dwarf2out.c (output_call_frame_info): Create debug_frame_section
1263 if it hasn't been initialized by dwarf2out_init.
1265 2006-04-11 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
1267 * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
1268 symbolic constants in branch patterns.
1270 2006-04-11 Roger Sayle <roger@eyesopen.com>
1272 * caller-save.c: #include "addresses.h" after #include "tm_p.h".
1274 2006-04-11 Richard Sandiford <richard@codesourcery.com>
1276 PR rtl-optimization/27073
1277 * gcse.c (try_replace_reg): Revert last change. Continue to search
1278 for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
1281 2006-04-11 Eric Botcazou <ebotcazou@libertysurf.fr>
1283 * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
1284 aggregate types other than record and union types.
1285 (function_arg): Likewise.
1286 (function_arg_pass_by_reference): In 64-bit mode, return 0 for
1288 (function_value): In 64-bit mode, return objects that require it
1291 2006-04-11 Roger Sayle <roger@eyesopen.com>
1293 * dwarf2out.c (premark_used_types): Remove problematic prototype.
1295 2006-04-11 Jakub Jelinek <jakub@redhat.com>
1297 * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
1299 2006-04-03 Jeff Law <law@redhat.com>
1302 * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
1303 alias information too.
1305 2006-04-10 Mike Frysinger <vapier@gentoo.org>
1307 * gcc/Makefile.in (gcc-cross): Add $(exeext) to target name.
1309 2006-04-10 Aldy Hernandez <aldyh@redhat.com>
1312 * dwarf2out.c (struct die_struct): Add die_perennial_p field.
1313 (premark_used_types_helper): New.
1314 (premark_used_types): New.
1315 (gen_subprogram_die): Call premark_used_types.
1316 (prune_unused_types_walk): Do not prune perennial dies.
1317 * function.c (used_types_insert): New.
1318 * function.h (struct function): Add used_types_hash field.
1319 (used_types_insert): Add prototype.
1320 * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
1321 * c-parser.c (c_parser_cast_expression): Save casted types in used
1324 2006-04-11 Mark Mitchell <mark@codesourcery.com>
1327 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
1328 rs6000_explicit_options.float_gprs.
1330 2006-04-10 Roger Sayle <roger@eyesopen.com>
1332 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
1333 from ix86_expand_vector_init_low_nonzero. Take an additional
1334 one_var argument indicating which element is non-zero. Support
1335 one_var != 0 for V4SFmode and V4SImode by permuting the result.
1336 (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
1337 with one_var instead of ix86_expand_vector_init_low_nonzero.
1339 2006-04-10 Kazu Hirata <kazu@codesourcery.com>
1341 * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
1342 tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
1343 global.o, cfglayout.o, lambda-code.o, reg-stack.o,
1344 build/genextract.o): Depend on vecprim.h.
1345 * cfglayout.c, df-problems.c, function.c, genextract.c,
1346 global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
1347 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
1351 2006-04-10 Geoffrey Keating <geoffk@apple.com>
1353 * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
1354 Declare VECs of this type.
1355 (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
1356 (remove_children): Delete.
1357 (add_dwarf_attr): Use VEC routines.
1358 (add_AT_flag): Update for changes to add_dwarf_attr.
1359 (add_AT_int): Likewise.
1360 (add_AT_unsigned): Likewise.
1361 (add_AT_long_long): Likewise.
1362 (add_AT_vec): Likewise.
1363 (add_AT_string): Likewise.
1364 (add_AT_die_ref): Likewise.
1365 (add_AT_fde_ref): Likewise.
1366 (add_AT_loc): Likewise.
1367 (add_AT_loc_list): Likewise.
1368 (add_AT_addr): Likewise.
1369 (add_AT_lbl_id): Likewise.
1370 (add_AT_lineptr): Likewise.
1371 (add_AT_macptr): Likewise.
1372 (add_AT_offset): Likewise.
1373 (add_AT_range_list): Likewise.
1374 (get_AT): Use VEC_iterate.
1375 (remove_AT): Use VEC_ordered_remove.
1376 (free_die): Fold remove_children into here; have it use VEC_iterate.
1377 (print_die): Use VEC_iterate on attrs.
1378 (reverse_die_lists): Don't reverse attr lists.
1379 (die_checksum): Use VEC_iterate on attrs.
1380 (same_die_p): Likewise.
1381 (output_location_lists): Likewise.
1382 (build_abbrev_table): Likewise.
1383 (size_of_die): Likewise.
1384 (unmark_all_dies): Likewise.
1385 (output_abbrev_section): Likewise.
1386 (output_die): Likewise.
1387 (prune_unused_types_walk_attribs): Likewise.
1389 2006-04-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1391 * doc/install.texi (*-*-solaris2*): Point to the configure page.
1393 2006-04-10 Jakub Jelinek <jakub@redhat.com>
1396 * dwarf2out.c (is_symbol_die): Return true also for namespaces.
1398 2006-04-09 Roger Sayle <roger@eyesopen.com>
1400 * expr.c (store_constructor): Don't bother clearing target if
1401 we're about to assign a vector to it using vec_init_optab.
1403 2006-04-10 Daniel Berlin <dberlin@dberlin.org>
1405 * tree-ssa-alias.c (lhs_may_store_to): New function.
1406 (recalculate_used_alone): Handle LHS of calls.
1408 2006-04-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1412 * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
1413 * pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a.
1414 (LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here.
1415 (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
1416 (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
1417 (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
1418 section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
1419 stubs. Add ".align 8" directives before all ".dword" directives.
1420 (GTHREAD_USE_WEAK): Revise comment.
1421 (TARGET_ATTRIBUTE_WEAK): Define.
1422 * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
1423 dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
1424 * stublib.c: New file.
1429 * pa.md (cbranch patterns): Revise arguments used in calls to
1430 output_cbranch, output_bb and output_bvd. Add long branch length
1432 (fbranch patterns): Handle long branches.
1433 (jump): Revise length check. Revise arguments for output_lbranch call.
1434 Add long branch length attributes.
1435 (decrement_and_branch_until_zero): Add long branch length attributes.
1436 (output_movb, output_parallel_addb and output_parallel_movb patterns):
1437 Likewise. Revise arguments for output_parallel_addb and
1438 output_parallel_movb calls.
1439 * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
1440 output_parallel_movb and output_parallel_addb): Update prototypes.
1441 * pa.c (output_cbranch): Revise arguments. Correct handling of
1442 nullification in long branches.
1443 (output_lbranch): Add new argument to control extraction of delay
1445 (output_bb): Handle long branches.
1446 (output_bvb, output_dbra, output_movb, output_parallel_movb,
1447 output_parallel_addb): Likewise.
1449 2006-04-09 Richard Sandiford <richard@codesourcery.com>
1451 PR rtl-optimization/27073
1452 * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
1455 2006-04-08 Daniel Berlin <dberlin@dberlin.org>
1457 * tree.h (tree_memory_tag): Add old_used_alone.
1458 (SMT_OLD_USED_ALONE): New macro.
1459 * tree-ssa-alias.c (recalculate_used_alone): Stop
1460 marking things for renaming unnecessarily.
1462 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
1464 * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
1465 config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
1466 config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
1467 haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
1468 sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
1469 tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
1470 tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow
1471 spelling convensions.
1472 * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
1473 doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
1474 typos. Follow spelling conventions.
1476 2006-04-07 DJ Delorie <dj@redhat.com>
1478 * config/m32c/m32c.c (m32c_function_arg): Structures are always
1479 passed on the stack.
1480 (m32c_init_cumulative_args): When a function returns a structure,
1481 always pass the pointer to that return area on the stack.
1482 (m32c_function_arg_advance): Don't increment the parameter number
1483 if we're processing the returned structure pointer.
1484 (pushm_info): Reverse order of registers.
1486 2006-04-07 Sebastian Pop <pop@cri.ensmp.fr>
1488 * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
1489 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
1490 number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
1491 estimate_numbers_of_iterations_loop): Use build_int_cst instead of
1493 * tree-chrec.c (chrec_fold_multiply_poly_poly,
1494 chrec_fold_multiply): Same.
1495 * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
1496 force_expr_to_var_cost): Same.
1497 * tree-mudflap.c (mf_xform_derefs_1): Same.
1498 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
1500 2006-04-07 David Edelsohn <edelsohn@gnu.org>
1502 * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
1503 treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra
1506 2006-04-07 Jan Hubicka <jh@suse.cz>
1508 * ipa-inline.c (cgraph_early_inlining): Collect garbage.
1510 2006-04-07 Richard Guenther <rguenther@suse.de>
1512 PR tree-optimization/26135
1513 * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
1514 loads for store copy-prop.
1515 (copy_prop_visit_stmt): Likewise.
1517 2006-04-05 Robert Millan <robertmh@gnu.org>
1519 * gcc/config/i386/linux.h: Add a comment to mark macros that are
1520 being overriden in config/k*bsd-gnu.h.
1521 * gcc/config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
1523 * gcc/config/knetbsd-gnu.h: Ditto.
1525 2006-04-06 Jan Hubicka <jh@suse.cz>
1529 * coverage.c (coverage_checksum_string): Reorganize loop to not read
1532 2006-04-06 Mike Stump <mrs@apple.com>
1534 * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
1535 for HAVE_nonlocal_goto to be consistent.
1536 (expand_builtin_nonlocal_goto): Likewise.
1537 (expand_builtin_strcmp): Use #ifdef instead of #if
1538 for HAVE_cmpstrnsi to be consistent.
1540 2006-04-05 DJ Delorie <dj@redhat.com>
1542 * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
1545 2006-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
1547 * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
1548 got-relative addressing for anything but SImode.
1550 * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
1551 even if the calling function doesn't modify them.
1553 2006-04-05 Richard Guenther <rguenther@suse.de>
1555 PR tree-optimization/26919
1556 * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
1557 to cgraph_estimate_size_after_inlining.
1559 2006-04-05 Alan Modra <amodra@bigpond.net.au>
1561 * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
1563 2006-04-05 Sebastian Pop <pop@cri.ensmp.fr>
1565 PR tree-optimization/26996
1566 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
1567 VECTOR_TYPE variables.
1569 2006-04-05 Richard Guenther <rguenther@suse.de>
1571 PR tree-optimization/26763
1572 * fold-const.c (fold_comparison): Move folding of
1573 PTR + CST CMP PTR + CST ...
1574 (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR.
1576 2006-04-05 Gerald Pfeifer <gerald@pfeifer.com>
1578 * doc/install.texi (Prerequisites): Refine some wording on
1579 bootstrapping and ksh.
1580 Move the version numbers of DejaGnu here from the testing section
1581 and fix casing of names.
1582 Fix markup and clarify wording for autogen requirements.
1583 Refer to GCJ instead of just java.
1584 Refer to SVN instead of CVS.
1585 Describe diffutils as useful instead of necessary.
1586 (Downloading the source): Refer to SVN instead of CVS.
1587 Adjust a link to our web site accordingly.
1588 (Configuration): Fix casing of Bison.
1589 (Building): Refer to SVN instead of CVS.
1590 Fix a sentence on the use of Bison and remove duplicate (and
1591 incorrect) version number of Bison requirement.
1592 Remove one redundant list of packages needed for building.
1593 (Specific): Avoid reference to CVS.
1595 2006-04-04 Eric Christopher <echristo@apple.com>
1597 * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
1598 (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
1599 (rs6000_handle_struct_attribute): New.
1600 (rs6000_ms_bitfield_layout_p): Ditto.
1602 2006-04-04 Geoffrey Keating <geoffk@apple.com>
1604 * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
1605 NULL for dso parameter to atexit_common.
1607 2006-04-04 Eric Christopher <echristo@apple.com>
1609 * config/i386/i386.c (machopic_output_stub): Output \t
1610 between instructions and operands.
1612 2006-04-04 David Edelsohn <edelsohn@gnu.org>
1614 * config/rs6000/rs6000.c (num_insns_constant_wide): Change
1615 satisfies_constraint_[IL] to explicit tests on value.
1617 2006-04-04 Sebastian Pop <pop@cri.ensmp.fr>
1619 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1620 set_nb_iterations_in_loop): Use build_int_cst instead of
1622 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
1623 build_int_cst instead of convert.
1625 2006-04-04 Carlos O'Donell <carlos@codesourcery.com>
1627 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
1628 new value 2 for incoming.
1629 * function.c (expand_function_start): Call struct_value_rtx
1631 * config/sparc/sparc.md: Comment updated_return.
1632 * config/sparc/sparc.opt: Add -mstd-struct-return option.
1633 * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
1634 struct return if sparc_std_struct_return and incoming is 2.
1635 (print_operand): Do not adjust return if
1636 sparc_std_struct_return.
1638 2006-04-04 Roger Sayle <roger@eyesopen.com>
1640 * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
1641 convert in the middle-end.
1642 * expr.c (store_expr, store_constructor, get_inner_reference,
1643 expand_expr_real_1, string_constant, try_casesi, try_tablejump):
1645 * tree.c (build_range_type): Likewise.
1647 2006-04-04 Tom Tromey <tromey@redhat.com>
1649 * doc/install.texi (Prerequisites): Mention jar.
1651 2006-04-04 Daniel Berlin <dberlin@dberlin.org>
1653 * doc/tree-ssa.texi (Preserving the virtual ssa form): New
1656 2006-04-04 Matthias Klose <doko@debian.org>
1658 * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
1659 * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
1662 2006-04-03 Geoffrey Keating <geoffk@apple.com>
1664 * doc/extend.texi (Function Attributes): Rewrite visibility
1665 attribute documentation.
1666 * doc/invoke.texi (C++ Dialect Options): Rewrite
1667 -fvisibility-inlines-hidden documentation to describe something
1668 entirely different, although in practise compatible.
1669 (Code Gen Options): Warn about system headers in -fvisibiltity=
1672 * doc/extend.texi (Other Builtins): Document that
1673 __builtin_nan is a compile-time constant only when its argument
1676 2006-04-03 Adam Nemet <anemet@caviumnetworks.com>
1678 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
1679 trying to remove TRUNCATE check if all bits outside the new mode
1680 are identical to the sign bit.
1682 2006-04-03 Jeff Law <law@redhat.com>
1684 * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
1685 and operand scanning in some common cases.
1687 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
1688 Dale Johannesen <dalej@apple.com>
1691 * regclass.c (struct reg_pref): Update documentation.
1692 (regclass): Set prefclass to NO_REGS if memory is the best option.
1693 (record_reg_classes): Cope with a prefclass set to NO_REGS.
1694 * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
1695 into account. For non-registers, equate an empty preferred
1696 reload class to a `!' in the constraint; move the if clause to
1697 do so after those that reject the insn.
1698 (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
1700 (find_dummy_reload): Likewise.
1701 * doc/tm.texi (Register Classes): Document what it means
1702 if PREFERRED_*_RELOAD_CLASS return NO_REGS.
1703 * config/i386/i386.c (ix86_preferred_reload_class): Force
1704 using SSE registers (and return NO_REGS for floating-point
1705 constants) if math is done with SSE.
1706 (ix86_preferred_output_reload_class): New.
1707 * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
1708 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
1709 * config/i386/i386.md: Remove # register preferences.
1711 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
1714 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1715 chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
1716 the type of nb_iter.
1717 (instantiate_parameters_1): Convert the operands before calling
1718 chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
1719 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
1721 2006-04-02 Roger Sayle <roger@eyesopen.com>
1723 * builtins.c (dummy_object): Use build_int_cst instead of convert.
1724 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
1726 * dojump.c (do_jump): Likewise.
1727 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
1728 * gimplify.c (gimple_boolify, gimplify_init_constructor,
1729 gimplify_boolean_expr): Likewise.
1730 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1731 * varasm.c (array_size_for_constructor): Likewise.
1732 * tree-object-size.c (compute_object_offset): Likewise.
1734 2006-04-02 Roger Sayle <roger@eyesopen.com>
1737 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
1738 NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
1740 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
1742 PR tree-optimization/26939
1743 * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
1745 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
1747 * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
1748 at_stmt. Convert the type of operands before calling
1749 build_polynomial_chrec.
1750 (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
1752 (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
1753 (instantiate_parameters_1): Convert the type of operands before calling
1754 build_polynomial_chrec.
1755 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
1756 chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
1757 reset_evolution_in_loop): Insert asserts to check the types of the
1759 (chrec_type): Moved...
1760 (eq_evolutions_p): Use operand_equal_p.
1761 * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
1762 the types of the operands.
1763 (chrec_type): ...here.
1764 * tree-data-ref.c (create_data_ref): Convert the operands before
1765 calling chrec_replace_initial_condition.
1766 (same_access_functions, analyze_subscript_affine_affine,
1767 analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
1768 (compute_subscript_distance, analyze_ziv_subscript,
1769 analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
1770 analyze_miv_subscript): Convert the operands before calling
1771 chrec_fold_minus or chrec_fold_plus.
1773 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
1775 * tree-data-ref.c (compute_all_dependences): Use a pointer to
1776 the dependence_relations vector.
1777 (compute_data_dependences_for_loop): Adjust call to
1778 compute_all_dependences.
1780 2006-04-01 Roger Sayle <roger@eyesopen.com>
1781 Richard Henderson <rth@redhat.com>
1783 * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
1784 gimple_boolify on the condition before calling gimplify_expr.
1786 2006-03-31 Bob Wilson <bob.wilson@acm.org>
1788 * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
1789 to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
1790 the frame size. Update to use the new macros.
1791 * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
1792 * config/xtensa/ieee754-df.S: Likewise.
1794 2006-03-31 Richard Henderson <rth@redhat.com>
1796 * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
1797 (make_edges): ... here. Control fallthru creation with a local
1798 variable. Do not play with fake edges.
1799 (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
1800 (make_goto_expr_edges): Don't play with fake edges. Make for_call
1803 2006-04-01 Joseph S. Myers <joseph@codesourcery.com>
1805 * dwarf2.h (DW64_CIE_ID): Define.
1806 * dwarf2out.c (DWARF_CIE_ID): Define.
1807 (output_call_frame_info): Output 0xffffffff before standard 8-byte
1808 length header. Use DWARF_CIE_ID.
1809 (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
1810 dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
1812 2006-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
1814 * config/sh/linux-atomic.asm: New file.
1815 * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
1817 2006-03-31 DJ Delorie <dj@redhat.com>
1819 * config/m32c/cond.md: Set condition flags properly throughout.
1820 * config/m32c/minmax.md: Likewise.
1821 * config/m32c/prologue.md: Likewise.
1822 * config/m32c/bitops.md: Likewise.
1823 * config/m32c/muldiv.md: Likewise.
1824 * config/m32c/mov.md: Likewise.
1825 * config/m32c/addsub.md: Likewise.
1826 * config/m32c/m32c.md: Likewise.
1827 * config/m32c/jump.md: Likewise.
1828 * config/m32c/shift.md: Likewise.
1830 * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
1831 conditionally output the pattern for this.
1832 * config/m32c/m32c.c (flags_needed_for_conditional): New.
1833 (m32c_compare_redundant): New.
1834 (m32c_output_compare): New.
1835 * config/m32c/m32c-protos.h (m32c_output_compare): New.
1837 * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
1838 dest, not src. Allow other 4-byte modes.
1840 2006-03-30 Denis Chertykov <denisc@overta.ru>
1842 * doc/md.texi: Refer to avr/constraints.md instead of
1845 2006-03-30 Roger Sayle <roger@eyesopen.com>
1847 * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
1848 signed vs. unsigned comparison failures on some hosts.
1850 2006-03-31 Alan Modra <amodra@bigpond.net.au>
1853 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
1854 change to FLOAT_REGS.
1856 * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
1857 (rs6000_override_options): Use it.
1858 (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi
1859 only for -mabi=spe/no-spe and -mabi=altivec.
1861 2006-03-30 Geoffrey Keating <geoffk@apple.com>
1863 * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
1866 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
1868 * Makefile.in: Rename docdir to gcc_docdir.
1870 2006-03-30 Roger Sayle <roger@eyesopen.com>
1873 * expr.c (emit_group_store): Optimize group stores into a pseudo
1874 register by using a paradoxical subreg to initialize the destination
1875 if the first or last member of the group specifies a "low part".
1877 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1880 * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
1881 * target.h (struct gcc_target.speculate_insn): Change type of the
1882 second parameter to 'int'.
1883 * lists.c (alloc_DEPS_LIST): Change signature. Update reference to
1884 the second operand of the DEPS_LIST.
1885 (copy_DEPS_LIST_list): Update reference to the second operand of the
1887 * rtl.h (alloc_DEPS_LIST): Update signature.
1888 * sched-int.h (ds_t): Change typedef to 'int'.
1889 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
1891 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1893 * haifa-sched.c (try_ready): Change condition to restore
1894 non-speculative pattern of the instruction.
1895 (process_insn_depend_be_in_spec): Code to keep probability of the
1896 speculative dependence non-decreasing.
1898 2006-03-30 Jie Zhang <jie.zhang@analog.com>
1900 * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
1901 (single_move_for_movmem): ... this. Also change all uses.
1902 (bfin_expand_strmov): Renamed to...
1903 (bfin_expand_movmem): ... this. Also change all uses.
1904 * config/bfin/bfin.md (movstrsi): Renamed to...
1905 (movstrsi): ...this.
1907 2006-03-30 Paolo Bonzini <bonzini@gnu.org>
1909 PR tree-optimization/26830
1911 * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
1912 (copy_prop_visit_stmt): Remove write-only variable ann.
1913 (init_copy_prop): Check variable loop depth here. Do not simulate
1914 memory-tag and virtual operand PHIs except for store copy prop.
1916 2006-03-30 Richard Guenther <rguenther@suse.de>
1918 * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
1919 variants with double arguments.
1921 2006-03-29 David Edelsohn <edelsohn@gnu.org>
1923 * genpreds.c (write_tm_constrs_h): Delete variable p.
1924 * genconditions.c (write_header): Add tm-constrs.h to included
1926 * genpeep.c (main): Add toplev.h to included headers.
1927 * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
1928 (build/genpeep.o): Add toplev.h dependency.
1929 * config/rs6000/constraints.md: Add "W" constraint.
1931 2006-03-29 Roger Sayle <roger@eyesopen.com>
1933 * stor-layout.c (mode_for_size_tree): Remove restiction on type
1934 sizes by correctly testing whether the size fits a host integer.
1935 (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
1936 to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
1937 SImode range for the default sizetype and bitsizetype.
1939 2006-03-29 Roger Sayle <roger@eyesopen.com>
1941 * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
1942 and TREE_CONSTANT_OVERFLOW bits of the argument. Return
1943 quickly if the argument is already of the correct type.
1944 Call fold_build1 instead of build1. Tidy up blank lines.
1946 2006-03-29 David Edelsohn <edelsohn@gnu.org>
1948 * genemit.c (main): Add tm-constrs.h to included headers.
1949 * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
1950 * genpeep.c (main): Add tm-constrs.h to included headers.
1951 * genpreds.c (write_satisfies_constraint_fns): Rename to ...
1952 (write_tm_constrs_h): this and write complete file.
1953 (write_tm_preds_h): Do not emit satisfies_constraint fns.
1954 (write_insn_preds_c): Add tm-constrs.h to included headers.
1955 (gen_constrs): New variable.
1956 (parse_option): Parse "-c".
1957 (main): Invoke write_tm_constrs_h.
1958 * genrecog.c (write_header): Add tm-constrs.h to included headers.
1959 * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
1960 (object_out_file): Add tm-constrs.h dependency.
1961 (insn-emit.o): Same.
1962 (insn-output.o): Same.
1963 (insn-peep.o): Same.
1964 (insn-preds.o): Same.
1965 (insn-recog.o): Same.
1966 (tm-constsr.h): New target.
1967 (s-constrs-h): New target.
1969 * config/rs6000/constraints.md: New file.
1970 * config/rs6000/rs6000.c: Include tm-constrs.h.
1971 (num_insn_constant_wide): Convert to satisfies_constraint.
1972 (rs6000_rtx_costs): Convert to satisfies_constraint.
1973 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
1974 (CONST_OK_FOR_LETTER_P): Delete.
1975 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1976 (EXTRA_CONSTRAINT): Delete.
1977 (EXTRA_MEMORY_CONSTRAINT): Delete.
1978 (EXTRA_ADDRESS_CONSTRAINT): Delete.
1979 * config/rs6000/predicates.md: Convert to satisfies_constraint.
1980 * config/rs6000/rs6000.md: Include constraints.md. Convert to
1981 satisfies_constraint.
1983 * config/i386/i386.c: Include tm-constrs.h.
1985 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
1987 * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
1988 * tree-data-ref.c (find_data_references_in_loop,
1989 compute_data_dependences_for_loop): Use pointers to VEC.
1990 (analyze_all_data_dependences): Adjust calls.
1991 * tree-data-ref.h (find_data_references_in_loop,
1992 compute_data_dependences_for_loop): Adjust declarations.
1993 * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
1994 compute_data_dependences_for_loop.
1996 2006-03-29 Paul Brook <paul@codesourcery.com>
1998 * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
2001 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
2003 PR tree-optimization/26859
2004 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
2006 (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
2007 for the step after fold_convert.
2009 2006-03-29 Paul Brook <paul@codesourcery.com>
2011 * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
2012 (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
2014 2006-03-29 Paul Brook <paul@codesourcery.com>
2017 * targhooks.c (default_narrow_bitfield): New fuction.
2018 * targhooks.h (default_narrow_bitfield): add prototype.
2019 * target.h (gcc_target): Add narrow_volatile_bitfield.
2020 * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2021 * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
2022 * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
2023 * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2025 2006-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
2027 * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
2029 * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
2030 (NR_C_MODES): Add TDmode, DDmode and SDmode.
2031 (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
2032 (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
2033 (s390_function_arg_float): Allow SDmode and DDmode values to be
2034 passed in floating point registers.
2035 (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
2036 check with SCALAR_FLOAT_MODE_P.
2037 (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
2039 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
2041 PR tree-optimization/25985
2042 * tree-ssa-loop-niter.c (number_of_iterations_le,
2043 number_of_iterations_ne): Make comments more precise.
2044 (number_of_iterations_cond): Add only_exit argument. Use the
2045 fact that signed variables do not overflow only when only_exit
2047 (loop_only_exit_p): New.
2048 (number_of_iterations_exit): Pass result of loop_only_exit_p to
2049 number_of_iterations_cond.
2051 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
2053 PR tree-optimization/26643
2054 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
2057 2006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
2059 * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
2060 (divsi3_i4_int): Likewise.
2062 2006-03-28 Roger Sayle <roger@eyesopen.com>
2064 * expr.c (emit_group_store): Only create a new pseudo reg if the
2065 quantity it needs to hold isn't already a suitable pseudo.
2067 2006-03-28 Jeff Law <law@redhat.com>
2069 * timevar.def (TV_TREE_PHI_CPROP): New timevar.
2070 * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
2072 2006-03-28 Roger Sayle <roger@eyesopen.com>
2074 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
2075 the equivalent ~X & Y, and the symmetry related transformations.
2076 (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
2077 ~X & Y, and symmetry related transforms.
2079 2006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2081 Revert my 2006-03-27 patches.
2083 2006-03-28 Roger Sayle <roger@eyesopen.com>
2085 * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
2086 ~(T1)X, when T1 and T2 are integer types of the same precision
2087 and (T2)X isn't an extension.
2089 2006-03-28 Jeff Law <law@redhat.com>
2091 PR tree-optimization/26796
2092 * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
2093 need EH edge cleanups rather than purging them immediately.
2094 (eliminate_degenerate_phis): Handle queued EH cleanups.
2096 2006-03-28 Daniel Berlin <dberlin@dberlin.org>
2098 * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
2101 2006-03-27 Roger Sayle <roger@eyesopen.com>
2104 * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
2105 cast BIT_NOT_EXPR operand to the correct type.
2107 2006-03-27 Sebastian Pop <pop@cri.ensmp.fr>
2109 * tree-loop-linear.c: Don't include varray.h.
2110 (gather_interchange_stats, try_interchange_loops,
2111 linear_transform_loops): Use VEC instead of VARRAY.
2112 * lambda-mat.c: Don't include varray.h.
2113 * tree-chrec.c: Same.
2114 * lambda-trans.c: Same.
2115 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
2116 VEC instead of VARRAY.
2117 * tree-vectorizer.h: Idem.
2118 * tree-data-ref.c (dump_data_references,
2119 dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
2120 initialize_data_dependence_relation, finalize_ddr_dependent,
2121 compute_all_dependences, find_data_references_in_loop,
2122 compute_data_dependences_for_loop, analyze_all_data_dependences,
2123 free_dependence_relation, free_dependence_relations,
2124 free_data_refs): Idem.
2125 * tree-data-ref.h (data_reference_p, subscript_p): New.
2126 (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
2127 VEC instead of VARRAY.
2128 (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
2129 (find_data_references_in_loop, compute_data_dependences_for_loop,
2130 dump_ddrs, dump_dist_dir_vectors, dump_data_references,
2131 dump_data_dependence_relations, free_dependence_relations,
2132 free_data_refs): Adjust declaration.
2133 (lambda_transform_legal_p): Move declaration here...
2134 * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
2135 vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
2136 vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
2137 vect_analyze_data_refs): Use VEC instead of VARRAY.
2138 * lambda.h (lambda_transform_legal_p): ...from here.
2139 * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
2140 * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
2141 * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
2142 tree-chrec.o): Don't depend on VARRAY_H.
2144 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2146 * rtl.def (Copyright): Update date.
2147 (DEPS_LIST): Change type of the second operand to 'int'.
2148 * target.h (Copyright): Update date.
2149 (struct gcc_target.speculate_insn): Change type of the second parameter
2151 * lists.c (Copyright): Update date.
2152 (alloc_DEPS_LIST): Change signature. Update reference to the second
2153 operand of the DEPS_LIST.
2154 (copy_DEPS_LIST_list): Update reference to the second operand of the
2156 * rtl.h (Copyright): Update date.
2157 (alloc_DEPS_LIST): Update signature.
2158 * sched-int.h (Copyright): Update date.
2159 (ds_t): Change typedef to 'int'.
2160 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2162 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2164 * haifa-sched.c (Copyright): Update date.
2165 (try_ready): Change condition to restore non-speculative pattern
2167 (process_insn_depend_be_in_spec): Code to keep probability of the
2168 speculative dependence non-decreasing.
2170 2006-03-27 Bernd Schmidt <bernd.schmidt@analog.com>
2172 * regrename.c (replace_oldest_value_addr): Initialize a variable to
2173 shut up the compiler.
2175 2006-03-27 J"orn Rennecke <joern.rennecke@st.com>
2177 * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
2178 to use lib prefix for target.
2179 ($(T)libic_invalidate_array_4-200.a): Likewise.
2180 ($(T)libic_invalidate_array_4a.a): Likewise.
2182 2006-03-27 Andrew Stubbs <andrew.stubbs@st.com>
2183 J"orn Rennecke <joern.rennecke@st.com>
2185 * superh.opt: New file.
2186 * sh.c (boardtype, osruntime): Remove.
2187 * superh.h (SUBTARGET_OPTIONS): Remove.
2188 * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
2190 * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed
2191 arguments with ^ and/or [].
2193 * config.gcc (sh-*-*): Add quoting to account for quirk of
2195 Replace == with = in enable_incomplete_targets test.
2197 * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
2198 with MASK_LITTLE_ENDIAN.
2200 * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
2201 * config/sh/sh.opt: Added to some comments.
2202 * config/sh/superh.h: Removed some chaff.
2204 * config/sh/sh.opt: Add m4-[1234]00* options.
2205 * config/sh/sh.c (sh_handle_option): Likewise.
2206 * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
2207 (ic_invalidate_array_4-100.o): New rule.
2208 ($(T)libic_invalidate_array_4-100.a): Likewise.
2209 (ic_invalidate_array_4-200.o): Likewise.
2210 ($(T)libic_invalidate_array_4-200.a): Likewise.
2211 (ic_invalidate_array_4a.o): Likewise.
2212 ($(T)libic_invalidate_array_4a.a): Likewise.
2213 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
2214 * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
2216 * config/sh/crt1.asm: Merged in profiling code.
2217 * config/sh/superh.h (STARTFILE_SPEC): Override.
2218 * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
2219 Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
2220 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
2222 * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
2223 * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
2224 MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
2226 * sh.opt (mpretend-cmove): New option.
2227 * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
2228 * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
2229 (movsicc): Add TARGET_PRETEND_CMOVE code.
2231 2006-03-27 Andreas Krebbel <krebbel1@de.ibm.com>
2233 * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
2234 s390_class_max_nregs): New function prototypes.
2235 * config/s390/s390.c (REGNO_PAIR_OK): New macro.
2236 (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
2237 * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
2238 CLASS_MAX_NREGS): Macro bodies replaced by function calls.
2240 2006-03-26 Geoffrey Keating <geoffk@apple.com>
2242 * dwarf2out.c (add_location_or_const_value_attribute): Call
2243 tree_add_const_value_attribute if nothing else works.
2244 (reference_to_unused): New.
2245 (rtl_for_decl_init): Use reference_to_unused to decide whether
2246 to output an initializer.
2248 2006-03-27 Alan Modra <amodra@bigpond.net.au>
2251 * config/rs6000/rs6000.md (DF reg move peephole): Prevent
2252 peephole removing spe frob_di_df_2.
2254 2006-03-26 Sebastian Pop <pop@cri.ensmp.fr>
2256 * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
2257 (subscript_dependence_tester_1): Declared.
2258 (print_dir_vectors, print_dist_vectors): New.
2259 (debug_data_dependence_relation): New.
2260 (dump_data_dependence_relation): Print more details.
2261 (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
2262 (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
2263 (save_dist_v, save_dir_v, add_outer_distances,
2264 build_classic_dist_vector_1): New.
2265 (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
2266 Don't test for lambda_vector_lexico_pos.
2267 (same_access_functions, add_multivariate_self_dist,
2268 add_other_self_distances, dir_from_dist): New.
2269 (build_classic_dir_vector): Replace implementation almost identical to
2270 build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
2272 (subscript_dependence_tester_1): New.
2273 (subscript_dependence_tester): Handle the lexicographically negative
2274 distance vectors by recomputing the dependence relation.
2275 (compute_affine_dependence): Remove parameter loop_nest_depth.
2276 (compute_self_dependence): Don't call compute_subscript_distance.
2277 (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
2278 Add a parameter for the loop_nest.
2279 (find_loop_nest_1, find_loop_nest): New.
2280 (compute_data_dependences_for_loop): Compute the loop nest, and give
2281 up if the nest is not well formed.
2282 * tree-data-ref.h (loop_p): New.
2283 (struct data_dependence_relation): Replace size_vect field with
2284 loop_nest, a vec of loops.
2285 (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
2286 (DDR_LOOP_NEST): New.
2287 (print_dir_vectors, print_dist_vectors,
2288 debug_data_dependence_relation): Declared.
2289 (index_in_loop_nest): New.
2290 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
2291 DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
2294 2006-03-25 Adam Nemet <anemet@caviumnetworks.com>
2296 * simplify-rtx.c (simplify_relational_operation): Call
2297 simplify_relational_operation_1 even if mode is VOIDmode.
2299 2006-03-25 Daniel Berlin <dberlin@dberlin.org>
2301 PR tree-optimization/26804
2302 * tree.h (DECL_CALL_CLOBBERED): New macro.
2303 (tree_decl_common): Add call_clobbered_flag.
2304 * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
2305 (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
2306 (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
2307 (mark_non_addressable): Ditto.
2308 * tree-ssa.c (verify_call_clobbered): New function.
2309 (verify_alias_info): Use it.
2310 * tree-pass.h (pass_reset_cc_flags): New prototype.
2311 * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
2312 (reset_cc_flags): New function.
2313 * passes.c (init_optimization_passes): Call reset_cc_flags after
2314 initializing referenced_vars.
2316 2006-03-25 Uros Bizjak <uros@kss-loka.si>
2317 Roger Sayle <roger@eyesopen.com>
2320 * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
2321 to 1.0 for non-real operands. Implement A / A optimization for
2324 2006-03-25 H.J. Lu <hongjiu.lu@intel.com>
2326 * config/i386/i386.c (size_cost): Correct the comment for
2327 cost of storing fp registers.
2328 (i386_cost): Likewise.
2329 (i486_cost): Likewise.
2330 (pentium_cost): Likewise.
2331 (pentiumpro_cost): Likewise.
2332 (k6_cost): Likewise.
2333 (athlon_cost): Likewise.
2334 (k8_cost): Likewise.
2335 (pentium4_cost): Likewise.
2336 (nocona_cost): Likewise.
2337 (generic64_cost): Likewise.
2338 (generic32_cost): Likewise.
2340 2006-03-24 Denis Chertykov <denisc@overta.ru>
2342 * config/avr/avr-protos.h (extra_constraint): Delete.
2343 (extra_constraint_Q): New declaration.
2344 * config/avr/constraints.md: New file.
2345 * config/avr/avr.md: Include it.
2346 (REG_X, REG_Y, REG_Z, REG_W): New constants.
2347 (TMP_REGNO, ZERO_REGNO): Likewise.
2348 (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
2349 * config/avr/avr.c (avr_reg_class_from_letter): Delete.
2350 (extra_constraint): Delete.
2351 (extra_constraint_Q): Test for memory constraint 'Q'.
2352 * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
2353 (REG_CLASS_FROM_LETTER): Delete.
2354 (CONST_OK_FOR_LETTER_P): Delete.
2355 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2356 (EXTRA_CONSTRAINT): Delete.
2357 (TMP_REGNO): Delete.
2358 (ZERO_REGNO): Delete.
2360 2006-03-24 Jeff Law <law@redhat.com>
2362 * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
2363 directly. Call mark_new_vars_to_rename slightly earlier.
2365 2006-03-24 Geoffrey Keating <geoffk@apple.com>
2367 * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
2369 (gen_compile_unit_die): Use new language types for Objective-C and
2371 (dwarf2out_decl): Use is_cxx rather than testing explicitly against
2372 DW_LANG_C_plus_plus.
2375 * config/t-darwin (crt3.o): Work around bug 26840.
2376 * config/darwin-crt3.c: Rewrite.
2377 * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
2379 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
2381 * doc/invoke.texi: Document -femit-class-debug-always
2382 * common.opt: Add -femit-class-debug-always.
2384 2006-03-24 Andreas Krebbel <krebbel1@de.ibm.com>
2386 * config/s390/s390.c (s390_decompose_address): Allow SImode for
2387 index and base register.
2388 (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
2389 print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
2390 with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
2391 REGNO_OK_FOR_INDEX_P.
2392 * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
2394 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
2395 REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
2396 REG_OK_FOR_BASE_P): Definitions removed.
2398 2006-03-24 Jakub Jelinek <jakub@redhat.com>
2401 * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
2402 non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
2403 set yet or weren't marked as local yet.
2405 2006-03-24 Bernd Schmidt <bernd.schmidt@analog.com>
2407 * regrename.c (scan_rtx_address): Initialize a variable to shut up
2410 2006-03-24 Eric Botcazou <ebotcazou@adacore.com>
2412 * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
2413 (rs6000_legitimate_small_data_p): Delete.
2414 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
2415 (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
2416 and make static. Add forward declaration. Update uses.
2417 (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
2418 of offsettable_memref_p.
2419 * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
2420 Use rs6000_offsettable_memref_p instead of a less accurate predicate.
2422 2006-03-24 Jeff Law <law@redhat.com>
2424 * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
2425 around bug in immediate-use iterator.
2427 2006-03-24 Alan Modra <amodra@bigpond.net.au>
2430 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
2431 or __LITTLE_ENDIAN__.
2433 2006-03-23 J"orn Rennecke <joern.rennecke@st.com>
2435 * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
2436 * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
2437 * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
2438 * config/sh/sh.opt (mdiv=): Amend description.
2439 * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
2440 (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
2441 (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
2442 SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
2443 (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
2444 Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
2445 * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
2446 (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE /
2447 TARGET_DIVIDE_CALL_FP.
2449 2006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2451 * haifa-sched.c (choose_ready): Fix type of the local variable.
2452 Move local variables. Add comment.
2453 (check_reg_live): Change signature. Make callable from debugger.
2454 * sched-int.h (check_reg_live): Update signature.
2455 * sched-ebb.c (check_reg_live): Update parameters.
2456 * sched-rgn.c (check_reg_live): Ditto.
2457 (region_head_or_leaf_p): Check pointer before dereferencing.
2458 * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
2459 before reload on optimization levels below 1.
2461 2006-03-23 Richard Henderson <rth@redhat.com>
2463 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
2467 * config/alpha/predicates.md (local_symbolic_operand): Reject
2470 2006-03-23 Andrew Pinski <pinskia@physics.uc.edu>
2473 * tree-ssa-pre.c (create_value_expr_from): Don't reject
2474 expressions which have overflowed constants.
2476 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
2478 * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
2480 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
2482 * cfgloopmanip.c (create_loop_notes): Removed.
2483 * final.c (final_scan_insn): Do not handle loop notes.
2484 * jump.c (squeeze_notes): Ditto.
2485 * cfglayout.c (skip_insns_after_block,
2486 duplicate_insn_chain): Ditto.
2487 * cfgcleanup.c (rest_of_handle_jump2): Do not call
2489 * cfgloop.h (create_loop_notes): Declaration removed.
2491 2006-03-23 Richard Sandiford <richard@codesourcery.com>
2493 * varasm.c (output_constant_pool): Restore fnname and fndecl
2495 (assemble_start_function): Adjust call accordingly.
2496 (assemble_end_function): Likewise.
2498 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2501 * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
2504 * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
2506 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2509 * system.h (ICE_EXIT_CODE): New macro.
2510 * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
2511 (diagnostic_action_after_output): Likewise.
2512 * gcc.c (fatal_ice): New function.
2513 (execute): Use it instead of fatal.
2514 (fancy_abort): Likewise.
2515 * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
2517 2006-03-22 Jeff Law <law@redhat.com>
2519 * loop-unroll.c (analyze_iv_to_split_insn): Handle
2520 iv_analyze_result returning false.
2522 2006-03-22 Jie Zhang <jie.zhang@analog.com>
2524 * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
2526 2006-03-22 Richard Henderson <rth@redhat.com>
2529 * except.c (duplicate_eh_regions_0): New.
2530 (duplicate_eh_region_1): Duplicate the children of the node as
2531 well as the node itself. Link them up properly.
2532 (duplicate_eh_region_2): Merge into ...
2533 (duplicate_eh_regions): ... here. Take copy_region argument, and
2534 copy only a sub-tree if asked. Simplify copying and fixup.
2535 (eh_region_outer_p): New.
2536 * except.h (duplicate_eh_regions): Update decl.
2537 (eh_region_outer_p): Declare.
2538 * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
2539 (lower_omp_master): Likewise.
2540 (lower_omp_ordered): Likewise.
2541 * tree-cfg.c (struct move_stmt_d): Add new_label_map.
2542 (move_stmt_r): Use it to remap labels. Handle recursion vs
2543 remap_decls_p properly.
2544 (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR.
2545 (find_outermost_region_in_block): New.
2546 (new_label_mapper): New.
2547 (move_sese_region_to_fn): Copy eh information to the new function
2549 * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
2551 * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
2554 2006-03-22 Richard Sandiford <richard@codesourcery.com>
2556 * doc/md.texi (-mshared): Mention that -mshared code can be linked
2557 into shared libraries.
2559 2006-03-22 Richard Sandiford <richard@codesourcery.com>
2561 * doc/md.texi: Refer to i386/constraints.md instead of
2563 * config/i386/constraints.md: New file, extracted from...
2564 * config/i386/predicates.md: ...here.
2565 * config/i386/i386.md: Include constraints.md.
2567 2006-03-21 Jason Merrill <jason@redhat.com>
2569 * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
2572 * expr.c (init_block_move_fn): Force default visibility.
2573 (init_block_clear_fn): Likewise.
2574 * builtins.c (expand_builtin_fork_or_exec): Likewise.
2575 * targhooks.c (default_external_stack_protect_fail): Likewise.
2577 2006-03-21 Richard Sandiford <richard@codesourcery.com>
2579 * config/mips/predicates.md (const_call_insn_operand): Allow direct
2580 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
2581 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
2582 Use TARGET_OLDABI instead of !TARGET_NEWABI.
2583 (loadgp): Use mips_current_loadgp_style.
2584 (loadgp_noshared): New pattern.
2585 (sibcall_internal): Use MIPS_CALL.
2586 (sibcall_value_internal): Likewise.
2587 (sibcall_value_multiple_internal): Likewise.
2588 (call_internal): Likewise.
2589 (call_value_internal): Likewise.
2590 (call_value_multiple_internal): Likewise.
2591 (call_split): Use MIPS_CALL and add an 'S' constraint.
2592 (call_value_split): Likewise.
2593 (call_value_multiple_split): Likewise.
2594 * config/mips/mips.opt (-mabicalls): Tweak docstring.
2595 (-mshared): New option.
2596 * config/mips/mips-protos.h (mips_loadgp_style): New enum.
2597 (mips_current_loadgp_style): Declare.
2598 * config/mips/mips.c (mips_classify_symbol): Avoid using
2599 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
2600 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
2601 TARGET_ABSOLUTE_ABICALLS.
2602 (override_options): Adjust comments. Improve the warning that is
2603 issued when -mabicalls and -G are used together.
2604 (mips_file_start): Remove comment.
2605 (mips_current_loadgp_style): New function.
2606 (mips_gnu_local_gp): New variable.
2607 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle
2609 (mips_output_function_prologue): Use mips_current_laodgp_style.
2610 (mips_expand_prologue): Call mips_emit_loadgp before emitting
2611 the cprestore instruction.
2612 (mips_extra_live_on_entry): Fix reversed test. Don't make $25
2613 live for TARGET_ABSOLUTE_ABICALLS.
2614 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
2615 (ASM_SPEC): Pass down -mshared and -mno-shared.
2616 (MIPS_CALL): New macro.
2617 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
2619 * doc/invoke.texi (-mabicalls): Update documentation.
2620 (-mshared): Document.
2622 2006-03-21 Steve Ellcey <sje@cup.hp.com>
2624 * config/ia64/unwind-hpux.c: New file.
2625 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
2627 2006-03-21 Steve Ellcey <sje@cup.hp.com>
2630 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
2632 2006-03-21 Jeff Law <law@redhat.com>
2634 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
2635 type conversions of a VR_VARYING source to a wider type.
2637 2006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
2639 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
2640 tm_file on Solaris 10 and later.
2641 (sparc64-*-solaris2*): Likewise.
2642 (sparc-*-solaris2*): Likewise.
2643 * config/sol26.h: Rename to config/sol2-6.h.
2644 * config/sol2-10.h: New file.
2646 2006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
2649 * tree-ssa-pre.c (create_component_ref_by_pieces):
2652 2006-03-21 Jakub Jelinek <jakub@redhat.com>
2655 * tree.c (get_callee_fndecl): If CALL is error_mark_node,
2656 return it immediately.
2658 2006-03-21 Michael Matz <matz@suse.de>
2660 * genautomata.c (<struct state>, num_out_arcs, presence_signature):
2662 (remove_arc, add_arc): Update num_out_arcs member.
2663 (set_out_arc_insns_equiv_num): Returns nothing instead of number
2665 (cache_presence): New function.
2666 (compare_states_for_equiv): New function.
2667 (state_is_differed): Don't take number of outargs, adjust callers.
2668 Use new invariant for speeding up.
2669 (init_equiv_class): Create initial classes based on sorted
2671 (partition_equiv_class): Don't track out_arcs_num.
2672 (evaluate_equiv_classes): Call cache_presence on all states and
2675 2006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
2677 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
2678 * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
2679 (bfin_valid_reg_p): Test for pseudos explicitly and use only
2680 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
2682 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
2683 (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
2684 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
2685 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
2686 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
2688 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
2689 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
2690 (REGNO_REG_CLASS): ARGP is in PREGS.
2691 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
2693 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
2694 to deal with those addresses.
2695 * addresses.h: New file.
2696 * caller-save.c: Include "addresses.h".
2697 (init_caller_save): Use new base_reg_class function.
2698 * rtl-factoring.c: Include "addresses.h".
2699 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
2700 * recog.c: Include "addresses.h".
2701 (preprocess_constraints): Use new base_reg_class function.
2702 * regrename.c: Include "addresses.h".
2703 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
2704 functions. Keep track of a new var INDEX_CODE to compute valid
2706 (replace_oldest_value_addr): Likewise.
2707 (replace_oldest_value_mem): Use base_reg_class.
2708 * reload.c: Include "addresses.h".
2709 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
2710 (find_reloads): Use new base_reg_class function.
2711 (find_reloads_address): Likewise; also use regno_ok_for_base_p.
2712 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
2713 all callers and prototype changed.
2714 * reload1.c: Include "addresses.h".
2715 (maybe_fix_stack_asms): Use base_reg_class.
2716 * regclass.c: Include "addresses.h".
2717 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
2718 (init_reg_autoinc): Use new base_reg_class function.
2719 (record_reg_classes): Likewise.
2720 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
2721 OUTER_CODE and INDEX_CODE. All callers and prototype changed.
2722 Use new args to compute necessary class.
2724 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
2725 regrename.o, rtl-factoring.o): Update dependencies.
2726 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
2727 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
2728 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
2729 REG_OK_FOR_INDEX_P): Delete documentation.
2731 2006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
2733 * config.gcc (sparc-*-solaris2*): Change the default CPU setting
2734 from V7 to V9 for Solaris 7 and above.
2736 2006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
2738 * doc/invoke.texi: Document new flag -fargument-noalias-anything.
2739 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
2740 argument pointers may not alias any other storage.
2741 * common.opt: Define option -fargument-noalias-anything.
2742 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
2743 alias semantics is specified by flag_argument_noalias > 2.
2745 2006-03-20 Jeff Law <law@redhat.com>
2747 * tree-pass.h (pass_phi_only_copy_prop): Delete.
2748 (pass_phi_only_cprop): Declare.
2749 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
2751 * tree-ssa-dom.c (degenerate_phi_result): New function.
2752 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
2753 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
2754 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
2755 (eliminate_degenerate_phis): Likewise.
2756 (pass_phi_only_cprop): New pass descriptor.
2757 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
2758 support code. Callers updated.
2759 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
2760 (store_copy_prop): Likewise.
2761 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
2763 2006-03-20 Jason Merrill <jason@redhat.com>
2766 * c-pragma.c (visstack): Move out of handle_pragma_visibility.
2767 (push_visibility, pop_visibility): Likewise.
2768 * c-pragma.h: Declare them.
2770 2006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
2772 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
2774 * config/sh/sh.c (find_regmode_weight): Change the type of the first
2775 parameter and use get_ebb_head_tail.
2776 (sh_md_init_global): Adjust uses of find_regmode_weight.
2778 2006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
2780 * function.h (struct function) <x_tail_recursion_reentry>:
2781 Rename to x_stack_check_probe_note.
2782 (tail_recursion_reentry): Rename to stack_check_probe_note.
2783 * function.c: Replace tail_recursion_reentry with
2784 stack_check_probe_note everywhere.
2785 (expand_function_start): Only emit a note for
2786 stack_check_probe_note with -fstack-protect.
2787 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
2789 * emit-rtl.c (remove_unnecessary_notes): Remove.
2790 (pass_remove_unnecessary_notes): Remove.
2791 * rtl.h (remove_unnecessary_notes): Remove prototype.
2792 * final.c (final_start_function): Don't call remove_unnecessary_notes.
2793 * tree-pass.h (pass_remove_unnecessary_notes): Remove.
2794 * passes.c (pass_remove_unnecessary_notes): Don't run it.
2796 2006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
2799 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
2800 (valid_in_set): Handle ARRAY_REF.
2801 Change "if min_variant or VH" to asserts.
2802 (create_component_ref_by_pieces): Handle ARRAY_REF.
2803 (create_expression_by_pieces): Likewise.
2804 (can_PRE_operation): ARRAY_REFs can now be PRE'd.
2806 2006-03-20 David Edelsohn <edelsohn@gnu.org>
2808 * genpreds.c (write_insn_extra_address_constraint): Argument `c'
2809 is operand of switch, not str[0].
2811 2006-03-20 Alan Modra <amodra@bigpond.net.au>
2813 * config/rs6000/rs6000.c (rs6000_handle_option): Use
2814 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
2816 2006-03-19 David Edelsohn <edelsohn@gnu.org>
2818 * genpreds.c (write_tm_preds_h): Add semicolon and newline at
2819 end of insn_extra_address_constraint declaration.
2821 2006-03-19 David Edelsohn <edelsohn@gnu.org>
2823 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
2824 (no-sum-in-toc): Same.
2825 * config/rs6000/rs6000.c (rs6000_handle_option): Use new
2827 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
2828 NO_FP_IN_TOC for -fPIC instead of mask.
2830 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
2831 (BOOT_LDFLAGS): Delete.
2833 * config/rs6000/t-aix52: Same.
2835 * config/rs6000/rs6000.md (store_multiple_power): Delete.
2836 (stmsi[345678]_power): New.
2838 2006-03-17 Steve Ellcey <sje@cup.hp.com>
2840 * config/ia64/ia64.opt: Add empty line to end of file.
2842 2006-03-17 Richard Guenther <rguenther@suse.de>
2845 * builtins.c (get_pointer_alignment): For component style references
2846 adjust alignment to the component type alignment. Make sure
2847 to adjust alignment for component access of constants.
2849 2006-03-17 David Edelsohn <edelsohn@gnu.org>
2851 * config/rs6000/rs6000.md (strlensi): Emit barrier after
2854 2006-03-17 Paul Brook <paul@codesourcery.com>
2856 * doc/install.texi: Docuemnt --with-mode.
2857 * config.gcc: Add --with-mode for arm*-*-*.
2858 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
2860 2006-03-17 J"orn Rennecke <joern.rennecke@st.com>
2862 * sh.c (max_labelno_before_reorg): New variable.
2863 (sh_reorg): Initialize it.
2864 (find_barrier): Check max_labelno_before_reorg before using
2865 label_to_alignment. Take length of explicit alignment insns
2866 into account. When seeing a UNSPECV_CONST_END, return it.
2868 * sh.c (fixup_mova): Set mode of affected label to QImode.
2869 (untangle_mova): New function.
2870 (find_barrier): Use it. Check mode of label before decrementing
2872 (sh_reorg): Likewise.
2873 Set mode of all insns back to VOIDmode.
2875 * sh.c (MOVA_LABELREF): New macro.
2876 (mova_p, fixup_mova, sh_reorg): Use it.
2877 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
2878 ADDR_DIFF_VEC matches mova.
2880 2006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
2882 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
2883 with ATTRIBUTE_UNUSED.
2885 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
2887 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
2888 pointer, instead of assuming it is possible to derive the
2889 correct args size from a call insn.
2891 2006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2893 * rtl.h (CONST_INT_P): Define.
2894 * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
2895 instead of GET_CODE(x) == CONST_INT.
2896 (vax_rtx_costs): Likewise.
2897 (vax_output_int_move): Likewise.
2898 (vax_output_int_add): Likewise.
2899 (legitimate_constant_address_p): Likewise.
2900 (index_term_p): Likewise.
2901 * config/vax/vax.h (PRINT_OPERAND): Likewise.
2902 * config/vax/vax.md (and<mode>3): Likewise.
2903 (ashrsi3): Likewise.
2905 (movstricthi): Likewise.
2906 (movstrictqi): Likewise.
2907 (rotrsi3): Likewise.
2908 (five unnamed insns): Likewise.
2910 2006-03-16 Geoffrey Keating <geoffk@apple.com>
2912 * doc/tm.texi (SDB and DWARF): Add extra parameter to
2913 ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables.
2914 * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
2915 * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
2916 Pass to ASM_OUTPUT_DWARF_OFFSET.
2917 * dwarf2out.c (debug_frame_section): New.
2918 (output_call_frame_info): Use debug_frame_section. Pass it to
2919 dw2_asm_output_offset.
2920 (output_die): Pass appropriate section to dw2_asm_output_offset.
2921 (output_compilation_unit_header): Likewise.
2922 (output_pubnames): Likewise.
2923 (output_aranges): Likewise.
2924 (enum dw_val_class): Break dw_val_class_lbl_offset into
2925 dw_val_class_lineptr and dw_val_class_macptr.
2926 (add_AT_lbl_offset): Delete.
2927 (add_AT_lineptr): New.
2928 (add_AT_macptr): New.
2929 (AT_lbl): Expect a lineptr or macptr.
2930 (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
2931 (attr_checksum): Likewise.
2932 (same_dw_val_p): Likewise.
2933 (size_of_die): Likewise.
2934 (value_format): Likewise.
2935 (output_die): Likewise.
2936 (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
2938 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
2939 * config/i386/i386.c (x86_file_start): Call darwin_file_start.
2940 * config/darwin-protos.h (darwin_file_start): New.
2941 (darwin_asm_output_dwarf_offset): New.
2942 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
2943 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
2945 * config/darwin.c (darwin_emit_unwind_label): Don't output label
2946 if not EH section; simplify.
2947 (darwin_file_start): New.
2948 (darwin_asm_output_dwarf_offset): New.
2949 * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
2951 (DEBUG_INFO_SECTION): Likewise.
2952 (DEBUG_ABBREV_SECTION): Likewise.
2953 (DEBUG_ARANGES_SECTION): Likewise.
2954 (DEBUG_MACINFO_SECTION): Likewise.
2955 (DEBUG_LINE_SECTION): Likewise.
2956 (DEBUG_LOC_SECTION): Likewise.
2957 (DEBUG_PUBNAMES_SECTION): Likewise.
2958 (DEBUG_STR_SECTION): Likewise.
2959 (DEBUG_RANGES_SECTION): Likewise.
2960 (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
2961 (ASM_OUTPUT_DWARF_OFFSET): New.
2963 2006-03-16 Joseph S. Myers <joseph@codesourcery.com>
2965 * config.gcc (tm_defines): Always add to previous value rather
2968 2006-03-16 Richard Sandiford <richard@codesourcery.com>
2970 * config/mips/predicates.md (splittable_const_int_operand): New,
2971 split from move_operand.
2972 (splittable_symbolic_operand): New.
2973 (move_operand): Add commentary. Use splittable_const_int_operand.
2974 Inline mips_atomic_symbolic_constant_p.
2975 * config/mips/mips.md: Add combine splitters for handling moves
2976 of splittable_const_int_operands and splittable_symbolic_operands.
2977 * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
2978 (mips_split_symbol): Declare.
2979 (mips_move_integer): Declare.
2980 * config/mips/mips.c (mips_split_p): Make global.
2981 (TARGET_MIN_ANCHOR_OFFSET): Override default.
2982 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
2983 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
2984 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
2985 (mips_offset_within_object_p): Handle block symbols.
2986 (mips_atomic_symbolic_constant_p): Delete.
2987 (mips_cannot_force_const_mem): Return false for constants that
2988 mips_legitimize_move can handle.
2989 (mips_use_blocks_for_constant_p): New function.
2990 (mips_split_symbol): Make global.
2991 (mips_move_integer): Likewise. Add a temporary register argument.
2992 (mips_legitimize_const_move): Use splittable_const_int_operand and
2993 splittable_symbolic_operand.
2994 (mips_use_anchors_for_symbol_p): New function.
2995 * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
2996 (mips_split_p): Declare.
2998 2006-03-16 Richard Sandiford <richard@codesourcery.com>
3000 * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
3001 (mips*-*-linux*): Likewise.
3003 2006-03-16 Roger Sayle <roger@eyesopen.com>
3004 Daniel Speyer <dspeyer@wam.umd.edu>
3007 * tree-dump.c (dump_real): New function.
3008 (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
3009 * Makefile.in (REAL_H): New macro for dependencies on real.h.
3010 (tree-dump.o): Add $(REAL_H) to the dependencies.
3012 2006-03-16 Roger Sayle <roger@eyesopen.com>
3015 * real.c (real_from_string): If the mantissa is zero, don't bother
3016 parsing the exponent as the result should always be zero.
3018 2006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>
3020 * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
3022 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3024 * config/ia64/ia64.c (stops_p): Added explicit initialization.
3025 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
3026 ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
3027 ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
3028 ia64_sched_finish_global): New static functions to implement
3029 hooks from gcc_target.sched.
3030 (spec_check_no, max_uid, pending_data_specs): New static variables.
3031 (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
3032 ia64_spec_check_src_p): New static functions.
3033 (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
3034 (TARGET_SCHED_ADJUST_COST): Removed.
3035 (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
3036 TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
3037 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
3038 TARGET_SCHED_GEN_CHECK,
3039 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3040 TARGET_SCHED_SET_SCHED_FLAGS): New macros.
3041 (update_set_flags, group_barrier_needed, set_src_needs_barrier):
3042 Fixed to handle speculation checks.
3043 (rtx_needs_barrier): Fixed to handle speculative loads and
3045 (ia64_variable_issue): Added code to count speculative loads and their
3047 (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
3049 (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
3051 (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
3053 (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
3054 (ia64_reorg): Reset stops_p to NULL after it is freed.
3055 * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
3056 UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
3057 (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f,
3059 (data_speculative, control_speculative, check_load): New attributes.
3060 (mov<mode>_advanced, mov<mode>_speculative,
3061 mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
3062 zero_extend<mode>di2_speculative,
3063 zero_extend<mode>di2_speculative_advanced): New patterns for
3064 data and control speculative loads.
3065 (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
3067 (advanced_load_check_clr_<mode>, speculation_check_<mode>):
3068 New pattern for data and control speculation checks.
3069 (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
3070 ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
3071 reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
3072 Auxiliary definitions for the patterns.
3073 * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
3074 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
3076 (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
3078 (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
3079 * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
3080 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
3081 New resource constraints.
3082 (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
3084 (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
3085 * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
3086 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
3087 msched-in-control-spec, msched-ldc, msched-control-ldc,
3088 msched-spec-verbose, msched-prefer-non-data-spec-insns,
3089 msched-prefer-non-control-spec-insns,
3090 msched-count-spec-in-critical-path): New flags to tune speculative
3092 * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
3093 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
3094 msched-in-control-spec, msched-ldc, msched-control-ldc,
3095 msched-spec-verbose, msched-prefer-non-data-spec-insns,
3096 msched-prefer-non-control-spec-insns,
3097 msched-count-spec-in-critical-path): Document new flags.
3099 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3101 * target.h (struct spec_info_def): New opaque declaration.
3102 (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
3103 speculate_insn, needs_block_p, gen_check,
3104 first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
3105 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
3106 TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
3107 TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
3108 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3109 TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
3111 (TARGET_SCHED): Use new macros.
3112 * rtl.h (copy_DEPS_LIST_list): New prototype.
3113 * sched-int.h (struct sched_info): Change signature of new_ready field,
3114 adjust all initializations. New fields: add_remove_insn,
3115 begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
3116 region_head_or_leaf_p.
3117 (struct spec_info_def): New structure declaration.
3118 (spec_info_t): New typedef.
3119 (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
3120 recovery_block, orig_pat.
3121 (glat_start, glat_end): New variables declaraions.
3122 (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
3124 (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
3125 DETACH_LIFE_INFO, USE_GLAT.
3126 (enum SPEC_SCHED_FLAGS): New enumeration.
3127 (NOTE_NOTE_BB_P): New macro.
3128 (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
3129 attach_life_info, debug_spec_status, check_reg_live): New functions.
3130 (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
3131 all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
3133 (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
3134 * ddg.c (get_block_head_tail): Adjust all uses.
3135 * modulo-sched.c (get_block_head_tail): Adjust all uses.
3136 (sms_sched_info): Initialize new fields.
3137 (contributes_to_priority): Removed.
3138 * haifa-sched.c (params.h): New include.
3139 (get_block_head_tail): Adjust all uses.
3140 (ISSUE_POINTS): New macro.
3141 (glat_start, glat_end): New global variables.
3142 (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
3143 nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
3144 old_last_basic_block, before_recovery, current_sched_info_var,
3145 rgn_n_insns, luid): New static variables.
3146 (insn_cost1): New function. Move logic from insn_cost to here.
3147 (find_insn_reg_weight1): New function. Move logic from
3148 find_insn_reg_weight to here.
3149 (reemit_notes, move_insn, max_issue): Change signature.
3150 (move_insn1): Removed.
3151 (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
3152 extend_bb): New static functions to support extension of scheduler's
3154 (generate_recovery_code, process_insn_depend_be_in_spec,
3155 begin_speculative_block, add_to_speculative_block,
3156 init_before_recovery, create_recovery_block, create_check_block_twin,
3157 fix_recovery_deps): New static functions to support
3158 generation of recovery code.
3159 (fix_jump_move, find_fallthru_edge, dump_new_block_header,
3160 restore_bb_notes, move_block_after_check, move_succs): New static
3161 functions to support ebb scheduling.
3162 (init_glat, init_glat1, attach_life_info1, free_glat): New static
3163 functions to support handling of register live information.
3164 (associate_line_notes_with_blocks, change_pattern, speculate_insn,
3165 sched_remove_insn, clear_priorities, calc_priorities, bb_note,
3166 add_jump_dependencies): New static functions.
3167 (check_cfg, has_edge_p, check_sched_flags): New static functions for
3168 consistancy checking.
3169 (debug_spec_status): New function to call from debugger.
3170 (priority): Added code to handle speculation checks.
3171 (rank_for_schedule): Added code to distinguish speculative instructions.
3172 (schedule_insn): Added code to handle speculation checks.
3173 (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
3174 Fixed to handle ebbs.
3175 (move_insn): Added code to handle ebb scheduling.
3176 (max_issue): Added code to use ISSUE_POINTS of instructions.
3177 (choose_ready): Added code to choose between speculative and
3178 non-speculative instructions.
3179 (schedule_block): Added code to handle ebb scheduling and scheduling of
3180 speculative instructions.
3181 (sched_init): Initialize new variables.
3182 (sched_finish): Free new variables. Print statistics.
3183 (try_ready): Added code to handle speculative instructions.
3184 * lists.c (copy_DEPS_LIST_list): New function.
3185 * sched-deps.c (extend_dependency_caches): New function. Move logic
3186 from create_dependency_caches to here.
3187 (get_dep_weak, ds_merge): Make global.
3188 * genattr.c (main): Code to output prototype for
3189 dfa_clear_single_insn_cache.
3190 * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
3191 (output_dfa_clean_insn_cache_func): Code to output
3192 dfa_clear_single_insn_cache function.
3193 * sched-ebb.c (target_n_insns): Remove. Adjust all users to use
3195 (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
3197 (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
3198 New static variables.
3199 (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
3200 fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
3202 (ebb_sched_info): Initialize new fields.
3203 (get_block_head_tail): Adjust all uses.
3204 (compute_jump_reg_dependencies): Fixed to use glat_start.
3205 (schedule_ebb): Code to remove unreachable last block.
3206 (schedule_ebbs): Added code to update register live information.
3207 * sched-rgn.c (region_sched_info): Initialize new fields.
3208 (get_block_head_tail): Adjust all uses.
3209 (last_was_jump): Removed. Adjust users.
3210 (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
3211 add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
3212 Implement new hooks.
3213 (check_dead_notes1): New static function.
3214 (struct region): New fields: dont_calc_deps, has_real_ebb.
3215 (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
3216 (BB_TO_BLOCK): Fixed to handle EBBs.
3217 (EBB_FIRST_BB, EBB_LAST_BB): New macros.
3218 (ebb_head): New static variable.
3219 (debug_regions, contributes_to_priority): Fixed to handle EBBs.
3220 (find_single_block_regions, find_rgns, find_more_rgns): Initialize
3222 (compute_dom_prob_ps): New assertion.
3223 (check_live_1, update_live_1): Fixed to work with glat_start instead of
3224 global_live_at_start.
3225 (init_ready_list): New assertions.
3226 (can_schedule_ready_p): Split update code to begin_schedule_ready.
3227 (new_ready): Add support for BEGIN_CONTROL speculation.
3228 (schedule_insns): Fixed code that updates register live information
3230 (schedule_region): Fixed to handle EBBs.
3231 (init_regions): Use extend_regions and check_dead_notes1.
3232 * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
3233 PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
3234 * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
3235 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
3236 TARGET_SCHED_GEN_CHECK,
3237 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3238 TARGET_SCHED_SET_SCHED_FLAGS): Document.
3239 * doc/invoke.texi (max-sched-insn-conflict-delay,
3240 sched-spec-prob-cutoff): Document.
3242 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3244 * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
3245 inter_tick, queue_index.
3246 (struct sched_info): Change signature of init_ready_list field.
3247 Adjust all initializations.
3248 (RESOLVED_DEPS): New access macro.
3249 (ready_add): Remove prototype.
3250 (try_ready): Add prototype.
3251 * sched-rgn.c (init_ready_list): Use try_ready.
3252 (schedule_region): Initialize
3253 current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
3254 * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info.
3255 (init_ready_list): Use try_ready.
3256 (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
3257 * lists.c (remove_list_elem): Remove `static'.
3258 (remove_free_INSN_LIST_elem): New function.
3259 * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
3260 * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
3261 (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
3263 (readyp): New variable.
3264 (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
3265 change_queue_index, resolve_dep): New static functions.
3266 (try_ready): New function. Adjust callers in sched-rgn.c and
3267 sched-ebb.c to use it instead of ready_add.
3268 (clock_var): Move at the begining of file.
3269 (rank_for_schedule): Fix typo.
3270 (queue_insn): Add assertion. Handle QUEUE_INDEX.
3271 (ready_lastpos): Enforce assertion.
3272 (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument,
3274 (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
3275 (schedule_insn): Rewrite to use try_ready and resolve_dep.
3276 (queue_to_ready): Use free_INSN_LIST_list.
3277 (early_queue_to_ready): Fix typo.
3278 (schedule_block): Init readyp. Move init_ready_list call after the
3279 initialization of clock_var. Fix error in rejecting insn by
3280 targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code
3281 that previously corrected INSN_TICKs. Add code for handling
3283 (set_priorities): Fix typo.
3284 (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
3285 Clarify comment and code that keeps current_sched_info->next_tail
3288 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3290 * sched-rgn.c (extend_rgns): New static function.
3291 (find_rgns): Use it.
3292 (gather_region_statistics, print_region_statistics): New static
3294 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
3295 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
3297 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3298 Andrey Belevantsev <abel@ispras.ru>
3300 * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
3301 * lists.c (unused_deps_list): New variable.
3302 (free_list): Add assertions to verify the proper distinguishing
3303 between INSN_LISTs and DEPS_LISTs.
3304 (find_list_elem, remove_list_elem, remove_list_node): New static
3306 (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
3307 remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
3308 remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
3309 (alloc_INSN_LIST): Assert that the list we're working on is indeed
3311 (free_INSN_LIST_node): Likewise.
3312 * modulo-sched.c (current_sched_info): Initialize flags field.
3313 * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
3314 * rtl.def (DEPS_LIST): Define.
3315 * rtl.h: Declare new functions from lists.c.
3316 * sched-deps.c (spec_dependency_cache): New static variable.
3317 (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
3318 (add_dependence): Change return type to void. Move the logic to ...
3319 (add_or_update_back_dep_1): ... here. Handle speculative dependencies.
3320 (delete_all_dependences): Add comment about forward_dependency_cache.
3321 Handle spec_dependency_cache. Handle DEPS_LISTs.
3322 (fixup_sched_groups): Clarify the change of priority of output
3323 and anti dependencies.
3324 (sched_analyze_2): Adjust add_dependence calls to create data
3325 speculative dependence.
3326 (add_forward_dependence): Renamed to add_forw_dep, change prototype.
3327 Adjust all callers. Handle DEPS_LISTS.
3328 (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in
3329 presence of speculation.
3330 (init_dependency_caches, free_dependency_caches):
3331 Handle spec_dependency_cache.
3332 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
3333 estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
3334 New static functions.
3335 (add_or_update_back_dep, add_or_update_back_forw_dep,
3336 add_back_forw_dep, delete_back_forw_dep): New functions.
3337 * sched-int.h (ds_t, dw_t): New typedefs.
3338 (struct sched_info): Add new field flags.
3339 (struct haifa_insn_data): Add new bitfield has_internal_dep.
3340 Prototype new sched-deps.c functions.
3341 (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
3342 (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
3343 MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
3344 BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
3345 SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
3346 SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
3348 (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
3350 * sched-rgn.c (current_sched_info): Initialize flags field.
3351 (schedule_insns): Initialize current_sched_info before the sched_init
3353 * sched-ebb.c (current_sched_info): Initialize flags field.
3354 (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
3355 Call add_or_update_back_dep instead of add_dependence.
3356 Create control speculative dependencies.
3357 (schedule_insns): Initialize current_sched_info before the sched_init
3360 2006-03-16 Kaz Kojima <kkojima@gcc.gnu.org>
3362 * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
3364 (sh_fallback_frame_state): Likewise.
3366 2006-03-15 Geoffrey Keating <geoffk@apple.com>
3368 * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
3369 Do switch on default_use_cxa_atexit.
3370 (powerpc*-*-darwin*): Build crt2.o on powerpc.
3371 * config/darwin-crt3.o: New.
3372 * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
3373 to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use.
3374 (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
3376 * config/rs6000/t-darwin: Move crt2.o building to here.
3377 * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
3378 Mac OS version for using __cxa_get_exception_ptr. Don't test versions
3381 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3383 * config/vax/vax.c (nonindexed_address_p): Change logical negation
3384 from '! xxx' to '!xxx' for coding-style conformance.
3385 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
3386 (EXTRA_CONSTRAINT): Likewise.
3387 * config/vax/vax.md (four unnamed insns): Likewise.
3389 2006-03-15 Paul Brook <paul@codesourcery.com>
3391 * config/arm/arm.c (minipool_pad): New.
3392 (add_minipool_forward_ref): Include pool alignment padding in address
3394 (push_minipool_fix): Set minipool_pad.
3395 (minipool_pad): Ditto.
3397 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3399 * config/vax/vax.c (split_quadword_operands): Use MEM_P()
3400 instead of GET_CODE() == MEM and REG_P() instead of
3402 (print_operand_address): Likewise.
3403 (vax_address_cost): Likewise.
3404 (vax_rtx_costs): Likewise.
3405 (vax_notice_update_cc): Likewise.
3406 (vax_output_int_add): Likewise.
3407 (INDEX_REGISTER_P): Likewise.
3408 (BASE_REGISTER_P): Likewise.
3409 (nonindexed_address_p): Likewise.
3410 (vax_mode_dependent_address_p): Likewise.
3411 * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
3412 (PRINT_OPERAND): Likewise.
3413 * config/vax/vax.md (ashlsi3): Likewise.
3414 (ashlsi3): Likewise.
3415 (some more unnamed insns): Likewise.
3417 2006-03-15 Kazu Hirata <kazu@codesourcery.com>
3419 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
3420 iterator-style macro.
3421 (mark_control_dependent_edges_necessary): Update the use of
3422 EXECUTE_IF_CONTROL_DEPENDENT.
3424 2006-03-15 J"orn Rennecke <joern.rennecke@st.com>
3426 * config/sh/predicates.md