1 2006-11-13 Jakub Jelinek <jakub@redhat.com>
3 * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
7 2006-11-13 Richard Guenther <rguenther@suse.de>
9 * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
11 (ix86_expand_lfloorceil): Likewise.
12 (ix86_expand_rint): Likewise.
13 (ix86_expand_floorceildf_32): Likewise.
14 (ix86_expand_floorceil): Likewise.
15 (ix86_expand_rounddf_32): Likewise.
16 (ix86_expand_truncdf_32): Likewise.
17 (ix86_expand_round): Likewise.
19 2006-11-13 Carlos O'Donell <carlos@codesourcery.com>
20 Mark Mitchell <mark@codesourcery.com>
22 * gcc.c: Organize search path variables into $prefix relative,
23 and well-known native. Add comments.
24 (add_sysrooted_prefix): Add comment.
25 (process_command): If !gcc_exec_prefix add $prefix based paths.
26 If *cross_compile == '0', add native well-known paths.
27 Assert tooldir_base_prefix is always relative.
28 (main): If print_search_dirs, and if gcc_exec_prefix is set,
29 use this value for 'install:' path.
30 * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.
32 2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
34 * config/i386/i386.c: Fix a typo in comment.
36 2006-11-13 Michael Matz <matz@suse.de>
38 * genemit.c (gen_expand): Allocate enough memory.
40 2006-11-13 Joseph Myers <joseph@codesourcery.com>
42 * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
43 __GXX_TYPEINFO_EQUALITY_INLINE but not
44 __GXX_MERGED_TYPEINFO_NAMES.
45 * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
46 __GXX_MERGED_TYPEINFO_NAMES.
47 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
48 __GXX_TYPEINFO_EQUALITY_INLINE.
50 2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
51 Zdenek Dvorak <dvorakz@suse.cz>
53 PR tree-optimization/29680
54 * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
57 2006-11-12 Jason Merrill <jason@redhat.com>
58 Andrew Pinski <pinskia@physics.uc.edu>
61 * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
63 * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
65 * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
66 * tree.c (build_vector): Handle non-_CST elements.
68 2006-11-12 Kaz Kojima <kkojima@gcc.gnu.org>
70 * genemit.c (gen_insn): Call gen_exp with a non-null used
71 when handling multiple insns.
72 (gen_expand): Likewise.
73 * reorg.c (emit_delay_sequence): Copy the delay slot insn.
74 * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
75 (movsi_const_16bit+1): Copy operands[1].
76 (call_pcrel): Copy the call_site pattern.
77 (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
79 2006-11-12 Roger Sayle <roger@eyesopen.com>
81 * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
82 condition for transformations. Use !HONOR_SIGN_DEPENDENT_ROUNDING
83 && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
84 (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
86 2006-11-12 Daniel Berlin <dberlin@dberlin.org>
88 Fix PR tree-optimization/29587
89 * tree-ssa-structalias.c (process_constraint): Don't
90 mark address taken due only to escaped vars constraint.
92 2006-11-12 Michael Matz <matz@suse.de>
93 Roger Sayle <roger@eyesopen.com>
95 PR rtl-optimization/29797
96 * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
97 BITS_BIG_ENDIAN targets.
99 2006-11-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
101 * builtins.c (fold_builtin_cosh): New.
102 (fold_builtin_1): Use it.
103 * fold-const.c (negate_mathfn_p): Add llround, lround, round,
104 trunc to the list of "odd" functions. Also add llrint, lrint,
105 rint and nearbyint when flag_rounding_math is false.
107 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
109 * tree-flow.h (name_mappings_registered_p): Declare.
110 * tree-into-ssa.c (name_mappings_registered_p): New function.
111 * tree-cfg.c (tree_can_merge_blocks_p): Check
112 name_mappings_registered_p instead of need_ssa_update_p.
114 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
116 * tree-ssa-loop.c (tree_vectorize): Return the result of
118 * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
120 * tree-vectorizer.h (vectorize_loops): Declaration removed.
121 * tree-flow.h (vectorize_loops): Declaration changed.
123 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
125 * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
127 (issue_prefetch_ref): Move assignment to write_p out of loop.
128 (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
129 SIMULTANEOUS_PREFETCHES into account.
130 (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
131 * lambda-code.c (lcm): Renamed to ...
132 (least_common_multiple): ... and exported.
133 * tree-flow.h (least_common_multiple): Declare.
135 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
137 * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
138 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Follow
139 ud-chains. Handle AND_EXPR.
140 (record_estimate): Record whether the estimate is realistic
141 and whether it is derived from a loop exit.
142 (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
143 infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
145 (compute_estimated_nb_iterations): Take only realistic bounds into
146 account. Set estimate_state. Use double_ints.
147 (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
148 and infer_loop_bounds_from_signedness. Do not consider basic blocks
149 that do not have to be always executed.
150 (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
151 to determine whether to call infer_loop_bounds_from_undefined
152 and compute_estimated_nb_iterations.
153 (n_of_executions_at_most): Use double_ints.
154 (free_numbers_of_iterations_estimates_loop): Set estimate_state.
155 (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
156 * double-int.c (double_int_to_tree): Improve comment.
157 (double_int_fits_to_tree_p): New function.
158 * double-int.h (double_int_fits_to_tree_p): Declare.
159 * tree-data-ref.c: Include langhooks.h.
160 (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
161 (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
162 (analyze_array): Do not pass estimate_only argument to
163 analyze_array_indexes.
164 (get_number_of_iters_for_loop): Build tree from the stored double_int
166 (get_references_in_stmt, find_data_references_in_stmt): New functions.
167 (find_data_references_in_loop): Use find_data_references_in_stmt.
168 * tree-data-ref.h (struct data_ref_loc_d): New.
169 (get_references_in_stmt): Declare.
170 (estimate_iters_using_array): Declaration removed.
171 * cfgloop.h (struct nb_iter_bound): Change type of bound to
172 double_int. Improve comments. Add is_exit and realistic
174 (struct loop): Changed type of estimated_nb_iterations to double_int.
175 Added estimate_state field.
176 (record_estimate): Declaration removed.
178 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
180 * params.c (set_param_value): Initialize the "set" field.
181 * params.h (struct param_info): Add "set" field.
182 (PARAM_SET_P): New macro.
183 (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
184 L1_CACHE_LINE_SIZE): New macros.
185 * toplev.c (DEFPARAM): Initialize the "set" field.
186 * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
187 SIMULTANEOUS_PREFETCHES): Removed.
188 (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
189 (tree_ssa_prefetch_arrays): Dump the values of the parameters.
190 * config/sparc/sparc.c: Include params.h.
191 (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
192 L1_CACHE_LINE_SIZE parameters.
193 * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
195 * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
197 * config/i386/i386.c: Include params.h.
198 (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
199 (override_options): Set SIMULTANEOUS_PREFETCHES and
200 L1_CACHE_LINE_SIZE parameters.
201 * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
202 (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
203 L1_CACHE_LINE_SIZE parameters.
204 * config/ia64/ia64.c (ia64_optimization_options): Set
205 SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
206 * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
208 * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
209 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
210 * doc/invoke.texi: Document new params.
212 2006-11-12 Roger Sayle <roger@eyesopen.com>
214 PR tree-optimization/13827
215 * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
218 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
220 * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
221 update_single_exit_for_duplicated_loops): New functions.
222 (duplicate_loop_to_header_edge): Use
223 update_single_exit_for_duplicated_loops.
224 * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
225 functions only with ENABLE_CHECKING.
227 2006-11-12 Andreas Schwab <schwab@suse.de>
229 * except.c (sjlj_emit_function_enter): Remove unused variable.
231 2006-11-11 Roger Sayle <roger@eyesopen.com>
233 * fold-const.c (int_binop_types_match_p): New function.
234 (size_binop): Relax constraint that both arguments must both have
235 exactly the same sizetype type. Instead use int_binop_types_match_p.
236 (size_diffop): Likewise.
238 (make_range): Use build_int_cst instead of fold_convert.
239 (fold_cond_expr_with_comparison): Use build_int_cst to construct
240 integer constants of the correct type.
241 (fold_div_compare): Likewise.
242 (fold_single_bit_test): Likewise.
243 (fold_binary): Likewise.
244 * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
245 has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
247 2006-11-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
250 * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
251 non null value if the struct memory access is in the 0th
254 2006-11-12 Jie Zhang <jie.zhang@analog.com>
257 2006-11-11 Jie Zhang <jie.zhang@analog.com>
258 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
261 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
262 instead of builtin_define for bfin and BFIN.
264 2006-11-11 Jie Zhang <jie.zhang@analog.com>
266 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
269 2006-11-11 Jan Hubicka <jh@suse.cz>
271 * extended.texi (__builtin_expect): We no longer require second argument
273 * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
274 * builtins.c (expand_builtin_expect): Simplify.
275 (expand_builtin_expect_jump): Kill.
276 * final.c (final_scan_insn): Do not skip the removed notes.
277 * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
278 EXPECTED_VALUE): Remove.
279 * dojump.c (do_jump): Do not care about __builtin_expect.
280 * predict.c (expected_value_to_br_prob): Kill.
281 * function.c (expand_function_end): Do not expand
282 NOTE_INSN_REPEATED_LINE_NUMBER.
283 * print-rtl.c (print_rtx): Do not pretty print the removed notes.
284 * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
285 * cfgexpand.c (add_reg_br_prob_note): Export.
286 * cfgcleanup.c (rest_of_handle_jump2): Do not call
287 expected_value_to_br_prob.
288 * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
289 * rtl.h (add_reg_br_prob_note): Declare.
291 2006-11-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
293 * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
295 2006-11-11 Jan Hubicka <jh@suse.cz>
297 * predict.c (predict_loops): Kill RTL variant.
299 2006-11-11 Jan Hubicka <jh@suse.cz>
301 * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
302 * modulo-sched.c (find_line_note): Remove.
303 (loop_canon_p): Do not worry about line number notes.
304 (sms_schedule): Likewise.
305 * cse.c (cse_main): Likewise.
306 * regmove.c (fixup_match_1): Likewise
307 * function.c (emit_return_info_block): Likewise.
308 (expand_function_end): Likewise.
309 (thread_prologue_an_epilogue_insns): Likewise.
310 * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
312 * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
313 emit_note_copy_after): Kill.
314 (emit_note_copy): Do not worry about line numbers.
315 * jump.c (purge_line_number_notes): Kill.
316 (pass_purge_lineno_notes): Kill.
317 * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
319 * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
320 * passes.c (init_optimization_passes): Don't purge_lineno_notes.
321 * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
322 * tree-pass.h (pass_purge_lineno_notes): Kill.
323 * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
324 rm_redundant_line_notes.
325 * sched-rgb.c (schedule_region): Don't rm_line_notes,
326 rm_redundant_line_notes.
327 * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
328 * haifa-sched.c: Update comment about handling notes.
329 (unlink_line_notes): Kill.
330 (rm_line_notes): Kill.
331 (save_line_notes): Simplify.
332 (rm_redundant_line_notes): Kill.
334 2006-11-11 Richard Guenther <rguenther@suse.de>
336 * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
337 Remove unused tree codes.
338 * tree-vrp.c (extract_range_from_unary_expr): Remove handling
339 of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
340 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
341 * tree.c (stabilize_reference): Likewise.
342 * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
343 fold_unary): Likewise.
344 * tree-gimple.c (is_gimple_cast): Likewise.
345 * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
346 * expr.c (expand_expr_real_1): Likewise.
347 * tree-eh.c (tree_could_trap_p): Likewise.
348 * gimplify.c (gimplify_expr): Likewise.
349 * tree-inline.c (estimate_num_insns_1): Likewise.
350 * tree-cfg.c (verify_expr): Likewise.
352 2006-11-11 Zdenek Dvorak <dvorakz@suse.cz>
354 * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
355 * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
356 (tree_ssa_prefetch_arrays): Do not dump for removed loops.
358 2006-11-11 Richard Sandiford <richard@codesourcery.com>
361 * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
362 constraints accept neither registers or memories.
364 2006-11-11 Jie Zhang <jie.zhang@analog.com>
366 * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
367 (NO_PROFILE_COUNTERS): Define as 1.
369 2006-11-10 Roger Sayle <roger@eyesopen.com>
371 * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
372 Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
374 2006-11-10 Peter Bergner <bergner@vnet.ibm.com>
376 * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
378 2006-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
380 * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
381 (fold_builtin_hypot): Likewise.
382 * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
384 * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
386 2006-11-10 Roger Sayle <roger@eyesopen.com>
388 * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
389 when attempting to build INTEGER_CSTs of non-integral types.
390 * expmed.c (make_tree): Use the correct type, i.e. the inner
391 type, when constructing the individual elements of a CONST_VECTOR.
393 2006-11-10 Jan Hubicka <jh@suse.cz>
395 * cse.c (cse_process_notes): Copy the propagated value.
396 * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
398 * gcse.c (try_replace_reg): Copy the replacement.
399 * i386.c (emit_i387_cw_initialization): Copy stored_mode.
400 (assign_386_stack_local): Always return copied memory expression
401 * function.c (instantiate_virtual_regs_in_insn): Copy the operand
404 2006-11-10 Jan Hubicka <jh@suse.cz>
406 * final.c (final): Walk from first instruction.
407 * cfglayout.c (insn_locators_initialize): Remove line number notes.
409 2006-11-10 Uros Bizjak <ubizjak@gmail.com>
412 * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn
414 (umulv8hi3_highpart): Ditto.
415 (vec_widen_smult_hi_v8hi): New expander.
416 (vec_widen_smult_lo_v8hi): Ditto.
418 2006-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
421 * builtins.c (do_mpfr_arg3): New.
422 (fold_builtin_1): Handle builtins fma, fmin and fmax.
424 2006-11-09 Eric Christopher <echristo@apple.com>
429 * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
430 * config.gcc (powerpc64-*-darwin*): New target.
431 * config.host: Ditto.
432 * config/rs6000/darwin64.h: New file.
433 * config/rs6000/x-darwin64: Ditto.
434 * config/rs6000/host-ppc64-darwin.c: Ditto.
436 2006-11-09 Steve Ellcey <sje@cup.hp.com>
438 * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Use HP-UX millicode
439 routines for integer division.
441 2006-11-09 Daniel Jacobowitz <dan@codesourcery.com>
443 * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete.
445 2006-11-09 Serge Belyshev <belyshev@depni.sinp.msu.ru>
448 * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
450 2006-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
452 * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
453 simplify_subreg with BLKmode outer mode.
455 2006-11-08 Brooks Moses <brooks.moses@codesourcery.com>
457 * doc/invoke.texi: Minor formatting fixes in option lists.
459 2006-11-08 Zdenek Dvorak <dvorakz@suse.cz>
461 PR tree-optimization/29738
462 * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments.
463 (ccp_lattice_t): Remove UNKNOWN_VAL.
464 (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node):
465 Do not handle UNKNOWN_VAL.
466 (get_default_value): Set initial value of virtual operands to
468 (get_value): Always use get_default_value on uninitialized
470 (set_value_varying, surely_varying_stmt_p): New functions.
471 (set_lattice_value): Do not pass argument to get_value.
472 Do not handle UNKNOWN_VAL.
473 (likely_value): Follow the semantics described in the comment.
474 (ccp_initialize): Use surely_varying_stmt_p. Do not mark
475 phi nodes DONT_SIMULATE_AGAIN.
476 (ccp_fold): Do not pass argument to get_value.
477 (fold_const_aggregate_ref, visit_assignment): Ditto. Do not
480 2006-11-08 Andrew Pinski <Andrew_Pinski@playstation.sony.com>
482 * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
483 HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer.
485 2006-11-08 Roger Sayle <roger@eyesopen.com>
487 * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a
488 test for inclusion rather than as a test for exclusion.
489 * tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
490 the condition after calling fold_binary.
491 * fold-const.c (fold_inf_compare): Remove in_gimple_form check.
492 (fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
493 * builtins.c (fold_builtin_isascii): Likewise.
494 (fold_builtin_isdigit): Likewise.
496 2006-11-08 Carlos O'Donell <carlos@codesourcery.com>
498 * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE.
499 * configure: Regenerate.
501 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
503 * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take
504 enum argument instead of bool.
505 (vect_analyze_operations): Call vectorizable_type_promotion.
506 * tree-vectorizer.h (type_promotion_vec_info_type): New enum
507 stmt_vec_info_type value.
508 (supportable_widening_operation, vectorizable_type_promotion): New
509 function declarations.
510 * tree-vect-transform.c (vect_gen_widened_results_half): New function.
511 (vectorizable_type_promotion): New function.
512 (vect_transform_stmt): Call vectorizable_type_promotion.
513 * tree-vect-analyze.c (supportable_widening_operation): New function.
514 * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
516 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
519 * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
520 (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes.
521 * tree-inline.c (estimate_num_insns_1): Add cases for above new
523 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
524 * expr.c (expand_expr_real_1): Likewise.
525 * optabs.c (optab_for_tree_code): Likewise.
526 (init_optabs): Initialize new optabs.
527 * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab,
528 vec_widen_smult_hi_optab, vec_widen_smult_lo_optab,
529 vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab,
530 vec_unpacku_lo_optab): Initialize new optabs.
531 * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo):
532 (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi,
533 OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New
535 (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab):
536 (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab):
537 (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab):
538 (vec_unpacku_lo_optab): New optabs.
539 * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi):
540 (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo):
541 (vec_widen_smult_hi, vec_widen_smult_lo): New.
542 * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR):
543 (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR):
544 (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New.
546 * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
547 (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
548 (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New.
549 (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New.
550 (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to
551 implement the unsigned unpacking patterns.
552 (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi):
553 (vec_unpacks_lo_v8hi): New signed unpacking patterns.
554 (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi):
555 (vec_unpacku_lo_v8hi): New unsigned unpacking patterns.
556 (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi):
557 (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi):
558 (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi):
559 (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening
560 multiplication patterns.
562 * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New.
563 * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
564 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
565 * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New.
566 (rs6000_builtin_mul_widen_odd): New.
567 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
568 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
569 * tree-vectorizer.h (enum vect_relevant): New enum type.
570 (_stmt_vec_info): Field relevant chaned from bool to enum
572 (STMT_VINFO_RELEVANT_P): Updated.
573 (STMT_VINFO_RELEVANT): New.
574 * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT
575 instead of STMT_VINFO_RELEVANT_P.
576 * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p):
577 Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT,
578 and boolean variable with enum vect_relevant.
579 (vect_mark_stmts_to_be_vectorized): Likewise + update documentation.
580 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
581 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
583 2006-11-08 Richard Henderson <rth@redhat.com>
585 * config/i386/sse.md (vec_widen_umult_hi_v8hi,
586 vec_widen_umult_lo_v8hi): New.
587 (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si,
588 vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New.
590 * config/i386/i386.c (ix86_expand_sse_unpack): New.
591 * config/i386/i386-protos.h (ix86_expand_sse_unpack): New.
592 * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi,
593 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi,
594 vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi,
595 vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si,
596 vec_unpacks_lo_v4si): New.
598 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
600 * tree-vect-transform.c (vectorizable_type_demotion): New function.
601 (vect_transform_stmt): Add case for type_demotion_vec_info_type.
602 (vect_analyze_operations): Call vectorizable_type_demotion.
603 * tree-vectorizer.h (type_demotion_vec_info_type): New enum
604 stmt_vec_info_type value.
605 (vectorizable_type_demotion): New function declaration.
606 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
609 * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes.
610 * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and
612 * tree-iniline.c (estimate_num_insns_1): Likewise.
613 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
614 * optabs.c (optab_for_tree_code): Likewise.
616 * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode
617 compared against the predicate of the result is not 'mode' (the input
618 to the function) but a mode with half the size of 'mode'.
619 (init_optab): Initialize new optabs.
620 * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat):
622 (vec_pack_mod_optab, vec_pack_ssat_optab, vec_pack_usat_optab): New
624 * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab):
625 (vec_pack_usat_optab): Initialize new optabs.
626 * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New.
627 * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New.
629 2006-11-08 Richard Henderson <rth@redehat.com>
631 * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si):
632 (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi):
633 (vec_interleave_highv8hi, vec_interleave_lowv8hi):
634 (vec_interleave_highv4si, vec_interleave_lowv4si):
635 (vec_interleave_highv2di, vec_interleave_lowv2di): New.
637 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
639 * tree-vect-transform.c (vectorizable_reduction): Support multiple
641 (vect_transform_stmt): Removed redundant code.
643 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
645 * tree-vect-transform.c (vectorizable_operation): Support multiple
648 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
650 * tree-vect-transform.c (vect_align_data_ref): Removed.
651 (vect_create_data_ref_ptr): Added additional argument - ptr_incr.
652 Updated function documentation. Return the increment stmt in ptr_incr.
653 (bump_vector_ptr): New function.
654 (vect_get_vec_def_for_stmt_copy): New function.
655 (vect_finish_stmt_generation): Create a stmt_info to newly created
657 (vect_setup_realignment): Call vect_create_data_ref_ptr with additional
659 (vectorizable_reduction, vectorizable_assignment): Not supported yet if
660 VF is greater than the number of elements that can fit in one vector
662 (vectorizable_operation, vectorizable_condition): Likewise.
663 (vectorizable_store, vectorizable_load): Support the case that the VF
664 is greater than the number of elements that can fit in one vector word.
665 (vect_transform_loop): Don't fail in case of multiple data-types.
666 * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail
667 in case of multiple data-types; the smallest type determines the VF.
668 (vect_analyze_data_ref_dependence): Don't record datarefs as same_align
669 if they are of different sizes.
670 (vect_update_misalignment_for_peel): Compare misalignments in terms of
671 number of elements rather than number of bytes.
672 (vect_enhance_data_refs_alignment): Fix/Add dump printouts.
673 (vect_can_advance_ivs_p): Fix a dump printout
675 2006-11-07 Eric Christopher <echristo@apple.com>
677 * libgcc2.c (__bswapdi2): Rename from bswapDI2.
679 * libgcc2.h: Remove transformation of bswap routines.
680 * config/i386/i386.md (bswapsi2): New.
683 2006-11-07 Jakub Jelinek <jakub@redhat.com>
685 * c-common.c (c_common_attributes): Add gnu_inline attribyte.
686 (handle_gnu_inline_attribute): New function.
687 * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute.
688 (merge_decls, start_decl, start_function): Likewise.
689 * doc/extend.texi: Document gnu_inline attribute.
691 2006-11-07 Steve Ellcey <sje@cup.hp.com>
694 * config/ia64/t-hpux (LIB1ASMFUNCS): Filter out _fixtfdi,
695 _fixunstfdi, and _floatditf
697 2006-11-06 Anatoly Sokolov <aesok@post.ru>
699 * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove
701 * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove.
702 (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out,
703 lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value
704 which start in an odd register.
706 2006-11-07 Richard Sandiford <richard@codesourcery.com>
708 * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo.
710 2006-11-07 Josh Conner <jconner@apple.com>
712 * doc/invoke.texi (fstrict-aliasing): Move implementation
714 * doc/tree-ssa.texi (Alias analysis): ...here.
716 2006-11-07 Richard Guenther <rguenther@suse.de>
718 PR tree-optimization/29610
719 * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
720 of tree_purge_dead_eh_edges as it may free dominators.
722 * g++.dg/other/pr29610.C: New testcase.
724 2006-11-07 David Ung <davidu@mips.com>
726 * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
727 costs when optimizing for size.
728 (override_options): Use mips_rtx_cost_optimize_size table for cost
731 2006-11-07 Jie Zhang <jie.zhang@analog.com>
733 * gcc.c (process_command): Treat -b as normal switch if its argument
736 2006-11-07 David Ung <davidu@mips.com>
738 * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
741 2006-11-06 Eric Christopher <echristo@apple.com>
743 * config.gcc: Add x86_64-darwin host support.
744 * config.host: Ditto.
745 * config/i386/darwin64.h: New file.
746 * config/i386/t-darwin64: Ditto.
748 2006-11-06 Janis Johnson <janis187@us.ibm.com>
750 * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
751 and output-exists-not.
753 2006-11-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
756 * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
757 checking for overflow.
759 2006-11-06 Jan van Dijk <jan@etpmod.phys.tue.nl>
761 * configure.ac: Fixed typo in case statement: :: changed to ;;
763 2006-11-06 Bob Wilson <bob.wilson@acm.org>
765 * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
766 count_leading_zeros, and count_trailing_zeros.
767 * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
768 (TARGET_FOLD_BUILTIN): Define.
769 (TARGET_EXPAND_BUILTIN): Define.
770 (xtensa_init_builtins): New.
771 (xtensa_fold_builtin): New.
772 (xtensa_expand_builtin): New.
773 (xtensa_rtx_costs): Add CTZ and CLZ. Adjust costs for MULT.
774 * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
775 (CLZ_DEFINED_VALUE_AT_ZERO): Define.
776 (CTZ_DEFINED_VALUE_AT_ZERO): Define.
777 * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
778 (any_extend): New code macro.
779 (u, su): New code attributes.
780 (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
781 (nsau): Remove; replaced by clzsi2.
782 (ffssi2): Use clzsi2.
783 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
784 _clzsi2, _ctzsi2, and _ffssi2. Rename _nsau to _clz.
785 * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
786 (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
787 (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
789 2006-11-06 Vladimir Prus <vladimir@codesourcery.com>
791 * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
793 * config/arm/t-strongarm-elf: Likewise.
794 * config/arm/t-pe: Likewise.
795 * config/arm/t-arm-elf: Likewise.
796 * config/arm/t-xscale-elf: Likewise.
797 * config/arm/t-arm-coff: Likewise.
798 * config/arm/t-xscale-coff: Likewise.
799 * config/arm/t-wince-pe: Likewise.
801 2006-11-05 Kaz Kojima <kkojima@gcc.gnu.org>
803 * config/sh/lib1funcs-4-300.asm: Guard entire file with
806 2006-11-05 Jakub Jelinek <jakub@redhat.com>
809 * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
812 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
815 * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
816 as a valid 80387 constant.
817 (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
818 * config/i386/i386.md (unnamed splitter): Split the load of
819 constant -0.0 or -1.0 into the load of 0.0 or 1.0, followed
822 2006-11-04 Richard Earnshaw <rearnsha@arm.com>
824 * arm.c (thumb_legitimate_addres_p): Allow any constant offset
825 from the soft-frame, argument and virtual registers.
827 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
829 * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
830 patterns for standard 80387 constants.
832 2006-11-03 Paolo Bonzini <bonzini@gnu.org>
833 Steven Bosscher <steven@gcc.gnu.org>
835 * fwprop.c: New file.
836 * Makefile.in: Add fwprop.o.
837 * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
838 * passes.c (init_optimization_passes): Schedule forward propagation.
839 * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
841 * timevar.def (TV_FWPROP): New.
842 * common.opt (-fforward-propagate): New.
843 * opts.c (decode_options): Enable forward propagation at -O2.
844 * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
845 * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
846 canon_for_address, table_size): Remove.
847 (new_basic_block, insert, remove_from_table): Remove references to
849 (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
850 simplification loop more straightforward by not calling fold_rtx
852 (equiv_constant): Move here a small part of fold_rtx_subreg,
853 do not call fold_rtx. Call avoid_constant_pool_reference
855 * recog.h (canonicalize_change_group): New.
857 * doc/invoke.texi (Optimization Options): Document fwprop.
858 * doc/passes.texi (RTL passes): Document fwprop.
860 2006-11-03 Geoffrey Keating <geoffk@apple.com>
862 * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
863 (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
864 (grokdeclarator): Likewise.
866 2006-11-03 Steven Bosscher <steven@gcc.gnu.org>
868 * tree-dump.c (dump_enable_all): Rename local variable
869 ir_type to avoid name conflicts.
870 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
871 instead of using ir_type().
872 * profile.c (tree_register_profile_hooks): Likewise.
873 * value-prof.c (tree_register_value_prof_hooks): Likewise.
874 * basic-block.h (struct edge_def): Likewise.
875 * config/arm/arm.c (legitimize_pic_address): Likewise.
876 * coretypes.h (ir_type): New enum of all intermediate languages
878 * cfghooks.c (ir_type): Rename to...
879 (current_ir_type): ...this. Distinguish between cfgrtl and
880 cfglayout mode when the current IR is RTL. Return enum ir_type.
881 * cfghooks.h (ir_type): Replace with current_ir_type prototype.
883 2006-11-03 Paul Brook <paul@codesourcery.com>
885 * config/arm/arm.c (arm_file_start): New function.
886 (TARGET_ASM_FILE_START): Define.
887 (arm_default_cpu): New variable.
888 (arm_override_options): Set arm_default_cpu.
890 2006-11-03 David Ung <davidu@mips.com>
892 * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
893 PROCESSOR_24KC and PROCESSOR_24KF.
894 * config/mips/mips.c (mips_cpu_info_table): Add processor names
895 and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
896 (mips_rtx_cost_data): Add costs for the 24kc.
897 * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
898 * config/mips/24k.md: Remove references to 24k and replace with
899 uses of 24kc/24kf in the appropriate reservations.
900 * doc/invoke.texi (MIPS Options): Updated.
902 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
904 * config/sh/crt1.asm: Fix #ifdef indent.
906 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
907 Merged from STMicroelectronics sources:
908 2006-10-06 Andrew Stubbs <andrew.stubbs@st.com>
909 * config/sh/crt1.asm (vbr_600): Add missing #if.
910 2006-08-03 J"orn Rennecke <joern.rennecke@st.com>
911 * sh.opt (mfused-madd): New option.
912 * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
913 2006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
914 * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
915 Remove pointless handler at VBR+0.
916 (vbr_200, vbr_300, vbr_500): Remove pointless handler.
917 (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
918 fr7. Make sure the timer handler is called with the correct FPU
919 precision setting, according to the ABI.
920 2006-06-14 J"orn Rennecke <joern.rennecke@st.com>
921 * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
922 * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
923 (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
924 2006-06-09 J"orn Rennecke <joern.rennecke@st.com>
925 * sh.md (cmpgeusi_t): Change into define_insn_and_split. Accept
926 zero as second operand.
927 2006-04-28 J"orn Rennecke <joern.rennecke@st.com>
928 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
929 Fixed some bugs related to negative values, in particular -0
930 and overflow at -0x80000000.
931 * config/sh/divcost-analysis: Added sh4-300 figures.
932 2006-04-27 J"orn Rennecke <joern.rennecke@st.com>
933 * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
934 2006-04-26 J"orn Rennecke <joern.rennecke@st.com>
935 * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
936 ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
937 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
939 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
941 2006-04-24 J"orn Rennecke <joern.rennecke@st.com>
942 SH4-300 scheduling description & fixes to SH4-[12]00 description:
943 * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
944 mac_mem, mem_mac, dfp_mul, fp_cmp.
945 (insn_class, dfp_comp, any_fp_comp): Update.
946 (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
947 (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
948 (muldf3_i): Likewise.
949 (movsi_i): Split rI08 alternative into two separate alternatives.
951 (movsi_ie, movsi_i_lowpart): Likewise.
952 (movqi_i): Split ri alternative into two separate alternatives.
954 * sh1.md (sh1_load_store, sh1_fp): Update.
955 * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
956 (mac_mem, sh4_fpscr_toggle): New insn_reservations.
957 * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
958 (sh4a_fp_double_arith): Likewise.
959 * sh4-300.md: New file.
960 * sh.c (sh_handle_option): Handle m4-300* options.
961 (sh_adjust_cost): Fix latency of auto-increments.
962 Handle SH4-300 differently than other SH4s. Check for new insn types.
963 * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
964 been set by an option.
965 * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
966 (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
967 (mbranch-cost=): Likewise.
968 * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
970 * sh.md (mulsf3): Remove special expansion code.
971 (mulsf3_ie): Now a define_insn_and_split.
972 (macsf3): Allow for TARGET_SH4.
974 * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
975 * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
976 (expand_cbranchdi4): Likewise.
977 (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
978 CONST_DOUBLE if the outer code is COMPARE.
979 * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
980 TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
981 (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
982 (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
983 Remove redundant fp_{zero,one}_operand checks.
984 * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
985 * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
986 (expand_cbranchdi4): Likewise.
987 2006-04-20 J"orn Rennecke <joern.rennecke@st.com>
988 * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
990 2006-11-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
992 * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
995 2006-11-02 Brooks Moses <brooks.moses@codesourcery.com>
997 * doc/invoke.texi: Fix mfp-trap-mode typo.
999 2006-11-02 Carlos O'Donell <carlos@codesourcery.com>
1001 * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
1002 * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
1003 file_end_indicate_exec_stack.
1004 * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
1006 * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
1007 for a non-executable stack.
1008 * crti.asm: Likewise.
1009 * crtn.asm: Likewise.
1010 * libunwind.S: Likewise.
1012 2006-11-02 Ben Elliston <bje@au.ibm.com>
1014 * tree-ssa.c (warn_uninit): Use expand_location variables for
1015 locus and declaration locus.
1017 2006-11-02 Kaz Kojima <kkojima@gcc.gnu.org>
1020 * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
1021 (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
1022 cmp{eq,gt,gtu}{si,di}_media.
1023 (*cmpne0si_media): Remove.
1024 (*movsicc_umin): Adjust gen_cmp*_media call.
1025 (unordered): Change the mode of unordered and operands[1] to
1027 (seq): Adjust gen_cmp*_media calls. Make the mode of
1028 a temporary result of compare SImode if needed. If the mode
1029 of operands[0] is DImode, extend the temporary result to DImode.
1030 (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
1031 (sunorderd): Change the mode of match_operand and unorderd to
1033 (cmpeq{sf,df}_media): Remove.
1034 (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
1035 (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
1036 and compare operation to SImode.
1038 2006-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
1040 * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
1042 (sparc64-sun-solaris2*): Likewise.
1044 2006-11-02 Paul Brook <paul@codesourcery.com>
1046 * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
1047 from priority argument. Use different section for non-default
1049 * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
1051 2006-11-02 Eric Botcazou <ebotcazou@adacore.com>
1054 * except.c (switch_to_exception_section): Do not cache the section
1055 if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
1056 and flag_function_sections is set.
1058 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1061 * builtins.c (do_mpfr_sincos): New.
1062 (fold_builtin_1): Use it to fold builtin sincos.
1064 2006-11-01 Roger Sayle <roger@eyesopen.com>
1066 * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
1067 it into -D_REENTRANT.
1069 2006-11-01 Roger Sayle <roger@eyesopen.com>
1071 * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
1072 whether the assembler supports taking the difference of symbols in
1073 different sections. On x86/Solaris, GAS does but Solaris as doesn't.
1074 * configure: Regenerate.
1075 * config.in: Regenerate.
1076 * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
1077 the assembler doesn't support taking the difference of symbols in
1078 different sections, i.e. we're using the native solaris assembler.
1080 2006-11-01 Pete Steinmetz <steinmtz@us.ibm.com>
1081 Peter Bergner <bergner@vnet.ibm.com>
1083 * doc/invoke.texi: Add cpu_type power6x
1084 (RS/6000 and PowerPC Options): Add -mmfpgpr.
1085 * config.gcc: Add cpu_type power6x.
1086 * configure.ac: Add test for mf{t,f}gpr instructions.
1087 (HAVE_AS_MFPGPR): New.
1088 * config.in: Regenerate.
1089 * configure: Regenerate.
1090 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
1091 * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
1092 shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
1093 and mftgpr attributes.
1094 (define_attr "cpu"): Add power6.
1095 Change instruction sequences to use new attributes.
1096 (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
1097 (fix_truncdfsi2_mfpgpr): New.
1098 (floatsidf_ppc64_mfpgpr): New.
1099 (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
1100 (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
1101 (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
1102 (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
1103 (fix_truncdfsi2): Use gpc_reg_operand constraint.
1104 * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
1105 7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
1106 Add descriptions for insert_dword, shift,trap,var_shift_rotate,
1107 cntlz,exts and var_delayed_compare.
1108 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1109 _ARCH_PWR6X, if features enabled.
1110 * config/rs6000/rs6000.opt (mmfpgpr): New.
1111 * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
1112 (cached_can_issue_more): New variable.
1113 (processor_costs): Add power6_cost.
1114 (rs6000_sched_init): New function.
1115 (is_dispatch_slot_restricted): Deleted.
1116 (set_to_load_agen): New function.
1117 (is_load_insn,is_store_insn): New functions.
1118 (adjacent_mem_locations): New function.
1119 (insn_must_be_first_in_group): New function.
1120 (insn_must_be_last_in_group): New function.
1121 (rs6000_sched_reorder): New function.
1122 (rs6000_sched_reorder2): New function.
1123 (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
1124 TARGET_SCHED_REORDER2): Define.
1125 (processor_target_table): Use PROCESSOR_POWER6 for power6.
1126 Add power6x. Add MASK_MFPGPR for power6x.
1127 (POWERPC_MASKS): Add MASK_MFPGPR.
1128 (rs6000_override_options): Set rs6000_always_hint to false
1129 for power6. Set rs6000_align_branch_targets. Replace
1130 rs6000_sched_groups check with rs6000_align_branch_targets.
1131 Use PROCESSOR_POWER6.
1132 (last_scheduled_insn): New variable.
1133 (load_store_pendulum): New variable.
1134 (rs6000_variable_issue): Set last_scheduled_insn and
1135 cached_can_issue_more.
1136 (rs6000_adjust_cost): Add power6 cost adjustments.
1137 (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
1138 with insn_must_be_first_in_group. Add power6 priority adjustments.
1139 (rs6000_issue_rate): Add CPU_POWER6.
1140 (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
1141 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
1142 (TARGET_MFPGPR): New.
1143 (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
1144 (ASM_CPU_SPEC): Add power6x.
1145 (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
1147 * config/rs6000/power6.md: New file.
1149 2006-11-01 Adam Nemet <anemet@caviumnetworks.com>
1151 * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
1152 HOST_WIDE_INT_PRINT to print high and low parts. Use
1153 HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT. When
1154 printing a hexadecimal number prefix it with 0x.
1156 2006-11-01 Chris Johns <chris@contemporary.net.au>
1159 * Makefile.in (install-driver): Use exeext when installing
1160 $target-gcc-$version.
1162 2006-11-01 Douglas Gregor <doug.gregor@gmail.com>
1164 * c-common.c (flag_cpp0x): New.
1165 * c-common.h (flag_cpp0x): New.
1166 * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
1167 supported, define __GXX_EXPERIMENTAL_CPP0X__.
1168 * c-opts.c (set_std_cxx0x): New.
1169 (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
1170 * c.opt (std=c++0x): Document.
1171 (std=gnu++0x): Ditto.
1172 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
1173 * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
1175 2006-11-01 Richard Guenther <rguenther@suse.de>
1177 * config/i386/i386.c (ix86_expand_rint): Fix issues with
1179 (ix86_expand_floorceildf_32): Likewise.
1180 (ix86_expand_floorceil): Likewise.
1181 (ix86_expand_trunc): Likewise.
1183 2006-10-31 Andrew Pinski <pinskia@gmail.com>
1185 * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
1188 2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
1190 * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
1192 * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
1194 * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
1196 * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
1197 * configure.ac (use_cxa_atexit): As a special case, don't test
1198 for libc definition of __cxa_atexit on mingw32
1199 * configure: Regenerate.
1200 * config.gcc (i[34567]86-pc-mingw32): Default to
1201 enable__cxa_atexit=yes.
1203 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1205 * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
1207 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1210 * c-decl.c (start_struct): Don't create self-containing
1212 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
1214 * config/rs6000/rs6000-protos.h
1215 (darwin_rs6000_special_round_type_align): New.
1216 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
1217 (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
1219 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1221 * toplev.c (compile_file): Call final_write_globals
1222 even if there have been errors.
1224 2006-10-31 Eric Christopher <echristo@apple.com>
1225 Falk Hueffner <falk@debian.org>
1227 * doc/extend.texi (__builtin_bswap32): Document.
1228 (__builtin_bswap64): Ditto.
1229 * doc/libgcc.texi (bswapsi2): Document.
1231 * doc/rtl.texi (bswap): Document.
1232 * optabs.c (expand_unop): Don't widen a bswap.
1233 (init_optabs): Init bswap. Set libfuncs explicitly
1234 for bswapsi2 and bswapdi2.
1235 * optabs.h (OTI_bswap): New.
1236 (bswap_optab): Ditto.
1237 * genopinit.c (optabs): Handle bswap_optab.
1238 * tree.h (tree_index): Add TI_UINT32_TYPE and
1240 (uint32_type_node): New.
1241 (uint64_type_node): Ditto.
1242 * tree.c (build_common_tree_nodes_2): Initialize
1243 uint32_type_node and uint64_type_node.
1244 * builtins.c (expand_builtin_bswap): New.
1245 (expand_builtin): Call.
1246 (fold_builtin_bswap): New.
1247 (fold_builtin_1): Call.
1248 * fold-const.c (tree_expr_nonnegative_p): Return true
1250 * builtin-types.def (BT_UINT32): New.
1252 (BT_FN_UINT32_UINT32): Ditto.
1253 (BT_FN_UINT64_UINT64): Ditto.
1254 * builtins.def (BUILT_IN_BSWAP32): New.
1255 (BUILT_IN_BSWAP64): Ditto.
1256 * rtl.def (BSWAP): New.
1257 * genattrtab.c (check_attr_value): New.
1258 * libgcc2.c (__bswapSI2): New.
1259 (__bswapDI2): Ditto.
1260 * libgcc2.h (__bswapSI2): Declare.
1261 (__bswapDI2): Ditto.
1262 * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
1263 * simplify-rtx.c (simplify_const_unary_operation): Return
1265 * libgcc-std.ver (__bwapsi2): Add.
1266 (__bswapdi2): Ditto.
1267 * reload1.c (eliminate_regs_1): Add bswap.
1268 (elimination_effects): Ditto.
1269 * config/i386/i386.h (x86_bswap): New.
1270 (TARGET_BSWAP): Use.
1271 * config/i386/i386.c (x86_bswap): Set.
1273 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1275 * coverage.c (coverage_checksum_string): Update comment.
1276 * dwarf2out.c (switch_to_eh_frame_section): Update for removal
1277 of get_file_function_name.
1278 * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
1279 of get_file_function_name_long.
1280 * tree.c (get_file_function_name): Rename from
1281 get_file_function_name_long; improve comment; handle 'I' and 'D'
1282 specially when the target has ctor/dtor support; remove special
1284 (get_file_function_name): Remove.
1285 * tree.h (get_file_function_name): Rename from
1286 get_file_function_name_long.
1287 (get_file_function_name): Remove prototype.
1289 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1291 * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
1292 * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
1294 * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
1295 Call dsymutil when compiling and linking one or more source files
1298 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1301 * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
1303 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1305 * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
1306 inline static functions in c99 mode.
1309 * doc/extend.texi (Inline): Update.
1310 * c-tree.h (struct language_function): Remove field 'extern_inline'.
1311 * c-decl.c (current_extern_inline): Delete.
1312 (pop_scope): Adjust test for an undefined nested function.
1313 Add warning about undeclared inline function.
1314 (diagnose_mismatched_decls): Update comments. Disallow overriding
1315 of inline functions in a translation unit in C99. Allow inline
1316 declarations in C99 at any time.
1317 (merge_decls): Boolize variables. Handle C99 'extern inline'
1319 (grokdeclarator): Set DECL_EXTERNAL here for functions. Handle
1320 C99 inline semantics.
1321 (start_function): Don't clear current_extern_inline. Don't set
1323 (c_push_function_context): Don't push current_extern_inline.
1324 (c_pop_function_context): Don't restore current_extern_inline.
1327 * c-typeck.c (build_external_ref): Warn about static variables
1328 used in extern inline functions.
1329 * c-decl.c (start_decl): Warn about static variables declared
1330 in extern inline functions.
1332 2006-10-31 Roger Sayle <roger@eyesopen.com>
1335 * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
1336 * fold-const.c (tree_expr_nonnegative_p): Likewise. Consider
1337 pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
1338 or y is an even integer.
1340 2006-10-31 Eric Botcazou <ebotcazou@libertysurf.fr>
1343 * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
1344 * gthr-posix95.h (__gthread_active_p): Likewise.
1346 2006-10-31 Richard Guenther <rguenther@suse.de>
1348 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
1349 acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
1350 expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
1351 exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
1352 ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
1353 lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
1354 lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
1355 btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
1358 2006-10-31 Steven Bosscher <steven@gcc.gnu.org>
1360 * opts.c (decode_options): Disable CSE skip blocks.
1362 2006-10-30 Dirk Mueller <dmueller@suse.de>
1364 * c-common.h (strict_aliasing_warning): Fix whitespace.
1365 * c-decl (start_function): Move code for main decl warning ..
1366 * c-common.c (check_main_parameter_types): .. here.
1367 * c-common.h (check_main_parameter_types): Declare.
1369 2006-10-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1372 * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
1374 2006-10-30 Pete Steinmetz <steinmtz@us.ibm.com>
1376 * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
1377 be a PARALLEL containing sets. Return false when out_pat is not
1380 2006-10-30 Richard Sandiford <richard@codesourcery.com>
1382 * config/mips/mips.md (mul<mode>3): Split into...
1383 (mulsi3, muldi3): ...these separate patterns.
1385 2006-10-30 Richard Sandiford <richard@codesourcery.com>
1387 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
1388 but with each set of options separated by spaces.
1390 2006-10-30 J"orn Rennecke <joern.rennecke@st.com>
1392 * unwind-dw2.c (uw_init_context_1): Fix test that checks if
1393 dwarf_reg_size_table has been initialized.
1395 2006-10-30 Roger Sayle <roger@eyesopen.com>
1397 * builtins.c (expand_builtin_mathfn_3): Correct coding style.
1398 * ddg.c (print_ddg_edge): Likewise.
1399 * dwarf2out.c (prune_unused_types_walk): Likewise.
1400 * ifcvt.c (noce_try_cmove_arith): Likewise.
1401 * langhooks.c (add_builtin_function): Likewise.
1402 * reg-stack.c (subst_stack_regs_pat): Likewise.
1403 * tree.c (expanded_location): Likewise.
1404 * tree-dump.c (dequeue_and_dump): Likewise.
1406 2006-10-30 David Daney <ddaney@avtrex.com>
1408 * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
1410 2006-10-30 Jakub Jelinek <jakub@redhat.com>
1412 PR tree-optimization/29637
1413 * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
1414 of the innertype is the innertype itself.
1416 2006-10-30 Danny Smith <dannysmith@users.sourceforge.net>
1418 * dwarf2out.c (file_name_acquire): Correct typo.
1420 2006-10-29 Daniel Berlin <dberlin@dberlin.org>
1422 * tree.h (tree_value_handle): Remove struct value_set declaration.
1423 Change value_set to bitmap_set.
1424 * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
1425 * tree-vn.c (get_value_handle): Made inline and moved to
1427 * tree-flow-inline.h: (has_stmt_ann): New function.
1428 * tree-ssa-pre.c (expressions): New variable.
1429 (next_expression_id): Ditto.
1430 (alloc_expression_id): New function.
1431 (struct value_set): Remove.
1432 (get_expression_id): New function.
1433 (get_or_alloc_expression_id): Ditto.
1434 (expression_for_id): Ditto.
1435 (clear_expression_ids): Ditto.
1436 (FOR_EACH_EXPR_ID_IN_SET): New macro.
1437 (bb_value_sets): Renamed to bb_bitmap_sets.
1438 All value sets replaced with bitmap_sets.
1440 (BB_VISITED): New macro.
1441 (postorder): New variable.
1442 (add_to_value): Removed.
1443 (value_exists_in_set_bitmap): Ditto.
1444 (value_insert_into_set_bitmap): Ditto.
1447 (set_remove): Ditto.
1448 (set_contains_value): Ditto.
1449 (insert_into_set): Ditto.
1451 (find_leader): Ditto.
1452 (bitmap_set_subtract_from_value_set): Ditto.
1453 (value_insert_into_set): Ditto.
1454 (print_value_set): Ditto.
1455 (debug_value_set): Ditto.
1456 (constant_expr_p): New function.
1457 (bitmap_remove_from_set): Ditto.
1458 (bitmap_insert_into_set): Ditto.
1459 (bitmap_set_free): Ditto.
1460 (vh_compare): Ditto.
1461 (sorted_array_from_bitmap_set): Ditto.
1462 (bitmap_set_subtract): Ditto.
1463 (bitmap_set_equal): Ditto.
1464 (debug_bitmap_set): Ditto.
1465 (find_leader_in_sets): Ditto.
1466 (bitmap_set_replace_value): Modify for bitmapped sets.
1467 (phi_translate): Ditto.
1468 (phi_translate_set): Ditto.
1469 (bitmap_find_leader): Ditto.
1470 (valid_in_sets): Ditto.
1471 (union_contains_value): Ditto.
1473 (compute_antic_aux): Ditto. Mark changed blocks.
1474 (compute_antic): Ditto. Iterate in postorder and only over
1476 (compute_rvuse_and_antic_safe): Reuse postorder.
1477 (create_component_ref_by_pieces): Modify for bitmapped sets.
1478 (find_or_generate_expression): Ditto.
1479 (create_expression_by_pieces): Ditto.
1480 (insert_into_preds_of_block): Ditto.
1481 (changed_blocks): New variable.
1482 (do_regular_insertion): Broken out from insert_aux.
1483 (insert_aux): Modified for bitmapped sets.
1484 (find_existing_value_expr): New function.
1485 (create_value_expr_from): Use it.
1486 (insert_extra_phis): Removed.
1487 (print_bitmap_set): Renamed from bitmap_print_value_set.
1488 (compute_avail): Handle RETURN_EXPR.
1489 (init_pre): Modify for bitmapped sets.
1490 * tree-flow.h (has_stmt_ann): New function.
1492 2006-10-29 Roger Sayle <roger@eyesopen.com>
1494 * builtins.c (fold_builtin_floor): Check for the availability of
1495 the C99 trunc function before transforming floor into trunc.
1497 2006-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1499 * builtins.c (fold_builtin_hypot): Rearrange recursive
1500 transformation before others, and also do ABS_EXPR. When
1501 necessary, check flag_unsafe_math_optimizations. When necessary,
1504 2006-10-29 Roger Sayle <roger@eyesopen.com>
1506 * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
1507 Fold ~X op C as X op' ~C, where op' is the swapped comparison.
1508 (fold_binary): ~X eq/ne C is now handled in fold_comparison.
1509 Fold -X eq/ne -Y as X eq/ne Y.
1511 2006-10-29 Richard Sandiford <richard@codesourcery.com>
1513 * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
1514 GENERATE_MULT3_<MODE>. Restrict the test to SImode. Use ISA_HAS_MUL3
1515 rather than GENERATE_MULT3_SI in the various define_peephole2s.
1516 (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
1517 Use an inclusive test for "mult" rather than "mul".
1518 (rotr<mode>3): Depend on ISA_HAS_ROR.
1519 * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
1521 (GENERATE_MULT3_DI): Delete.
1522 (ISA_HAS_64BIT_REGS): Use consistent formatting.
1523 (ISA_HAS_MUL3): New macro.
1524 (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
1525 (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
1526 (ISA_HAS_CLZ_CLO): Likewise.
1527 (ISA_HAS_DCLZ_DCLO): Delete.
1528 (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
1529 (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
1530 the VR4120 and VR4130.
1531 (ISA_HAS_MACCHI): Use consistent formatting.
1532 (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
1533 (ISA_HAS_ROR): ...this new macro.
1534 (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
1535 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
1536 (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
1538 2006-10-29 Roger Sayle <roger@eyesopen.com>
1540 PR tree-optimization/15458
1541 * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
1544 2006-10-29 Richard Guenther <rguenther@suse.de>
1546 * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
1547 (ix86_expand_truncdf_32): Likewise.
1548 * config/i386/i386.c (ix86_expand_trunc): New function expanding
1549 trunc inline for SSE math and -fno-trapping-math and if not
1550 optimizing for size.
1551 (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
1552 * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
1553 for expanding btrunc inline for SSE math.
1555 2006-10-29 Joseph Myers <joseph@codesourcery.com>
1557 * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
1558 Handle tuning for bi-arch i[34567]86-*-linux* like that for
1559 i[34567]86-*-solaris2.1[0-9]*.
1560 * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
1561 Define conditionally depending on TARGET_64BIT_DEFAULT.
1562 (SPEC_32, SPEC_64): Define.
1563 (LINK_SPEC): Use them.
1564 * doc/install.texi (--enable-targets=all): Document for x86-linux.
1566 2006-10-29 Richard Guenther <rguenther@suse.de>
1568 * config/i386/i386-protos.h (ix86_expand_round): Declare.
1569 (ix86_expand_rounddf_32): Likewise.
1570 * config/i386/i386.c (ix86_expand_round): New function expanding
1571 round inline for SSE math and -fno-trapping-math and if not
1572 optimizing for size.
1573 (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
1574 * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
1575 round via ix86_expand_round.
1577 2006-10-29 Richard Guenther <rguenther@suse.de>
1579 * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
1580 (ix86_expand_floorceildf_32): Likewise.
1581 * config/i386/i386.c (ix86_expand_sse_compare_mask): New
1582 static helper function.
1583 (ix86_expand_floorceil): Expander for floor and ceil to SSE
1585 (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
1586 * config/i386/i386.md (floordf2): Adjust to enable floor
1587 expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
1588 -fno-trapping-math is enabled and if not optimizing for size.
1589 (floorsf2, ceildf2, ceilsf2): Likewise.
1590 * config/i386/sse.md (sse_maskcmpsf3): New insn.
1591 (sse2_maskcmpdf3): Likewise.
1593 2006-10-29 Richard Guenther <rguenther@suse.de>
1595 * builtins.c (expand_builtin_mathfn): Expand nearbyint as
1596 rint in case -fno-trapping-math is enabled.
1597 * config/i386/i386-protos.h (ix86_expand_rint): Declare.
1598 * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
1599 (ix86_expand_sse_fabs): Likewise.
1600 (ix86_expand_rint): New function expanding rint to x87 or SSE math.
1601 * config/i386/i386.md (rintdf2): Enable for SSE math if
1602 -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
1603 (rintsf2): Likewise.
1605 2006-10-29 Richard Guenther <rguenther@suse.de>
1607 * genopinit.c (optabs): Change lfloor_optab and lceil_optab
1608 to conversion optabs.
1609 * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
1610 as conversion optab.
1611 * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
1612 (enum convert_optab_index): Add COI_lfloor and COI_lceil.
1613 (lfloor_optab, lceil_optab): Adjust defines.
1614 * builtins.c (expand_builtin_int_roundingfn): Adjust for
1615 lfloor and lceil optabs now being conversion optabs.
1616 * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
1617 * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
1618 New static helper function.
1619 (ix86_expand_lfloorceil): New function to expand lfloor and
1621 * config/i386/i386.md (lfloor<mode>2): Split into ...
1622 (lfloorxf<mode>2): ... x87 variant
1623 (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
1624 using ix86_expand_lfloorceil.
1625 (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
1627 * doc/md.texi (lfloorMN, lceilMN): Document.
1629 2006-10-29 Richard Sandiford <richard@codesourcery.com>
1631 * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE. Test for the
1632 -mno-shared assembler option on mips targets.
1633 * configure, config.in: Regenerate.
1634 * config/mips/linux.h (NO_SHARED_SPECS): New macro.
1635 (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
1636 * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
1638 2006-10-29 Richard Sandiford <richard@codesourcery.com>
1640 * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
1641 as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
1643 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
1645 * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
1646 config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
1649 2006-10-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1652 * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
1653 (fold_builtin_pow): Evaluate constant arguments at compile-time
1655 (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
1656 (do_mpfr_ckconv): New helper function.
1657 (do_mpfr_arg1): Use do_mpfr_ckconv.
1658 (do_mpfr_arg2): New.
1660 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1663 * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
1664 (-fdump-rtl-sched): Rename to ..
1665 (-fdump-rtl-sched1): here. Also fix file extension number.
1667 2006-10-28 Richard Guenther <rguenther@suse.de>
1669 * fold-const.c (maybe_canonicalize_comparison): Fix code
1672 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1674 * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
1675 (NON_QI_REG_P): Use IN_RANGE.
1676 (REX_INT_REGNO_P): Use IN_RANGE.
1677 (FP_REGNO_P): Use IN_RANGE.
1678 (SSE_REGNO_P): Use IN_RANGE.
1679 (REX_SSE_REGNO_P): Use IN_RANGE.
1680 (MMX_REGNO_P): Use IN_RANGE.
1681 (STACK_REGNO_P): New macro.
1682 (STACK_REG_P): Use STACK_REGNO_P.
1683 (NON_STACK_REG_P): Use STACK_REGNO_P.
1684 (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
1685 (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
1686 (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
1687 (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
1688 (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
1690 2006-10-28 Eric Botcazou <ebotcazou@adacore.com>
1692 * except.h (output_function_exception_table): Add 'const char*' param.
1693 * except.c (switch_to_exception_section): Add 'const char*' param.
1694 If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
1695 and flag_function_sections is set, use a function-specific section.
1696 (output_function_exception_table): Add 'const char*' param.
1697 Adjust call to switch_to_exception_section.
1698 * final.c (rest_of_handle_final): Adjust calls to
1699 output_function_exception_table.
1700 * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
1701 * config.in: Regenerate.
1702 * configure: Likewise.
1704 2006-10-28 Richard Guenther <rguenther@suse.de>
1707 * fold-const.c (maybe_canonicalize_comparison_1): Helper
1708 for maybe_canonicalize_comparison.
1709 (maybe_canonicalize_comparison): New function for canonicalizing
1711 (fold_comparison): Call it to canonicalize comparisons with
1714 2006-10-28 Richard Guenther <rguenther@suse.de>
1717 * builtins.c (expand_builtin_int_roundingfn_2): Expand
1718 BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
1719 (expand_builtin): Adjust likewise.
1720 * genopinit.c (optabs[]): Add lround optab.
1721 * optabs.c (init_optabs): Initialize lround_optab.
1722 * optabs.h (enum convert_optab_index): Add COI_lround.
1723 (lround_optab): Define.
1724 * config/i386/i386-protos.h (ix86_expand_lround): Declare.
1725 * config/i386/i386.c (ix86_sse_copysign_to_positive): New
1727 (ix86_expand_lround): New function.
1728 * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
1730 * doc/md.texi (lroundMN2): Document.
1732 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1735 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
1736 argument to HOST_WIDE_INT. Update function prototype.
1737 (round_frame_size): Change return type to HOST_WIDE_INT. Change
1738 "size" argument to HOST_WIDE_INT. Update function prototype.
1740 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1742 * config/i386/i386.c (output_387_ffreep): Create output from a
1743 template string for !HAVE_AS_IX86_FFREEP.
1745 2006-10-27 Eric Christopher <echristo@apple.com>
1747 * config/darwin.c: Fix formatting and grammar.
1749 2006-10-27 Jan Hubicka <jh@suse.cz>
1751 * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
1752 to be thrown away soon when IGNORE is set.
1753 * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
1754 indicating when return value shall not be computed.
1755 * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
1757 2006-10-27 Vladimir Makarov <vmakarov@redhat.com>
1759 * config/i386/i386.h (TARGET_GEODE):
1760 (TARGET_CPU_CPP_BUILTINS): Add code for geode.
1761 (TARGET_CPU_DEFAULT_geode): New macro.
1762 (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
1763 TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
1764 TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
1765 TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
1766 TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
1768 (TARGET_CPU_DEFAULT_NAMES): Add geode.
1769 (processor_type): Add PROCESSOR_GEODE.
1771 * config/i386/i386.md: Include geode.md.
1774 * config/i386/i386.c (geode_cost): New initialized global
1776 (m_GEODE, m_K6_GEODE): New macros.
1777 (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
1778 x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
1779 x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
1780 x86_schedule): Use m_K6_GEODE instead of m_K6.
1781 (x86_movx, x86_cmove): Set up m_GEODE.
1782 (x86_integer_DFmode_moves): Clear m_GEODE.
1783 (processor_target_table): Add entry for geode.
1784 (processor_alias_table): Ditto.
1786 * config/i386/geode.md: New file.
1788 * doc/invoke.texi: Add entry about geode processor.
1790 2006-10-27 Mike Stump <mrs@apple.com>
1792 * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
1793 __DYNAMIC__ from here back to ...
1794 * config/darwin.h (CPP_SPEC): ... here.
1796 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
1797 Nathan Sidwell <nathan@codesourcery.com>
1799 * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
1800 when choosing the minimum heapsize.
1802 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
1804 * gcc/unwind-dw2.h: Move cfa-related variables into
1805 struct frame_state_reg_info to ensure that the CFA is properly
1806 handled when executing DW_CFA_{remember,restore}_state.
1807 * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
1808 gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
1809 gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
1810 gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
1811 gcc/config/rs6000/linux-unwind.h,
1812 gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
1813 gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
1814 Modify to use new cfa_* fields.
1816 2006-10-26 Andreas Krebbel <krebbel1@de.ibm.com>
1818 * config/s390/s390.c (s390_init_frame_layout): Check positive
1821 2006-10-26 Ben Elliston <bje@au.ibm.com>
1823 * gimplify.c (get_name): Remove extraneous break.
1824 (gimplify_omp_for): Initialise ret with GS_OK.
1826 2006-10-25 Steve Ellcey <sje@cup.hp.com>
1828 * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
1829 Add unix98.o to link line.
1831 2006-10-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1834 * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
1835 Calculate compile-time constants using MPFR.
1836 (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
1837 BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
1839 2006-10-25 Bob Wilson <bob.wilson@acm.org>
1841 * config/xtensa/lib2funcs.S: Use C-style comments.
1843 2006-10-24 Nathan Froyd <froydnj@codesourcery.com>
1845 * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
1846 (file_table_relative_p): Likewise.
1847 (dwarf2out_finish): Likewise.
1848 (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
1850 2006-10-25 Daniel Berlin <dberlin@dberlin.org>
1852 * tree-ssa-structalias.c (intra_create_variable_infos):
1853 Don't recreate nonlocal_all if it already exists.
1855 2006-10-25 Richard Guenther <rguenther@suse.de>
1858 * optabs.h (enum optab_index): Remove OTI_lrint.
1859 (enum convert_optab_index): Add COI_lrint.
1860 (lrint_optab): Adjust.
1861 (expand_sfix_optab): Declare.
1862 * optabs.c (expand_sfix_optab): New function.
1863 (init_optabs): Init lrint_optab as conversion optab.
1864 * genopinit.c (lrint_optab): Change to a conversion optab.
1865 * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
1866 expansion via conversion optab.
1867 * config/i386/i386.md (*fistdi2_1): Remove
1868 flag_unsafe_math_optimizations guard.
1869 (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
1870 fist<mode>2_with_temp): Likewise.
1871 (lrint<mode>2): Split into...
1872 (lrintxf<mode>2): ... x87 part
1873 (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
1874 * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
1875 sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
1876 UNSPEC_FIX_NOTRUNC matching non-vector float modes.
1877 * doc/md.texi (lrintMN2): Document.
1879 2006-10-25 Uros Bizjak <uros@kss-loka.si>
1882 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
1883 Use inc and dec instructions for TARGET_USE_INCDEC.
1884 ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
1885 ("sync_double_compare_and_swap<mode>"): Likewise.
1886 ("*sync_double_compare_and_swapdi_pic"): Likewise.
1887 ("*sync_compare_and_swap_cc<mode>"): Likewise.
1888 ("sync_double_compare_and_swap_cc<mode>"): Likewise.
1889 ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
1890 ("sync_old_add<mode>"): Likewise.
1891 ("sync_lock_test_and_set<mode>"): Likewise.
1892 ("sync_lock_test_and_set<mode>"): Likewise.
1893 ("sync_add<mode>"): Likewise.
1894 ("sync_sub<mode>"): Likewise.
1895 ("sync_ior<mode>"): Likewise.
1896 ("sync_and<mode>"): Likewise.
1897 ("sync_xor<mode>"): Likewise.
1899 2006-10-25 Uros Bizjak <uros@kss-loka.si>
1901 * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
1902 (remainder_optab): Define corresponding macro.
1903 (drem_optab): Remove.
1904 * optabs.c (init_optabs): Initialize remainder_optab. Remove
1905 drem_optab initialization.
1906 * genopinit.c (optabs): Implement remainder_optab using
1907 remainder?f3 patterns. Remove drem_optab.
1908 * builtins.c (expand_builtin_mathfn_2): Handle
1909 BUILT_IN_REMAINDER{,F,L} using remainder_optab.
1910 (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
1911 expand_builtin_mathfn_2.
1913 (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
1914 depend on flag_unsafe_math_optimizations.
1916 * config/i386/i386.md ("remaindersf3", "remainderdf3")
1917 ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
1918 Do not depend on flag_unsafe_math_optimizations. Use
1919 truncxf?f expander instead of truncxf?f_i387_noop.
1921 ("fpremxf4", "fprem1xf4"): Do not depend on
1922 flag_unsafe_math_optimizations.
1923 ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
1924 flag_unsafe_math_optimizations. Use truncxf?f expander
1925 instead of truncxf?f_i387_noop.
1927 * doc/md.texi (fmod, remainder): Document standard named pattern.
1929 2006-10-24 Richard Sandiford <richard@codesourcery.com>
1930 David Daney <ddaney@avtrex.com>
1933 * rtlanal.c (nonzero_address_p): Remove check for values wrapping.
1935 2006-10-25 Ben Elliston <bje@au.ibm.com>
1937 * doc/extend.texi (Variable Attributes): Typo fix.
1939 2006-10-24 Uros Bizjak <uros@kss-loka.si>
1941 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
1942 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
1943 (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
1944 (FRAME_POINTER_REGNUM): Update register number to 21.
1945 (REG_CLASS_CONTENTS): Update contents for added fpcr register.
1946 (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
1948 * config/i386/i386.c (regclass_map): Add fpcr entry.
1949 (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
1951 (print_reg): Assert REGNO (x) != FPCR_REG.
1953 * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
1954 (DIRFLAG_REG): Renumber.
1955 (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
1956 (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
1957 (sse_prologue_save, *sse_prologue_save_insn): Renumber
1958 hardcoded SSE register numbers.
1960 * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
1961 hardcoded MMX register numbers.
1963 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1966 * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
1967 (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
1969 (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
1970 (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
1971 BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
1972 BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
1974 2006-10-24 Richard Guenther <rguenther@suse.de>
1977 * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
1978 and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
1979 for deciding optimizations in consistency with fold-const.c
1980 (fold_builtin_unordered_cmp): Likewise.
1982 2006-10-24 Richard Guenther <rguenther@suse.de>
1984 * builtins.c (fold_builtin_floor): Fold floor (x) where
1985 x is nonnegative to trunc (x).
1986 (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
1987 nonnegative to FIX_TRUNC_EXPR.
1989 2006-10-24 Richard Guenther <rguenther@suse.de>
1991 PR tree-optimization/29567
1992 * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
1993 for TRUTH_NOT_EXPR. Clarify comments.
1995 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1998 * builtins.c (fold_builtin_exponent): Evaluate constant arguments
1999 at compile-time using MPFR. Change parameter VALUE to FUNC,
2001 (do_mpfr_arg1): Rename `exact' to `inexact'. Carefully check
2002 for overflow and underflow at all times and avoid folding in
2005 2006-10-24 Ben Elliston <bje@au.ibm.com>
2007 * reload1.c: Formatting fixes.
2009 2006-10-23 Zdenek Dvorak <dvorakz@suse.cz>
2011 PR tree-optimization/14784
2012 * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
2013 * tree-ssa-structalias.c (get_constraint_for,
2014 intra_create_variable_infos): Set is_heapvar.
2015 * tree-ssa-operands.c (access_can_touch_variable): Do not handle
2016 non-heapvar pointer variables specially.
2018 2006-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2021 * builtins.c (fold_builtin_sin, fold_builtin_cos,
2022 fold_builtin_tan): Fold all constant arguments. Take a "type"
2023 argument as necessary.
2024 (do_mpfr_arg1): New.
2025 * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
2027 2006-10-23 Bob Wilson <bob.wilson@acm.org>
2029 * config/xtensa/lib1funcs.asm: Use C-style comments.
2031 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
2033 * tree.c (local_define_builtin): Replace calls to
2034 lang_hooks.builtin_function with add_builtin_function.
2035 * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
2037 * c-tree.h (builtin_function): Rename to c_builtin_function. Change
2039 * c-decl.c (builtin_function): Rename to c_builtin_function. Move
2040 common code to add_builtin_function.
2041 * langhooks.c (add_builtin_function): New function.
2042 (lhd_builtin_function): New function.
2043 * langhooks.h (struct lang_hooks): Change the signature of
2045 (add_builtin_function): New function.
2046 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
2047 calls to lang_hooks.builtin_function with add_builtin_function.
2048 * c-common.c (decl_builtin_1): Replace calls to
2049 lang_hooks.builtin_function with add_builtin_function.
2050 * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
2051 lang_hooks.builtin_function with add_builtin_function.
2052 * config/frv/frv.c (def_builtin): Replace calls to
2053 lang_hooks.builtin_function with add_builtin_function.
2054 * config/s390/s390.c (s390_init_builtins): Replace calls to
2055 lang_hooks.builtin_function with add_builtin_function.
2056 * config/sparc/sparc.c (def_builtin): Replace calls to
2057 lang_hooks.builtin_function with add_builtin_function.
2058 * config/i386/i386.c (def_builtin): Replace calls to
2059 lang_hooks.builtin_function with add_builtin_function.
2060 * config/sh/sh.c (sh_media_init_builtins): Replace calls to
2061 lang_hooks.builtin_function with add_builtin_function.
2062 * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
2063 lang_hooks.builtin_function with add_builtin_function.
2064 * config/stormy16/stormy16.c (xstormy16_init_builtins):
2065 Replace calls to lang_hooks.builtin_function with
2066 add_builtin_function.
2067 * config/iq2000/iq2000.c (def_builtin):
2068 Replace calls to lang_hooks.builtin_function with
2069 add_builtin_function.
2070 * config/ia64/ia64.c (def_builtin): Replace calls to
2071 lang_hooks.builtin_function with add_builtin_function.
2072 * config/rs6000/rs6000.c (def_builtin): Replace calls to
2073 lang_hooks.builtin_function with add_builtin_function.
2074 (altivec_init_builtins): Replace calls to
2075 lang_hooks.builtin_function with add_builtin_function.
2076 * config/arm/arm.c (def_mbuiltin): Replace calls to
2077 lang_hooks.builtin_function with add_builtin_function.
2078 (arm_init_tls_builtins): Replace calls to
2079 lang_hooks.builtin_function with add_builtin_function.
2080 * config/mips/mips.c (mips_init_builtins): Replace calls to
2081 lang_hooks.builtin_function with add_builtin_function.
2082 * config/bfin/bfin.c (def_builtin): Replace calls to
2083 lang_hooks.builtin_function with add_builtin_function.
2084 * langhooks-def.h (lhd_builtin_function): New function.
2085 (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
2087 2006-10-23 Jakub Jelinek <jakub@redhat.com>
2089 * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
2090 BUILT_IN_STRNCAT_CHK.
2092 2006-10-23 Jan Hubicka <jh@suse.cz>
2094 * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
2095 don't do conversion from memmove to memcpy here.
2096 (expand_builtin_bcopy, expand_builtin): Update call of
2097 expand_builtin_memmove.
2098 (fold_builtin_memory_op): Do folding of memmove to memcpy here.
2100 2006-10-23 Paul Brook <paul@codesourcery.com>
2102 * stor-layout.c (start_record_layout): maximum_field_alignment
2103 overrides STRUCTURE_SIZE_BOUNDARY.
2105 2006-10-23 Ulrich Weigand <uweigand@de.ibm.com>
2107 * config/s390/predicates.md ("bras_sym_operand"): Do not accept
2108 nonlocal function symbols if flag_pic.
2110 2006-10-23 Richard Guenther <rguenther@suse.de>
2114 * builtins.c (fold_binary): Remove checks for flag_wrapv
2115 and flag_trapv where negate_expr_p covers these cases.
2117 2006-10-23 Richard Guenther <rguenther@suse.de>
2120 * fold-const.c (fold_plusminus_mult_expr): Check exact power
2121 of two on the absolute value.
2122 (fold_binary): Fold x * -C to -x * C if x is easily negatable
2123 and negating -C does not overflow.
2125 2006-10-23 Richard Guenther <rguenther@suse.de>
2128 * convert.c (convert_to_real): Fold (float)-x to -(float)x
2129 only if not flag_rounding_math.
2131 2006-10-22 Richard Sandiford <richard@codesourcery.com>
2132 Kaz Kojima <kkojima@gcc.gnu.org>
2135 * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
2136 SImode memory reference for the source of a movua.
2137 * config/sh/sh.md (UNSPEC_MOVUA): New macro.
2138 (movua): Use an unspec instead of sign_extract. Expect the source
2139 to have mode BLKmode.
2140 (extv, insv): Use a BLKmode rather than SImode memory reference
2141 for the source of a movua.
2143 2006-10-22 Jeff Law <law@redhat.com>
2144 Richard Guenther <rguenther@suse.de>
2146 PR tree-optimization/15911
2147 * tree-vrp.c (extract_code_and_val_from_cond): New function.
2148 (register_edge_assert_for_1): Likewise.
2149 (register_edge_assert_for): Handle &&/&/||/| in conditionals.
2150 (find_conditional_asserts): Adjust for new function signature.
2151 (find_assert_locations): Likewise.
2153 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
2155 * config/i386/tmmintrin.h: Remove the duplicated content.
2157 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
2159 * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
2160 (x86_64-*-*): Likewise.
2162 * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
2163 (override_options): Check SSSE3.
2164 (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
2165 IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
2166 IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
2167 IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
2168 IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
2169 IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
2170 IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
2171 IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
2172 IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
2173 IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
2174 IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
2175 IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
2176 IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
2177 IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
2178 IX86_BUILTIN_PABSD128.
2179 (bdesc_2arg): Add SSSE3.
2180 (bdesc_1arg): Likewise.
2181 (ix86_init_mmx_sse_builtins): Support SSSE3.
2182 (ix86_expand_builtin): Likewise.
2183 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
2185 * config/i386/i386.md (UNSPEC_PSHUFB): New.
2186 (UNSPEC_PSIGN): Likewise.
2187 (UNSPEC_PALIGNR): Likewise.
2188 Include mmx.md before sse.md.
2190 * config/i386/i386.opt: Add -mssse3.
2192 * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
2193 (ssse3_phaddwv4hi3): Likewise.
2194 (ssse3_phadddv4si3): Likewise.
2195 (ssse3_phadddv2si3): Likewise.
2196 (ssse3_phaddswv8hi3): Likewise.
2197 (ssse3_phaddswv4hi3): Likewise.
2198 (ssse3_phsubwv8hi3): Likewise.
2199 (ssse3_phsubwv4hi3): Likewise.
2200 (ssse3_phsubdv4si3): Likewise.
2201 (ssse3_phsubdv2si3): Likewise.
2202 (ssse3_phsubswv8hi3): Likewise.
2203 (ssse3_phsubswv4hi3): Likewise.
2204 (ssse3_pmaddubswv8hi3): Likewise.
2205 (ssse3_pmaddubswv4hi3): Likewise.
2206 (ssse3_pmulhrswv8hi3): Likewise.
2207 (ssse3_pmulhrswv4hi3): Likewise.
2208 (ssse3_pshufbv16qi3): Likewise.
2209 (ssse3_pshufbv8qi3): Likewise.
2210 (ssse3_psign<mode>3): Likewise.
2211 (ssse3_psign<mode>3): Likewise.
2212 (ssse3_palignrti): Likewise.
2213 (ssse3_palignrdi): Likewise.
2214 (abs<mode>2): Likewise.
2215 (abs<mode>2): Likewise.
2217 * config/i386/tmmintrin.h: New file.
2219 * doc/extend.texi: Document SSSE3 built-in functions.
2221 * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
2223 2006-10-22 Ira Rosen <irar@il.ibm.com>
2225 * tree-vect-transform.c (vectorizable_load): Use the type of the
2226 return value of the mask_for_load builtin to create realign_load
2229 2006-10-22 Richard Sandiford <richard@codesourcery.com>
2231 * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
2234 2006-10-21 H.J. Lu <hongjiu.lu@intel.com>
2236 * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
2237 (UNSPEC_LDDQU): This.
2238 * config/i386/sse.md (sse3_lddqu): Updated.
2240 2006-10-21 Richard Guenther <rguenther@suse.de>
2242 * builtins.c (expand_builtin_int_roundingfn_2): New function.
2243 (expand_builtin): Use it to expand lrint instead of
2244 expand_builtin_mathfn.
2246 2006-10-21 Uros Bizjak <uros@kss-loka.si>
2249 * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
2250 flag_unsafe_math_optimizations is set.
2252 2006-10-21 Uros Bizjak <uros@kss-loka.si>
2255 * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
2256 patterns to use memory input operand in x87->mem->XMM
2257 reload sequences. Skip transformation for TARGET_K8.
2259 2006-10-21 Uros Bizjak <uros@kss-loka.si>
2261 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
2262 force operand1 to register if both operands are memory operands.
2263 (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
2264 (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
2265 if both operands are memory operands.
2266 (truncdfsf2): Do not force operand1 to register if both operands
2267 are memory operands.
2269 2006-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2271 * Makefile.in (LIBS): Add $(GMPLIBS).
2272 * doc/install.texi: Update GMP and MPFR requirements.
2273 * doc/sourcebuild.texi (need_gmp): Delete.
2275 2006-10-21 Richard Guenther <rguenther@suse.de>
2277 PR tree-optimization/3511
2278 * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
2279 got new invariant arguments during PHI translation.
2281 2006-10-21 Richard Guenther <rguenther@suse.de>
2284 * fold-const.c (fold_comparison): Fold signed comparisons
2285 of the form X +- C1 CMP Y +- C2.
2287 2006-10-21 Richard Guenther <rguenther@suse.de>
2290 * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
2291 if flag_unsafe_math_optimizations is specified. We have
2292 flag_finite_math_only for that.
2293 * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
2294 or flag_unsafe_math_optimizations.
2296 2006-10-21 Richard Guenther <rguenther@suse.de>
2298 * builtins.c (fold_builtin_classify): Fix typo.
2300 2006-10-21 Richard Guenther <rguenther@suse.de>
2303 * simplify-rtx.c (simplify_const_relational_operation):
2304 Do not constant-fold ORDERED and UNORDERED for
2305 flag_unsafe_math_optimizations but only we do not need to
2306 honor NaNs for the given mode.
2308 2006-10-21 Richard Guenther <rguenther@suse.de>
2311 * config/i386/i386.c (classify_argument): Remove redundant
2312 walking of the BINFOs.
2313 (contains_128bit_aligned_vector_p): Likewise.
2315 2006-10-20 Mark Mitchell <mark@codesourcery.com>
2317 * BASE-VER: Set to 4.3.0.
2319 2006-10-20 Daniel Berlin <dberlin@dberlin.org>
2321 * tree.h (DECL_PTA_ARTIFICIAL): Remove.
2322 (tree_decl_with_vis): Remove artificial_pta_var flag.
2323 * tree-flow.h (referenced_var_check_and_insert): Expose.
2324 (nonlocal_all): New prototype.
2325 * tree-ssa-structalias.c (nonlocal_for_type): Remove.
2326 (nonlocal_all): Make global.
2327 (nonlocal_lookup): Remove.
2328 (nonlocal_insert): Ditto.
2329 (create_nonlocal_var): Do not call nonlocal_insert.
2330 (get_nonlocal_id_for_type): Remove.
2331 (find_global_initializers): Mark new vars we find for renaming.
2332 (intra_create_variable_infos): Only create one nonlocal.
2333 (expand_nonlocal_solutions): Remove.
2334 (compute_points_to_sets): Don't call it.
2335 (ipa_pta_execute): Ditto.
2336 (init_alias_heapvars): Don't create nonlocal_for_type.
2337 (delete_alias_heapvars): Don't remove it.
2338 * tree-ssa-operands.c (access_can_touch_variable): Don't prune
2341 2006-10-19 Brooks Moses <bmoses@stanford.edu>
2343 * doc/install.texi (Downloading GCC): Clarify mention of
2344 Fortran in the "full distribution" description.
2346 2006-10-19 Daniel Berlin <dberlin@dberlin.org>
2348 Fix PR tree-optimization/28778
2349 Fix PR tree-optimization/29156
2350 Fix PR tree-optimization/29415
2351 * tree.h (DECL_PTA_ARTIFICIAL): New macro.
2352 (tree_decl_with_vis): Add artificial_pta_var flag.
2353 * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
2354 pushed into callers.
2355 * tree-ssa-structalias.c (nonlocal_for_type): New variable.
2356 (nonlocal_all): Ditto.
2357 (struct variable_info): Add directly_dereferenced member.
2358 (var_escaped_vars): New variable.
2359 (escaped_vars_tree): Ditto.
2360 (escaped_vars_id): Ditto.
2361 (nonlocal_vars_id): Ditto.
2362 (new_var_info): Set directly_dereferenced.
2363 (graph_size): New variable
2364 (build_constraint_graph): Use graph_size.
2365 (solve_graph): Don't process constraints that cannot change the
2366 solution, don't try to propagate an empty solution to our
2368 (process_constraint): Set directly_dereferenced.
2369 (could_have_pointers): New function.
2370 (get_constraint_for_component_ref): Don't process STRING_CST.
2371 (nonlocal_lookup): New function.
2372 (nonlocal_insert): Ditto.
2373 (create_nonlocal_var): Ditto.
2374 (get_nonlocal_id_for_type): Ditto.
2375 (get_constraint_for): Allow results vector to be empty in the case
2376 of string constants.
2377 Handle results of calls properly.
2378 (update_alias_info): Update alias info stats on number and type of
2380 (find_func_aliases): Use could_have_pointers.
2381 (make_constraint_from_escaped): Renamed from
2382 make_constraint_to_anything, and changed to make constraints from
2384 (make_constraint_to_escaped): New function.
2385 (find_global_initializers): Ditto.
2386 (create_variable_info_for): Make constraint from escaped to any
2387 global variable, and from any global variable to the set of
2389 (intra_create_variable_infos): Deal with escaped instead of
2390 pointing to anything.
2391 (set_uids_in_ptset): Do type pruning on directly dereferenced
2393 (find_what_p_points_to): Adjust call to set_uids_with_ptset.
2394 (init_base_vars): Fix comment, and initialize escaped_vars.
2395 (need_to_solve): Removed.
2396 (find_escape_constraints): New function.
2397 (expand_nonlocal_solutions): Ditto.
2398 (compute_points_to_sets): Call find_escape_constraints and
2399 expand_nonlocal_solutions.
2400 (delete_points_to_sets): Don't fall off the end of the graph.
2401 (init_alias_heapvars): Initialize nonlocal_for_type and
2403 (delete_alias_heapvars): Free nonlocal_for_type and null out
2406 2006-10-19 Eric Botcazou <ebotcazou@adacore.com>
2408 * fold-const.c (add_double): Rename to add_double_with_sign.
2409 Add 'unsigned_p' parameter and take it into account for the overflow.
2410 (mul_double): Rename to mul_double_with_sign.
2411 Add 'unsigned_p' parameter and take it into account for the overflow.
2412 (fold_div_compare): Call add_double_with_sign instead of add_double
2413 and mul_double_with_sign instead of mul_double, passing them the
2414 unsignedness of the type.
2415 * tree.h (add_double): Macroize.
2416 (add_double_with_sign): New prototype.
2417 (mul_double): Macroize.
2418 (mul_double_with_sign): New prototype.
2420 2006-10-19 Chen Liqin <liqin@sunnorth.com.cn>
2422 * config/score/crti.asm: New file.
2423 * config/score/crtn.asm: New file.
2424 * config/score/elf.h: New file.
2425 * config/score/mac.md: New file.
2426 * config/score/misc.md: New file.
2427 * config/score/mul-div.S: New file.
2428 * config/score/predicates.md: New file.
2429 * config/score/score7.md: New file.
2430 * config/score/score.c: New file.
2431 * config/score/score-conv.h: New file.
2432 * config/score/score.h: New file.
2433 * config/score/score.md: New file.
2434 * config/score/score-mdaux.c: New file.
2435 * config/score/score-mdaux.h: New file.
2436 * config/score/score-modes.def: New file.
2437 * config/score/score.opt: New file.
2438 * config/score/score-protos.h: New file.
2439 * config/score/score-version.h: New file.
2440 * config/score/t-score-elf: New file.
2441 * config.gcc: Add score*-*-* configurations(Update before).
2442 * doc/invoke.texi (Score Options): New section.
2443 * doc/md.texi (Score family): New section to document constraints.
2445 2006-10-19 Nick Clifton <nickc@redhat.com>
2447 * config/arm/arm.c: Fix spelling typo.
2449 2006-10-18 Tom Tromey <tromey@redhat.com>
2451 * doc/install.texi (Prerequisites): Mention automake 1.9.6.
2453 2006-10-18 Jan Hubicka <jh@suse.cz>
2456 * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
2459 2006-10-18 Marcin Dalecki <martin@dalecki.de>
2461 * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
2462 TSI_SAME_STMT, since that's the desired entity.
2464 2006-10-17 Wolfgang Gellerich <gellerich@de.ibm.com>
2466 * config/s390/contraints.md: New file.
2467 * config/s390/s390-protos.h (s390_mem_constraint,
2468 s390_O_constraint_str, s390_N_constraint_str,
2469 s390_float_const_zero_p): Function prototypes added.
2470 * config/s390/s390.c (s390_extra_constraint_str,
2471 s390_const_double_ok_for_constraint_p,
2472 s390_const_ok_for_constraint_p): Functions removed.
2473 (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
2474 s390_float_const_zero_p): New functions.
2475 * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
2476 CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
2477 EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
2478 Macro definitions removed.
2479 (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
2480 s390_extra_constraint_str): Functions removed.
2482 2006-10-17 Andrew Pinsiki <pinskia@gmail.com>
2483 Richard Sandiford <richard@codesourcery.com>
2486 * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
2487 * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
2489 2006-10-16 Geoffrey Keating <geoffk@apple.com>
2491 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
2492 (DWARF2_FRAME_REG_OUT): Likewise.
2493 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
2494 (DWARF2_FRAME_REG_OUT): Likewise.
2496 2006-10-17 Paul Brook <paul@codesourcery.com>
2498 * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
2500 2006-10-16 Brooks Moses <bmoses@stanford.edu>
2502 * doc/contrib.texi, doc/install.texi, doc/standards.texi:
2503 Standardize on "GNU Fortran" as the official name of the Fortran
2506 2006-10-16 Mike Stump <mrs@apple.com>
2508 * doc/invoke.texi (Darwin Options): Document -mkernel.
2509 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
2511 (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support. Add
2512 SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
2513 (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
2514 (OS_MISSING_ALTIVEC): Add.
2515 * config/i386/i386.c (override_options): Add
2516 SUBSUBTARGET_OVERRIDE_OPTIONS callout.
2517 * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
2518 -mkernel, -static or -mdynamic-no-pic is given.
2519 (C_COMMON_OVERRIDE_OPTIONS): Add.
2520 * config/darwin.opt (fapple-kext): Add.
2522 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
2523 -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
2525 (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
2526 (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
2527 (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
2528 (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
2529 (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
2530 (flag_mkernel): Add.
2531 (flag_apple_kext): Add.
2532 (TARGET_KEXTABI): Add.
2533 * config/darwin.c (darwin_handle_kext_attribute): Add.
2534 (DARWIN_VTABLE_P): Add.
2535 (darwin_binds_local_p): Add partial support for rebinding vtables
2537 (darwin_kextabi_p): Add.
2538 (darwin_override_options): Add.
2539 * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
2540 (darwin_kextabi_p): Add.
2541 (darwin_override_options): Add.
2542 * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
2543 __DYNAMIC__ and __STATIC__ here.
2545 2006-10-16 Brooks Moses <bmoses@stanford.edu>
2547 * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
2548 Added mention of "make pdf" target, and Texinfo requirements for
2551 2006-10-16 DJ Delorie <dj@redhat.com>
2553 * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
2554 into the GOT in case we need a subreg of the address.
2556 2006-10-16 Richard Guenther <rguenther@suse.de>
2559 * doc/extend.texi (X86 Built-in Functions): Fix typos in
2560 SSE builtin documentation. Document SSE2 builtins.
2562 2006-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2564 * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
2565 symbol in the output file for non-shared links when -nostdlib or
2566 -nodefaultlibs isn't specified.
2568 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
2569 posix thread support.
2571 2006-10-15 Jan Hubicka <jh@suse.cz>
2574 * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
2575 declared always_inline even when not inlining.
2577 2006-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
2578 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2579 Andrew Pinski <pinskia@gmail.com>
2582 * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
2584 2006-10-15 Jan Hubicka <jh@suse.cz>
2585 Richard Guenther <rguenther@suse.de>
2588 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
2589 process_function_and_variable_attributes on all variables, including
2590 those discovered during cgraph construction phase.
2592 2006-10-15 Bernhard Fischer <aldot@gcc.gnu.org>
2594 * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
2596 2006-10-14 Uros Bizjak <uros@kss-loka.si>
2598 * config/i386/athlon.md (athlon_fist): Add fisttp.
2600 2006-10-13 David Edelsohn <edelsohn@gnu.org>
2601 Ian Lance Taylor <ian@airs.com>
2604 * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
2605 CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
2608 2006-10-14 Kazu Hirata <kazu@codesourcery.com>
2610 * config/score/score.c, config/score/score.h: Fix comment
2613 2006-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2616 * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
2619 2006-10-13 Eric Christopher <echristo@apple.com>
2621 * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2623 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
2626 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
2627 * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
2628 alignment supported by 32-bit ELF.
2630 2006-10-13 Eric Christopher <echristo@apple.com>
2632 * config/darwin.c (darwin_emit_unwind_label): Strip
2633 name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
2635 2006-10-13 Richard Guenther <rguenther@suse.de>
2637 PR tree-optimization/29446
2638 * tree-vrp.c (fix_equivalence_set): Remove.
2639 (extract_range_from_assert): Do not call fix_equivalence_set.
2640 (debug_value_range): Print a newline.
2641 (compare_name_with_value): For equivalence sets with
2642 inconsistent value ranges conservatively bail out.
2643 (compare_names): Likewise.
2645 2006-10-13 David Edelsohn <edelsohn@gnu.org>
2647 * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
2648 and MPFR for gfortran.
2650 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
2652 * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
2653 alignment supported by 32-bit ELF.
2655 2006-10-13 Paolo Bonzini <bonzini@gnu.org>
2659 * c-typeck.c (digest_init): Always allow initializing vectors
2660 that have static storage duration with compound literals.
2661 * tree.c (build_type_attribute_qual_variant): New, based on
2662 build_type_attribute_variant.
2663 (build_type_attribute_variant): Rewrite using the former.
2664 (make_vector_type): Use build_type_attribute_qual_variant to build
2665 type variants. Use type_hash_canon on the others.
2667 2006-10-13 Daniel Berlin <dberlin@dberlin.org>
2668 Ramana Radhakrishnan <ramana.radhakrishnan@celunite.com>
2670 * tree-flow-inline.h (zero_ssa_operands): Fix comment.
2672 2006-10-12 Jan Hubicka <jh@suse.cz>
2675 * c-decl.c (c_make_fname_decl): Do not segfault in case where
2676 current_function_decl is set but current_function_scope is not.
2678 2006-10-12 Jie Zhang <jie.zhang@analog.com>
2680 * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
2681 emit_insn to emit eh_return_internal instruction.
2682 (eh_return_internal): Explicitly set pc.
2684 2006-10-11 Richard Guenther <rguenther@suse.de>
2686 PR tree-optimization/28230
2687 * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
2688 to the correct place.
2690 2006-10-11 Richard Guenther <rguenther@suse.de>
2693 * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
2696 2006-10-10 Brooks Moses <bmoses@stanford.edu>
2698 * configure.ac: Added pdf to "Make-hooks"
2699 * Makefile.in: Added TEXI2PDF definition, and various pdf-file
2700 targets and *.pdf file patterns in cleanup targets.
2701 * configure: Regenerated.
2703 2006-10-10 Anatoly Sokolov <aesok@post.ru>
2705 * config/avr/predicates.md: New file.
2706 * config/avr/avr.md: Include it.
2707 (REG_SP): New constant.
2708 (peepholes): Use predicates.
2709 (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
2710 difficult_branch, difficult_rvbranch, cbi, sbi, sbix_branch,
2711 sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
2713 2006-10-10 Adam Nemet <anemet@caviumnetworks.com>
2715 * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
2718 2006-10-10 Jakub Jelinek <jakub@redhat.com>
2721 * builtins.c (var_decl_component_p): New function.
2722 (fold_builtin_memset, fold_builtin_memory_op): Restrict
2723 single entry optimization to variables and components thereof.
2725 2006-10-10 Richard Guenther <rguenther@suse.de>
2727 PR rtl-optimization/29323
2728 * except.c (set_nothrow_function_flags): For functions
2729 that do not bind local bail out early.
2731 2006-10-10 Ben Elliston <bje@au.ibm.com>
2733 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
2736 2006-10-09 Richard Henderson <rth@redhat.com>
2738 Revert emutls patch.
2740 2006-10-09 Richard Guenther <rguenther@suse.de>
2743 * cgraphunit.c (verify_cgraph_node): Bail out on earlier
2746 2006-10-09 Steve Ellcey <sje@cup.hp.com>
2749 * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
2750 * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
2751 * configure: Regenerate.
2752 * config.in: Regenerate.
2754 2006-10-09 Aldy Hernandez <aldyh@redhat.com>
2756 * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
2758 2006-10-08 Richard Sandiford <richard@codesourcery.com>
2760 * config/mips/mips.c (mips_legitimize_tls_address): Implement
2761 all TLS models in the same way as local exec if !TARGET_ABICALLS.
2762 Remove stray newline.
2764 2006-10-08 Richard Sandiford <richard@codesourcery.com>
2766 * config/mips/mips.c (mips_classify_symbol): Do not return
2767 SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
2768 (mips_in_small_data_p): Tweak comments.
2770 2006-10-08 Richard Sandiford <richard@codesourcery.com>
2772 * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
2774 2006-10-07 Kazu Hirata <kazu@codesourcery.com>
2776 * gimplify.c, sched-int.h: Fix comment typos.
2778 * sched-int.h: Fix comment typos.
2780 2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2782 * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
2784 * sched-ebb.c (begin_schedule_ready): Use them.
2785 * haifa-sched.c (schedule_insn, move_insn, try_ready,
2786 add_to_speculative_block, create_check_block_twin, speculate_insn,
2787 fix_jump_move, move_block_after_check): Ditto.
2788 * sched-rgn.c (new_ready): Ditto.
2790 2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2792 PR rtl-optimization/29128
2793 * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
2794 * sched-ebb.c (advance_target_bb): Use it to fix condition to
2795 allow interblock movement of speculation checks.
2797 2006-10-06 Zdenek Dvorak <dvorakz@suse.cz>
2800 * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
2801 casted to integer type.
2802 (get_address_cost): Decrease cost of [symbol + index] addressing modes
2803 if they are significantly more expensive than [reg + index] ones.
2805 2006-10-06 Jakub Jelinek <jakub@redhat.com>
2807 PR tree-optimization/29330
2808 * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
2809 (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
2810 on newly allocated ddrs.
2811 (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
2812 to VEC (loop_p, heap) pointer.
2813 (compute_data_dependences_for_loop): Adjust caller.
2814 (free_dependence_relations): Free DDR_LOOP_NEST.
2816 * tree-loop-linear.c (linear_transform_loops): Don't forget to
2817 free DEPENDENCE_RELATIONS and DATAREFS.
2820 * builtins.c (expand_builtin_sync_operation,
2821 expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
2822 Use convert_to_mode to handle promoted arguments.
2824 2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
2826 * print-tree.c (print_node_brief, print_node): Print sign of Inf.
2828 2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
2830 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
2832 2006-10-05 Uros Bizjak <uros@kss-loka.si>
2834 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
2835 "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
2836 Use <modeconstraint> instead of "r" as operand 1 constraint.
2838 2006-10-06 Olivier Hainque <hainque@adacore.com>
2840 * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
2841 Don't recurse on the pointed-to type.
2842 * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
2843 DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
2844 types with components of variable size.
2846 2006-10-06 Danny Smith <dannysmith@users.sourceforge.net>
2848 * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
2850 2006-10-06 Jakub Jelinek <jakub@redhat.com>
2852 PR tree-optimization/29290
2853 * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
2857 * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
2858 * config/i386/predicates.md (local_symbolic_operand): Likewise.
2861 * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
2862 the number of vector elements fill the rest with zeros.
2864 2006-10-05 Richard Sandiford <richard@codesourcery.com>
2866 * config/mips/mips.c (mips_pass_by_reference): Do not return false
2867 for EABI if type is NULL. Use a size check based on GET_MODE_SIZE
2870 2006-10-05 Bernd Schmidt <bernd.schmidt@analog.com>
2872 * config/bfin/bfin.md (subsi3): Lose expander, change previously
2873 unnamed pattern into subsi3. Use correct constraints/predicates.
2874 * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
2875 * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
2877 2006-10-05 Ira Rosen <irar@il.ibm.com>
2879 * doc/loop.texi: Add data references analysis description.
2881 2006-10-04 Brooks Moses <bmoses@stanford.edu>
2883 * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
2885 2006-10-04 Richard Henderson <rth@redhat.com>
2886 Jakub Jelinek <jakub@redhat.com>
2888 * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
2889 * builtin-types.def (BT_WORD): Make unsigned.
2890 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
2891 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
2892 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
2893 * c-decl.c (grokdeclarator): Don't error if !have_tls.
2894 * c-parser.c (c_parser_omp_threadprivate): Likewise.
2895 * cgraph.c (decide_is_variable_needed): Look at force_output.
2896 Recurse for emulated tls.
2897 * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
2898 checks redundant with decide_is_variable_needed.
2899 (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
2900 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
2902 * expr.c (emutls_var_address): New.
2903 (expand_expr_real_1): Expand emulated tls.
2904 (expand_expr_addr_expr_1): Likewise.
2905 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
2906 * output.h (emutls_finish): Declare.
2907 * toplev.c (compile_file): Call it.
2908 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
2909 address before wrapping in CONST.
2910 * varasm.c (emutls_htab, emutls_object_type): New.
2911 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
2912 (get_emutls_object_name, get_emutls_object_type): New.
2913 (get_emutls_init_templ_addr, emutls_decl): New.
2914 (emutls_common_1, emutls_finish): New.
2915 (assemble_variable): When emulating tls, swap decls; generate
2916 constructor for the emutls objects.
2917 (do_assemble_alias): When emulating tls, swap decl and target name.
2918 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
2920 * emutls.c: New file.
2921 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
2922 tls_object for real tls.
2924 2006-10-04 Zack Weinberg <zackw@panix.com>
2926 Fix bug in constraint-check generator, reported by Rask Ingemann
2928 * genpreds.c (add_constraint): Don't remove anything from the
2930 (write_tm_constrs_h): Detect whether "op" argument is used, and
2931 mark it ARG_UNUSED if it isn't.
2932 (write_insn_const_int_ok_for_constraint): Skip the part of the
2933 expression that would test whether "op" (which is not available
2934 here) is a CONST_INT.
2936 2006-10-04 Ryan Mansfield <rmansfield@qnx.com>
2939 * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
2941 2006-10-03 Geoffrey Keating <geoffk@apple.com>
2943 * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
2944 current Leopard versions.
2945 * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
2947 2006-10-03 Kazu Hirata <kazu@codesourcery.com>
2949 * doc/install.texi: Fix typos.
2951 2006-10-03 Eric Botcazou <ebotcazou@libertysurf.fr>
2953 * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
2954 * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
2955 * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
2957 2006-10-02 Jack Howarth <howarth@bromo.med.uc.edu>
2959 * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
2960 arg to be struct mach_header_64* instead.
2962 2006-10-02 Jakub Jelinek <jakub@redhat.com>
2965 * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
2966 side effects after the outer expression's post side effects.
2968 2006-10-01 Sandra Loosemore <sandra@codesourcery.com>
2970 * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix
2971 comments to reflect actual behavior and relationship between
2972 DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
2974 * doc/c-tree.texi (Working with declarations): Fix documentation
2975 of FIELD_DECL likewise.
2977 2006-10-01 Ryan Mansfield <rmansfield@qnx.com>
2980 * doc/extend.texi: Add used variable attribute description.
2982 2006-09-30 Joseph S. Myers <joseph@codesourcery.com>
2985 * c.opt (Woverride-init): New.
2986 * c-opts.c (c_common_post_options): Default warn_override_init to
2988 * c-typeck.c (add_pending_init, output_init_element): Warn for
2989 overriding initializers without side effects.
2990 * doc/invoke.texi (-Woverride-init): Document.
2993 2006-09-30 Eric Botcazou <ebotcazou@libertysurf.fr>
2995 PR rtl-optimization/28096
2996 * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
2997 assignment has already been used as a destination earlier in the block.
2999 2006-09-29 Eric Botcazou <ebotcazou@adacore.com>
3001 * builtins.c (expand_builtin_setjmp): Delete.
3002 (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
3003 <BUILT_IN_SETJMP_SETUP>: New case.
3004 <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
3005 <BUILT_IN_SETJMP_RECEIVER>: Likewise.
3006 * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
3007 (BUILT_IN_SETJMP_DISPATCHER): Likewise.
3008 (BUILT_IN_SETJMP_RECEIVER): Likewise.
3009 * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
3010 (lower_function_body): Initialize it to false. If it is set to true
3011 at the end of the processing, emit the setjmp dispatcher.
3012 (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
3013 is __builtin_setjmp and set calls_builtin_setjmp to true as well.
3014 <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
3015 on the rhs of the assignment.
3016 (lower_builtin_setjmp): New function.
3017 * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
3018 BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
3019 * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
3020 to detect calls that can go to non-local labels. Use specific
3021 helper to create the abnormal edges associated with them.
3022 <MODIFY_EXPR>: Likewise.
3023 (make_abnormal_goto_edges): New function extracted from...
3024 (make_goto_expr_edges): ...here. Call it for computed gotos.
3025 (simple_goto_p): Minor tweak.
3026 (tree_can_make_abnormal_goto): New predicate.
3027 (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
3028 (tree_purge_dead_abnormal_call_edges): New function.
3029 * tree-flow.h (tree_can_make_abnormal_goto): Declare.
3030 (tree_purge_dead_abnormal_call_edges): Likewise.
3031 (make_abnormal_goto_edges): Likewise.
3032 * tree-inline.c (expand_call_inline): Simplify statement frobbing.
3033 Purge all dead abnormal edges if the call was in the last statement.
3034 * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
3035 (execute_fixup_cfg): If there are non-local labels in the function,
3036 scan the basic blocks and split them at calls that can go to non-local
3037 labels or add missing abnormal call edges. Write down the CFG in the
3039 (pass_fixup_cfg): Remove TODO_dump_func flag.
3040 * unwind-sjlj.c: Poison setjmp.
3041 * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
3042 * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
3043 (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
3044 (DONT_USE_BUILTIN_SETJMP): Document it.
3046 2006-09-28 Geoffrey Keating <geoffk@apple.com>
3049 * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
3050 to 1 when __ppc64__ is defined.
3051 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
3053 * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
3055 2006-09-28 Steve Ellcey <sje@cup.hp.com>
3057 * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
3058 * config/ia64/unwind-hpux.c: Delete.
3060 2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
3062 * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
3063 on the element before gimplifying it, instead of punting if it is of
3066 2006-09-28 Zdenek Dvorak <dvorakz@suse.cz>
3068 * doc/loop.texi: New file.
3069 * doc/gccint.texi: Reference loop.texi.
3070 * Makefile.in (loop.texi): Add.
3072 2006-09-27 Geoffrey Keating <geoffk@apple.com>
3074 * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
3076 * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
3077 * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
3079 2006-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
3081 * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
3083 2006-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
3085 * doc/install.texi: Document required versions of GMP and MPFR.
3087 2006-09-27 Paul Brook <paul@codesourcery.com>
3090 * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
3092 2006-09-27 Richard Sandiford <richard@codesourcery.com>
3094 * reload1.c (alter_reg): Require the alignment of the stack slot to
3095 be at least reg_max_ref_width bytes.
3096 (scan_paradoxical_subregs): Record the largest width in
3099 2006-09-26 Jakub Jelinek <jakub@redhat.com>
3103 * tree-nested.c (struct nesting_info): Added static_chain_added.
3104 (convert_call_expr): Set static_chain_added when adding static
3105 chain. Handle OMP_PARALLEL and OMP_SECTION.
3107 2006-09-25 Matthias Klose <doko@debian.org>
3109 * doc/invoke.texi: Add missing full stop.
3111 2006-09-25 Richard Henderson <rth@redhat.com>
3113 * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
3114 before cgraph_function_flags_ready.
3116 2006-09-24 Zdenek Dvorak <dvorakz@suse.cz>
3117 Adam Nemet <anemet@caviumnetworks.com>
3119 * tree-ssa-loop-ivopts.c (aff_combination_convert,
3120 determine_common_wider_type): New functions.
3121 (get_computation_aff): Use them to simplify arithmetic between
3122 UBASE and CBASE if they are shortened from the same type.
3124 2006-09-24 Kazu Hirata <kazu@codesourcery.com>
3127 * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
3128 -2147483647 - 1 instead of 0x80000000.
3130 2006-09-23 Revital1 Eres <ERES@il.ibm.com>
3132 * flags.h (HONOR_NANS): Fix typo in comment.
3134 2006-09-23 Uros Bizjak <uros@kss-loka.si>
3136 * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
3138 2006-09-23 Jakub Jelinek <jakub@redhat.com>
3142 * tree.c (merge_attributes, attribute_list_contained): If both
3143 TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
3145 * c-typeck.c (comptypes_internal): Don't consider aggregates
3146 in different TUs as compatible if there one set of attributes is
3147 not a subset of the other type's attributes.
3148 (composite_type): Try harder not to create a new aggregate type.
3150 2006-09-22 Geoffrey Keating <geoffk@apple.com>
3152 * config/i386/driver-i386.c: Always define host_detect_local_cpu.
3153 * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
3154 or x86_64 host. Define HAVE_LOCAL_CPU_DETECT.
3155 (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
3156 than replicating condition above.
3157 * config.host (i[34567]86-*-*): Always use driver-i386.o.
3159 * config/darwin.h (LINK_SYSROOT_SPEC): New.
3160 (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
3161 the linker by default.
3163 2006-09-22 Mike Stump <mrs@apple.com>
3165 * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
3168 2006-09-22 Richard Guenther <rguenther@suse.de>
3171 * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
3172 sort of stack variables stable.
3174 2006-09-22 Peter Bergner <bergner@vnet.ibm.com>
3177 * explow.c (force_reg): Set REG_POINTER flag according to
3180 2006-09-22 Zdenek Dvorak <dvorakz@suse.cz>
3182 PR tree-optimization/28888
3183 * tree-if-conv.c (combine_blocks): Rewritten.
3184 * tree-cfg.c (tree_verify_flow_info): Check that edges with
3185 EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
3187 2006-09-22 Jakub Jelinek <jakub@redhat.com>
3189 * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
3192 2006-09-21 Richard Sandiford <richard@codesourcery.com>
3194 * varasm.c (copy_constant): Fix reversed gcc_assert check.
3196 2006-09-21 Janis Johnson <janis187@us.ibm.com>
3198 * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
3200 2006-09-21 Roger Sayle <roger@eyesopen.com>
3203 * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
3204 dw_fde_current_label, to be the start of the function, i.e. the same
3205 value as dw_fde_begin.
3207 2006-09-20 Richard Sandiford <richard@codesourcery.com>
3209 * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
3210 * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
3211 (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
3212 (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
3213 (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
3214 (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
3215 (abs<mode>2, neg<mode>2): Likewise.
3216 * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
3217 (*mips_abs_ps): New define_insn.
3219 2006-09-20 Josh Conner <jconner@apple.com>
3222 * calls.c (expand_call): Allow reuse of structure return stack
3225 2006-09-20 Paul Brook <paul@codesourcery.com>
3227 * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
3230 2006-09-20 Janis Johnson <janis187@us.ibm.com>
3232 * doc/extend.texi (Decimal Float): Update for latest draft TR,
3233 clean up terminology.
3235 2006-09-20 Steve Ellcey <sje@cup.hp.com>
3238 * ifcvt.c (dead_or_predicable): Don't predicate then blocks
3239 with tablejumps in them.
3241 2006-09-20 Jakub Jelinek <jakub@redhat.com>
3244 * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
3245 wrap it into TARGET_EXPR.
3247 2006-09-20 Eric Christopher <echristo@apple.com>
3249 * config/i386/i386.c (x86_fisttp): Remove.
3250 * config/i386/i386.h (x86_fisttp): Ditto.
3251 (TARGET_FISTTP): Ditto.
3253 2006-09-19 Eric Christopher <echristo@apple.com>
3255 * doc/tm.texi (OBJC_JBLEN): Describe.
3256 * config/i386/darwin.h (OBJC_JBLEN): Define.
3257 * config/rs6000/darwin.h: Ditto.
3259 2006-09-19 Steven Bosscher <steven@gcc.gnu.org>
3261 PR rtl-optimization/21299
3262 * reload1.c (reload): Purge invalid ASMs in the final pass.
3264 2006-09-19 Steve Ellcey <sje@cup.hp.com>
3267 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
3268 pointers as legitimate constants.
3270 2006-09-19 Paul Brook <paul@codesourcery.com>
3273 * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
3275 2006-09-17 Zdenek Dvorak <dvorakz@suse.cz>
3277 PR tree-optimization/28887
3278 * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
3279 component parts from the reference.
3280 (gather_memory_references_ref): Record the reference without the
3281 nonaddressable component parts.
3283 2006-09-17 Steven Bosscher <steven@gcc.gnu.org>
3286 * c-opts.c (c_common_handle_option): Ignore the -std options
3287 if the input language is assembly.
3289 2006-09-17 Ira Rosen <irar@il.ibm.com>
3292 * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
3294 (ptr_ptr_may_alias_p): Likewise.
3295 (record_record_differ_p): New function.
3296 (base_object_differ_p): Call record_record_differ_p.
3298 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
3301 * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
3302 away for the expr argument.
3304 2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
3307 * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
3308 before using it for dumping after vectorizing loops.
3310 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
3311 Jack Howarth <howarth@bromo.med.uc.edu>
3314 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
3315 skip on error_mark_node.
3316 (rs6000_darwin64_record_arg_recurse): Likewise.
3318 2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
3320 * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
3321 * doc/rtl.texi: Remove related documentation.
3323 2006-09-16 Bernd Schmidt <bernd.schmidt@analog.com>
3325 * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
3328 2006-09-15 Jim Wilson <wilson@specifix.com>
3330 * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
3331 Handle symbol offsets same as they are handled in ia64_expand_move
3334 2006-09-16 Andreas Tobler <a.tobler@schweiz.org>
3336 * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
3337 Add forgotten parameter to the fprintf call.
3339 2006-09-15 Steve Ellcey <sje@cup.hp.com>
3341 * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
3343 2006-09-15 Uros Bizjak <uros@kss-loka.si>
3345 * doc/contrib.texi: Add my entry.
3347 2006-09-15 Nick Clifton <nickc@redhat.com>
3349 * doc/md.texi (Processor pipeline description): Fix typo in
3350 example of how to use the absence_set directive and reword the
3351 description to make it slightly easier to read.
3353 2006-09-15 Bernd Schmidt <bernd.schmidt@analog.com>
3355 * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
3356 * loop-doloop.c (doloop_optimize): Use it to limit costs of
3357 expanding the number of iterations.
3358 * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
3360 * cfgrtl.c (emit_insn_at_entry): New function.
3361 * rtl.h (emit_insn_at_entry): Declare it.
3362 * integrate.c (emit_initial_value_sets): Use it.
3364 * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
3366 * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
3368 (struct loop_work and related VEC declarations): Delete.
3369 (bfin_dump_loops): Print out new member bad.
3370 (bfin_bb_in_loop): Use plain bitmap test. Don't recurse.
3371 (bfin_scan_loop): Don't recurse.
3372 (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
3373 loops. No longer need to update outer loops if the current one is
3374 found bad. Move some validitiy checks to bfin_discover_loop.
3375 (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
3376 but changed not to check for nesting. Also changed to use the new bad
3378 (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
3379 time. Use bitmap based test to discover loop nesting.
3381 2006-09-15 Kazu Hirata <kazu@codesourcery.com>
3383 * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
3386 2006-09-14 Richard Guenther <rguenther@suse.de>
3387 Kazu Hirata <kazu@codesourcery.com>
3389 PR middle-end/28884.
3390 * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
3391 (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
3392 Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
3393 with TARGET_FUNCTION_VALUE.
3395 2006-09-14 Anatoly Sokolov <aesok@post.ru>
3398 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
3400 2006-09-13 Aldy Hernandez <aldyh@redhat.com>
3402 * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
3405 2006-09-13 Andrew Pinski <pinskia@physics.uc.edu>
3408 * dwarf2out.c (loc_descriptor_from_tree_1): Handle
3411 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
3413 * basic_block.h (bb_has_eh_pred): Fix comment.
3415 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
3417 * flow.c (calculate_global_regs_live): Invalidate eh registers
3418 on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
3419 (propagate_block): Handle eh registers as if they were set at basic
3421 * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
3423 * global.c (global_conflicts): Make eh registers to conflict with
3424 pseudos live at basic block begin.
3425 * basic_block.h (bb_has_eh_pred): New function.
3427 2006-09-13 Richard Sandiford <richard@codesourcery.com>
3429 PR rtl-optimization/28982
3430 * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
3431 index of a PRE_MODIFY or POST_MODIFY address.
3432 * reload1.c (inc_for_reload): Use find_replacement on the original
3433 base and index registers.
3435 2006-09-12 H.J. Lu <hongjiu.lu@intel.com>
3437 * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
3438 for -Os. Update __m128 alignment requirement.
3440 2006-09-13 Jan Hubicka <jh@suse.cz>
3442 * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
3444 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3446 PR rtl-optimization/28243
3447 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
3448 the insn to which the note was originally attached.
3450 2006-09-12 Andrew Pinski <pinskia@physics.uc.edu>
3451 Roger Sayle <roger@eyesopen.com>
3453 * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
3454 outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
3455 on platforms that don't use dwarf for debug info.
3457 2006-09-12 Jason Merrill <jason@redhat.com>
3460 * builtins.c (expand_builtin_setjmp_receiver): Clobber
3461 hard_frame_pointer_rtx after using it to update the frame pointer.
3463 2006-09-12 Roger Sayle <roger@eyesopen.com>
3465 * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
3466 (TARGET_ASM_CLOSE_PAREN): Likewise.
3467 * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
3468 (TARGET_ASM_CLOSE_PAREN): Likewise.
3470 2006-09-12 Roger Sayle <roger@eyesopen.com>
3473 * config/alpha/alpha.c (alpha_start_function): Don't emit stack
3474 frame information for frames larger than 512 Kbytes on Tru64 when
3475 using the native assembler.
3477 2006-09-12 Roger Sayle <roger@eyesopen.com>
3481 * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
3482 and symbols. Instead use the implementation from cse.c's hash_rtx.
3484 2006-09-12 Jan Hubicka <jh@suse.cz>
3486 PR rtl-optimization/28071
3487 * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
3488 (vect_transform_loop): Likewise.
3489 * tree-vectorizer.c (new_loop_vec_info): Likewise.
3490 (new_loop_vec_info): Likewise.
3491 (destroy_loop_vec_info): Likewise.
3492 * tree-dfa.c (create_var_ann): Use GCC_CNEW.
3493 (create_stmt_ann): Likewise.
3494 (create_tree_ann): Rename to ...
3495 (create_tree_common_ann): ... this one; allocate only the common part
3497 * tree-vn.c (set_value_handle): Use get_tree_common_ann.
3498 (get_value_handle): Likewise.
3499 * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
3500 get_tree_common_ann.
3501 * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
3502 (vinfo_for_stmt): Use stmt annotations.
3503 * tree-flow.h (tree_ann_common_t): New type.
3504 (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
3505 (tree_ann, get_tree_ann, create_tree_ann): New.
3506 * tree-flow-inline.h (get_function_ann): Do more type checking.
3507 (stmt_ann): Likewise.
3508 (tree_ann): Rename to ...
3509 (tree_common_ann): ... this one; return ony common_ann
3510 (get_tree_ann): Rename to ...
3511 (tree_common_ann): This one; return only common_ann.
3512 * tree-vect-patterns.c (vect_pattern_recog_1): Update call
3515 2006-09-11 Geoffrey Keating <geoffk@apple.com>
3517 * config.gcc (i[34567]86-*-darwin*): Set with_arch and
3518 with_cpu by default.
3520 * dwarf2out.c (dwarf_file_data): New.
3521 (enum dw_val_class): Add dw_val_class_file.
3522 (struct dw_val_struct): Add val_file.
3523 (file_table): Change to a hash table.
3524 (file_table_emitted): Delete.
3525 (file_table_last_lookup_index): Delete.
3526 (emitcount): Delete.
3527 (last_emitted_file): New.
3528 (lookup_filename): Change prototype to return a struct dwarf_file_data.
3529 (init_file_table): Delete.
3530 (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
3531 (AT_addr): Add comment.
3535 (print_die): Handle dw_val_class_file.
3536 (print_dwarf_line_table): Update for new file table structure.
3537 (attr_checksum): Do checksum a filename.
3538 (same_dw_val_p, same_attr_p): Do compare a filename.
3539 (size_of_die): Handle dw_val_class_file.
3540 (value_format): Likewise.
3541 (output_die): Likewise. Also, call maybe_emit_file here.
3542 (struct file_info): Constify filenames. Make file_idx a pointer
3543 to a struct dwarf_file_data.
3544 (struct dir_info): Constify directory names. Remove 'used' field.
3545 (struct file_name_acquire_data): New.
3546 (file_name_acquire): New.
3547 (output_file_names): Modify to handle new file data structures.
3548 (add_src_coords_attributes): Use add_AT_file.
3549 (add_call_src_coords_attributes): Likewise.
3550 (dwarf2out_imported_module_or_decl): Likewise.
3551 (gen_subprogram_die): Modify for new file data structures.
3552 (gen_variable_die): Likewise.
3553 (file_table_eq): New.
3554 (file_table_hash): New.
3555 (file_table_last_lookup): New.
3556 (lookup_filename): Rewrite to handle new file data structures.
3557 (maybe_emit_file): Rewrite to handle new file data structures.
3558 (dwarf2out_source_line): Always call lookup_filename and
3560 (dwarf2out_init): Create file_table here.
3561 (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
3562 (file_table_relative_p): New.
3563 (dwarf2out_finish): Change detection of relative filenames
3564 to work with new file data structures. Move output_line_info call
3565 after debug_info output.
3567 2006-09-11 H.J. Lu <hongjiu.lu@intel.com>
3572 * config/i386/i386.c (override_options): Always default to 16
3573 byte stack boundary.
3575 2006-09-11 Alexandre Oliva <aoliva@redhat.com>
3578 * var-tracking.c (dump_dataflow_set): Start dumping at
3580 (clobber_variable_part): Kill only the variable part in
3581 registers holding it, leaving other variables alone.
3583 2006-09-11 Josh Triplett <josh@freedesktop.org>
3585 * doc/extend.texi (Other Builtins): Actually use the macro
3586 argument in the documentation example for
3587 __builtin_types_compatible_p.
3589 2006-09-11 Eric Botcazou <ebotcazou@libertysurf.fr>
3591 PR rtl-optimization/28726
3592 * sched-deps.c (sched_analyze_reg): New function extracted from...
3593 (sched_analyze_1): ...here. Call it to analyze references to
3594 registers. Treat again writes to a stack register as writing to the
3596 (sched_analyze_2): ...and here. Call it to analyze references to
3597 registers. Treat again reads of a stack register as reading the
3600 2006-09-11 Guenter Roeck <guenter@roeck-us.net>
3601 David Edelsohn <edelsohn@gnu.org>
3604 * config/rs6000/spe.md (frob_df_di): Remove %H.
3605 (frob_di_df): Remove %H. Change evmergelo to mr.
3606 (frob_di_df_2): Remove %H. Change evldd to two loads.
3608 2006-09-11 Hideki Iwamoto <h-iwamoto@kit.hi-ho.ne.jp>
3610 * doc/cpp.texi: Fix names of charset options.
3612 2006-09-10 Andrew Pinski <pinskia@physics.uc.edu>
3615 * config/i386/i386.c (override_options): Use 128-bit
3616 stack boundary always for 64bits.
3618 2006-09-10 Eric Botcazou <ebotcazou@libertysurf.fr>
3620 PR rtl-optimization/28636
3621 * combine.c (force_to_mode): Test for side-effects before
3622 substituting by zero.
3623 (simplify_shift_const): Likewise for zero or other constants.
3625 2006-09-10 Steven Bosscher <steven@gcc.gnu.org>
3628 * builtins.c (expand_builtin_setjmp): Force next_lab to be
3631 2006-09-10 Richard Sandiford <richard@codesourcery.com>
3634 * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
3635 * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
3636 returned by mode_for_size, rather than the mode of src itself,
3637 to choose between 32-bit and 64-bit patterns.
3638 (mips_mem_fits_mode_p): New function.
3639 * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
3640 that the size of the source matches the size of the destination.
3641 (mov_<store>l, mov_<store>r): Likewise.
3643 2006-09-10 Eric Christopher <echristo@apple.com>
3645 * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
3648 2006-09-09 Eric Christopher <echristo@apple.com>
3651 * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
3654 2006-09-09 Roger Sayle <roger@eyesopen.com>
3655 Nicolas Setton <setton@adacore.com>
3657 * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
3659 2006-09-10 Andreas Schwab <schwab@suse.de>
3661 * config/m68k/m68k.md (bungt_rev): New pattern.
3663 2006-09-09 Paolo Bonzini <bonzini@gnu.org>
3664 Dale Johannesen <dalej@apple.com>
3667 * regclass.c (struct reg_pref): Update documentation.
3668 (regclass): Set prefclass to NO_REGS if memory is the best option.
3669 (record_reg_classes): Cope with a prefclass set to NO_REGS.
3671 2006-09-08 Eric Christopher <echristo@apple.com>
3673 * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
3674 * config/t-slibgcc-darwin: Support x86_64 multilib.
3675 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
3676 Return 1 for x86_64-darwin.
3677 * config/i386/t-darwin: Add m64 multilib.
3678 (LIB2_SIDITI_CONV_FUNCS): Use.
3679 (LIB2FUNCS_EXTRA): Ditto.
3680 * config/i386/darwin.h: Support x86_64.
3681 * config/i386/i386.c (override_options): Turn on flag_pic
3682 for x86_64-darwin. Disable flag_omit_pointer.
3683 (get_pc_thunk_name): Assert !TARGET_64BIT.
3684 (legitimate_address_p): Disable machopic addressing for
3686 (legitimize_pic_address): Ditto.
3687 (ix86_expand_move): Ditto.
3688 (ix86_expand_call): Ditto.
3689 (machopic_output_stub): Ditto.
3690 * config/darwin.c (machopic_select_section): Support literal16.
3691 (machopic_select_rtx_section): Ditto.
3692 * config/darwin-sections.def: Ditto.
3693 * config/darwin-64.c: New.
3695 2006-09-08 Joseph S. Myers <joseph@codesourcery.com>
3698 * c-tree.h (struct c_arg_info): Add pending_sizes.
3699 * c-parser.c (c_parser_parms_declarator,
3700 c_parser_parms_list_declarator): Initialize pending_sizes.
3701 * c-decl.c (get_parm_info): Initialize pending_sizes.
3702 (get_parm_info): Set pending_sizes.
3703 (grokdeclarator): Call put_pending_sizes for parameters for
3704 function definition only.
3706 2006-09-07 Jason Merrill <jason@redhat.com>
3709 * varasm.c (output_constant): Only strip actual no-op conversions.
3712 * config/i386/i386.c (override_options): Use 128-bit
3713 stack boundary if -msse.
3715 2006-09-07 Eric Christopher <echristo@apple.com>
3717 * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
3719 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
3722 2006-09-07 Geoffrey Keating <geoffk@apple.com>
3724 * dwarf2out.c: Remove strange characters from comment above
3725 dwarf2out_frame_debug_expr.
3727 2006-09-07 Eric Christopher <echristo@apple.com>
3729 * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
3730 * config/darwin.h: ... to here.
3732 2006-09-07 H.J. Lu <hongjiu.lu@intel.com>
3734 * config/i386/i386.c (x86_partial_flag_reg_stall): New.
3736 * config/i386/i386.h (x86_partial_flag_reg_stall): New.
3737 (TARGET_PARTIAL_FLAG_REG_STALL): New.
3739 * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
3740 TARGET_PARTIAL_FLAG_REG_STALL.
3741 (*ashldi3_cconly_rex64): Likewise.
3742 (*ashlsi3_cmp): Likewise.
3743 (*ashlsi3_cconly): Likewise.
3744 (*ashlsi3_cmp_zext): Likewise.
3745 (*ashlhi3_cmp): Likewise.
3746 (*ashlhi3_cconly): Likewise.
3747 (*ashlqi3_cmp): Likewise.
3748 (*ashlqi3_cconly): Likewise.
3749 (*ashrdi3_cmp_rex64): Likewise.
3750 (*ashrdi3_cconly_rex64): Likewise.
3751 (*ashrsi3_cmp): Likewise.
3752 (*ashrsi3_cconly): Likewise.
3753 (*ashrsi3_cmp_zext): Likewise.
3754 (*ashrhi3_cmp): Likewise.
3755 (*ashrhi3_cconly): Likewise.
3756 (*ashrqi3_cmp): Likewise.
3757 (*ashrqi3_cconly): Likewise.
3758 (*lshrdi3_cmp_rex64): Likewise.
3759 (*lshrdi3_cconly_rex64): Likewise.
3760 (*lshrsi3_cmp): Likewise.
3761 (*lshrsi3_cconly): Likewise.
3762 (*lshrsi3_cmp_zext): Likewise.
3763 (*lshrhi3_cmp): Likewise.
3764 (*lshrhi3_cconly): Likewise.
3765 (*lshrqi2_cmp): Likewise.
3766 (*lshrqi2_cconly): Likewise.
3768 2006-09-07 Uros Bizjak <uros@kss-loka.si>
3771 * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
3772 "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
3773 "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
3774 "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
3775 "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
3776 "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
3777 "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
3778 "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
3779 "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
3780 implement only CC setting effects of shift instructions.
3782 2006-09-07 Martin Michlmayr <tbm@cyrius.com>
3784 * doc/contrib.texi: Add myself.
3786 2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
3789 * stor-layout.c (relayout_decl): Don't zero the alignment if it
3790 was set by the user.
3792 2006-09-07 Paolo Bonzini <bonzini@gnu.org>
3795 * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
3796 (divsi_inv_m1): Use them.
3797 (UNSPEC_DIV_INV_TABLE): New constant.
3799 2006-09-06 James E Wilson <wilson@specifix.com>
3802 * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
3803 then call count_or_remove_death_notes.
3805 2006-09-06 Jason Merrill <jason@redhat.com>
3808 * tree-inline.c (copy_result_decl_to_var): New fn.
3809 (declare_return_variable): Use it. Call declare_inline_vars here.
3810 (expand_call_inline): Not here.
3812 2006-09-06 Diego Novillo <dnovillo@redhat.com>
3814 * doc/contrib.texi: Update my entry.
3816 2006-09-06 Nick Clifton <nickc@redhat.com>
3818 * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
3820 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
3823 * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
3824 (canonicalize_induction_variables): Likewise.
3825 (tree_unroll_loops_completely): Likewise.
3826 (tree_ssa_prefetch_arrays): Likewise.
3827 (remove_empty_loops): Likewise.
3828 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
3829 TODO_cleanup_cfg instead of directly calling
3830 cleanup_tree_cfg_loop.
3831 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
3833 (tree_unroll_loops_completely): Likewise.
3834 (remove_empty_loops): Likewise.
3835 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
3836 * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
3837 of tree_ssa_unswitch_loops.
3838 (tree_ssa_loop_ivcanon): Use the return value of
3839 canonicalize_induction_variables.
3840 (tree_ssa_empty_loop): Use the return value of
3842 (tree_complete_unroll): Use the return value of
3843 tree_unroll_loops_completely.
3844 (tree_ssa_loop_prefetch): Use the return value of
3845 tree_ssa_prefetch_arrays.
3846 * passes.c (execute_todo): Before Cleanup CFG, set
3847 updating_used_alone and after cleanup CFG, call
3848 recalculate_used_alone.
3850 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
3853 * tree-vect-transform.c (vectorizable_condition): Move the check
3854 for the type after the check for simple condition.
3856 2006-09-05 J"orn Rennecke <joern.rennecke@st.com>
3857 Kaz Kojima <kkojima@gcc.gnu.org>
3860 * mode-switching.c (optimize_mode_switching): Make the destination
3861 block of an abnormal edge have no anticipatable mode. Don't
3862 insert mode switching code at the end of the source block of
3865 2006-09-05 Paolo Bonzini <bonzini@gnu.org>
3867 PR rtl-optimization/26847
3868 * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
3869 (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
3870 (simplify_plus_minus): Count n_constants while filling ops. Replace
3871 qsort with insertion sort. Before going through the array to simplify
3872 pairs, sort it. Delay early exit until after the first sort, exiting
3873 only if no swaps occurred. Simplify pairs in reversed order, without
3874 special-casing the first iteration. Pack ops after simplifying pairs.
3876 2006-09-05 Anatoly Sokolov <aesok@post.ru>
3878 * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
3879 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3880 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3881 (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
3883 2006-09-05 Richard Guenther <rguenther@suse.de>
3885 PR tree-optimization/28900
3886 * tree-if-conv.c (find_phi_replacement_condition): Gimplify
3887 compound conditional before creating COND_EXPR condition.
3889 2006-09-05 Richard Guenther <rguenther@suse.de>
3891 PR tree-optimization/28905
3892 * tree-vrp.c (fix_equivalence_set): Manually implement
3893 !value_ranges_intersect_p to also handle symbolic ranges.
3895 2006-09-05 Richard Guenther <rguenther@suse.de>
3898 * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
3901 2006-09-04 Eric Botcazou <ebotcazou@libertysurf.fr>
3903 PR rtl-optimization/27616
3904 * cse.c (table_size): New static variable.
3905 (new_basic_block): Initialize it to 0.
3906 (remove_from_table): Decrement it.
3907 (insert): Increment it.
3908 (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
3909 (fold_rtx_mem): Enforce a cap on the recursion depth. Call
3910 fold_rtx_mem_1 if under the cap.
3911 (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
3912 the lookup of the equivalent expression and test for equality of the
3913 first operand of the equivalent expression before in turn looking up
3914 an equivalent constant for the second operand.
3916 2006-09-02 Geoffrey Keating <geoffk@apple.com>
3919 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
3920 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
3921 pointer, instead of assuming it is possible to derive the
3922 correct args size from a call insn.
3924 2006-09-02 Jakub Jelinek <jakub@redhat.com>
3927 * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
3928 (fold_builtin_mempcpy): Rename to...
3929 (fold_builtin_memory_op): ... this. Optimize one element copy
3931 (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
3933 (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
3934 (expand_builtin_memcpy, expand_builtin_mempcpy,
3935 expand_builtin_memmove): Likewise. Use fold_builtin_memory_op.
3936 (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
3937 BUILT_IN_BCOPY. Use fold_builtin_memory_op for
3938 BUILT_IN_MEM{CPY,PCPY,MOVE}.
3940 2006-09-01 DJ Delorie <dj@redhat.com>
3942 * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
3943 (stzx_16): Likewise.
3944 ("stzx_24_<mode>"): Likewise.
3945 ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
3946 ("cmp<mode>_op"): New.
3947 (cmp<mode>): Change to expander; just save operands.
3949 (b<code>): Change to expander, emit compare here.
3950 (s<code>_op): Change to use split and expander.
3951 (s<code>_24_op): Likewise.
3952 (s<code>_<mode>): New.
3953 (s<code>_<mode>_24): New.
3954 (movqicc_<code>_<mode): New.
3955 (movhicc_<code>_<mode>): New.
3958 * config/m32c/m32c.c (compare_op0, compare_op1): New.
3959 (m32c_pend_compare): New.
3960 (m32c_unpend_compare): New.
3961 (m32c_expand_scc): New.
3962 (m32c_expand_movcc): Emit the compare also.
3963 * config/m32c/predicates.md (mra_nopp_operand): New.
3965 2006-09-01 J"orn Rennecke <joern.rennecke@st.com>
3966 Richard Guenther <rguenther@suse.de>
3967 Adam Nemet <anemet@caviumnetworks.com>
3970 * builtins.c (get_pointer_alignment): Handle more forms
3971 of base addresses that can be used to derive more precise
3972 information about alignment.
3974 2006-09-01 Jason Merrill <jason@redhat.com>
3977 * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
3980 * gimplify.c (voidify_wrapper_expr): Handle null type.
3982 2006-09-01 Josh Conner <jconner@apple.com>
3985 * tree-nrv.c (dest_safe_for_nrv_p): New function.
3986 (execute_return_slot_opt): Use it.
3988 2006-08-31 Josh Conner <jconner@apple.com>
3991 * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
3992 returning aggregates.
3994 2006-08-31 Zdenek Dvorak <dvorakz@suse.cz>
3996 PR tree-optimization/28839
3997 * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
3998 blocks in that phi arguments appear.
4000 2006-08-31 Roger Sayle <roger@eyesopen.com>
4003 * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
4004 NULL, otherwise use an advance_loc4 to adjust relative to the
4006 (output_cfi) <DW_CFA_set_loc>: Update the current label.
4007 (dwarf2out_switch_text_section): Reset the current label to avoid
4008 using advance_loc4 over section boundaries.
4010 2006-08-31 Andreas Krebbel <krebbel1@de.ibm.com>
4013 * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
4014 r12 + SYMBOLIC_CONST.
4016 2006-08-30 Richard Guenther <rguenther@suse.de>
4018 * Makefile.in (see.o): Add $(EXPR_H) dependency.
4020 2006-08-30 Zdenek Dvorak <dvorakz@suse.cz>
4022 PR rtl-optimization/27735
4023 * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
4024 Add new argument to keep track of whether an irreducible region
4025 was affected. All callers changed.
4026 (fix_irreducible_loops): Removed.
4027 (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
4028 flags were invalidated.
4030 2006-08-29 H.J. Lu <hongjiu.lu@intel.com>
4032 * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
4033 instead of SF operands.
4034 (*fop_df_comm_sse): Likewise.
4035 (*fop_df_comm_i387): Likewise.
4036 (*fop_df_1_mixed): Likewise.
4037 (*fop_df_1_sse): Likewise.
4039 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>