1 2007-05-12 Richard Guenther <rguenther@suse.de>
3 PR tree-optimization/31797
4 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
5 propagate into a stmt that has volatile ops.
7 2007-05-01 Ian Lance Taylor <iant@google.com>
9 PR tree-optimization/31739
10 * tree-vrp.c (vrp_val_is_max): New static function.
11 (vrp_val_is_min): New static function.
12 (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
14 (set_value_range): Use vrp_val_is_{max,min}.
15 (extract_range_from_assert): Likewise.
16 (extract_range_from_binary_expr): Likewise.
17 (extract_range_from_unary_expr): Likewise.
18 (dump_value_range, vrp_meet): Likewise.
19 (vrp_visit_phi_node): Likewise.
20 * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
22 2007-05-01 Joseph Myers <joseph@codesourcery.com>
24 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
26 2007-04-27 Anatoly Sokolov <aesok@post.ru>
28 * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
29 ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
30 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
31 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
33 2007-04-27 Ian Lance Taylor <iant@google.com>
36 * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
37 TYPE_MAX_VALUE exist, convert them to the new type.
39 2007-04-26 Ian Lance Taylor <iant@google.com>
42 * reload.c (find_reloads_subreg_address): If the address was valid
43 in the original mode but not in the new mode, reload the whole
46 2007-04-26 Ulrich Weigand <uweigand@de.ibm.com>
49 * reload1.c (eliminate_regs_in_insn): In the single_set special
50 case, attempt to re-recognize the insn before falling back to
51 having reload fix it up.
53 2007-04-26 Richard Guenther <rguenther@suse.de>
54 Daniel Berlin <dberlin@dberlin.org>
56 PR tree-optimization/30567
57 * tree-ssa-structalias.c (update_alias_info): Record dereference
58 also if ESCAPE_STORED_IN_GLOBAL.
60 2007-04-26 Jakub Jelinek <jakub@redhat.com>
63 * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
65 PR tree-optimization/30558
66 * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
67 clear this_state.prev_try.
69 2007-04-25 Anatoly Sokolov <aesok@post.ru>
72 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
74 2007-04-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
75 Roger Sayle <roger@eyesopen.com>
78 * expmed.c (make_tree): Use the correct type, i.e. the inner
79 type, when constructing the individual elements of a CONST_VECTOR.
81 2007-04-24 Ian Lance Taylor <iant@google.com>
83 PR tree-optimization/31605
84 * tree-vrp.c (set_value_range): Check that min and max are not
85 both overflow infinities.
86 (set_value_range_to_value): New static function.
87 (extract_range_from_binary_expr): Call set_value_range_to_value.
88 (extract_range_from_expr): Likewise.
89 (extract_range_from_unary_expr): Likewise. Don't create a range
90 which overflows on both sides.
91 (vrp_meet): Check for a useless range.
92 (vrp_visit_phi_node): If we see a constant which looks like an
93 overflow infinity, turn off the TREE_OVERFLOW flag.
95 2007-04-24 Ian Lance Taylor <iant@google.com>
97 PR tree-optimization/31602
98 * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
99 conditionals in the copied loop header.
100 * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
101 warnings if TREE_NO_WARNING is set.
102 * doc/invoke.texi (Warning Options): Clarify that
103 -Wstrict-overflow does not warn about loops.
105 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
108 * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant length
109 argument of 0 for memset.
110 (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
111 unsigned shift instead of the signed variant.
113 2007-04-24 Daniel Franke <franke.daniel@gmail.com>
115 * doc/invoke.texi: Removed leading '-' from option index entries.
117 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
120 * expr.c (reduce_to_bit_field_precision): Handle
123 2007-04-20 Richard Henderson <rth@redhat.com>
126 * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
127 argument; update all callers.
128 (get_unaligned_offset): New.
129 * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
130 get_unaligned_address, just pass on the address directly.
131 (unaligned_extendqidi): Use gen_lowpart instead of open-coding
132 the subreg in the helper patterns.
133 (unaligned_extendqidi_le): Use get_unaligned_offset.
134 (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
135 (unaligned_extendhidi_be): Likewise.
136 (unaligned_extendhidi): Tidy.
137 * config/alpha/alpha-protos.h: Update.
139 2007-04-21 Richard Guenther <rguenther@suse.de>
142 * fold-const.c (fold_unary): Call fold_convert_const on the
145 2007-04-20 Richard Henderson <rth@redhat.com>
147 * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
149 2007-04-20 Bernd Schmidt <bernd.schmidt@analog.com>
151 * reload.c (combine_reloads): When trying to use a dying register,
152 check whether it's uninitialized and don't use if so.
154 2007-04-20 Jakub Jelinek <jakub@redhat.com>
156 * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
157 for __builtin_ia32_cmpordss.
159 PR tree-optimization/31632
160 * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
161 and arg1 for optimizations of comparison against min/max values.
162 Fold arg0 to arg1's type for optimizations of comparison against
163 min+1 and max-1 values.
165 2007-04-19 Eric Botcazou <ebotcazou@libertysurf.fr>
167 PR rtl-optimization/29841
168 * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
170 * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
171 that may cause control flow transfer from being moved.
173 2007-04-18 Anatoly Sokolov <aesok@post.ru>
175 * config/avr/avr.c (ptrreg_to_str): Replace error() with
176 output_operand_lossage().
178 2007-04-17 Anatoly Sokolov <aesok@post.ru>
181 * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
184 2007-04-17 Jan Hubicka <jh@suse.cz>
187 * dwarf2out.c (reference_to_unused): Ask cgraph for functions
188 availablility; add more sanity checking; ask varpool only about
191 2007-04-17 H.J. Lu <hongjiu.lu@intel.com>
193 * Backport from mainline:
194 2007-04-17 H.J. Lu <hongjiu.lu@intel.com>
196 * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
198 (sse_vmmulv4sf3): Likewise.
199 (sse2_vmaddv2df3): Likewise.
200 (sse2_vmmulv2df3): Likewise.
202 2007-04-16 Matthias Klose <doko@debian.org>
204 * config/alpha/linux.h (CPP_SPEC): Define.
205 * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
207 2007-04-16 Anatoly Sokolov <aesok@post.ru>
209 * config/avr/avr.c (avr_arch_types): Rearranging array.
210 (enum avr_arch): Add.
211 (avr_mcu_types): Use avr_arch enumeration constants instead of
213 * config/avr/avr.h (LINK_SPEC): Simplify.
215 2007-04-16 Jan Hubicka <jh@suse.cz>
219 (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
220 (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
221 (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
222 (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
224 2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
226 * Backport from mainline:
227 2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
230 * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
231 copy of source, pass it to ix86_expand_vector_set and return
234 2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
237 * c-decl.c (finish_decl): Grab the type of the decl after the call
240 2007-04-14 Jakub Jelinek <jakub@redhat.com>
243 * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
244 post dominators and cleanup cfg before returning.
246 2007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
248 * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
249 null before emitting a .nsubspa directive.
251 2007-04-08 Anatoly Sokolov <aesok@post.ru>
254 * config/avr/predicates.md (io_address_operand): Delete predicate.
255 (low_io_address_operand): Don't use 'mode' argument.
256 (higth_io_address_operand): Rename ...
257 (high_io_address_operand): ... to this. Don't use 'mode' argument.
258 * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
261 2007-04-07 Anatoly Sokolov <aesok@post.ru>
264 * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
267 2007-04-05 Anatoly Sokolov <aesok@post.ru>
270 * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
271 DECL_ASSEMBLER_NAME, not the DECL_NAME.
273 2007-04-04 Richard Henderson <rth@redhat.com>
276 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove
277 v8hi_ftype_v8hi_v2di, v4si_ftype_v4si_v2di. Use like-types for
278 the variable shift builtins.
279 (ix86_expand_builtin): Properly expand the variable shift builtins.
280 * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
282 * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
283 _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
284 _mm_srli_epi32, _mm_srli_epi64): Turn into macros.
285 (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
286 (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
287 _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
288 two-vector shift builtins.
290 2007-04-04 Chen liqin <liqin@sunnorth.com.cn>
292 * config/score/crti.asm: Change _bss_start to __bss_start.
293 * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
294 (OUTGOING_REG_PARM_STACK_SPACE) update.
295 * config/score/score.opt: add options to make backend support
296 score5, score5u, score7 and score7d.
297 * config/score/score.md: Likewise.
298 * config/score/misc.md: Likewise.
299 * config/score/mac.md: Likewise.
300 * doc/invoke.texi: Likewise.
301 * doc/md.texi: update constraints define.
303 2007-04-03 Stuart Hastings <stuart@apple.com>
306 * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
307 * cse.c (record_jump_equiv): Bail out on CCmode comparisons.
309 2007-04-03 Jakub Jelinek <jakub@redhat.com>
312 * fold-const.c (native_encode_real): Encode real.c provided longs
313 as a series of 32-bit native integers.
314 (native_interpret_real): Interpret buffer as a series of 32-bit
317 2007-04-02 Eric Christopher <echristo@apple.com>
319 * doc/invoke.texi (i386 and x86-64 Options): Document -m64
320 limitations on darwin.
322 2007-04-02 Anatoly Sokolov <aesok@post.ru>
325 * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
327 2007-04-02 H.J. Lu <hongjiu.lu@intel.com>
329 * Backport from mainline:
330 2007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
333 * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
335 2007-03-30 Anatoly Sokolov <aesok@post.ru>
337 * config/avr/avr.c (avr_override_options): Clear
338 'flag_delete_null_pointer_checks'.
340 2007-03-29 Michael Matz <matz@suse.de>
342 * builtins.c (expand_builtin_sync_operation,
343 expand_builtin_compare_and_swap,
344 expand_builtin_lock_test_and_set): Care for extending CONST_INTs
347 * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
348 sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
351 2007-03-28 Mike Stump <mrs@apple.com>
353 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
354 * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
355 * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
357 2007-03-27 Anatoly Sokolov <aesok@post.ru>
359 * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
362 2007-03-26 Ian Lance Taylor <iant@google.com>
364 PR tree-optimization/31345
365 * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
366 [+INF, +INF(OVF)] into VARYING.
368 2007-03-23 Martin Michlmayr <tbm@cyrius.com>
370 * doc/invoke.texi (-fforce-mem): Update documentation to reflect
371 that this option will be removed in 4.3 rather than 4.2.
372 * opts.c (common_handle_option): Likewise.
374 2007-03-21 Mike Stump <mrs@apple.com>
376 * c.opt: Fixup for Objective-C/C++.
378 2007-03-21 Richard Henderson <rth@redhat.com>
381 * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
382 * config/i386/mmintrin.h (__m64): Likewise.
383 * config/i386/xmmintrin.h (__m128): Likewise.
385 2007-03-20 Jakub Jelinek <jakub@redhat.com>
388 * c-typeck.c (convert_for_assignment): Call comptypes for
389 RECORD_TYPE or UNION_TYPE.
392 * reload1.c (reload): Do invalid ASM checking after
393 cleanup_subreg_operands.
395 2007-03-19 Jeff Law <law@redhat.com>
397 * tree-cfg.c (find_taken_edge): Tighten conditions for
398 optimizing computed gotos.
400 2007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
402 * pa.c (attr_length_call): Partially revert change of 2007-03-09.
403 (output_call): Likewise.
405 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
408 * dwarf2out.c (force_type_die): Adjust comment.
409 (dwarf2out_imported_module_or_decl): Handle base AT_import types.
411 2007-03-15 Seongbae Park <seongbae.park@gmail.com>
413 PR tree-optimization/30590
414 * tree-nrv.c (tree_nrv): Check for the partial update
417 2007-03-14 Ian Lance Taylor <iant@google.com>
419 * tree-vrp.c (value_inside_range): Ignore fold warnings.
421 2007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
424 * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
427 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
429 * doc/extend.texi: Edit "gnu_inline" documentation.
430 * doc/invoke.texi: Edit "-fgnu89-inline" documentation.
432 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
434 * doc/extend.texi: Fix cpp.info cross-reference.
435 * doc/invoke.texi: Fix cpp.info cross-reference.
436 * doc/passes.texi: Fix gcc.info cross-reference.
438 2007-03-12 Daniel Berlin <dberlin@dberlin.org>
440 Fix PR tree-optimization/28544
441 * tree-ssa-operands.c (add_virtual_operand):
442 Move assert triggering on aliasing violations into
445 2007-03-12 Ian Lance Taylor <iant@google.com>
447 * c.opt (fgnu89-inline): New option.
448 * c-opts.c (c_common_post_options): Warn about -fno-gnu89-inline.
449 * c-common.c (c_common_attributes): Add gnu_inline attribyte.
450 (handle_gnu_inline_attribute): New static function.
451 * c-decl.c (start_function): Warn if we see a non-static inline
452 function in C99 mode.
453 * c-cppbuiltin.c (c_cpp_builtins): Define __GNUC_GNU_INLINE__.
454 * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
455 (C Dialect Options): Document -fgnu89-inline.
456 * doc/extend.texi (Function Attributes): Document gnu_inline.
457 (Inline): Mention that C99 inline will be implemented in 4.3.
458 Refer to ways to get the old handling.
459 * doc/cpp.texi (Common Predefined Macros): Document
460 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
462 2007-03-12 Richard Henderson <rth@redhat.com>
464 * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
465 (TARGET_SECTION_TYPE_FLAGS): New.
467 2007-03-12 Richard Henderson <rth@redhat.com>
469 * config/darwin.c (machopic_reloc_rw_mask): New.
470 (machopic_select_section): Use decl_readonly_section.
471 * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
472 * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
474 2007-02-14 Richard Guenther <rguenther@suse.de>
476 Backport from mainline:
477 * flags.h (issue_strict_overflow_warning): Convert to a macro.
479 2007-03-11 Ian Lance Taylor <iant@google.com>
481 Backport -fstrict-overflow/-Wstrict-overflow from mainline:
482 2007-03-11 Ian Lance Taylor <iant@google.com>
484 * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
485 the *_DIV_EXPR codes correctly with overflow infinities.
487 2007-03-09 Ian Lance Taylor <iant@google.com>
489 * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
490 argument) like -Wstrict-overflow=2.
491 * doc/invoke.texi (Warning Options): Update documentation.
493 2007-03-08 Ian Lance Taylor <iant@google.com>
495 * tree-vrp.c: Include "toplev.h" and "intl.h".
496 (usable_range_p): New static function.
497 (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
498 overflowed values, juts set *strict_overflow_p.
499 (compare_values): Only return -2 if one of the operands is not a
501 (compare_ranges): Call usable_range_p.
502 (compare_range_with_value): Likewise.
503 (vrp_evaluate_conditional_warnv): Rename from
504 vrp_evaluate_conditional. Make static. Change all callers.
505 (vrp_evaluate_conditional): New function.
506 (simplify_div_or_mod_using_ranges): Issue warning about reliance
508 (simplify_abs_using_ranges): Likewise.
509 (simplify_stmt_for_jump_threading): Add within_stmt parameter.
510 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
511 within_stmt parameter.
512 * tree-ssa-propagate.c (fold_predicate_in): Update call to
513 vrp_evaluate_conditional.
514 * tree-ssa-threadedge.c
515 (record_temporary_equivalences_from_stmts_at_dest): Change
516 simplify parameter to take a second tree parameter.
517 (simplify_control_stmt_condition): Likewise.
518 (thread_across_edge): Likewise.
519 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
520 (thread_across_edge): Likewise.
521 * Makefile.in (tree-vrp.o): Depend upon toplev.h and intl.h.
523 2007-03-05 Ian Lance Taylor <iant@google.com>
525 * tree-vrp.c (extract_range_from_assert): Don't try to handle a
526 half-range if the other side is an overflow infinity.
528 2007-03-02 Ian Lance Taylor <iant@google.com>
530 Used signed infinities in VRP.
531 * tree-vrp.c (uses_overflow_infinity): New static function.
532 (supports_overflow_infinity): New static function.
533 (make_overflow_infinity): New static function.
534 (negative_overflow_infinity): New static function.
535 (positive_overflow_infinity): New static function.
536 (is_negative_overflow_infinity): New static function.
537 (is_positive_overflow_infinity): New static function.
538 (is_overflow_infinity): New static function.
539 (overflow_infinity_range_p): New static function.
540 (compare_values_warnv): New function split out of compare_values.
541 (compare_value): Call it.
542 (set_value_range_to_nonnegative): Add overflow_infinity
543 parameter. Change caller.
544 (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
546 (vrp_expr_computes_nonzero): Likewise.
547 (compare_ranges, compare_range_with_value): Likewise.
548 (compare_name_with_value, compare_names): Likewise.
549 (vrp_evaluate_conditional): Likewise.
550 (set_value_range): Handle infinity
551 (vrp_operand_equal_p, operand_less_p): Likewise.
552 (extract_range_from_assert): Likewise.
553 (vrp_int_const_binop): Likewise.
554 (extract_range_from_binary_expr): Likewise.
555 (extract_range_from_unary_expr): Likewise.
556 (extract_range_from_comparison): Likewise.
557 (extract_range_from_expr): Likewise.
558 (dump_value_range): Likewise.
559 (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
560 (test_for_singularity): Likewise.
561 (vrp_int_const_binop): Remove inline qualifier.
562 (adjust_range_with_scev): Add comment.
563 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
565 2007-02-13 Ian Lance Taylor <iant@google.com>
567 * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
568 * flags.h (warn_strict_overflow): Declare.
569 (enum warn_strict_overflow_code): Define.
570 (issue_strict_overflow_warning): New static inline function.
571 * opts.c (warn_strict_overflow): New variable.
572 (common_handle_option): Handle OPT_Wstrict_overflow and
573 OPT_Wstrict_overflow_.
574 * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
576 * fold-const.c: Include intl.h.
577 (fold_deferring_overflow_warnings): New static variable.
578 (fold_deferred_overflow_warning): New static variable.
579 (fold_deferred_overflow_code): New static variable.
580 (fold_defer_overflow_warnings): New function.
581 (fold_undefer_overflow_warnings): New function.
582 (fold_undefer_and_ignore_overflow_warnings): New function.
583 (fold_deferring_overflow_warnings_p): New function.
584 (fold_overflow_warning): New static function.
585 (make_range): Add strict_overflow_p parameter. Change all
587 (extract_muldiv, extract_muldiv_1): Likewise.
588 (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
589 tree_expr_nonnegative_p.
590 (fold_negate_expr): Call fold_overflow_warning.
591 (fold_range_test): Likewise.
592 (fold_comparison): Likewise.
593 (fold_binary): Likewise. Call tree_expr_nonnegative_warnv_p
594 instead of tree_expr_nonnegative_p.
595 (tree_expr_nonnegative_warnv_p): Rename from
596 tree_expr_nonnegative_p, add strict_overflow_p parameter.
597 (tree_expr_nonnegative_p): New function.
598 (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
599 strict_overflow_p parameter.
600 (tree_expr_nonzero_p): New function.
601 * passes.c (verify_interpass_invariants): New static function.
602 (execute_one_pass): Call it.
603 * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
605 (number_of_iterations_exit, loop_niter_by_eval): Likewise.
606 (estimate_numbers_of_iterations): Likewise.
607 (scev_probably_wraps_p): Likewise.
608 * tree-ssa-ccp.c: Include "toplev.h".
609 (evaluate_stmt): Defer fold overflow warnings until we know we are
611 (struct fold_stmt_r_data): Add stmt field.
612 (fold_stmt_r): Defer fold overflow warnings until we know we
614 (fold_stmt): Initialize stmt field of fold_stmt_r_data.
615 (fold_stmt_inplace): Likewise.
616 * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
617 (cleanup_control_expr_graph): Defer fold overflow warnings until
618 we know we are going to optimize.
619 * tree-cfg.c (fold_cond_expr_cond): Likewise.
620 * tree-ssa-threadedge.c (simplify_control_stmt_condition):
622 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
623 tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
624 * tree-ssa-loop-manip.c (create_iv): Likewise.
625 * c-typeck.c (build_conditional_expr): Likewise.
626 (build_binary_op): Likewise.
627 * tree-vrp.c (vrp_expr_computes_nonzero): Call
628 tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
629 (extract_range_from_unary_expr): Likewise.
630 * simplify-rtx.c (simplify_const_relational_operation): Warn when
631 assuming that signed overflow does not occur.
632 * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
633 * tree.h (tree_expr_nonnegative_warnv_p): Declare.
634 (fold_defer_overflow_warnings): Declare.
635 (fold_undefer_overflow_warnings): Declare.
636 (fold_undefer_and_ignore_overflow_warnings): Declare.
637 (fold_deferring_overflow_warnings_p): Declare.
638 (tree_expr_nonzero_warnv_p): Declare.
639 * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
641 (Warning Options): Document -Wstrict-overflow.
642 * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
643 (tree-ssa-ccp.o): Likewise.
644 (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
645 (fold-const.o): Depend on intl.h.
647 2007-01-27 Ian Lance Taylor <iant@google.com>
649 * common.opt: Add fstrict-overflow.
650 * opts.c (decode_options): Set flag_strict_overflow if -O2.
651 * flags.h (TYPE_OVERFLOW_WRAPS): Define.
652 (TYPE_OVERFLOW_UNDEFINED): Define.
653 (TYPE_OVERFLOW_TRAPS): Define. This replaces TYPE_TRAP_SIGNED.
655 * tree.h (TYPE_TRAP_SIGNED): Don't define.
656 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
657 (fold_negate_expr): Likewise.
658 (make_range): Likewise.
659 (extract_muldiv_1): Likewise.
660 (fold_comparison): Likewise.
661 (fold_binary): Likewise.
662 (tree_expr_nonnegative_p): Likewise.
663 (tree_expr_nonzero_p): Likewise.
664 * tree-vrp.c (compare_values): Likewise.
665 (extract_range_from_binary_expr): Likewise.
666 (extract_range_from_unary_expr): Likewise.
667 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
669 (nowrap_type_p): Likewise.
670 * tree-scalar-evolution.c (simple_iv): Likewise.
671 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
672 (build_range_check): Likewise.
673 (extract_muldiv_1): Likewise.
674 (fold_comparison): Likewise.
675 * tree-vrp.c (vrp_int_const_binop): Likewise.
676 (extract_range_from_unary_expr): Likewise.
677 * convert.c (convert_to_integer): Likewise.
678 * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
679 (fold_comparison): Likewise.
680 (fold_binary): Likewise.
681 * optabs.c (optab_for_tree_code): Likewise.
682 * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
683 * simplify-rtx.c (simplify_const_relational_operation): Check
684 flag_strict_overflow and flag_trapv.
685 (simplify_const_relational_operation): Likewise.
686 * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
687 (Optimize Options): Add -fstrict-overflow to -O2 list. Document
690 2007-01-17 Ian Lance Taylor <iant@google.com>
692 * vec.h (VEC_reserve_exact): Define.
693 (vec_gc_p_reserve_exact): Declare.
694 (vec_gc_o_reserve_exact): Declare.
695 (vec_heap_p_reserve_exact): Declare.
696 (vec_heap_o_reserve_exact): Declare.
697 (VEC_OP (T,A,reserve_exact)): New static inline function, three
699 (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
701 (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
702 (VEC_OP (T,A,copy)) [all versions]: Likewise.
703 (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
704 * vec.c (calculate_allocation): Add exact parameter. Change all
706 (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
707 (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
708 (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
709 (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
710 (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
711 (vec_heap_p_reserve_exact): New function.
712 (vec_heap_o_reserve_exact): New function.
714 2007-03-11 Roger Sayle <roger@eyesopen.com>
715 Andrew Pinski <andrew_pinski@playstation.sony.com>
718 * fold-const.c (fold_relational_const): Add back compile-time
719 evaluation of complex constant equality/inequality comparisons.
721 2007-03-11 Ira Rosen <irar@il.ibm.com>
723 PR tree-optimization/29925
724 * tree-data-ref.c (analyze_offset): Add a return value (bool) to
725 indicate success/failure of the analysis. Add negation to subtrahend
726 in case of subtraction. Fail if both operands contain constants.
727 (create_data_ref): Fail if analyze_offset fails.
729 2007-03-10 Mark Mitchell <mark@codesourcery.com>
732 * tree.c (walk_type_fields): Recurse into the element type of
733 ARRAY_TYPEs if there is a pointer set.
735 2007-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
737 * pa.c (attr_length_call): Revise condition for long pc-relative branch.
738 (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
739 calls on the SOM target. Don't use "LONG_PIC_PCREL" call sequence on
742 2007-03-09 Richard Henderson <rth@redhat.com>
745 * target.h (targetm.asm.out.reloc_rw_mask): New.
746 * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
747 (TARGET_ASM_OUT): Use it.
748 * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
749 * varasm.c (categorize_decl_for_section): Remove shlib argument;
750 use the new reloc_rw_mask target hook instead.
751 (default_section_type_flags_1): Merge into...
752 (default_section_type_flags): ... here.
753 (decl_readonly_section_1): Merge into...
754 (decl_readonly_section): ... here.
755 (default_elf_select_section_1): Merge into...
756 (default_elf_select_section): ... here.
757 (default_unique_section_1): Merge into...
758 (default_unique_section): ... here.
759 (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
760 (default_select_rtx_section): Use it.
761 (default_elf_select_rtx_section): Likewise.
762 * output.h: Update to match.
763 * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
764 * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
765 (TARGET_ASM_RELOC_RW_MASK): New.
766 * config/i386/i386.c (x86_64_elf_select_section): Adjust call
767 to categorize_decl_for_section.
768 (x86_64_elf_unique_section): Likewise.
769 * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
770 TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
771 (TARGET_ASM_RELOC_RW_MASK): New.
772 * config/ia64/ia64.c (ia64_rwreloc_select_section,
773 ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
774 (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
775 (TARGET_RWRELOC): Remove.
776 (ia64_section_type_flags): Adjust call to default_section_type_flags.
777 * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
778 * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
779 (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
780 (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
781 (rs6000_xcoff_select_section): Use decl_readonly_section.
782 (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
783 * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
784 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
785 (TARGET_SECTION_TYPE_FLAGS): Remove.
786 * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
788 2007-03-08 Geoffrey Keating <geoffk@apple.com>
791 * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
793 * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
794 passed, use shared libgcc.
796 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
798 PR rtl-optimization/30643
799 * cse.c (cse_insn): Recompute dest_hash after insert_regs for
802 2007-03-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
805 * tree-vrp.c (nonnull_arg_p): Treat the static decl as always
808 2007-03-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
811 * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
812 effects unknown to this function, return early.
814 2007-03-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
817 * tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary
818 bitmap for EXECUTE_IF_SET_IN_BITMAP.
820 2006-03-09 Mark Shinwell <shinwell@codesourcery.com>
821 Andrew MacLeod <amacleod@redhat.com>
822 PR tree-optimization/29877
823 * tree-outof-ssa.c (check_replaceable): Don't allow TER to replace
824 an expression if the RHS is a register variable.
826 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
829 * c-decl.c (merge_decls): Don't call make_var_volatile.
830 * varasm.c (make_var_volatile): Remove.
831 * output.h (make_var_volatile): Remove.
833 2007-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
835 * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
836 llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
837 ATTR_CONST_NOTHROW_LIST.
839 * fold-const.c (tree_expr_nonnegative_p): Handle FIX_TRUNC_EXPR.
841 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
844 * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
845 instead of precision.
847 2007-03-08 Volker Reichelt <reichelt@netcologne.de>
850 * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
852 2007-03-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
854 * c.opt (Waddress): New.
855 * common.opt (Walways-true): Delete.
856 (Wstring-literal-comparison): Delete.
857 * doc/invoke.texi (Warning Options): Delete -Walways-true and
858 -Wstring-literal-comparison. Add -Waddress.
860 (Walways-true): Delete.
861 (Wstring-literal-comparison): Delete.
862 * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
863 consistently instead of -Walways-true in example.
864 * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
865 * c-typeck.c (parser_build_binary_op): Replace
866 -Wstring-literal-comparison and -Walways-true with -Waddress.
867 (build_binary_op): Likewise.
868 * c-common.c (c_common_truthvalue_conversion): Likewise.
870 2007-03-07 Richard Henderson <rth@redhat.com>
873 * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
874 silently fix up the stack in the case of a missing register.
876 2007-03-06 David Daney <ddaney@avtrex.com>
878 * doc/install.texi (mips-*-*): Change recommended binutils
881 2007-03-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
883 * doc/invoke.texi (Warning Options): Replace -Werror- with
885 * opts.c (common_handle_option): Likewise.
887 2007-03-06 Anatoly Sokolov <aesok@post.ru>
889 * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
890 ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
892 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
893 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
895 2007-03-06 Roger Sayle <roger@eyesopen.com>
898 * fold-const.c (fold_binary) <EQ_EXPR>: Enforce type consistency
899 when transforming ~X op C to X op' ~C.
901 2007-03-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
903 * pa.md: In unamed move patterns, disparge copies between general
904 and floating point registers using '?' modifier. Don't include 'f'
905 constraint for register preferences in DImode, SImode, HImode and
906 QImode patterns. Likewise for 'r' in DFmode and SFmode patterns.
907 Remove constraints for copies between general and floating registers
908 in soft-float DFmode pattern.
909 (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
913 2007-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
915 * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
918 2007-03-05 Steve Ellcey <sje@cup.hp.com>
920 Backported from mainline
922 * cgraph.h (cgraph_varpool_last_needed_node): Make global.
923 * cgraph.c (cgraph_varpool_last_needed_node): Ditto.
924 * cgraphunit.c (cgraph_varpool_assemble_pending_decls):
925 Set cgraph_varpool_last_needed_node to NULL.
927 2007/03/05 David Taylor <dtaylor@emc.com>
930 * gcc.c: Correct copyright date in --version output.
932 2007-03-05 Brooks Moses <brooks.moses@codesourcery.com>
934 * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
935 -ffixed-line-length-* options.
937 2007-03-05 David Edelsohn <edelsohn@gnu.ogr>
939 * config/rs6000/t-ppccomm: Always build libgcc2 for GNU/Linux
940 with -mlong-double-128, except SPE.
942 * config/rs6000/darwin-ldouble.c: Only build new functions for
945 Backport from mainline:
946 2007-01-16 David Edelsohn <edelsohn@gnu.org>
948 * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
949 (strong_alias): Define.
950 (__gcc_qmul): Provide non-FMA for soft-float.
966 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
967 soft-float functions.
968 * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
969 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
970 about long double soft float.
972 2007-03-05 Richard Guenther <rguenther@suse.de>
974 Backport from mainline:
975 2007-02-28 Richard Guenther <rguenther@suse.de>
978 * fold-const.c (fold_binary): Do not associate expressions
979 with more than one variable for integer types that do not wrap.
981 2007-03-04 Eric Botcazou <ebotcazou@adacore.com>
984 * doc/invoke.texi (-O2): Document that Tree-VRP is not turned on
985 for the Ada compiler.
987 2007-03-02 Zdenek Dvorak <dvorakz@suse.cz>
989 PR tree-optimization/29902
990 * tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if
991 any involved ssa name appears in abnormal phi node.
993 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
995 * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
996 (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
997 if the lhs has side-effects.
998 <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
1000 2007-03-02 Paul Brook <paul@codesourcery.com>
1002 * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
1003 modes to LDRD for DImode.
1004 (output_move_double): Fixup out of range ldrd/strd.
1005 (vfp_secondary_reload_class): Rename...
1006 (coproc_secondary_reload_class): ... to this. Add wb argument.
1007 * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
1008 coproc_secondary_reload_class for CLASS_IWMMXT.
1009 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
1010 * arm-protos.h (coproc_secondary_reload_class): Update prototype.
1012 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
1014 * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
1015 entry by means of emit_insn_at_entry.
1017 2007-03-01 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1019 * doc/invoke.texi (Wextra): Delete outdated paragraph.
1021 2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1023 * pa/predicates.md (move_src_operand): Allow zero for mode.
1024 * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
1027 2007-02-27 Mike Stump <mrs@apple.com>
1029 * config/darwin-crt3.c: Avoid compilation when compiling for a
1032 2007-02-27 Andreas Schwab <schwab@suse.de>
1034 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
1036 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
1038 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
1040 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
1042 * doc/include/gcc-common.texi (versionsubtitle): New macro.
1043 * doc/cpp.texi: Standardize title page.
1044 * doc/cppinternals.texi: Likewise.
1045 * doc/gcc.texi: Standardize title page, remove version number
1046 from copyright page.
1047 * doc/gccint.texi: Likewise.
1048 * doc/install.texi: Standardize title page, add table of
1051 2007-02-24 Mike Stump <mrs@apple.com>
1053 * config/i386/i386.c (output_pic_addr_const): Stubify optimized
1056 2007-02-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1058 * pa.md (muldi3): Force subregs to registers in 64-bit expander.
1060 2007-02-23 Mike Stump <mrs@apple.com>
1062 * tlink.c (scan_linker_output): Parse linker messages from
1063 darwin9's linker better.
1065 2007-02-21 Ira Rosen <irar@il.ibm.com>
1067 * tree-ssa-alias.c: Include pointer-set.h
1068 * Makefile.in (tree-ssa-alias.o): Depend on pointer-set.h.
1070 2007-02-21 Jakub Jelinek <jakub@redhat.com>
1072 Backported from mainline
1073 2006-12-20 Andrew Pinski <pinskia@gmail.com>
1075 * omp-low.c (init_tmp_var): New function.
1076 (save_tmp_var): New function.
1077 (lower_omp_1): Use them for VAR_DECL.
1079 2007-02-20 Alan Modra <amodra@bigpond.net.au>
1082 * varasm.c (use_blocks_for_decl_p): Return false for decls with
1085 2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
1087 * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
1088 due to calls to functions taking pointers as parameters.
1090 2007-02-19 Richard Henderson <rth@redhat.com>
1093 * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
1096 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
1098 * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
1100 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
1102 * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
1103 for arg pointer based indexed addressing.
1105 2007-02-18 Ira Rosen <irar@il.ibm.com>
1107 * tree-ssa-alias.c (may_aliases_intersect): New function.
1108 * tree-data-ref.c (ptr_ptr_may_alias_p): Call may_aliases_intersect
1110 * tree-flow.h (may_aliases_intersect): Add function declaration.
1112 2007-02-17 Alexandre Oliva <aoliva@redhat.com>
1114 PR tree-optimization/30823
1115 * tree-sra.c (sra_build_assignment): Drop type-checking assert.
1117 2007-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1120 * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
1121 nested double- and backquotes.
1123 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
1125 * tree-sra.c (instantiate_missing_elements): Canonicalize
1127 (sra_build_assignment): New.
1128 (generate_copy_inout, generate_element_copy,
1129 generate_element_zero, generate_one_element_init): Use it.
1131 2007-02-15 Kaz Kojima <kkojima@gcc.gnu.org>
1133 PR rtl-optimization/29599
1134 Backport from mainline.
1135 * reload1.c (eliminate_regs_in_insn): Take the destination
1136 mode into account when computing the offset.
1138 2007-02-13 Joseph S. Myers <joseph@codesourcery.com>
1140 * doc/invoke.texi, doc/standards.texi: Refer to
1141 gcc-4.2/c99status.html.
1143 2007-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1146 * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
1147 CONST_DOUBLE and operand 0 is a hard register.
1148 (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
1149 memory. Fail if operand 1 is a non-zero CONST_INT and operand 0
1150 is a hard floating-point register.
1152 2007-02-06 Mark Mitchell <mark@codesourcery.com>
1155 * tree.h (DECL_REPLACEABLE_P): New macro.
1156 * except.c (set_nothrow_function_flags): Likewise.
1158 2007-02-07 Jakub Jelinek <jakub@redhat.com>
1161 * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
1162 of INDIRECT_REF <RESULT_DECL>.
1164 2007-02-06 Rask Ingemann Lamberisen <rask@sygehus.dk>
1167 * config/rs6000/t-ppccomm: Correct Makefile typo.
1169 2007-02-06 Roger Sayle <roger@eyesopen.com>
1172 Backport from mainline.
1173 * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
1174 it into -D_REENTRANT.
1176 2007-02-05 Alexandre Oliva <aoliva@redhat.com>
1179 * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
1180 even if cv-qualification is the same.
1182 2007-02-05 Geoffrey Keating <geoffk@apple.com>
1184 * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
1185 __enable_execute_stack on completion.
1187 2007-02-05 Bob Wilson <bob.wilson@acm.org>
1189 * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
1191 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1194 * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory loads to
1195 general or fp registers. Add comments.
1196 * config/ia64/ia64.md (reg_pred_prefix): Add comment.
1198 2007-02-04 Richard Guenther <rguenther@suse.de>
1200 Backport from mainline:
1201 2007-01-30 Richard Guenther <rguenther@suse.de>
1204 * dwarf2out.c (reference_to_unused): Query varpool if the
1205 variable was output.
1207 2007-02-02 Mike Stump <mrs@apple.com>
1209 * config.gcc (*-*-darwin*): Backport darwin9.h bits.
1210 * config/darwin9.h: Add.
1211 * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
1212 (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
1213 generate a branch island.
1215 2007-02-02 Hui-May Chang <hm.chang@apple.com>
1217 Revert for x86 darwin:
1218 2005-06-19 Uros Bizjak <uros@kss-loka.si>
1220 * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
1221 code before the following patch under TARGET_MACHO.
1222 (ix86_function_value_regno_p): Likewise.
1224 2007-02-02 Simon Martin <simartin@users.sourceforge.net>
1227 * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
1228 expanded only once even if an error occurs.
1230 2007-02-02 Jakub Jelinek <jakub@redhat.com>
1233 * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
1234 sprintf (str, "%s"). Do not optimize sprintf (str, "nopercent", p++).
1236 2007-02-01 Guy Martin <gmsoft@gentoo.org>
1238 * pa.md (tp_load): Correct mfctl instruction syntax.
1240 2007-02-01 Geoffrey Keating <geoffk@apple.com>
1242 * config/rs6000/rs6000.c (rs6000_stack_info): Correct
1243 altivec_padding_size calculation on AIX. Improve comment, add
1244 assert to verify that it's right.
1246 2007-01-31 Anatoly Sokolov <aesok@post.ru>
1249 * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
1251 2007-01-30 Richard Guenther <rguenther@suse.de>
1254 * passes.c (execute_one_pass): Reset in_gimple_form to not
1255 confuse non-unit-at-a-time mode.
1257 2007-01-27 Anatoly Sokolov <aesok@post.ru>
1259 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define __AVR_HAVE_MUL__.
1261 2007-01-29 Mike Stump <mrs@apple.com>
1263 * doc/gccint.texi (Top): Rename Loop Representation to Loop
1264 Analysis and Representation to resolve case insensitive conflict.
1265 * doc/loop.texi (Loop Analysis and Representation): Likewise.
1267 2007-01-29 Josh Conner <jconner@apple.com>
1270 * calls.c (compute_argument_addresses): Set stack and stack_slot
1271 for partial args, too.
1272 (store_one_arg): Use locate.size.constant for the size when
1273 generating a save_area.
1275 2007-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1277 * doc/sourcebuild.texi: Add comma for clarity.
1278 * doc/extend.texi: Fix some typos.
1279 * doc/passes.texi: Likewise.
1280 * doc/cppinternals.texi: Likewise.
1281 * doc/c-tree.texi: Likewise.
1282 * doc/tree-ssa.texi: Likewise.
1283 * doc/install.texi: Likewise.
1285 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
1287 PR tree-optimization/29516
1288 * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
1289 most_expensive_mult_to_index, addr_to_parts,
1290 create_mem_ref, maybe_fold_tmr): Make the type of
1291 fields of TARGET_MEM_REF sizetype.
1292 (move_fixed_address_to_symbol, move_pointer_to_base,
1293 aff_combination_remove_elt): New functions.
1294 * tree.def (TARGET_MEM_REF): Add comment on types of
1296 * gcc.dg/tree-ssa/loop-20.c: New test.
1298 2007-01-25 Geoffrey Keating <geoffk@apple.com>
1301 * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
1302 save Altivec registers in an eh_return function.
1303 (compute_vrsave_mask): Likewise.
1304 (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
1305 for saving Altivec registers.
1306 (rs6000_emit_prologue): Don't allocate stack twice in
1307 eh_return function. Correct expected value of altivec_save_offset
1308 when using save_world. Describe save of R0 to stack when using
1309 save_world. Describe stack pointer adjustment when using
1310 save_world. Remove duplicated eh_return parameter register saving.
1311 Update sp_offset variable after save_world.
1312 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
1314 (LIB2FUNCS_EXTRA): Add darwin-world.asm.
1315 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
1318 2007-01-24 Geoffrey Keating <geoffk@apple.com>
1320 * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
1322 2007-01-24 Jakub Jelinek <jakub@redhat.com>
1325 * gimplify.c (omp_check_private): New function.
1326 (gimplify_scan_omp_clauses): Use it for
1327 firstprivate/lastprivate/reduction.
1330 * gimplify.c (omp_add_variable): Don't call omp_notice_variable
1331 on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
1334 * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
1335 If lower_lastprivate_clauses emits some statements, append them
1336 to dlist rather than body_p and to body_p append an initializer.
1337 (lower_omp_for): Adjust caller.
1339 2007-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
1341 PR rtl-optimization/29329
1342 * combine.c (replaced_rhs_insn): Rename to i2mod.
1343 (replaced_rhs_value): Rename to i2mod_new_rhs.
1344 (i2mod_old_rhs): New global variable.
1345 (combine_instructions): Adjust for above change. Save a copy of
1346 the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
1347 note are substituted in the second instruction.
1348 (distribute_notes) <REG_DEAD>: Adjust for above change. Do not
1349 ditch the note if it pertains to the second eliminated register
1350 and this register is mentioned in i2mod_old_rhs.
1353 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
1355 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
1356 the insn to which the note was originally attached.
1358 2007-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1360 * pa.c (output_move_double): Change array size of xoperands to 4.
1362 2007-01-17 Eric Christopher <echristo@apple.com>
1364 Backport from mainline:
1365 2006-12-18 Roger Sayle <roger@eyesopen.com>
1366 Eric Christopher <echristo@apple.com>
1369 * real.c (real_maxval): Correctly handle IBM extended double format.
1371 2007-01-17 Tom Tromey <tromey@redhat.com>
1373 * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
1374 * doc/install.texi (Testing): Use sourceware.org.
1375 (Binaries): Likewise.
1376 (Specific): Likewise.
1377 * doc/contrib.texi (Contributors): Use sourceware.org.
1379 2007-01-15 Joseph S. Myers <joseph@codesourcery.com>
1381 * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
1384 2007-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1386 * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
1387 * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
1388 (ASM_OUTPUT_INTERNAL_LABEL): Define.
1390 2007-01-10 Ralf Corsépius <ralf.corsepius@rtems.org>
1392 * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
1394 2007-01-09 Nicolas Pitre <nico@cam.org>
1397 * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
1399 2007-01-08 Nick Clifton <nickc@redhat.com>
1401 * config/frv/predicates.md (reg_or_0_operand): Accept
1404 2007-01-08 Ralf Corsépius <ralf.corsepius@rtems.org>
1406 * config/bfin/rtems.h, config/bfin/t-rtems: New.
1407 * config.gcc: Add bfin*-rtems*.
1409 2007-01-08 Chen liqin <liqin@sunnorth.com.cn>
1410 * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
1411 * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
1412 const_simm15, const_pow2, const_npow2): Added.
1413 * config/score/misc.md (insv, extv, extzv, movmemsi,
1414 move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
1415 * config/score/score.c (score_address_cost, score_select_cc_mode):
1417 Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
1418 Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
1419 Update score_print_operand.
1420 * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
1421 Adjust register allocate order and update some macro define.
1422 * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
1423 mdx_block_move_straight, mdx_block_move_loop_head,
1424 mdx_block_move_loop_body, mdx_block_move_loop_foot, mdx_block_move_loop,
1425 mdx_block_move): Added.
1426 (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
1427 mdp_limm): Updated and fix some bug and typo.
1428 * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
1429 (movsf, movdf, doloop_end): Added.
1431 2007-01-05 Richard Guenther <rguenther@suse.de>
1434 * tree.c (get_narrower): Do not construct COMPONENT_REFs
1435 with mismatched types. Instead explicitly build a
1436 conversion NOP_EXPR.
1438 2007-01-05 Jakub Jelinek <jakub@redhat.com>
1441 * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
1444 2007-01-03 Jakub Jelinek <jakub@redhat.com>
1446 * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
1447 (struct _Unwind_Context): Rename args_size to flags, remove
1448 signal_frame field, add a new args_size field and version field.
1449 (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
1450 _Unwind_IsExtendedContext): New inline functions.
1451 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
1452 Assume by_value array is only present if _Unwind_IsExtendedContext.
1453 (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
1454 _Unwind_IsSignalFrame.
1455 (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
1456 (uw_update_context_1): Use _Unwind_SetSignalFrame.
1457 (uw_init_context_1): Initialize context->flags to
1458 EXTENDED_CONTEXT_BIT.
1459 * config/rs6000/linux-unwind.h (frob_update_context): Use
1460 _Unwind_SetSignalFrame.
1462 2007-01-01 Mike Stump <mrs@apple.com>
1464 * configure.ac: Remove support for building with Apple's gcc-3.1.
1466 2007-01-01 Andreas Schwab <schwab@suse.de>
1469 * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
1470 save of BR0 in extra_spill_size instead of spill_size.
1471 (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
1473 (ia64_expand_epilogue): Restore BR0 from its new location.