1 2006-11-14 Paolo Bonzini <bonzini@gnu.org>
3 PR rtl-optimization/29798
5 * fwprop.c (use_killed_between): Check that DEF_INSN dominates
6 TARGET_INSN before any other check.
7 (fwprop_init): Always calculate dominators.
8 (fwprop_done): Always free them.
10 2006-11-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12 * fold-const.c (fold_strip_sign_ops): Handle COMPOUND_EXPR and
15 2006-11-13 DJ Delorie <dj@redhat.com>
17 * config/m32c/m32c.c (m32c_prepare_shift): Use a separate
18 temporary for intermediates.
20 2006-11-13 Kaz Kojima <kkojima@gcc.gnu.org>
22 * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label.
23 (sh_optimize_target_register_callee_saved): #if 0 the code
24 using NOTE_INSN_LOOP_{BEG,END}.
26 2006-11-13 Roger Sayle <roger@eyesopen.com>
28 * fold-const.c (optimize_bit_field_compare): Recursively call
29 fold when simplifying non-constant comparisons between bit-fields.
31 2006-11-13 Jakub Jelinek <jakub@redhat.com>
33 * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
37 2006-11-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
39 * config/rs6000/cell.md: New file.
40 * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New
42 (ppccell_cost): New cost matrix.
43 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
44 (rs6000_override_options): Set rs6000_always_hint to false
45 for cell. Also align functions/lables/loops to 8byte
46 for the Cell. Use PROCESSOR_CELL.
47 (rs6000_emit_epilogue): Rename using_mfcr_multiple to
49 (rs6000_variable_issue): If the insn is a nonpipelined instruction
50 on the Cell, return 0.
51 (rs6000_adjust_cost): Add Cell cost adjustments.
52 (is_microcoded_insn): Return true for Cell microcoded
54 (is_nonpipeline_insn): New function.
55 (rs6000_issue_rate): Add PROCESSOR_CELL.
56 (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8
58 (rs6000_use_sched_lookahead_guard): New function.
59 (rs6000_sched_reorder): Reorder the ready list, if the second
60 to last ready insn is a nonepipeline insn on the Cell.
61 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL.
62 (ASM_CPU_SPEC): Add Cell.
63 * config/rs6000/rs6000.md (cpu): Add Cell.
64 (cell_micro): New Attr.
67 2006-11-13 Jakub Jelinek <jakub@redhat.com>
69 * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
73 2006-11-13 Richard Guenther <rguenther@suse.de>
75 * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
77 (ix86_expand_lfloorceil): Likewise.
78 (ix86_expand_rint): Likewise.
79 (ix86_expand_floorceildf_32): Likewise.
80 (ix86_expand_floorceil): Likewise.
81 (ix86_expand_rounddf_32): Likewise.
82 (ix86_expand_truncdf_32): Likewise.
83 (ix86_expand_round): Likewise.
85 2006-11-13 Carlos O'Donell <carlos@codesourcery.com>
86 Mark Mitchell <mark@codesourcery.com>
88 * gcc.c: Organize search path variables into $prefix relative,
89 and well-known native. Add comments.
90 (add_sysrooted_prefix): Add comment.
91 (process_command): If !gcc_exec_prefix add $prefix based paths.
92 If *cross_compile == '0', add native well-known paths.
93 Assert tooldir_base_prefix is always relative.
94 (main): If print_search_dirs, and if gcc_exec_prefix is set,
95 use this value for 'install:' path.
96 * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.
98 2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
100 * config/i386/i386.c: Fix a typo in comment.
102 2006-11-13 Michael Matz <matz@suse.de>
104 * genemit.c (gen_expand): Allocate enough memory.
106 2006-11-13 Joseph Myers <joseph@codesourcery.com>
108 * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
109 __GXX_TYPEINFO_EQUALITY_INLINE but not
110 __GXX_MERGED_TYPEINFO_NAMES.
111 * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
112 __GXX_MERGED_TYPEINFO_NAMES.
113 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
114 __GXX_TYPEINFO_EQUALITY_INLINE.
116 2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
117 Zdenek Dvorak <dvorakz@suse.cz>
119 PR tree-optimization/29680
120 * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
123 2006-11-12 Jason Merrill <jason@redhat.com>
124 Andrew Pinski <pinskia@physics.uc.edu>
127 * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
129 * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
131 * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
132 * tree.c (build_vector): Handle non-_CST elements.
134 2006-11-12 Kaz Kojima <kkojima@gcc.gnu.org>
136 * genemit.c (gen_insn): Call gen_exp with a non-null used
137 when handling multiple insns.
138 (gen_expand): Likewise.
139 * reorg.c (emit_delay_sequence): Copy the delay slot insn.
140 * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
141 (movsi_const_16bit+1): Copy operands[1].
142 (call_pcrel): Copy the call_site pattern.
143 (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
145 2006-11-12 Roger Sayle <roger@eyesopen.com>
147 * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
148 condition for transformations. Use !HONOR_SIGN_DEPENDENT_ROUNDING
149 && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
150 (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
152 2006-11-12 Daniel Berlin <dberlin@dberlin.org>
154 Fix PR tree-optimization/29587
155 * tree-ssa-structalias.c (process_constraint): Don't
156 mark address taken due only to escaped vars constraint.
158 2006-11-12 Michael Matz <matz@suse.de>
159 Roger Sayle <roger@eyesopen.com>
161 PR rtl-optimization/29797
162 * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
163 BITS_BIG_ENDIAN targets.
165 2006-11-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
167 * builtins.c (fold_builtin_cosh): New.
168 (fold_builtin_1): Use it.
169 * fold-const.c (negate_mathfn_p): Add llround, lround, round,
170 trunc to the list of "odd" functions. Also add llrint, lrint,
171 rint and nearbyint when flag_rounding_math is false.
173 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
175 * tree-flow.h (name_mappings_registered_p): Declare.
176 * tree-into-ssa.c (name_mappings_registered_p): New function.
177 * tree-cfg.c (tree_can_merge_blocks_p): Check
178 name_mappings_registered_p instead of need_ssa_update_p.
180 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
182 * tree-ssa-loop.c (tree_vectorize): Return the result of
184 * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
186 * tree-vectorizer.h (vectorize_loops): Declaration removed.
187 * tree-flow.h (vectorize_loops): Declaration changed.
189 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
191 * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
193 (issue_prefetch_ref): Move assignment to write_p out of loop.
194 (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
195 SIMULTANEOUS_PREFETCHES into account.
196 (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
197 * lambda-code.c (lcm): Renamed to ...
198 (least_common_multiple): ... and exported.
199 * tree-flow.h (least_common_multiple): Declare.
201 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
203 * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
204 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Follow
205 ud-chains. Handle AND_EXPR.
206 (record_estimate): Record whether the estimate is realistic
207 and whether it is derived from a loop exit.
208 (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
209 infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
211 (compute_estimated_nb_iterations): Take only realistic bounds into
212 account. Set estimate_state. Use double_ints.
213 (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
214 and infer_loop_bounds_from_signedness. Do not consider basic blocks
215 that do not have to be always executed.
216 (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
217 to determine whether to call infer_loop_bounds_from_undefined
218 and compute_estimated_nb_iterations.
219 (n_of_executions_at_most): Use double_ints.
220 (free_numbers_of_iterations_estimates_loop): Set estimate_state.
221 (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
222 * double-int.c (double_int_to_tree): Improve comment.
223 (double_int_fits_to_tree_p): New function.
224 * double-int.h (double_int_fits_to_tree_p): Declare.
225 * tree-data-ref.c: Include langhooks.h.
226 (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
227 (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
228 (analyze_array): Do not pass estimate_only argument to
229 analyze_array_indexes.
230 (get_number_of_iters_for_loop): Build tree from the stored double_int
232 (get_references_in_stmt, find_data_references_in_stmt): New functions.
233 (find_data_references_in_loop): Use find_data_references_in_stmt.
234 * tree-data-ref.h (struct data_ref_loc_d): New.
235 (get_references_in_stmt): Declare.
236 (estimate_iters_using_array): Declaration removed.
237 * cfgloop.h (struct nb_iter_bound): Change type of bound to
238 double_int. Improve comments. Add is_exit and realistic
240 (struct loop): Changed type of estimated_nb_iterations to double_int.
241 Added estimate_state field.
242 (record_estimate): Declaration removed.
244 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
246 * params.c (set_param_value): Initialize the "set" field.
247 * params.h (struct param_info): Add "set" field.
248 (PARAM_SET_P): New macro.
249 (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
250 L1_CACHE_LINE_SIZE): New macros.
251 * toplev.c (DEFPARAM): Initialize the "set" field.
252 * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
253 SIMULTANEOUS_PREFETCHES): Removed.
254 (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
255 (tree_ssa_prefetch_arrays): Dump the values of the parameters.
256 * config/sparc/sparc.c: Include params.h.
257 (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
258 L1_CACHE_LINE_SIZE parameters.
259 * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
261 * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
263 * config/i386/i386.c: Include params.h.
264 (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
265 (override_options): Set SIMULTANEOUS_PREFETCHES and
266 L1_CACHE_LINE_SIZE parameters.
267 * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
268 (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
269 L1_CACHE_LINE_SIZE parameters.
270 * config/ia64/ia64.c (ia64_optimization_options): Set
271 SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
272 * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
274 * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
275 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
276 * doc/invoke.texi: Document new params.
278 2006-11-12 Roger Sayle <roger@eyesopen.com>
280 PR tree-optimization/13827
281 * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
284 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
286 * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
287 update_single_exit_for_duplicated_loops): New functions.
288 (duplicate_loop_to_header_edge): Use
289 update_single_exit_for_duplicated_loops.
290 * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
291 functions only with ENABLE_CHECKING.
293 2006-11-12 Andreas Schwab <schwab@suse.de>
295 * except.c (sjlj_emit_function_enter): Remove unused variable.
297 2006-11-11 Roger Sayle <roger@eyesopen.com>
299 * fold-const.c (int_binop_types_match_p): New function.
300 (size_binop): Relax constraint that both arguments must both have
301 exactly the same sizetype type. Instead use int_binop_types_match_p.
302 (size_diffop): Likewise.
304 (make_range): Use build_int_cst instead of fold_convert.
305 (fold_cond_expr_with_comparison): Use build_int_cst to construct
306 integer constants of the correct type.
307 (fold_div_compare): Likewise.
308 (fold_single_bit_test): Likewise.
309 (fold_binary): Likewise.
310 * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
311 has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
313 2006-11-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
316 * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
317 non null value if the struct memory access is in the 0th
320 2006-11-12 Jie Zhang <jie.zhang@analog.com>
323 2006-11-11 Jie Zhang <jie.zhang@analog.com>
324 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
327 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
328 instead of builtin_define for bfin and BFIN.
330 2006-11-11 Jie Zhang <jie.zhang@analog.com>
332 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
335 2006-11-11 Jan Hubicka <jh@suse.cz>
337 * extended.texi (__builtin_expect): We no longer require second argument
339 * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
340 * builtins.c (expand_builtin_expect): Simplify.
341 (expand_builtin_expect_jump): Kill.
342 * final.c (final_scan_insn): Do not skip the removed notes.
343 * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
344 EXPECTED_VALUE): Remove.
345 * dojump.c (do_jump): Do not care about __builtin_expect.
346 * predict.c (expected_value_to_br_prob): Kill.
347 * function.c (expand_function_end): Do not expand
348 NOTE_INSN_REPEATED_LINE_NUMBER.
349 * print-rtl.c (print_rtx): Do not pretty print the removed notes.
350 * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
351 * cfgexpand.c (add_reg_br_prob_note): Export.
352 * cfgcleanup.c (rest_of_handle_jump2): Do not call
353 expected_value_to_br_prob.
354 * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
355 * rtl.h (add_reg_br_prob_note): Declare.
357 2006-11-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
359 * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
361 2006-11-11 Jan Hubicka <jh@suse.cz>
363 * predict.c (predict_loops): Kill RTL variant.
365 2006-11-11 Jan Hubicka <jh@suse.cz>
367 * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
368 * modulo-sched.c (find_line_note): Remove.
369 (loop_canon_p): Do not worry about line number notes.
370 (sms_schedule): Likewise.
371 * cse.c (cse_main): Likewise.
372 * regmove.c (fixup_match_1): Likewise
373 * function.c (emit_return_info_block): Likewise.
374 (expand_function_end): Likewise.
375 (thread_prologue_an_epilogue_insns): Likewise.
376 * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
378 * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
379 emit_note_copy_after): Kill.
380 (emit_note_copy): Do not worry about line numbers.
381 * jump.c (purge_line_number_notes): Kill.
382 (pass_purge_lineno_notes): Kill.
383 * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
385 * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
386 * passes.c (init_optimization_passes): Don't purge_lineno_notes.
387 * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
388 * tree-pass.h (pass_purge_lineno_notes): Kill.
389 * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
390 rm_redundant_line_notes.
391 * sched-rgb.c (schedule_region): Don't rm_line_notes,
392 rm_redundant_line_notes.
393 * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
394 * haifa-sched.c: Update comment about handling notes.
395 (unlink_line_notes): Kill.
396 (rm_line_notes): Kill.
397 (save_line_notes): Simplify.
398 (rm_redundant_line_notes): Kill.
400 2006-11-11 Richard Guenther <rguenther@suse.de>
402 * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
403 Remove unused tree codes.
404 * tree-vrp.c (extract_range_from_unary_expr): Remove handling
405 of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
406 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
407 * tree.c (stabilize_reference): Likewise.
408 * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
409 fold_unary): Likewise.
410 * tree-gimple.c (is_gimple_cast): Likewise.
411 * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
412 * expr.c (expand_expr_real_1): Likewise.
413 * tree-eh.c (tree_could_trap_p): Likewise.
414 * gimplify.c (gimplify_expr): Likewise.
415 * tree-inline.c (estimate_num_insns_1): Likewise.
416 * tree-cfg.c (verify_expr): Likewise.
418 2006-11-11 Zdenek Dvorak <dvorakz@suse.cz>
420 * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
421 * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
422 (tree_ssa_prefetch_arrays): Do not dump for removed loops.
424 2006-11-11 Richard Sandiford <richard@codesourcery.com>
427 * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
428 constraints accept neither registers or memories.
430 2006-11-11 Jie Zhang <jie.zhang@analog.com>
432 * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
433 (NO_PROFILE_COUNTERS): Define as 1.
435 2006-11-10 Roger Sayle <roger@eyesopen.com>
437 * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
438 Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
440 2006-11-10 Peter Bergner <bergner@vnet.ibm.com>
442 * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
444 2006-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
446 * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
447 (fold_builtin_hypot): Likewise.
448 * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
450 * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
452 2006-11-10 Roger Sayle <roger@eyesopen.com>
454 * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
455 when attempting to build INTEGER_CSTs of non-integral types.
456 * expmed.c (make_tree): Use the correct type, i.e. the inner
457 type, when constructing the individual elements of a CONST_VECTOR.
459 2006-11-10 Jan Hubicka <jh@suse.cz>
461 * cse.c (cse_process_notes): Copy the propagated value.
462 * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
464 * gcse.c (try_replace_reg): Copy the replacement.
465 * i386.c (emit_i387_cw_initialization): Copy stored_mode.
466 (assign_386_stack_local): Always return copied memory expression
467 * function.c (instantiate_virtual_regs_in_insn): Copy the operand
470 2006-11-10 Jan Hubicka <jh@suse.cz>
472 * final.c (final): Walk from first instruction.
473 * cfglayout.c (insn_locators_initialize): Remove line number notes.
475 2006-11-10 Uros Bizjak <ubizjak@gmail.com>
478 * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn
480 (umulv8hi3_highpart): Ditto.
481 (vec_widen_smult_hi_v8hi): New expander.
482 (vec_widen_smult_lo_v8hi): Ditto.
484 2006-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
487 * builtins.c (do_mpfr_arg3): New.
488 (fold_builtin_1): Handle builtins fma, fmin and fmax.
490 2006-11-09 Eric Christopher <echristo@apple.com>
495 * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
496 * config.gcc (powerpc64-*-darwin*): New target.
497 * config.host: Ditto.
498 * config/rs6000/darwin64.h: New file.
499 * config/rs6000/x-darwin64: Ditto.
500 * config/rs6000/host-ppc64-darwin.c: Ditto.
502 2006-11-09 Steve Ellcey <sje@cup.hp.com>
504 * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Use HP-UX millicode
505 routines for integer division.
507 2006-11-09 Daniel Jacobowitz <dan@codesourcery.com>
509 * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete.
511 2006-11-09 Serge Belyshev <belyshev@depni.sinp.msu.ru>
514 * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
516 2006-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
518 * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
519 simplify_subreg with BLKmode outer mode.
521 2006-11-08 Brooks Moses <brooks.moses@codesourcery.com>
523 * doc/invoke.texi: Minor formatting fixes in option lists.
525 2006-11-08 Zdenek Dvorak <dvorakz@suse.cz>
527 PR tree-optimization/29738
528 * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments.
529 (ccp_lattice_t): Remove UNKNOWN_VAL.
530 (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node):
531 Do not handle UNKNOWN_VAL.
532 (get_default_value): Set initial value of virtual operands to
534 (get_value): Always use get_default_value on uninitialized
536 (set_value_varying, surely_varying_stmt_p): New functions.
537 (set_lattice_value): Do not pass argument to get_value.
538 Do not handle UNKNOWN_VAL.
539 (likely_value): Follow the semantics described in the comment.
540 (ccp_initialize): Use surely_varying_stmt_p. Do not mark
541 phi nodes DONT_SIMULATE_AGAIN.
542 (ccp_fold): Do not pass argument to get_value.
543 (fold_const_aggregate_ref, visit_assignment): Ditto. Do not
546 2006-11-08 Andrew Pinski <Andrew_Pinski@playstation.sony.com>
548 * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
549 HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer.
551 2006-11-08 Roger Sayle <roger@eyesopen.com>
553 * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a
554 test for inclusion rather than as a test for exclusion.
555 * tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
556 the condition after calling fold_binary.
557 * fold-const.c (fold_inf_compare): Remove in_gimple_form check.
558 (fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
559 * builtins.c (fold_builtin_isascii): Likewise.
560 (fold_builtin_isdigit): Likewise.
562 2006-11-08 Carlos O'Donell <carlos@codesourcery.com>
564 * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE.
565 * configure: Regenerate.
567 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
569 * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take
570 enum argument instead of bool.
571 (vect_analyze_operations): Call vectorizable_type_promotion.
572 * tree-vectorizer.h (type_promotion_vec_info_type): New enum
573 stmt_vec_info_type value.
574 (supportable_widening_operation, vectorizable_type_promotion): New
575 function declarations.
576 * tree-vect-transform.c (vect_gen_widened_results_half): New function.
577 (vectorizable_type_promotion): New function.
578 (vect_transform_stmt): Call vectorizable_type_promotion.
579 * tree-vect-analyze.c (supportable_widening_operation): New function.
580 * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
582 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
585 * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
586 (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes.
587 * tree-inline.c (estimate_num_insns_1): Add cases for above new
589 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
590 * expr.c (expand_expr_real_1): Likewise.
591 * optabs.c (optab_for_tree_code): Likewise.
592 (init_optabs): Initialize new optabs.
593 * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab,
594 vec_widen_smult_hi_optab, vec_widen_smult_lo_optab,
595 vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab,
596 vec_unpacku_lo_optab): Initialize new optabs.
597 * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo):
598 (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi,
599 OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New
601 (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab):
602 (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab):
603 (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab):
604 (vec_unpacku_lo_optab): New optabs.
605 * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi):
606 (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo):
607 (vec_widen_smult_hi, vec_widen_smult_lo): New.
608 * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR):
609 (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR):
610 (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New.
612 * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
613 (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
614 (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New.
615 (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New.
616 (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to
617 implement the unsigned unpacking patterns.
618 (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi):
619 (vec_unpacks_lo_v8hi): New signed unpacking patterns.
620 (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi):
621 (vec_unpacku_lo_v8hi): New unsigned unpacking patterns.
622 (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi):
623 (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi):
624 (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi):
625 (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening
626 multiplication patterns.
628 * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New.
629 * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
630 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
631 * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New.
632 (rs6000_builtin_mul_widen_odd): New.
633 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
634 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
635 * tree-vectorizer.h (enum vect_relevant): New enum type.
636 (_stmt_vec_info): Field relevant chaned from bool to enum
638 (STMT_VINFO_RELEVANT_P): Updated.
639 (STMT_VINFO_RELEVANT): New.
640 * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT
641 instead of STMT_VINFO_RELEVANT_P.
642 * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p):
643 Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT,
644 and boolean variable with enum vect_relevant.
645 (vect_mark_stmts_to_be_vectorized): Likewise + update documentation.
646 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
647 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
649 2006-11-08 Richard Henderson <rth@redhat.com>
651 * config/i386/sse.md (vec_widen_umult_hi_v8hi,
652 vec_widen_umult_lo_v8hi): New.
653 (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si,
654 vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New.
656 * config/i386/i386.c (ix86_expand_sse_unpack): New.
657 * config/i386/i386-protos.h (ix86_expand_sse_unpack): New.
658 * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi,
659 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi,
660 vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi,
661 vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si,
662 vec_unpacks_lo_v4si): New.
664 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
666 * tree-vect-transform.c (vectorizable_type_demotion): New function.
667 (vect_transform_stmt): Add case for type_demotion_vec_info_type.
668 (vect_analyze_operations): Call vectorizable_type_demotion.
669 * tree-vectorizer.h (type_demotion_vec_info_type): New enum
670 stmt_vec_info_type value.
671 (vectorizable_type_demotion): New function declaration.
672 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
675 * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes.
676 * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and
678 * tree-iniline.c (estimate_num_insns_1): Likewise.
679 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
680 * optabs.c (optab_for_tree_code): Likewise.
682 * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode
683 compared against the predicate of the result is not 'mode' (the input
684 to the function) but a mode with half the size of 'mode'.
685 (init_optab): Initialize new optabs.
686 * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat):
688 (vec_pack_mod_optab, vec_pack_ssat_optab, vec_pack_usat_optab): New
690 * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab):
691 (vec_pack_usat_optab): Initialize new optabs.
692 * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New.
693 * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New.
695 2006-11-08 Richard Henderson <rth@redehat.com>
697 * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si):
698 (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi):
699 (vec_interleave_highv8hi, vec_interleave_lowv8hi):
700 (vec_interleave_highv4si, vec_interleave_lowv4si):
701 (vec_interleave_highv2di, vec_interleave_lowv2di): New.
703 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
705 * tree-vect-transform.c (vectorizable_reduction): Support multiple
707 (vect_transform_stmt): Removed redundant code.
709 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
711 * tree-vect-transform.c (vectorizable_operation): Support multiple
714 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
716 * tree-vect-transform.c (vect_align_data_ref): Removed.
717 (vect_create_data_ref_ptr): Added additional argument - ptr_incr.
718 Updated function documentation. Return the increment stmt in ptr_incr.
719 (bump_vector_ptr): New function.
720 (vect_get_vec_def_for_stmt_copy): New function.
721 (vect_finish_stmt_generation): Create a stmt_info to newly created
723 (vect_setup_realignment): Call vect_create_data_ref_ptr with additional
725 (vectorizable_reduction, vectorizable_assignment): Not supported yet if
726 VF is greater than the number of elements that can fit in one vector
728 (vectorizable_operation, vectorizable_condition): Likewise.
729 (vectorizable_store, vectorizable_load): Support the case that the VF
730 is greater than the number of elements that can fit in one vector word.
731 (vect_transform_loop): Don't fail in case of multiple data-types.
732 * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail
733 in case of multiple data-types; the smallest type determines the VF.
734 (vect_analyze_data_ref_dependence): Don't record datarefs as same_align
735 if they are of different sizes.
736 (vect_update_misalignment_for_peel): Compare misalignments in terms of
737 number of elements rather than number of bytes.
738 (vect_enhance_data_refs_alignment): Fix/Add dump printouts.
739 (vect_can_advance_ivs_p): Fix a dump printout
741 2006-11-07 Eric Christopher <echristo@apple.com>
743 * libgcc2.c (__bswapdi2): Rename from bswapDI2.
745 * libgcc2.h: Remove transformation of bswap routines.
746 * config/i386/i386.md (bswapsi2): New.
749 2006-11-07 Jakub Jelinek <jakub@redhat.com>
751 * c-common.c (c_common_attributes): Add gnu_inline attribyte.
752 (handle_gnu_inline_attribute): New function.
753 * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute.
754 (merge_decls, start_decl, start_function): Likewise.
755 * doc/extend.texi: Document gnu_inline attribute.
757 2006-11-07 Steve Ellcey <sje@cup.hp.com>
760 * config/ia64/t-hpux (LIB1ASMFUNCS): Filter out _fixtfdi,
761 _fixunstfdi, and _floatditf
763 2006-11-06 Anatoly Sokolov <aesok@post.ru>
765 * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove
767 * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove.
768 (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out,
769 lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value
770 which start in an odd register.
772 2006-11-07 Richard Sandiford <richard@codesourcery.com>
774 * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo.
776 2006-11-07 Josh Conner <jconner@apple.com>
778 * doc/invoke.texi (fstrict-aliasing): Move implementation
780 * doc/tree-ssa.texi (Alias analysis): ...here.
782 2006-11-07 Richard Guenther <rguenther@suse.de>
784 PR tree-optimization/29610
785 * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
786 of tree_purge_dead_eh_edges as it may free dominators.
788 * g++.dg/other/pr29610.C: New testcase.
790 2006-11-07 David Ung <davidu@mips.com>
792 * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
793 costs when optimizing for size.
794 (override_options): Use mips_rtx_cost_optimize_size table for cost
797 2006-11-07 Jie Zhang <jie.zhang@analog.com>
799 * gcc.c (process_command): Treat -b as normal switch if its argument
802 2006-11-07 David Ung <davidu@mips.com>
804 * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
807 2006-11-06 Eric Christopher <echristo@apple.com>
809 * config.gcc: Add x86_64-darwin host support.
810 * config.host: Ditto.
811 * config/i386/darwin64.h: New file.
812 * config/i386/t-darwin64: Ditto.
814 2006-11-06 Janis Johnson <janis187@us.ibm.com>
816 * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
817 and output-exists-not.
819 2006-11-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
822 * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
823 checking for overflow.
825 2006-11-06 Jan van Dijk <jan@etpmod.phys.tue.nl>
827 * configure.ac: Fixed typo in case statement: :: changed to ;;
829 2006-11-06 Bob Wilson <bob.wilson@acm.org>
831 * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
832 count_leading_zeros, and count_trailing_zeros.
833 * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
834 (TARGET_FOLD_BUILTIN): Define.
835 (TARGET_EXPAND_BUILTIN): Define.
836 (xtensa_init_builtins): New.
837 (xtensa_fold_builtin): New.
838 (xtensa_expand_builtin): New.
839 (xtensa_rtx_costs): Add CTZ and CLZ. Adjust costs for MULT.
840 * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
841 (CLZ_DEFINED_VALUE_AT_ZERO): Define.
842 (CTZ_DEFINED_VALUE_AT_ZERO): Define.
843 * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
844 (any_extend): New code macro.
845 (u, su): New code attributes.
846 (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
847 (nsau): Remove; replaced by clzsi2.
848 (ffssi2): Use clzsi2.
849 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
850 _clzsi2, _ctzsi2, and _ffssi2. Rename _nsau to _clz.
851 * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
852 (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
853 (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
855 2006-11-06 Vladimir Prus <vladimir@codesourcery.com>
857 * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
859 * config/arm/t-strongarm-elf: Likewise.
860 * config/arm/t-pe: Likewise.
861 * config/arm/t-arm-elf: Likewise.
862 * config/arm/t-xscale-elf: Likewise.
863 * config/arm/t-arm-coff: Likewise.
864 * config/arm/t-xscale-coff: Likewise.
865 * config/arm/t-wince-pe: Likewise.
867 2006-11-05 Kaz Kojima <kkojima@gcc.gnu.org>
869 * config/sh/lib1funcs-4-300.asm: Guard entire file with
872 2006-11-05 Jakub Jelinek <jakub@redhat.com>
875 * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
878 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
881 * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
882 as a valid 80387 constant.
883 (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
884 * config/i386/i386.md (unnamed splitter): Split the load of
885 constant -0.0 or -1.0 into the load of 0.0 or 1.0, followed
888 2006-11-04 Richard Earnshaw <rearnsha@arm.com>
890 * arm.c (thumb_legitimate_addres_p): Allow any constant offset
891 from the soft-frame, argument and virtual registers.
893 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
895 * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
896 patterns for standard 80387 constants.
898 2006-11-03 Paolo Bonzini <bonzini@gnu.org>
899 Steven Bosscher <steven@gcc.gnu.org>
901 * fwprop.c: New file.
902 * Makefile.in: Add fwprop.o.
903 * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
904 * passes.c (init_optimization_passes): Schedule forward propagation.
905 * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
907 * timevar.def (TV_FWPROP): New.
908 * common.opt (-fforward-propagate): New.
909 * opts.c (decode_options): Enable forward propagation at -O2.
910 * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
911 * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
912 canon_for_address, table_size): Remove.
913 (new_basic_block, insert, remove_from_table): Remove references to
915 (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
916 simplification loop more straightforward by not calling fold_rtx
918 (equiv_constant): Move here a small part of fold_rtx_subreg,
919 do not call fold_rtx. Call avoid_constant_pool_reference
921 * recog.h (canonicalize_change_group): New.
923 * doc/invoke.texi (Optimization Options): Document fwprop.
924 * doc/passes.texi (RTL passes): Document fwprop.
926 2006-11-03 Geoffrey Keating <geoffk@apple.com>
928 * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
929 (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
930 (grokdeclarator): Likewise.
932 2006-11-03 Steven Bosscher <steven@gcc.gnu.org>
934 * tree-dump.c (dump_enable_all): Rename local variable
935 ir_type to avoid name conflicts.
936 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
937 instead of using ir_type().
938 * profile.c (tree_register_profile_hooks): Likewise.
939 * value-prof.c (tree_register_value_prof_hooks): Likewise.
940 * basic-block.h (struct edge_def): Likewise.
941 * config/arm/arm.c (legitimize_pic_address): Likewise.
942 * coretypes.h (ir_type): New enum of all intermediate languages
944 * cfghooks.c (ir_type): Rename to...
945 (current_ir_type): ...this. Distinguish between cfgrtl and
946 cfglayout mode when the current IR is RTL. Return enum ir_type.
947 * cfghooks.h (ir_type): Replace with current_ir_type prototype.
949 2006-11-03 Paul Brook <paul@codesourcery.com>
951 * config/arm/arm.c (arm_file_start): New function.
952 (TARGET_ASM_FILE_START): Define.
953 (arm_default_cpu): New variable.
954 (arm_override_options): Set arm_default_cpu.
956 2006-11-03 David Ung <davidu@mips.com>
958 * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
959 PROCESSOR_24KC and PROCESSOR_24KF.
960 * config/mips/mips.c (mips_cpu_info_table): Add processor names
961 and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
962 (mips_rtx_cost_data): Add costs for the 24kc.
963 * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
964 * config/mips/24k.md: Remove references to 24k and replace with
965 uses of 24kc/24kf in the appropriate reservations.
966 * doc/invoke.texi (MIPS Options): Updated.
968 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
970 * config/sh/crt1.asm: Fix #ifdef indent.
972 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
973 Merged from STMicroelectronics sources:
974 2006-10-06 Andrew Stubbs <andrew.stubbs@st.com>
975 * config/sh/crt1.asm (vbr_600): Add missing #if.
976 2006-08-03 J"orn Rennecke <joern.rennecke@st.com>
977 * sh.opt (mfused-madd): New option.
978 * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
979 2006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
980 * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
981 Remove pointless handler at VBR+0.
982 (vbr_200, vbr_300, vbr_500): Remove pointless handler.
983 (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
984 fr7. Make sure the timer handler is called with the correct FPU
985 precision setting, according to the ABI.
986 2006-06-14 J"orn Rennecke <joern.rennecke@st.com>
987 * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
988 * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
989 (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
990 2006-06-09 J"orn Rennecke <joern.rennecke@st.com>
991 * sh.md (cmpgeusi_t): Change into define_insn_and_split. Accept
992 zero as second operand.
993 2006-04-28 J"orn Rennecke <joern.rennecke@st.com>
994 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
995 Fixed some bugs related to negative values, in particular -0
996 and overflow at -0x80000000.
997 * config/sh/divcost-analysis: Added sh4-300 figures.
998 2006-04-27 J"orn Rennecke <joern.rennecke@st.com>
999 * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
1000 2006-04-26 J"orn Rennecke <joern.rennecke@st.com>
1001 * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
1002 ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
1003 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
1005 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
1007 2006-04-24 J"orn Rennecke <joern.rennecke@st.com>
1008 SH4-300 scheduling description & fixes to SH4-[12]00 description:
1009 * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
1010 mac_mem, mem_mac, dfp_mul, fp_cmp.
1011 (insn_class, dfp_comp, any_fp_comp): Update.
1012 (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
1013 (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
1014 (muldf3_i): Likewise.
1015 (movsi_i): Split rI08 alternative into two separate alternatives.
1017 (movsi_ie, movsi_i_lowpart): Likewise.
1018 (movqi_i): Split ri alternative into two separate alternatives.
1020 * sh1.md (sh1_load_store, sh1_fp): Update.
1021 * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
1022 (mac_mem, sh4_fpscr_toggle): New insn_reservations.
1023 * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
1024 (sh4a_fp_double_arith): Likewise.
1025 * sh4-300.md: New file.
1026 * sh.c (sh_handle_option): Handle m4-300* options.
1027 (sh_adjust_cost): Fix latency of auto-increments.
1028 Handle SH4-300 differently than other SH4s. Check for new insn types.
1029 * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
1030 been set by an option.
1031 * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
1032 (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
1033 (mbranch-cost=): Likewise.
1034 * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
1036 * sh.md (mulsf3): Remove special expansion code.
1037 (mulsf3_ie): Now a define_insn_and_split.
1038 (macsf3): Allow for TARGET_SH4.
1040 * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
1041 * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
1042 (expand_cbranchdi4): Likewise.
1043 (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
1044 CONST_DOUBLE if the outer code is COMPARE.
1045 * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
1046 TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
1047 (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
1048 (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
1049 Remove redundant fp_{zero,one}_operand checks.
1050 * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
1051 * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
1052 (expand_cbranchdi4): Likewise.
1053 2006-04-20 J"orn Rennecke <joern.rennecke@st.com>
1054 * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
1056 2006-11-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
1058 * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
1061 2006-11-02 Brooks Moses <brooks.moses@codesourcery.com>
1063 * doc/invoke.texi: Fix mfp-trap-mode typo.
1065 2006-11-02 Carlos O'Donell <carlos@codesourcery.com>
1067 * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
1068 * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
1069 file_end_indicate_exec_stack.
1070 * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
1072 * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
1073 for a non-executable stack.
1074 * crti.asm: Likewise.
1075 * crtn.asm: Likewise.
1076 * libunwind.S: Likewise.
1078 2006-11-02 Ben Elliston <bje@au.ibm.com>
1080 * tree-ssa.c (warn_uninit): Use expand_location variables for
1081 locus and declaration locus.
1083 2006-11-02 Kaz Kojima <kkojima@gcc.gnu.org>
1086 * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
1087 (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
1088 cmp{eq,gt,gtu}{si,di}_media.
1089 (*cmpne0si_media): Remove.
1090 (*movsicc_umin): Adjust gen_cmp*_media call.
1091 (unordered): Change the mode of unordered and operands[1] to
1093 (seq): Adjust gen_cmp*_media calls. Make the mode of
1094 a temporary result of compare SImode if needed. If the mode
1095 of operands[0] is DImode, extend the temporary result to DImode.
1096 (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
1097 (sunorderd): Change the mode of match_operand and unorderd to
1099 (cmpeq{sf,df}_media): Remove.
1100 (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
1101 (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
1102 and compare operation to SImode.
1104 2006-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
1106 * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
1108 (sparc64-sun-solaris2*): Likewise.
1110 2006-11-02 Paul Brook <paul@codesourcery.com>
1112 * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
1113 from priority argument. Use different section for non-default
1115 * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
1117 2006-11-02 Eric Botcazou <ebotcazou@adacore.com>
1120 * except.c (switch_to_exception_section): Do not cache the section
1121 if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
1122 and flag_function_sections is set.
1124 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1127 * builtins.c (do_mpfr_sincos): New.
1128 (fold_builtin_1): Use it to fold builtin sincos.
1130 2006-11-01 Roger Sayle <roger@eyesopen.com>
1132 * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
1133 it into -D_REENTRANT.
1135 2006-11-01 Roger Sayle <roger@eyesopen.com>
1137 * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
1138 whether the assembler supports taking the difference of symbols in
1139 different sections. On x86/Solaris, GAS does but Solaris as doesn't.
1140 * configure: Regenerate.
1141 * config.in: Regenerate.
1142 * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
1143 the assembler doesn't support taking the difference of symbols in
1144 different sections, i.e. we're using the native solaris assembler.
1146 2006-11-01 Pete Steinmetz <steinmtz@us.ibm.com>
1147 Peter Bergner <bergner@vnet.ibm.com>
1149 * doc/invoke.texi: Add cpu_type power6x
1150 (RS/6000 and PowerPC Options): Add -mmfpgpr.
1151 * config.gcc: Add cpu_type power6x.
1152 * configure.ac: Add test for mf{t,f}gpr instructions.
1153 (HAVE_AS_MFPGPR): New.
1154 * config.in: Regenerate.
1155 * configure: Regenerate.
1156 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
1157 * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
1158 shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
1159 and mftgpr attributes.
1160 (define_attr "cpu"): Add power6.
1161 Change instruction sequences to use new attributes.
1162 (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
1163 (fix_truncdfsi2_mfpgpr): New.
1164 (floatsidf_ppc64_mfpgpr): New.
1165 (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
1166 (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
1167 (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
1168 (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
1169 (fix_truncdfsi2): Use gpc_reg_operand constraint.
1170 * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
1171 7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
1172 Add descriptions for insert_dword, shift,trap,var_shift_rotate,
1173 cntlz,exts and var_delayed_compare.
1174 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1175 _ARCH_PWR6X, if features enabled.
1176 * config/rs6000/rs6000.opt (mmfpgpr): New.
1177 * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
1178 (cached_can_issue_more): New variable.
1179 (processor_costs): Add power6_cost.
1180 (rs6000_sched_init): New function.
1181 (is_dispatch_slot_restricted): Deleted.
1182 (set_to_load_agen): New function.
1183 (is_load_insn,is_store_insn): New functions.
1184 (adjacent_mem_locations): New function.
1185 (insn_must_be_first_in_group): New function.
1186 (insn_must_be_last_in_group): New function.
1187 (rs6000_sched_reorder): New function.
1188 (rs6000_sched_reorder2): New function.
1189 (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
1190 TARGET_SCHED_REORDER2): Define.
1191 (processor_target_table): Use PROCESSOR_POWER6 for power6.
1192 Add power6x. Add MASK_MFPGPR for power6x.
1193 (POWERPC_MASKS): Add MASK_MFPGPR.
1194 (rs6000_override_options): Set rs6000_always_hint to false
1195 for power6. Set rs6000_align_branch_targets. Replace
1196 rs6000_sched_groups check with rs6000_align_branch_targets.
1197 Use PROCESSOR_POWER6.
1198 (last_scheduled_insn): New variable.
1199 (load_store_pendulum): New variable.
1200 (rs6000_variable_issue): Set last_scheduled_insn and
1201 cached_can_issue_more.
1202 (rs6000_adjust_cost): Add power6 cost adjustments.
1203 (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
1204 with insn_must_be_first_in_group. Add power6 priority adjustments.
1205 (rs6000_issue_rate): Add CPU_POWER6.
1206 (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
1207 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
1208 (TARGET_MFPGPR): New.
1209 (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
1210 (ASM_CPU_SPEC): Add power6x.
1211 (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
1213 * config/rs6000/power6.md: New file.
1215 2006-11-01 Adam Nemet <anemet@caviumnetworks.com>
1217 * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
1218 HOST_WIDE_INT_PRINT to print high and low parts. Use
1219 HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT. When
1220 printing a hexadecimal number prefix it with 0x.
1222 2006-11-01 Chris Johns <chris@contemporary.net.au>
1225 * Makefile.in (install-driver): Use exeext when installing
1226 $target-gcc-$version.
1228 2006-11-01 Douglas Gregor <doug.gregor@gmail.com>
1230 * c-common.c (flag_cpp0x): New.
1231 * c-common.h (flag_cpp0x): New.
1232 * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
1233 supported, define __GXX_EXPERIMENTAL_CPP0X__.
1234 * c-opts.c (set_std_cxx0x): New.
1235 (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
1236 * c.opt (std=c++0x): Document.
1237 (std=gnu++0x): Ditto.
1238 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
1239 * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
1241 2006-11-01 Richard Guenther <rguenther@suse.de>
1243 * config/i386/i386.c (ix86_expand_rint): Fix issues with
1245 (ix86_expand_floorceildf_32): Likewise.
1246 (ix86_expand_floorceil): Likewise.
1247 (ix86_expand_trunc): Likewise.
1249 2006-10-31 Andrew Pinski <pinskia@gmail.com>
1251 * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
1254 2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
1256 * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
1258 * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
1260 * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
1262 * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
1263 * configure.ac (use_cxa_atexit): As a special case, don't test
1264 for libc definition of __cxa_atexit on mingw32
1265 * configure: Regenerate.
1266 * config.gcc (i[34567]86-pc-mingw32): Default to
1267 enable__cxa_atexit=yes.
1269 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1271 * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
1273 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1276 * c-decl.c (start_struct): Don't create self-containing
1278 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
1280 * config/rs6000/rs6000-protos.h
1281 (darwin_rs6000_special_round_type_align): New.
1282 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
1283 (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
1285 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1287 * toplev.c (compile_file): Call final_write_globals
1288 even if there have been errors.
1290 2006-10-31 Eric Christopher <echristo@apple.com>
1291 Falk Hueffner <falk@debian.org>
1293 * doc/extend.texi (__builtin_bswap32): Document.
1294 (__builtin_bswap64): Ditto.
1295 * doc/libgcc.texi (bswapsi2): Document.
1297 * doc/rtl.texi (bswap): Document.
1298 * optabs.c (expand_unop): Don't widen a bswap.
1299 (init_optabs): Init bswap. Set libfuncs explicitly
1300 for bswapsi2 and bswapdi2.
1301 * optabs.h (OTI_bswap): New.
1302 (bswap_optab): Ditto.
1303 * genopinit.c (optabs): Handle bswap_optab.
1304 * tree.h (tree_index): Add TI_UINT32_TYPE and
1306 (uint32_type_node): New.
1307 (uint64_type_node): Ditto.
1308 * tree.c (build_common_tree_nodes_2): Initialize
1309 uint32_type_node and uint64_type_node.
1310 * builtins.c (expand_builtin_bswap): New.
1311 (expand_builtin): Call.
1312 (fold_builtin_bswap): New.
1313 (fold_builtin_1): Call.
1314 * fold-const.c (tree_expr_nonnegative_p): Return true
1316 * builtin-types.def (BT_UINT32): New.
1318 (BT_FN_UINT32_UINT32): Ditto.
1319 (BT_FN_UINT64_UINT64): Ditto.
1320 * builtins.def (BUILT_IN_BSWAP32): New.
1321 (BUILT_IN_BSWAP64): Ditto.
1322 * rtl.def (BSWAP): New.
1323 * genattrtab.c (check_attr_value): New.
1324 * libgcc2.c (__bswapSI2): New.
1325 (__bswapDI2): Ditto.
1326 * libgcc2.h (__bswapSI2): Declare.
1327 (__bswapDI2): Ditto.
1328 * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
1329 * simplify-rtx.c (simplify_const_unary_operation): Return
1331 * libgcc-std.ver (__bwapsi2): Add.
1332 (__bswapdi2): Ditto.
1333 * reload1.c (eliminate_regs_1): Add bswap.
1334 (elimination_effects): Ditto.
1335 * config/i386/i386.h (x86_bswap): New.
1336 (TARGET_BSWAP): Use.
1337 * config/i386/i386.c (x86_bswap): Set.
1339 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1341 * coverage.c (coverage_checksum_string): Update comment.
1342 * dwarf2out.c (switch_to_eh_frame_section): Update for removal
1343 of get_file_function_name.
1344 * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
1345 of get_file_function_name_long.
1346 * tree.c (get_file_function_name): Rename from
1347 get_file_function_name_long; improve comment; handle 'I' and 'D'
1348 specially when the target has ctor/dtor support; remove special
1350 (get_file_function_name): Remove.
1351 * tree.h (get_file_function_name): Rename from
1352 get_file_function_name_long.
1353 (get_file_function_name): Remove prototype.
1355 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1357 * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
1358 * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
1360 * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
1361 Call dsymutil when compiling and linking one or more source files
1364 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1367 * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
1369 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1371 * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
1372 inline static functions in c99 mode.
1375 * doc/extend.texi (Inline): Update.
1376 * c-tree.h (struct language_function): Remove field 'extern_inline'.
1377 * c-decl.c (current_extern_inline): Delete.
1378 (pop_scope): Adjust test for an undefined nested function.
1379 Add warning about undeclared inline function.
1380 (diagnose_mismatched_decls): Update comments. Disallow overriding
1381 of inline functions in a translation unit in C99. Allow inline
1382 declarations in C99 at any time.
1383 (merge_decls): Boolize variables. Handle C99 'extern inline'
1385 (grokdeclarator): Set DECL_EXTERNAL here for functions. Handle
1386 C99 inline semantics.
1387 (start_function): Don't clear current_extern_inline. Don't set
1389 (c_push_function_context): Don't push current_extern_inline.
1390 (c_pop_function_context): Don't restore current_extern_inline.
1393 * c-typeck.c (build_external_ref): Warn about static variables
1394 used in extern inline functions.
1395 * c-decl.c (start_decl): Warn about static variables declared
1396 in extern inline functions.
1398 2006-10-31 Roger Sayle <roger@eyesopen.com>
1401 * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
1402 * fold-const.c (tree_expr_nonnegative_p): Likewise. Consider
1403 pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
1404 or y is an even integer.
1406 2006-10-31 Eric Botcazou <ebotcazou@libertysurf.fr>
1409 * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
1410 * gthr-posix95.h (__gthread_active_p): Likewise.
1412 2006-10-31 Richard Guenther <rguenther@suse.de>
1414 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
1415 acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
1416 expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
1417 exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
1418 ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
1419 lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
1420 lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
1421 btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
1424 2006-10-31 Steven Bosscher <steven@gcc.gnu.org>
1426 * opts.c (decode_options): Disable CSE skip blocks.
1428 2006-10-30 Dirk Mueller <dmueller@suse.de>
1430 * c-common.h (strict_aliasing_warning): Fix whitespace.
1431 * c-decl (start_function): Move code for main decl warning ..
1432 * c-common.c (check_main_parameter_types): .. here.
1433 * c-common.h (check_main_parameter_types): Declare.
1435 2006-10-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1438 * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
1440 2006-10-30 Pete Steinmetz <steinmtz@us.ibm.com>
1442 * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
1443 be a PARALLEL containing sets. Return false when out_pat is not
1446 2006-10-30 Richard Sandiford <richard@codesourcery.com>
1448 * config/mips/mips.md (mul<mode>3): Split into...
1449 (mulsi3, muldi3): ...these separate patterns.
1451 2006-10-30 Richard Sandiford <richard@codesourcery.com>
1453 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
1454 but with each set of options separated by spaces.
1456 2006-10-30 J"orn Rennecke <joern.rennecke@st.com>
1458 * unwind-dw2.c (uw_init_context_1): Fix test that checks if
1459 dwarf_reg_size_table has been initialized.
1461 2006-10-30 Roger Sayle <roger@eyesopen.com>
1463 * builtins.c (expand_builtin_mathfn_3): Correct coding style.
1464 * ddg.c (print_ddg_edge): Likewise.
1465 * dwarf2out.c (prune_unused_types_walk): Likewise.
1466 * ifcvt.c (noce_try_cmove_arith): Likewise.
1467 * langhooks.c (add_builtin_function): Likewise.
1468 * reg-stack.c (subst_stack_regs_pat): Likewise.
1469 * tree.c (expanded_location): Likewise.
1470 * tree-dump.c (dequeue_and_dump): Likewise.
1472 2006-10-30 David Daney <ddaney@avtrex.com>
1474 * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
1476 2006-10-30 Jakub Jelinek <jakub@redhat.com>
1478 PR tree-optimization/29637
1479 * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
1480 of the innertype is the innertype itself.
1482 2006-10-30 Danny Smith <dannysmith@users.sourceforge.net>
1484 * dwarf2out.c (file_name_acquire): Correct typo.
1486 2006-10-29 Daniel Berlin <dberlin@dberlin.org>
1488 * tree.h (tree_value_handle): Remove struct value_set declaration.
1489 Change value_set to bitmap_set.
1490 * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
1491 * tree-vn.c (get_value_handle): Made inline and moved to
1493 * tree-flow-inline.h: (has_stmt_ann): New function.
1494 * tree-ssa-pre.c (expressions): New variable.
1495 (next_expression_id): Ditto.
1496 (alloc_expression_id): New function.
1497 (struct value_set): Remove.
1498 (get_expression_id): New function.
1499 (get_or_alloc_expression_id): Ditto.
1500 (expression_for_id): Ditto.
1501 (clear_expression_ids): Ditto.
1502 (FOR_EACH_EXPR_ID_IN_SET): New macro.
1503 (bb_value_sets): Renamed to bb_bitmap_sets.
1504 All value sets replaced with bitmap_sets.
1506 (BB_VISITED): New macro.
1507 (postorder): New variable.
1508 (add_to_value): Removed.
1509 (value_exists_in_set_bitmap): Ditto.
1510 (value_insert_into_set_bitmap): Ditto.
1513 (set_remove): Ditto.
1514 (set_contains_value): Ditto.
1515 (insert_into_set): Ditto.
1517 (find_leader): Ditto.
1518 (bitmap_set_subtract_from_value_set): Ditto.
1519 (value_insert_into_set): Ditto.
1520 (print_value_set): Ditto.
1521 (debug_value_set): Ditto.
1522 (constant_expr_p): New function.
1523 (bitmap_remove_from_set): Ditto.
1524 (bitmap_insert_into_set): Ditto.
1525 (bitmap_set_free): Ditto.
1526 (vh_compare): Ditto.
1527 (sorted_array_from_bitmap_set): Ditto.
1528 (bitmap_set_subtract): Ditto.
1529 (bitmap_set_equal): Ditto.
1530 (debug_bitmap_set): Ditto.
1531 (find_leader_in_sets): Ditto.
1532 (bitmap_set_replace_value): Modify for bitmapped sets.
1533 (phi_translate): Ditto.
1534 (phi_translate_set): Ditto.
1535 (bitmap_find_leader): Ditto.
1536 (valid_in_sets): Ditto.
1537 (union_contains_value): Ditto.
1539 (compute_antic_aux): Ditto. Mark changed blocks.
1540 (compute_antic): Ditto. Iterate in postorder and only over
1542 (compute_rvuse_and_antic_safe): Reuse postorder.
1543 (create_component_ref_by_pieces): Modify for bitmapped sets.
1544 (find_or_generate_expression): Ditto.
1545 (create_expression_by_pieces): Ditto.
1546 (insert_into_preds_of_block): Ditto.
1547 (changed_blocks): New variable.
1548 (do_regular_insertion): Broken out from insert_aux.
1549 (insert_aux): Modified for bitmapped sets.
1550 (find_existing_value_expr): New function.
1551 (create_value_expr_from): Use it.
1552 (insert_extra_phis): Removed.
1553 (print_bitmap_set): Renamed from bitmap_print_value_set.
1554 (compute_avail): Handle RETURN_EXPR.
1555 (init_pre): Modify for bitmapped sets.
1556 * tree-flow.h (has_stmt_ann): New function.
1558 2006-10-29 Roger Sayle <roger@eyesopen.com>
1560 * builtins.c (fold_builtin_floor): Check for the availability of
1561 the C99 trunc function before transforming floor into trunc.
1563 2006-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1565 * builtins.c (fold_builtin_hypot): Rearrange recursive
1566 transformation before others, and also do ABS_EXPR. When
1567 necessary, check flag_unsafe_math_optimizations. When necessary,
1570 2006-10-29 Roger Sayle <roger@eyesopen.com>
1572 * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
1573 Fold ~X op C as X op' ~C, where op' is the swapped comparison.
1574 (fold_binary): ~X eq/ne C is now handled in fold_comparison.
1575 Fold -X eq/ne -Y as X eq/ne Y.
1577 2006-10-29 Richard Sandiford <richard@codesourcery.com>
1579 * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
1580 GENERATE_MULT3_<MODE>. Restrict the test to SImode. Use ISA_HAS_MUL3
1581 rather than GENERATE_MULT3_SI in the various define_peephole2s.
1582 (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
1583 Use an inclusive test for "mult" rather than "mul".
1584 (rotr<mode>3): Depend on ISA_HAS_ROR.
1585 * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
1587 (GENERATE_MULT3_DI): Delete.
1588 (ISA_HAS_64BIT_REGS): Use consistent formatting.
1589 (ISA_HAS_MUL3): New macro.
1590 (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
1591 (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
1592 (ISA_HAS_CLZ_CLO): Likewise.
1593 (ISA_HAS_DCLZ_DCLO): Delete.
1594 (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
1595 (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
1596 the VR4120 and VR4130.
1597 (ISA_HAS_MACCHI): Use consistent formatting.
1598 (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
1599 (ISA_HAS_ROR): ...this new macro.
1600 (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
1601 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
1602 (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
1604 2006-10-29 Roger Sayle <roger@eyesopen.com>
1606 PR tree-optimization/15458
1607 * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
1610 2006-10-29 Richard Guenther <rguenther@suse.de>
1612 * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
1613 (ix86_expand_truncdf_32): Likewise.
1614 * config/i386/i386.c (ix86_expand_trunc): New function expanding
1615 trunc inline for SSE math and -fno-trapping-math and if not
1616 optimizing for size.
1617 (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
1618 * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
1619 for expanding btrunc inline for SSE math.
1621 2006-10-29 Joseph Myers <joseph@codesourcery.com>
1623 * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
1624 Handle tuning for bi-arch i[34567]86-*-linux* like that for
1625 i[34567]86-*-solaris2.1[0-9]*.
1626 * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
1627 Define conditionally depending on TARGET_64BIT_DEFAULT.
1628 (SPEC_32, SPEC_64): Define.
1629 (LINK_SPEC): Use them.
1630 * doc/install.texi (--enable-targets=all): Document for x86-linux.
1632 2006-10-29 Richard Guenther <rguenther@suse.de>
1634 * config/i386/i386-protos.h (ix86_expand_round): Declare.
1635 (ix86_expand_rounddf_32): Likewise.
1636 * config/i386/i386.c (ix86_expand_round): New function expanding
1637 round inline for SSE math and -fno-trapping-math and if not
1638 optimizing for size.
1639 (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
1640 * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
1641 round via ix86_expand_round.
1643 2006-10-29 Richard Guenther <rguenther@suse.de>
1645 * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
1646 (ix86_expand_floorceildf_32): Likewise.
1647 * config/i386/i386.c (ix86_expand_sse_compare_mask): New
1648 static helper function.
1649 (ix86_expand_floorceil): Expander for floor and ceil to SSE
1651 (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
1652 * config/i386/i386.md (floordf2): Adjust to enable floor
1653 expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
1654 -fno-trapping-math is enabled and if not optimizing for size.
1655 (floorsf2, ceildf2, ceilsf2): Likewise.
1656 * config/i386/sse.md (sse_maskcmpsf3): New insn.
1657 (sse2_maskcmpdf3): Likewise.
1659 2006-10-29 Richard Guenther <rguenther@suse.de>
1661 * builtins.c (expand_builtin_mathfn): Expand nearbyint as
1662 rint in case -fno-trapping-math is enabled.
1663 * config/i386/i386-protos.h (ix86_expand_rint): Declare.
1664 * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
1665 (ix86_expand_sse_fabs): Likewise.
1666 (ix86_expand_rint): New function expanding rint to x87 or SSE math.
1667 * config/i386/i386.md (rintdf2): Enable for SSE math if
1668 -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
1669 (rintsf2): Likewise.
1671 2006-10-29 Richard Guenther <rguenther@suse.de>
1673 * genopinit.c (optabs): Change lfloor_optab and lceil_optab
1674 to conversion optabs.
1675 * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
1676 as conversion optab.
1677 * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
1678 (enum convert_optab_index): Add COI_lfloor and COI_lceil.
1679 (lfloor_optab, lceil_optab): Adjust defines.
1680 * builtins.c (expand_builtin_int_roundingfn): Adjust for
1681 lfloor and lceil optabs now being conversion optabs.
1682 * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
1683 * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
1684 New static helper function.
1685 (ix86_expand_lfloorceil): New function to expand lfloor and
1687 * config/i386/i386.md (lfloor<mode>2): Split into ...
1688 (lfloorxf<mode>2): ... x87 variant
1689 (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
1690 using ix86_expand_lfloorceil.
1691 (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
1693 * doc/md.texi (lfloorMN, lceilMN): Document.
1695 2006-10-29 Richard Sandiford <richard@codesourcery.com>
1697 * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE. Test for the
1698 -mno-shared assembler option on mips targets.
1699 * configure, config.in: Regenerate.
1700 * config/mips/linux.h (NO_SHARED_SPECS): New macro.
1701 (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
1702 * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
1704 2006-10-29 Richard Sandiford <richard@codesourcery.com>
1706 * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
1707 as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
1709 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
1711 * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
1712 config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
1715 2006-10-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1718 * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
1719 (fold_builtin_pow): Evaluate constant arguments at compile-time
1721 (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
1722 (do_mpfr_ckconv): New helper function.
1723 (do_mpfr_arg1): Use do_mpfr_ckconv.
1724 (do_mpfr_arg2): New.
1726 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1729 * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
1730 (-fdump-rtl-sched): Rename to ..
1731 (-fdump-rtl-sched1): here. Also fix file extension number.
1733 2006-10-28 Richard Guenther <rguenther@suse.de>
1735 * fold-const.c (maybe_canonicalize_comparison): Fix code
1738 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1740 * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
1741 (NON_QI_REG_P): Use IN_RANGE.
1742 (REX_INT_REGNO_P): Use IN_RANGE.
1743 (FP_REGNO_P): Use IN_RANGE.
1744 (SSE_REGNO_P): Use IN_RANGE.
1745 (REX_SSE_REGNO_P): Use IN_RANGE.
1746 (MMX_REGNO_P): Use IN_RANGE.
1747 (STACK_REGNO_P): New macro.
1748 (STACK_REG_P): Use STACK_REGNO_P.
1749 (NON_STACK_REG_P): Use STACK_REGNO_P.
1750 (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
1751 (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
1752 (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
1753 (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
1754 (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
1756 2006-10-28 Eric Botcazou <ebotcazou@adacore.com>
1758 * except.h (output_function_exception_table): Add 'const char*' param.
1759 * except.c (switch_to_exception_section): Add 'const char*' param.
1760 If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
1761 and flag_function_sections is set, use a function-specific section.
1762 (output_function_exception_table): Add 'const char*' param.
1763 Adjust call to switch_to_exception_section.
1764 * final.c (rest_of_handle_final): Adjust calls to
1765 output_function_exception_table.
1766 * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
1767 * config.in: Regenerate.
1768 * configure: Likewise.
1770 2006-10-28 Richard Guenther <rguenther@suse.de>
1773 * fold-const.c (maybe_canonicalize_comparison_1): Helper
1774 for maybe_canonicalize_comparison.
1775 (maybe_canonicalize_comparison): New function for canonicalizing
1777 (fold_comparison): Call it to canonicalize comparisons with
1780 2006-10-28 Richard Guenther <rguenther@suse.de>
1783 * builtins.c (expand_builtin_int_roundingfn_2): Expand
1784 BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
1785 (expand_builtin): Adjust likewise.
1786 * genopinit.c (optabs[]): Add lround optab.
1787 * optabs.c (init_optabs): Initialize lround_optab.
1788 * optabs.h (enum convert_optab_index): Add COI_lround.
1789 (lround_optab): Define.
1790 * config/i386/i386-protos.h (ix86_expand_lround): Declare.
1791 * config/i386/i386.c (ix86_sse_copysign_to_positive): New
1793 (ix86_expand_lround): New function.
1794 * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
1796 * doc/md.texi (lroundMN2): Document.
1798 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1801 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
1802 argument to HOST_WIDE_INT. Update function prototype.
1803 (round_frame_size): Change return type to HOST_WIDE_INT. Change
1804 "size" argument to HOST_WIDE_INT. Update function prototype.
1806 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1808 * config/i386/i386.c (output_387_ffreep): Create output from a
1809 template string for !HAVE_AS_IX86_FFREEP.
1811 2006-10-27 Eric Christopher <echristo@apple.com>
1813 * config/darwin.c: Fix formatting and grammar.
1815 2006-10-27 Jan Hubicka <jh@suse.cz>
1817 * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
1818 to be thrown away soon when IGNORE is set.
1819 * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
1820 indicating when return value shall not be computed.
1821 * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
1823 2006-10-27 Vladimir Makarov <vmakarov@redhat.com>
1825 * config/i386/i386.h (TARGET_GEODE):
1826 (TARGET_CPU_CPP_BUILTINS): Add code for geode.
1827 (TARGET_CPU_DEFAULT_geode): New macro.
1828 (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
1829 TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
1830 TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
1831 TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
1832 TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
1834 (TARGET_CPU_DEFAULT_NAMES): Add geode.
1835 (processor_type): Add PROCESSOR_GEODE.
1837 * config/i386/i386.md: Include geode.md.
1840 * config/i386/i386.c (geode_cost): New initialized global
1842 (m_GEODE, m_K6_GEODE): New macros.
1843 (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
1844 x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
1845 x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
1846 x86_schedule): Use m_K6_GEODE instead of m_K6.
1847 (x86_movx, x86_cmove): Set up m_GEODE.
1848 (x86_integer_DFmode_moves): Clear m_GEODE.
1849 (processor_target_table): Add entry for geode.
1850 (processor_alias_table): Ditto.
1852 * config/i386/geode.md: New file.
1854 * doc/invoke.texi: Add entry about geode processor.
1856 2006-10-27 Mike Stump <mrs@apple.com>
1858 * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
1859 __DYNAMIC__ from here back to ...
1860 * config/darwin.h (CPP_SPEC): ... here.
1862 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
1863 Nathan Sidwell <nathan@codesourcery.com>
1865 * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
1866 when choosing the minimum heapsize.
1868 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
1870 * gcc/unwind-dw2.h: Move cfa-related variables into
1871 struct frame_state_reg_info to ensure that the CFA is properly
1872 handled when executing DW_CFA_{remember,restore}_state.
1873 * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
1874 gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
1875 gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
1876 gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
1877 gcc/config/rs6000/linux-unwind.h,
1878 gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
1879 gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
1880 Modify to use new cfa_* fields.
1882 2006-10-26 Andreas Krebbel <krebbel1@de.ibm.com>
1884 * config/s390/s390.c (s390_init_frame_layout): Check positive
1887 2006-10-26 Ben Elliston <bje@au.ibm.com>
1889 * gimplify.c (get_name): Remove extraneous break.
1890 (gimplify_omp_for): Initialise ret with GS_OK.
1892 2006-10-25 Steve Ellcey <sje@cup.hp.com>
1894 * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
1895 Add unix98.o to link line.
1897 2006-10-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1900 * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
1901 Calculate compile-time constants using MPFR.
1902 (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
1903 BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
1905 2006-10-25 Bob Wilson <bob.wilson@acm.org>
1907 * config/xtensa/lib2funcs.S: Use C-style comments.
1909 2006-10-24 Nathan Froyd <froydnj@codesourcery.com>
1911 * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
1912 (file_table_relative_p): Likewise.
1913 (dwarf2out_finish): Likewise.
1914 (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
1916 2006-10-25 Daniel Berlin <dberlin@dberlin.org>
1918 * tree-ssa-structalias.c (intra_create_variable_infos):
1919 Don't recreate nonlocal_all if it already exists.
1921 2006-10-25 Richard Guenther <rguenther@suse.de>
1924 * optabs.h (enum optab_index): Remove OTI_lrint.
1925 (enum convert_optab_index): Add COI_lrint.
1926 (lrint_optab): Adjust.
1927 (expand_sfix_optab): Declare.
1928 * optabs.c (expand_sfix_optab): New function.
1929 (init_optabs): Init lrint_optab as conversion optab.
1930 * genopinit.c (lrint_optab): Change to a conversion optab.
1931 * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
1932 expansion via conversion optab.
1933 * config/i386/i386.md (*fistdi2_1): Remove
1934 flag_unsafe_math_optimizations guard.
1935 (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
1936 fist<mode>2_with_temp): Likewise.
1937 (lrint<mode>2): Split into...
1938 (lrintxf<mode>2): ... x87 part
1939 (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
1940 * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
1941 sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
1942 UNSPEC_FIX_NOTRUNC matching non-vector float modes.
1943 * doc/md.texi (lrintMN2): Document.
1945 2006-10-25 Uros Bizjak <uros@kss-loka.si>
1948 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
1949 Use inc and dec instructions for TARGET_USE_INCDEC.
1950 ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
1951 ("sync_double_compare_and_swap<mode>"): Likewise.
1952 ("*sync_double_compare_and_swapdi_pic"): Likewise.
1953 ("*sync_compare_and_swap_cc<mode>"): Likewise.
1954 ("sync_double_compare_and_swap_cc<mode>"): Likewise.
1955 ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
1956 ("sync_old_add<mode>"): Likewise.
1957 ("sync_lock_test_and_set<mode>"): Likewise.
1958 ("sync_lock_test_and_set<mode>"): Likewise.
1959 ("sync_add<mode>"): Likewise.
1960 ("sync_sub<mode>"): Likewise.
1961 ("sync_ior<mode>"): Likewise.
1962 ("sync_and<mode>"): Likewise.
1963 ("sync_xor<mode>"): Likewise.
1965 2006-10-25 Uros Bizjak <uros@kss-loka.si>
1967 * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
1968 (remainder_optab): Define corresponding macro.
1969 (drem_optab): Remove.
1970 * optabs.c (init_optabs): Initialize remainder_optab. Remove
1971 drem_optab initialization.
1972 * genopinit.c (optabs): Implement remainder_optab using
1973 remainder?f3 patterns. Remove drem_optab.
1974 * builtins.c (expand_builtin_mathfn_2): Handle
1975 BUILT_IN_REMAINDER{,F,L} using remainder_optab.
1976 (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
1977 expand_builtin_mathfn_2.
1979 (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
1980 depend on flag_unsafe_math_optimizations.
1982 * config/i386/i386.md ("remaindersf3", "remainderdf3")
1983 ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
1984 Do not depend on flag_unsafe_math_optimizations. Use
1985 truncxf?f expander instead of truncxf?f_i387_noop.
1987 ("fpremxf4", "fprem1xf4"): Do not depend on
1988 flag_unsafe_math_optimizations.
1989 ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
1990 flag_unsafe_math_optimizations. Use truncxf?f expander
1991 instead of truncxf?f_i387_noop.
1993 * doc/md.texi (fmod, remainder): Document standard named pattern.
1995 2006-10-24 Richard Sandiford <richard@codesourcery.com>
1996 David Daney <ddaney@avtrex.com>
1999 * rtlanal.c (nonzero_address_p): Remove check for values wrapping.
2001 2006-10-25 Ben Elliston <bje@au.ibm.com>
2003 * doc/extend.texi (Variable Attributes): Typo fix.
2005 2006-10-24 Uros Bizjak <uros@kss-loka.si>
2007 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
2008 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
2009 (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
2010 (FRAME_POINTER_REGNUM): Update register number to 21.
2011 (REG_CLASS_CONTENTS): Update contents for added fpcr register.
2012 (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
2014 * config/i386/i386.c (regclass_map): Add fpcr entry.
2015 (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
2017 (print_reg): Assert REGNO (x) != FPCR_REG.
2019 * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
2020 (DIRFLAG_REG): Renumber.
2021 (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
2022 (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
2023 (sse_prologue_save, *sse_prologue_save_insn): Renumber
2024 hardcoded SSE register numbers.
2026 * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
2027 hardcoded MMX register numbers.
2029 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2032 * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
2033 (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
2035 (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
2036 (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
2037 BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
2038 BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
2040 2006-10-24 Richard Guenther <rguenther@suse.de>
2043 * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
2044 and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
2045 for deciding optimizations in consistency with fold-const.c
2046 (fold_builtin_unordered_cmp): Likewise.
2048 2006-10-24 Richard Guenther <rguenther@suse.de>
2050 * builtins.c (fold_builtin_floor): Fold floor (x) where
2051 x is nonnegative to trunc (x).
2052 (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
2053 nonnegative to FIX_TRUNC_EXPR.
2055 2006-10-24 Richard Guenther <rguenther@suse.de>
2057 PR tree-optimization/29567
2058 * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
2059 for TRUTH_NOT_EXPR. Clarify comments.
2061 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2064 * builtins.c (fold_builtin_exponent): Evaluate constant arguments
2065 at compile-time using MPFR. Change parameter VALUE to FUNC,
2067 (do_mpfr_arg1): Rename `exact' to `inexact'. Carefully check
2068 for overflow and underflow at all times and avoid folding in
2071 2006-10-24 Ben Elliston <bje@au.ibm.com>
2073 * reload1.c: Formatting fixes.
2075 2006-10-23 Zdenek Dvorak <dvorakz@suse.cz>
2077 PR tree-optimization/14784
2078 * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
2079 * tree-ssa-structalias.c (get_constraint_for,
2080 intra_create_variable_infos): Set is_heapvar.
2081 * tree-ssa-operands.c (access_can_touch_variable): Do not handle
2082 non-heapvar pointer variables specially.
2084 2006-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2087 * builtins.c (fold_builtin_sin, fold_builtin_cos,
2088 fold_builtin_tan): Fold all constant arguments. Take a "type"
2089 argument as necessary.
2090 (do_mpfr_arg1): New.
2091 * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
2093 2006-10-23 Bob Wilson <bob.wilson@acm.org>
2095 * config/xtensa/lib1funcs.asm: Use C-style comments.
2097 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
2099 * tree.c (local_define_builtin): Replace calls to
2100 lang_hooks.builtin_function with add_builtin_function.
2101 * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
2103 * c-tree.h (builtin_function): Rename to c_builtin_function. Change
2105 * c-decl.c (builtin_function): Rename to c_builtin_function. Move
2106 common code to add_builtin_function.
2107 * langhooks.c (add_builtin_function): New function.
2108 (lhd_builtin_function): New function.
2109 * langhooks.h (struct lang_hooks): Change the signature of
2111 (add_builtin_function): New function.
2112 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
2113 calls to lang_hooks.builtin_function with add_builtin_function.
2114 * c-common.c (decl_builtin_1): Replace calls to
2115 lang_hooks.builtin_function with add_builtin_function.
2116 * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
2117 lang_hooks.builtin_function with add_builtin_function.
2118 * config/frv/frv.c (def_builtin): Replace calls to
2119 lang_hooks.builtin_function with add_builtin_function.
2120 * config/s390/s390.c (s390_init_builtins): Replace calls to
2121 lang_hooks.builtin_function with add_builtin_function.
2122 * config/sparc/sparc.c (def_builtin): Replace calls to
2123 lang_hooks.builtin_function with add_builtin_function.
2124 * config/i386/i386.c (def_builtin): Replace calls to
2125 lang_hooks.builtin_function with add_builtin_function.
2126 * config/sh/sh.c (sh_media_init_builtins): Replace calls to
2127 lang_hooks.builtin_function with add_builtin_function.
2128 * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
2129 lang_hooks.builtin_function with add_builtin_function.
2130 * config/stormy16/stormy16.c (xstormy16_init_builtins):
2131 Replace calls to lang_hooks.builtin_function with
2132 add_builtin_function.
2133 * config/iq2000/iq2000.c (def_builtin):
2134 Replace calls to lang_hooks.builtin_function with
2135 add_builtin_function.
2136 * config/ia64/ia64.c (def_builtin): Replace calls to
2137 lang_hooks.builtin_function with add_builtin_function.
2138 * config/rs6000/rs6000.c (def_builtin): Replace calls to
2139 lang_hooks.builtin_function with add_builtin_function.
2140 (altivec_init_builtins): Replace calls to
2141 lang_hooks.builtin_function with add_builtin_function.
2142 * config/arm/arm.c (def_mbuiltin): Replace calls to
2143 lang_hooks.builtin_function with add_builtin_function.
2144 (arm_init_tls_builtins): Replace calls to
2145 lang_hooks.builtin_function with add_builtin_function.
2146 * config/mips/mips.c (mips_init_builtins): Replace calls to
2147 lang_hooks.builtin_function with add_builtin_function.
2148 * config/bfin/bfin.c (def_builtin): Replace calls to
2149 lang_hooks.builtin_function with add_builtin_function.
2150 * langhooks-def.h (lhd_builtin_function): New function.
2151 (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
2153 2006-10-23 Jakub Jelinek <jakub@redhat.com>
2155 * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
2156 BUILT_IN_STRNCAT_CHK.
2158 2006-10-23 Jan Hubicka <jh@suse.cz>
2160 * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
2161 don't do conversion from memmove to memcpy here.
2162 (expand_builtin_bcopy, expand_builtin): Update call of
2163 expand_builtin_memmove.
2164 (fold_builtin_memory_op): Do folding of memmove to memcpy here.
2166 2006-10-23 Paul Brook <paul@codesourcery.com>
2168 * stor-layout.c (start_record_layout): maximum_field_alignment
2169 overrides STRUCTURE_SIZE_BOUNDARY.
2171 2006-10-23 Ulrich Weigand <uweigand@de.ibm.com>
2173 * config/s390/predicates.md ("bras_sym_operand"): Do not accept
2174 nonlocal function symbols if flag_pic.
2176 2006-10-23 Richard Guenther <rguenther@suse.de>
2180 * builtins.c (fold_binary): Remove checks for flag_wrapv
2181 and flag_trapv where negate_expr_p covers these cases.
2183 2006-10-23 Richard Guenther <rguenther@suse.de>
2186 * fold-const.c (fold_plusminus_mult_expr): Check exact power
2187 of two on the absolute value.
2188 (fold_binary): Fold x * -C to -x * C if x is easily negatable
2189 and negating -C does not overflow.
2191 2006-10-23 Richard Guenther <rguenther@suse.de>
2194 * convert.c (convert_to_real): Fold (float)-x to -(float)x
2195 only if not flag_rounding_math.
2197 2006-10-22 Richard Sandiford <richard@codesourcery.com>
2198 Kaz Kojima <kkojima@gcc.gnu.org>
2201 * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
2202 SImode memory reference for the source of a movua.
2203 * config/sh/sh.md (UNSPEC_MOVUA): New macro.
2204 (movua): Use an unspec instead of sign_extract. Expect the source
2205 to have mode BLKmode.
2206 (extv, insv): Use a BLKmode rather than SImode memory reference
2207 for the source of a movua.
2209 2006-10-22 Jeff Law <law@redhat.com>
2210 Richard Guenther <rguenther@suse.de>
2212 PR tree-optimization/15911
2213 * tree-vrp.c (extract_code_and_val_from_cond): New function.
2214 (register_edge_assert_for_1): Likewise.
2215 (register_edge_assert_for): Handle &&/&/||/| in conditionals.
2216 (find_conditional_asserts): Adjust for new function signature.
2217 (find_assert_locations): Likewise.
2219 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
2221 * config/i386/tmmintrin.h: Remove the duplicated content.
2223 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
2225 * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
2226 (x86_64-*-*): Likewise.
2228 * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
2229 (override_options): Check SSSE3.
2230 (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
2231 IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
2232 IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
2233 IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
2234 IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
2235 IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
2236 IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
2237 IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
2238 IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
2239 IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
2240 IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
2241 IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
2242 IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
2243 IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
2244 IX86_BUILTIN_PABSD128.
2245 (bdesc_2arg): Add SSSE3.
2246 (bdesc_1arg): Likewise.
2247 (ix86_init_mmx_sse_builtins): Support SSSE3.
2248 (ix86_expand_builtin): Likewise.
2249 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
2251 * config/i386/i386.md (UNSPEC_PSHUFB): New.
2252 (UNSPEC_PSIGN): Likewise.
2253 (UNSPEC_PALIGNR): Likewise.
2254 Include mmx.md before sse.md.
2256 * config/i386/i386.opt: Add -mssse3.
2258 * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
2259 (ssse3_phaddwv4hi3): Likewise.
2260 (ssse3_phadddv4si3): Likewise.
2261 (ssse3_phadddv2si3): Likewise.
2262 (ssse3_phaddswv8hi3): Likewise.
2263 (ssse3_phaddswv4hi3): Likewise.
2264 (ssse3_phsubwv8hi3): Likewise.
2265 (ssse3_phsubwv4hi3): Likewise.
2266 (ssse3_phsubdv4si3): Likewise.
2267 (ssse3_phsubdv2si3): Likewise.
2268 (ssse3_phsubswv8hi3): Likewise.
2269 (ssse3_phsubswv4hi3): Likewise.
2270 (ssse3_pmaddubswv8hi3): Likewise.
2271 (ssse3_pmaddubswv4hi3): Likewise.
2272 (ssse3_pmulhrswv8hi3): Likewise.
2273 (ssse3_pmulhrswv4hi3): Likewise.
2274 (ssse3_pshufbv16qi3): Likewise.
2275 (ssse3_pshufbv8qi3): Likewise.
2276 (ssse3_psign<mode>3): Likewise.
2277 (ssse3_psign<mode>3): Likewise.
2278 (ssse3_palignrti): Likewise.
2279 (ssse3_palignrdi): Likewise.
2280 (abs<mode>2): Likewise.
2281 (abs<mode>2): Likewise.
2283 * config/i386/tmmintrin.h: New file.
2285 * doc/extend.texi: Document SSSE3 built-in functions.
2287 * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
2289 2006-10-22 Ira Rosen <irar@il.ibm.com>
2291 * tree-vect-transform.c (vectorizable_load): Use the type of the
2292 return value of the mask_for_load builtin to create realign_load
2295 2006-10-22 Richard Sandiford <richard@codesourcery.com>
2297 * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
2300 2006-10-21 H.J. Lu <hongjiu.lu@intel.com>
2302 * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
2303 (UNSPEC_LDDQU): This.
2304 * config/i386/sse.md (sse3_lddqu): Updated.
2306 2006-10-21 Richard Guenther <rguenther@suse.de>
2308 * builtins.c (expand_builtin_int_roundingfn_2): New function.
2309 (expand_builtin): Use it to expand lrint instead of
2310 expand_builtin_mathfn.
2312 2006-10-21 Uros Bizjak <uros@kss-loka.si>
2315 * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
2316 flag_unsafe_math_optimizations is set.
2318 2006-10-21 Uros Bizjak <uros@kss-loka.si>
2321 * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
2322 patterns to use memory input operand in x87->mem->XMM
2323 reload sequences. Skip transformation for TARGET_K8.
2325 2006-10-21 Uros Bizjak <uros@kss-loka.si>
2327 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
2328 force operand1 to register if both operands are memory operands.
2329 (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
2330 (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
2331 if both operands are memory operands.
2332 (truncdfsf2): Do not force operand1 to register if both operands
2333 are memory operands.
2335 2006-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2337 * Makefile.in (LIBS): Add $(GMPLIBS).
2338 * doc/install.texi: Update GMP and MPFR requirements.
2339 * doc/sourcebuild.texi (need_gmp): Delete.
2341 2006-10-21 Richard Guenther <rguenther@suse.de>
2343 PR tree-optimization/3511
2344 * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
2345 got new invariant arguments during PHI translation.
2347 2006-10-21 Richard Guenther <rguenther@suse.de>
2350 * fold-const.c (fold_comparison): Fold signed comparisons
2351 of the form X +- C1 CMP Y +- C2.
2353 2006-10-21 Richard Guenther <rguenther@suse.de>
2356 * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
2357 if flag_unsafe_math_optimizations is specified. We have
2358 flag_finite_math_only for that.
2359 * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
2360 or flag_unsafe_math_optimizations.
2362 2006-10-21 Richard Guenther <rguenther@suse.de>
2364 * builtins.c (fold_builtin_classify): Fix typo.
2366 2006-10-21 Richard Guenther <rguenther@suse.de>
2369 * simplify-rtx.c (simplify_const_relational_operation):
2370 Do not constant-fold ORDERED and UNORDERED for
2371 flag_unsafe_math_optimizations but only we do not need to
2372 honor NaNs for the given mode.
2374 2006-10-21 Richard Guenther <rguenther@suse.de>
2377 * config/i386/i386.c (classify_argument): Remove redundant
2378 walking of the BINFOs.
2379 (contains_128bit_aligned_vector_p): Likewise.
2381 2006-10-20 Mark Mitchell <mark@codesourcery.com>
2383 * BASE-VER: Set to 4.3.0.
2385 2006-10-20 Daniel Berlin <dberlin@dberlin.org>
2387 * tree.h (DECL_PTA_ARTIFICIAL): Remove.
2388 (tree_decl_with_vis): Remove artificial_pta_var flag.
2389 * tree-flow.h (referenced_var_check_and_insert): Expose.
2390 (nonlocal_all): New prototype.
2391 * tree-ssa-structalias.c (nonlocal_for_type): Remove.
2392 (nonlocal_all): Make global.
2393 (nonlocal_lookup): Remove.
2394 (nonlocal_insert): Ditto.
2395 (create_nonlocal_var): Do not call nonlocal_insert.
2396 (get_nonlocal_id_for_type): Remove.
2397 (find_global_initializers): Mark new vars we find for renaming.
2398 (intra_create_variable_infos): Only create one nonlocal.
2399 (expand_nonlocal_solutions): Remove.
2400 (compute_points_to_sets): Don't call it.
2401 (ipa_pta_execute): Ditto.
2402 (init_alias_heapvars): Don't create nonlocal_for_type.
2403 (delete_alias_heapvars): Don't remove it.
2404 * tree-ssa-operands.c (access_can_touch_variable): Don't prune
2407 2006-10-19 Brooks Moses <bmoses@stanford.edu>
2409 * doc/install.texi (Downloading GCC): Clarify mention of
2410 Fortran in the "full distribution" description.
2412 2006-10-19 Daniel Berlin <dberlin@dberlin.org>
2414 Fix PR tree-optimization/28778
2415 Fix PR tree-optimization/29156
2416 Fix PR tree-optimization/29415
2417 * tree.h (DECL_PTA_ARTIFICIAL): New macro.
2418 (tree_decl_with_vis): Add artificial_pta_var flag.
2419 * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
2420 pushed into callers.
2421 * tree-ssa-structalias.c (nonlocal_for_type): New variable.
2422 (nonlocal_all): Ditto.
2423 (struct variable_info): Add directly_dereferenced member.
2424 (var_escaped_vars): New variable.
2425 (escaped_vars_tree): Ditto.
2426 (escaped_vars_id): Ditto.
2427 (nonlocal_vars_id): Ditto.
2428 (new_var_info): Set directly_dereferenced.
2429 (graph_size): New variable
2430 (build_constraint_graph): Use graph_size.
2431 (solve_graph): Don't process constraints that cannot change the
2432 solution, don't try to propagate an empty solution to our
2434 (process_constraint): Set directly_dereferenced.
2435 (could_have_pointers): New function.
2436 (get_constraint_for_component_ref): Don't process STRING_CST.
2437 (nonlocal_lookup): New function.
2438 (nonlocal_insert): Ditto.
2439 (create_nonlocal_var): Ditto.
2440 (get_nonlocal_id_for_type): Ditto.
2441 (get_constraint_for): Allow results vector to be empty in the case
2442 of string constants.
2443 Handle results of calls properly.
2444 (update_alias_info): Update alias info stats on number and type of
2446 (find_func_aliases): Use could_have_pointers.
2447 (make_constraint_from_escaped): Renamed from
2448 make_constraint_to_anything, and changed to make constraints from
2450 (make_constraint_to_escaped): New function.
2451 (find_global_initializers): Ditto.
2452 (create_variable_info_for): Make constraint from escaped to any
2453 global variable, and from any global variable to the set of
2455 (intra_create_variable_infos): Deal with escaped instead of
2456 pointing to anything.
2457 (set_uids_in_ptset): Do type pruning on directly dereferenced
2459 (find_what_p_points_to): Adjust call to set_uids_with_ptset.
2460 (init_base_vars): Fix comment, and initialize escaped_vars.
2461 (need_to_solve): Removed.
2462 (find_escape_constraints): New function.
2463 (expand_nonlocal_solutions): Ditto.
2464 (compute_points_to_sets): Call find_escape_constraints and
2465 expand_nonlocal_solutions.
2466 (delete_points_to_sets): Don't fall off the end of the graph.
2467 (init_alias_heapvars): Initialize nonlocal_for_type and
2469 (delete_alias_heapvars): Free nonlocal_for_type and null out
2472 2006-10-19 Eric Botcazou <ebotcazou@adacore.com>
2474 * fold-const.c (add_double): Rename to add_double_with_sign.
2475 Add 'unsigned_p' parameter and take it into account for the overflow.
2476 (mul_double): Rename to mul_double_with_sign.
2477 Add 'unsigned_p' parameter and take it into account for the overflow.
2478 (fold_div_compare): Call add_double_with_sign instead of add_double
2479 and mul_double_with_sign instead of mul_double, passing them the
2480 unsignedness of the type.
2481 * tree.h (add_double): Macroize.
2482 (add_double_with_sign): New prototype.
2483 (mul_double): Macroize.
2484 (mul_double_with_sign): New prototype.
2486 2006-10-19 Chen Liqin <liqin@sunnorth.com.cn>
2488 * config/score/crti.asm: New file.
2489 * config/score/crtn.asm: New file.
2490 * config/score/elf.h: New file.
2491 * config/score/mac.md: New file.
2492 * config/score/misc.md: New file.
2493 * config/score/mul-div.S: New file.
2494 * config/score/predicates.md: New file.
2495 * config/score/score7.md: New file.
2496 * config/score/score.c: New file.
2497 * config/score/score-conv.h: New file.
2498 * config/score/score.h: New file.
2499 * config/score/score.md: New file.
2500 * config/score/score-mdaux.c: New file.
2501 * config/score/score-mdaux.h: New file.
2502 * config/score/score-modes.def: New file.
2503 * config/score/score.opt: New file.
2504 * config/score/score-protos.h: New file.
2505 * config/score/score-version.h: New file.
2506 * config/score/t-score-elf: New file.
2507 * config.gcc: Add score*-*-* configurations(Update before).
2508 * doc/invoke.texi (Score Options): New section.
2509 * doc/md.texi (Score family): New section to document constraints.
2511 2006-10-19 Nick Clifton <nickc@redhat.com>
2513 * config/arm/arm.c: Fix spelling typo.
2515 2006-10-18 Tom Tromey <tromey@redhat.com>
2517 * doc/install.texi (Prerequisites): Mention automake 1.9.6.
2519 2006-10-18 Jan Hubicka <jh@suse.cz>
2522 * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
2525 2006-10-18 Marcin Dalecki <martin@dalecki.de>
2527 * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
2528 TSI_SAME_STMT, since that's the desired entity.
2530 2006-10-17 Wolfgang Gellerich <gellerich@de.ibm.com>
2532 * config/s390/contraints.md: New file.
2533 * config/s390/s390-protos.h (s390_mem_constraint,
2534 s390_O_constraint_str, s390_N_constraint_str,
2535 s390_float_const_zero_p): Function prototypes added.
2536 * config/s390/s390.c (s390_extra_constraint_str,
2537 s390_const_double_ok_for_constraint_p,
2538 s390_const_ok_for_constraint_p): Functions removed.
2539 (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
2540 s390_float_const_zero_p): New functions.
2541 * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
2542 CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
2543 EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
2544 Macro definitions removed.
2545 (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
2546 s390_extra_constraint_str): Functions removed.
2548 2006-10-17 Andrew Pinsiki <pinskia@gmail.com>
2549 Richard Sandiford <richard@codesourcery.com>
2552 * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
2553 * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
2555 2006-10-16 Geoffrey Keating <geoffk@apple.com>
2557 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
2558 (DWARF2_FRAME_REG_OUT): Likewise.
2559 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
2560 (DWARF2_FRAME_REG_OUT): Likewise.
2562 2006-10-17 Paul Brook <paul@codesourcery.com>
2564 * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
2566 2006-10-16 Brooks Moses <bmoses@stanford.edu>
2568 * doc/contrib.texi, doc/install.texi, doc/standards.texi:
2569 Standardize on "GNU Fortran" as the official name of the Fortran
2572 2006-10-16 Mike Stump <mrs@apple.com>
2574 * doc/invoke.texi (Darwin Options): Document -mkernel.
2575 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
2577 (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support. Add
2578 SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
2579 (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
2580 (OS_MISSING_ALTIVEC): Add.
2581 * config/i386/i386.c (override_options): Add
2582 SUBSUBTARGET_OVERRIDE_OPTIONS callout.
2583 * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
2584 -mkernel, -static or -mdynamic-no-pic is given.
2585 (C_COMMON_OVERRIDE_OPTIONS): Add.
2586 * config/darwin.opt (fapple-kext): Add.
2588 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
2589 -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
2591 (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
2592 (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
2593 (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
2594 (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
2595 (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
2596 (flag_mkernel): Add.
2597 (flag_apple_kext): Add.
2598 (TARGET_KEXTABI): Add.
2599 * config/darwin.c (darwin_handle_kext_attribute): Add.
2600 (DARWIN_VTABLE_P): Add.
2601 (darwin_binds_local_p): Add partial support for rebinding vtables
2603 (darwin_kextabi_p): Add.
2604 (darwin_override_options): Add.
2605 * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
2606 (darwin_kextabi_p): Add.
2607 (darwin_override_options): Add.
2608 * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
2609 __DYNAMIC__ and __STATIC__ here.
2611 2006-10-16 Brooks Moses <bmoses@stanford.edu>
2613 * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
2614 Added mention of "make pdf" target, and Texinfo requirements for
2617 2006-10-16 DJ Delorie <dj@redhat.com>
2619 * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
2620 into the GOT in case we need a subreg of the address.
2622 2006-10-16 Richard Guenther <rguenther@suse.de>
2625 * doc/extend.texi (X86 Built-in Functions): Fix typos in
2626 SSE builtin documentation. Document SSE2 builtins.
2628 2006-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2630 * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
2631 symbol in the output file for non-shared links when -nostdlib or
2632 -nodefaultlibs isn't specified.
2634 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
2635 posix thread support.
2637 2006-10-15 Jan Hubicka <jh@suse.cz>
2640 * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
2641 declared always_inline even when not inlining.
2643 2006-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
2644 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2645 Andrew Pinski <pinskia@gmail.com>
2648 * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
2650 2006-10-15 Jan Hubicka <jh@suse.cz>
2651 Richard Guenther <rguenther@suse.de>
2654 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
2655 process_function_and_variable_attributes on all variables, including
2656 those discovered during cgraph construction phase.
2658 2006-10-15 Bernhard Fischer <aldot@gcc.gnu.org>
2660 * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
2662 2006-10-14 Uros Bizjak <uros@kss-loka.si>
2664 * config/i386/athlon.md (athlon_fist): Add fisttp.
2666 2006-10-13 David Edelsohn <edelsohn@gnu.org>
2667 Ian Lance Taylor <ian@airs.com>
2670 * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
2671 CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
2674 2006-10-14 Kazu Hirata <kazu@codesourcery.com>
2676 * config/score/score.c, config/score/score.h: Fix comment
2679 2006-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2682 * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
2685 2006-10-13 Eric Christopher <echristo@apple.com>
2687 * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2689 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
2692 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
2693 * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
2694 alignment supported by 32-bit ELF.
2696 2006-10-13 Eric Christopher <echristo@apple.com>
2698 * config/darwin.c (darwin_emit_unwind_label): Strip
2699 name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
2701 2006-10-13 Richard Guenther <rguenther@suse.de>
2703 PR tree-optimization/29446
2704 * tree-vrp.c (fix_equivalence_set): Remove.
2705 (extract_range_from_assert): Do not call fix_equivalence_set.
2706 (debug_value_range): Print a newline.
2707 (compare_name_with_value): For equivalence sets with
2708 inconsistent value ranges conservatively bail out.
2709 (compare_names): Likewise.
2711 2006-10-13 David Edelsohn <edelsohn@gnu.org>
2713 * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
2714 and MPFR for gfortran.
2716 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
2718 * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
2719 alignment supported by 32-bit ELF.
2721 2006-10-13 Paolo Bonzini <bonzini@gnu.org>
2725 * c-typeck.c (digest_init): Always allow initializing vectors
2726 that have static storage duration with compound literals.
2727 * tree.c (build_type_attribute_qual_variant): New, based on
2728 build_type_attribute_variant.
2729 (build_type_attribute_variant): Rewrite using the former.
2730 (make_vector_type): Use build_type_attribute_qual_variant to build
2731 type variants. Use type_hash_canon on the others.
2733 2006-10-13 Daniel Berlin <dberlin@dberlin.org>
2734 Ramana Radhakrishnan <ramana.radhakrishnan@celunite.com>
2736 * tree-flow-inline.h (zero_ssa_operands): Fix comment.
2738 2006-10-12 Jan Hubicka <jh@suse.cz>
2741 * c-decl.c (c_make_fname_decl): Do not segfault in case where
2742 current_function_decl is set but current_function_scope is not.
2744 2006-10-12 Jie Zhang <jie.zhang@analog.com>
2746 * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
2747 emit_insn to emit eh_return_internal instruction.
2748 (eh_return_internal): Explicitly set pc.
2750 2006-10-11 Richard Guenther <rguenther@suse.de>
2752 PR tree-optimization/28230
2753 * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
2754 to the correct place.
2756 2006-10-11 Richard Guenther <rguenther@suse.de>
2759 * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
2762 2006-10-10 Brooks Moses <bmoses@stanford.edu>
2764 * configure.ac: Added pdf to "Make-hooks"
2765 * Makefile.in: Added TEXI2PDF definition, and various pdf-file
2766 targets and *.pdf file patterns in cleanup targets.
2767 * configure: Regenerated.
2769 2006-10-10 Anatoly Sokolov <aesok@post.ru>
2771 * config/avr/predicates.md: New file.
2772 * config/avr/avr.md: Include it.
2773 (REG_SP): New constant.
2774 (peepholes): Use predicates.
2775 (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
2776 difficult_branch, difficult_rvbranch, cbi, sbi, sbix_branch,
2777 sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
2779 2006-10-10 Adam Nemet <anemet@caviumnetworks.com>
2781 * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
2784 2006-10-10 Jakub Jelinek <jakub@redhat.com>
2787 * builtins.c (var_decl_component_p): New function.
2788 (fold_builtin_memset, fold_builtin_memory_op): Restrict
2789 single entry optimization to variables and components thereof.
2791 2006-10-10 Richard Guenther <rguenther@suse.de>
2793 PR rtl-optimization/29323
2794 * except.c (set_nothrow_function_flags): For functions
2795 that do not bind local bail out early.
2797 2006-10-10 Ben Elliston <bje@au.ibm.com>
2799 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
2802 2006-10-09 Richard Henderson <rth@redhat.com>
2804 Revert emutls patch.
2806 2006-10-09 Richard Guenther <rguenther@suse.de>
2809 * cgraphunit.c (verify_cgraph_node): Bail out on earlier
2812 2006-10-09 Steve Ellcey <sje@cup.hp.com>
2815 * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
2816 * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
2817 * configure: Regenerate.
2818 * config.in: Regenerate.
2820 2006-10-09 Aldy Hernandez <aldyh@redhat.com>
2822 * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
2824 2006-10-08 Richard Sandiford <richard@codesourcery.com>
2826 * config/mips/mips.c (mips_legitimize_tls_address): Implement
2827 all TLS models in the same way as local exec if !TARGET_ABICALLS.
2828 Remove stray newline.
2830 2006-10-08 Richard Sandiford <richard@codesourcery.com>
2832 * config/mips/mips.c (mips_classify_symbol): Do not return
2833 SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
2834 (mips_in_small_data_p): Tweak comments.
2836 2006-10-08 Richard Sandiford <richard@codesourcery.com>
2838 * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
2840 2006-10-07 Kazu Hirata <kazu@codesourcery.com>
2842 * gimplify.c, sched-int.h: Fix comment typos.
2844 * sched-int.h: Fix comment typos.
2846 2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2848 * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
2850 * sched-ebb.c (begin_schedule_ready): Use them.
2851 * haifa-sched.c (schedule_insn, move_insn, try_ready,
2852 add_to_speculative_block, create_check_block_twin, speculate_insn,
2853 fix_jump_move, move_block_after_check): Ditto.
2854 * sched-rgn.c (new_ready): Ditto.
2856 2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2858 PR rtl-optimization/29128
2859 * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
2860 * sched-ebb.c (advance_target_bb): Use it to fix condition to
2861 allow interblock movement of speculation checks.
2863 2006-10-06 Zdenek Dvorak <dvorakz@suse.cz>
2866 * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
2867 casted to integer type.
2868 (get_address_cost): Decrease cost of [symbol + index] addressing modes
2869 if they are significantly more expensive than [reg + index] ones.
2871 2006-10-06 Jakub Jelinek <jakub@redhat.com>
2873 PR tree-optimization/29330
2874 * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
2875 (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
2876 on newly allocated ddrs.
2877 (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
2878 to VEC (loop_p, heap) pointer.
2879 (compute_data_dependences_for_loop): Adjust caller.
2880 (free_dependence_relations): Free DDR_LOOP_NEST.
2882 * tree-loop-linear.c (linear_transform_loops): Don't forget to
2883 free DEPENDENCE_RELATIONS and DATAREFS.
2886 * builtins.c (expand_builtin_sync_operation,
2887 expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
2888 Use convert_to_mode to handle promoted arguments.
2890 2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
2892 * print-tree.c (print_node_brief, print_node): Print sign of Inf.
2894 2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
2896 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
2898 2006-10-05 Uros Bizjak <uros@kss-loka.si>
2900 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
2901 "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
2902 Use <modeconstraint> instead of "r" as operand 1 constraint.
2904 2006-10-06 Olivier Hainque <hainque@adacore.com>
2906 * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
2907 Don't recurse on the pointed-to type.
2908 * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
2909 DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
2910 types with components of variable size.
2912 2006-10-06 Danny Smith <dannysmith@users.sourceforge.net>
2914 * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
2916 2006-10-06 Jakub Jelinek <jakub@redhat.com>
2918 PR tree-optimization/29290
2919 * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
2923 * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
2924 * config/i386/predicates.md (local_symbolic_operand): Likewise.
2927 * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
2928 the number of vector elements fill the rest with zeros.
2930 2006-10-05 Richard Sandiford <richard@codesourcery.com>
2932 * config/mips/mips.c (mips_pass_by_reference): Do not return false
2933 for EABI if type is NULL. Use a size check based on GET_MODE_SIZE
2936 2006-10-05 Bernd Schmidt <bernd.schmidt@analog.com>
2938 * config/bfin/bfin.md (subsi3): Lose expander, change previously
2939 unnamed pattern into subsi3. Use correct constraints/predicates.
2940 * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
2941 * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
2943 2006-10-05 Ira Rosen <irar@il.ibm.com>
2945 * doc/loop.texi: Add data references analysis description.
2947 2006-10-04 Brooks Moses <bmoses@stanford.edu>
2949 * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
2951 2006-10-04 Richard Henderson <rth@redhat.com>
2952 Jakub Jelinek <jakub@redhat.com>
2954 * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
2955 * builtin-types.def (BT_WORD): Make unsigned.
2956 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
2957 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
2958 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
2959 * c-decl.c (grokdeclarator): Don't error if !have_tls.
2960 * c-parser.c (c_parser_omp_threadprivate): Likewise.
2961 * cgraph.c (decide_is_variable_needed): Look at force_output.
2962 Recurse for emulated tls.
2963 * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
2964 checks redundant with decide_is_variable_needed.
2965 (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
2966 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
2968 * expr.c (emutls_var_address): New.
2969 (expand_expr_real_1): Expand emulated tls.
2970 (expand_expr_addr_expr_1): Likewise.
2971 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
2972 * output.h (emutls_finish): Declare.
2973 * toplev.c (compile_file): Call it.
2974 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
2975 address before wrapping in CONST.
2976 * varasm.c (emutls_htab, emutls_object_type): New.
2977 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
2978 (get_emutls_object_name, get_emutls_object_type): New.
2979 (get_emutls_init_templ_addr, emutls_decl): New.
2980 (emutls_common_1, emutls_finish): New.
2981 (assemble_variable): When emulating tls, swap decls; generate
2982 constructor for the emutls objects.
2983 (do_assemble_alias): When emulating tls, swap decl and target name.
2984 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
2986 * emutls.c: New file.
2987 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
2988 tls_object for real tls.
2990 2006-10-04 Zack Weinberg <zackw@panix.com>
2992 Fix bug in constraint-check generator, reported by Rask Ingemann
2994 * genpreds.c (add_constraint): Don't remove anything from the
2996 (write_tm_constrs_h): Detect whether "op" argument is used, and
2997 mark it ARG_UNUSED if it isn't.
2998 (write_insn_const_int_ok_for_constraint): Skip the part of the
2999 expression that would test whether "op" (which is not available
3000 here) is a CONST_INT.
3002 2006-10-04 Ryan Mansfield <rmansfield@qnx.com>
3005 * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
3007 2006-10-03 Geoffrey Keating <geoffk@apple.com>
3009 * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
3010 current Leopard versions.
3011 * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
3013 2006-10-03 Kazu Hirata <kazu@codesourcery.com>
3015 * doc/install.texi: Fix typos.
3017 2006-10-03 Eric Botcazou <ebotcazou@libertysurf.fr>
3019 * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
3020 * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
3021 * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
3023 2006-10-02 Jack Howarth <howarth@bromo.med.uc.edu>
3025 * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
3026 arg to be struct mach_header_64* instead.
3028 2006-10-02 Jakub Jelinek <jakub@redhat.com>
3031 * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
3032 side effects after the outer expression's post side effects.
3034 2006-10-01 Sandra Loosemore <sandra@codesourcery.com>
3036 * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix
3037 comments to reflect actual behavior and relationship between
3038 DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
3040 * doc/c-tree.texi (Working with declarations): Fix documentation
3041 of FIELD_DECL likewise.
3043 2006-10-01 Ryan Mansfield <rmansfield@qnx.com>
3046 * doc/extend.texi: Add used variable attribute description.
3048 2006-09-30 Joseph S. Myers <joseph@codesourcery.com>
3051 * c.opt (Woverride-init): New.
3052 * c-opts.c (c_common_post_options): Default warn_override_init to
3054 * c-typeck.c (add_pending_init, output_init_element): Warn for
3055 overriding initializers without side effects.
3056 * doc/invoke.texi (-Woverride-init): Document.
3059 2006-09-30 Eric Botcazou <ebotcazou@libertysurf.fr>
3061 PR rtl-optimization/28096
3062 * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
3063 assignment has already been used as a destination earlier in the block.
3065 2006-09-29 Eric Botcazou <ebotcazou@adacore.com>
3067 * builtins.c (expand_builtin_setjmp): Delete.
3068 (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
3069 <BUILT_IN_SETJMP_SETUP>: New case.
3070 <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
3071 <BUILT_IN_SETJMP_RECEIVER>: Likewise.
3072 * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
3073 (BUILT_IN_SETJMP_DISPATCHER): Likewise.
3074 (BUILT_IN_SETJMP_RECEIVER): Likewise.
3075 * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
3076 (lower_function_body): Initialize it to false. If it is set to true
3077 at the end of the processing, emit the setjmp dispatcher.
3078 (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
3079 is __builtin_setjmp and set calls_builtin_setjmp to true as well.
3080 <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
3081 on the rhs of the assignment.
3082 (lower_builtin_setjmp): New function.
3083 * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
3084 BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
3085 * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
3086 to detect calls that can go to non-local labels. Use specific
3087 helper to create the abnormal edges associated with them.
3088 <MODIFY_EXPR>: Likewise.
3089 (make_abnormal_goto_edges): New function extracted from...
3090 (make_goto_expr_edges): ...here. Call it for computed gotos.
3091 (simple_goto_p): Minor tweak.
3092 (tree_can_make_abnormal_goto): New predicate.
3093 (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
3094 (tree_purge_dead_abnormal_call_edges): New function.
3095 * tree-flow.h (tree_can_make_abnormal_goto): Declare.
3096 (tree_purge_dead_abnormal_call_edges): Likewise.
3097 (make_abnormal_goto_edges): Likewise.
3098 * tree-inline.c (expand_call_inline): Simplify statement frobbing.
3099 Purge all dead abnormal edges if the call was in the last statement.
3100 * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
3101 (execute_fixup_cfg): If there are non-local labels in the function,
3102 scan the basic blocks and split them at calls that can go to non-local
3103 labels or add missing abnormal call edges. Write down the CFG in the
3105 (pass_fixup_cfg): Remove TODO_dump_func flag.
3106 * unwind-sjlj.c: Poison setjmp.
3107 * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
3108 * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
3109 (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
3110 (DONT_USE_BUILTIN_SETJMP): Document it.
3112 2006-09-28 Geoffrey Keating <geoffk@apple.com>
3115 * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
3116 to 1 when __ppc64__ is defined.
3117 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
3119 * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
3121 2006-09-28 Steve Ellcey <sje@cup.hp.com>
3123 * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
3124 * config/ia64/unwind-hpux.c: Delete.
3126 2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
3128 * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
3129 on the element before gimplifying it, instead of punting if it is of
3132 2006-09-28 Zdenek Dvorak <dvorakz@suse.cz>
3134 * doc/loop.texi: New file.
3135 * doc/gccint.texi: Reference loop.texi.
3136 * Makefile.in (loop.texi): Add.
3138 2006-09-27 Geoffrey Keating <geoffk@apple.com>
3140 * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
3142 * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
3143 * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
3145 2006-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
3147 * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
3149 2006-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
3151 * doc/install.texi: Document required versions of GMP and MPFR.
3153 2006-09-27 Paul Brook <paul@codesourcery.com>
3156 * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
3158 2006-09-27 Richard Sandiford <richard@codesourcery.com>
3160 * reload1.c (alter_reg): Require the alignment of the stack slot to
3161 be at least reg_max_ref_width bytes.
3162 (scan_paradoxical_subregs): Record the largest width in
3165 2006-09-26 Jakub Jelinek <jakub@redhat.com>
3169 * tree-nested.c (struct nesting_info): Added static_chain_added.
3170 (convert_call_expr): Set static_chain_added when adding static
3171 chain. Handle OMP_PARALLEL and OMP_SECTION.
3173 2006-09-25 Matthias Klose <doko@debian.org>
3175 * doc/invoke.texi: Add missing full stop.
3177 2006-09-25 Richard Henderson <rth@redhat.com>
3179 * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
3180 before cgraph_function_flags_ready.
3182 2006-09-24 Zdenek Dvorak <dvorakz@suse.cz>
3183 Adam Nemet <anemet@caviumnetworks.com>
3185 * tree-ssa-loop-ivopts.c (aff_combination_convert,
3186 determine_common_wider_type): New functions.
3187 (get_computation_aff): Use them to simplify arithmetic between
3188 UBASE and CBASE if they are shortened from the same type.
3190 2006-09-24 Kazu Hirata <kazu@codesourcery.com>
3193 * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
3194 -2147483647 - 1 instead of 0x80000000.
3196 2006-09-23 Revital1 Eres <ERES@il.ibm.com>
3198 * flags.h (HONOR_NANS): Fix typo in comment.
3200 2006-09-23 Uros Bizjak <uros@kss-loka.si>
3202 * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
3204 2006-09-23 Jakub Jelinek <jakub@redhat.com>
3208 * tree.c (merge_attributes, attribute_list_contained): If both
3209 TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
3211 * c-typeck.c (comptypes_internal): Don't consider aggregates
3212 in different TUs as compatible if there one set of attributes is
3213 not a subset of the other type's attributes.
3214 (composite_type): Try harder not to create a new aggregate type.
3216 2006-09-22 Geoffrey Keating <geoffk@apple.com>
3218 * config/i386/driver-i386.c: Always define host_detect_local_cpu.
3219 * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
3220 or x86_64 host. Define HAVE_LOCAL_CPU_DETECT.
3221 (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
3222 than replicating condition above.
3223 * config.host (i[34567]86-*-*): Always use driver-i386.o.
3225 * config/darwin.h (LINK_SYSROOT_SPEC): New.
3226 (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
3227 the linker by default.
3229 2006-09-22 Mike Stump <mrs@apple.com>
3231 * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
3234 2006-09-22 Richard Guenther <rguenther@suse.de>
3237 * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
3238 sort of stack variables stable.
3240 2006-09-22 Peter Bergner <bergner@vnet.ibm.com>
3243 * explow.c (force_reg): Set REG_POINTER flag according to
3246 2006-09-22 Zdenek Dvorak <dvorakz@suse.cz>
3248 PR tree-optimization/28888
3249 * tree-if-conv.c (combine_blocks): Rewritten.
3250 * tree-cfg.c (tree_verify_flow_info): Check that edges with
3251 EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
3253 2006-09-22 Jakub Jelinek <jakub@redhat.com>
3255 * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
3258 2006-09-21 Richard Sandiford <richard@codesourcery.com>
3260 * varasm.c (copy_constant): Fix reversed gcc_assert check.
3262 2006-09-21 Janis Johnson <janis187@us.ibm.com>
3264 * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
3266 2006-09-21 Roger Sayle <roger@eyesopen.com>
3269 * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
3270 dw_fde_current_label, to be the start of the function, i.e. the same
3271 value as dw_fde_begin.
3273 2006-09-20 Richard Sandiford <richard@codesourcery.com>
3275 * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
3276 * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
3277 (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
3278 (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
3279 (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
3280 (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
3281 (abs<mode>2, neg<mode>2): Likewise.
3282 * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
3283 (*mips_abs_ps): New define_insn.
3285 2006-09-20 Josh Conner <jconner@apple.com>
3288 * calls.c (expand_call): Allow reuse of structure return stack
3291 2006-09-20 Paul Brook <paul@codesourcery.com>
3293 * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
3296 2006-09-20 Janis Johnson <janis187@us.ibm.com>
3298 * doc/extend.texi (Decimal Float): Update for latest draft TR,
3299 clean up terminology.
3301 2006-09-20 Steve Ellcey <sje@cup.hp.com>
3304 * ifcvt.c (dead_or_predicable): Don't predicate then blocks
3305 with tablejumps in them.
3307 2006-09-20 Jakub Jelinek <jakub@redhat.com>
3310 * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
3311 wrap it into TARGET_EXPR.
3313 2006-09-20 Eric Christopher <echristo@apple.com>
3315 * config/i386/i386.c (x86_fisttp): Remove.
3316 * config/i386/i386.h (x86_fisttp): Ditto.
3317 (TARGET_FISTTP): Ditto.
3319 2006-09-19 Eric Christopher <echristo@apple.com>
3321 * doc/tm.texi (OBJC_JBLEN): Describe.
3322 * config/i386/darwin.h (OBJC_JBLEN): Define.
3323 * config/rs6000/darwin.h: Ditto.
3325 2006-09-19 Steven Bosscher <steven@gcc.gnu.org>
3327 PR rtl-optimization/21299
3328 * reload1.c (reload): Purge invalid ASMs in the final pass.
3330 2006-09-19 Steve Ellcey <sje@cup.hp.com>
3333 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
3334 pointers as legitimate constants.
3336 2006-09-19 Paul Brook <paul@codesourcery.com>
3339 * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
3341 2006-09-17 Zdenek Dvorak <dvorakz@suse.cz>
3343 PR tree-optimization/28887
3344 * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
3345 component parts from the reference.
3346 (gather_memory_references_ref): Record the reference without the
3347 nonaddressable component parts.
3349 2006-09-17 Steven Bosscher <steven@gcc.gnu.org>
3352 * c-opts.c (c_common_handle_option): Ignore the -std options
3353 if the input language is assembly.
3355 2006-09-17 Ira Rosen <irar@il.ibm.com>
3358 * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
3360 (ptr_ptr_may_alias_p): Likewise.
3361 (record_record_differ_p): New function.
3362 (base_object_differ_p): Call record_record_differ_p.
3364 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
3367 * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
3368 away for the expr argument.
3370 2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
3373 * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
3374 before using it for dumping after vectorizing loops.
3376 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
3377 Jack Howarth <howarth@bromo.med.uc.edu>
3380 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
3381 skip on error_mark_node.
3382 (rs6000_darwin64_record_arg_recurse): Likewise.
3384 2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
3386 * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
3387 * doc/rtl.texi: Remove related documentation.
3389 2006-09-16 Bernd Schmidt <bernd.schmidt@analog.com>
3391 * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
3394 2006-09-15 Jim Wilson <wilson@specifix.com>
3396 * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
3397 Handle symbol offsets same as they are handled in ia64_expand_move
3400 2006-09-16 Andreas Tobler <a.tobler@schweiz.org>
3402 * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
3403 Add forgotten parameter to the fprintf call.
3405 2006-09-15 Steve Ellcey <sje@cup.hp.com>
3407 * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
3409 2006-09-15 Uros Bizjak <uros@kss-loka.si>
3411 * doc/contrib.texi: Add my entry.
3413 2006-09-15 Nick Clifton <nickc@redhat.com>
3415 * doc/md.texi (Processor pipeline description): Fix typo in
3416 example of how to use the absence_set directive and reword the
3417 description to make it slightly easier to read.
3419 2006-09-15 Bernd Schmidt <bernd.schmidt@analog.com>
3421 * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
3422 * loop-doloop.c (doloop_optimize): Use it to limit costs of
3423 expanding the number of iterations.
3424 * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
3426 * cfgrtl.c (emit_insn_at_entry): New function.
3427 * rtl.h (emit_insn_at_entry): Declare it.
3428 * integrate.c (emit_initial_value_sets): Use it.
3430 * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
3432 * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
3434 (struct loop_work and related VEC declarations): Delete.
3435 (bfin_dump_loops): Print out new member bad.
3436 (bfin_bb_in_loop): Use plain bitmap test. Don't recurse.
3437 (bfin_scan_loop): Don't recurse.
3438 (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
3439 loops. No longer need to update outer loops if the current one is
3440 found bad. Move some validitiy checks to bfin_discover_loop.
3441 (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
3442 but changed not to check for nesting. Also changed to use the new bad