Mark ChangeLog
[official-gcc.git] / gcc / ChangeLog
blob54594c4184aa67d8d542ed9e6516f8053a0f18f6
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
13         copying the node.
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>
35         PR middle-end/31710
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>
41         PR target/28675
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
44         address.
46 2007-04-26  Ulrich Weigand  <uweigand@de.ibm.com>
48         PR middle-end/30761
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>
62         PR c++/31598
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>
71         PR target/18989
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>
77         PR middle-end/30222
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>
107         PR target/31641
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>
119         PR middle-end/31448
120         * expr.c (reduce_to_bit_field_precision): Handle
121         CONST_INT rtx's.
123 2007-04-20  Richard Henderson  <rth@redhat.com>
125         PR target/28623
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>
141         PR middle-end/31136
142         * fold-const.c (fold_unary): Call fold_convert_const on the
143         original tree.
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
169         trap instructions.
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>
180         PR target/30483
181         * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
182         error().
184 2007-04-17  Jan Hubicka  <jh@suse.cz>
186         PR middle-end/30700
187         * dwarf2out.c (reference_to_unused): Ask cgraph for functions
188         availablility; add more sanity checking; ask varpool only about
189         VAR_DECL.
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
197         on "0".
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 
212         numbers.
213         * config/avr/avr.h (LINK_SPEC): Simplify.
215 2007-04-16  Jan Hubicka  <jh@suse.cz>
217         PR target/27869
218         * config/i386/sse.md
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>
229         PR target/31582
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
232         it as target.
234 2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
236         PR c/31520
237         * c-decl.c (finish_decl): Grab the type of the decl after the call
238         to store_init_value.
240 2007-04-14  Jakub Jelinek  <jakub@redhat.com>
242         PR c++/25874
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>
253         PR target/29932
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
259         for above change.
261 2007-04-07  Anatoly Sokolov <aesok@post.ru>
263         PR target/30289
264         * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as 
265         earlyclobber.
267 2007-04-05  Anatoly Sokolov <aesok@post.ru>
269         PR target/25448
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>
275         PR target/31361
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
281         operand 2 be TImode.
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>
305         PR 31281
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>
311         PR middle-end/30704
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
315         native integers.
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>
324         PR target/31137
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>
332         PR target/31380
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
345         correctly.
347         * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
348         sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
349         for operand 3.
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'
360         architecture.
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>
380         PR target/31245
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>
387         PR c/30762
388         * c-typeck.c (convert_for_assignment): Call comptypes for
389         RECORD_TYPE or UNION_TYPE.
391         PR inline-asm/30505
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>
407         PR debug/29906
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
415         of the return value.
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>
423         PR target/31123
424         * pa.md (vdepi_ior): Don't allow zero length deposit.  Likewise for
425         two unamed patterns.
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
443         debugging define
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
500         constant.
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
507         on signed overflow.
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.
545         Change callers.
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
575         OPT_Wall.
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
586         callers.
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
604         warnings.
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
610         going to optimize.
611         (struct fold_stmt_r_data): Add stmt field.
612         (fold_stmt_r): Defer fold overflow warnings until we know we
613         optimized.
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):
621         Likewise.
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
640         of warning options.
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.
654         Replace all uses.
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):
668         Likewise.
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
688         -fstrict-overflow.
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
698         versions.
699         (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
700         negative parameter.
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
705         callers.
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>
717         PR middle-end/30433
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>
731         PR c++/30924
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
740         SOM target.
742 2007-03-09  Richard Henderson  <rth@redhat.com>
744         PR target/26090
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>
790         PR 31013
791         * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
792         is declared.
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
800         dest_addr_elt.
802 2007-03-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
804         PR tree-opt/30045
805         * tree-vrp.c (nonnull_arg_p): Treat the static decl as always
806         non null.
808 2007-03-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
810         PR middle-end/30729
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>
816         PR tree-opt/28624
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>
828         PR C/31072
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>
843         PR target/30406
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>
849         PR c++/30852
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.
859         (Waddress): New.
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>
872         PR target/30848
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
879         version.
881 2007-03-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
883         * doc/invoke.texi (Warning Options): Replace -Werror- with
884         -Werror=.
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
891         devices.
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>
897         PR middle-end/30744
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
910         floating register.
911         (movsf): Likewise.
913 2007-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
915         * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
916         conversion.
918 2007-03-05  Steve Ellcey  <sje@cup.hp.com>
920         Backported from mainline
921         PR debug/29614
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>
929         PR 31050
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
943         __LONG_DOUBLE_128__.
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.
951         (__gcc_qdiv): Same.
952         (__gcc_qneg): New.
953         (__gcc_qeq): New.
954         (__gcc_qle): New.
955         (__gcc_qge): New.
956         (__gcc_qunord): New.
957         (__gcc_stoq): New.
958         (__gcc_dtoq): New.
959         (__gcc_qtos): New.
960         (__gcc_qtod): New.
961         (__gcc_qtoi): New.
962         (__gcc_qtou): New.
963         (__gcc_itoq): New.
964         (__gcc_utoq): New.
965         (fmsub): New.
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>
977         PR middle-end/30364
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>
983         PR ada/26797
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
1025         move pattern.
1027 2007-02-27  Mike Stump  <mrs@apple.com>
1029         * config/darwin-crt3.c: Avoid compilation when compiling for a
1030         kext multilib.
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
1049         contents.
1051 2007-02-24  Mike Stump  <mrs@apple.com>
1053         * config/i386/i386.c (output_pic_addr_const): Stubify optimized
1054         symbols.
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>
1074         PR middle-end/30143
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>
1081         PR target/29943
1082         * varasm.c (use_blocks_for_decl_p): Return false for decls with
1083         alias attribute.
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>
1092         PR debug/29558
1093         * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
1094         in memory.
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
1109         for different tags.
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>
1119         PR other/27843
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
1126         bit-field types.
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>
1145         PR target/30634
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>
1154         PR target/29487
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>
1160         PR c++/30703
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>
1166         PR 30370
1167         * config/rs6000/t-ppccomm: Correct Makefile typo.
1169 2007-02-06  Roger Sayle  <roger@eyesopen.com>
1171         PR libgomp/28296
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>
1178         PR debug/30189
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>
1193         PR target/29682
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>
1203         PR middle-end/27657
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>
1226         PR c++/28266
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>
1232         PR middle-end/30473
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>
1248         PR target/19087
1249         * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
1251 2007-01-30  Richard Guenther  <rguenther@suse.de>
1253         PR middle-end/30313
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>
1269         PR middle-end/29683
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
1295         the operands.
1296         * gcc.dg/tree-ssa/loop-20.c: New test.
1298 2007-01-25  Geoffrey Keating  <geoffk@apple.com>
1300         PR 25127
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
1313         darwin-world.asm.
1314         (LIB2FUNCS_EXTRA): Add darwin-world.asm.
1315         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
1316         implies Altivec.
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>
1324         PR middle-end/27416
1325         * gimplify.c (omp_check_private): New function.
1326         (gimplify_scan_omp_clauses): Use it for
1327         firstprivate/lastprivate/reduction.
1329         PR middle-end/30494
1330         * gimplify.c (omp_add_variable): Don't call omp_notice_variable
1331         on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
1333         PR middle-end/30421
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.
1352         Revert:
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>
1368         PR target/29302
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
1382         glibc CVS.
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>
1396         PR target/30173
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
1402         CONST_DOUBLEs.
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):
1416         Added.
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>
1433         PR middle-end/27826
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>
1440         PR c/30360
1441         * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
1442         denom against 0.0.
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>
1468         PR target/29166
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
1472         area.
1473         (ia64_expand_epilogue): Restore BR0 from its new location.