Mark ChangeLog
[official-gcc.git] / gcc / ChangeLog
blobeee0de5eaa026f7d6881dbb6194119e290529784
1 2007-05-13  Release Manager
3         * GCC 4.2.0 released.
5 2007-05-12  Richard Guenther  <rguenther@suse.de>
7         PR tree-optimization/31797
8         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
9         propagate into a stmt that has volatile ops.
11 2007-05-01  Ian Lance Taylor  <iant@google.com>
13         PR tree-optimization/31739
14         * tree-vrp.c (vrp_val_is_max): New static function.
15         (vrp_val_is_min): New static function.
16         (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
17         copying the node.
18         (set_value_range): Use vrp_val_is_{max,min}.
19         (extract_range_from_assert): Likewise.
20         (extract_range_from_binary_expr): Likewise.
21         (extract_range_from_unary_expr): Likewise.
22         (dump_value_range, vrp_meet): Likewise.
23         (vrp_visit_phi_node): Likewise.
24         * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
26 2007-05-01  Joseph Myers  <joseph@codesourcery.com>
28         * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
30 2007-04-27  Anatoly Sokolov <aesok@post.ru>
32         * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and 
33         ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
34         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
35         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
37 2007-04-27  Ian Lance Taylor  <iant@google.com>
39         PR middle-end/31710
40         * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
41         TYPE_MAX_VALUE exist, convert them to the new type.
43 2007-04-26  Ian Lance Taylor  <iant@google.com>
45         PR target/28675
46         * reload.c (find_reloads_subreg_address): If the address was valid
47         in the original mode but not in the new mode, reload the whole
48         address.
50 2007-04-26  Ulrich Weigand  <uweigand@de.ibm.com>
52         PR middle-end/30761
53         * reload1.c (eliminate_regs_in_insn): In the single_set special
54         case, attempt to re-recognize the insn before falling back to
55         having reload fix it up.
57 2007-04-26  Richard Guenther  <rguenther@suse.de>
58         Daniel Berlin  <dberlin@dberlin.org>
60         PR tree-optimization/30567
61         * tree-ssa-structalias.c (update_alias_info): Record dereference
62         also if ESCAPE_STORED_IN_GLOBAL.
64 2007-04-26  Jakub Jelinek  <jakub@redhat.com>
66         PR c++/31598
67         * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
69         PR tree-optimization/30558
70         * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
71         clear this_state.prev_try.
73 2007-04-25  Anatoly Sokolov <aesok@post.ru>
75         PR target/18989
76         * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
78 2007-04-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
79             Roger Sayle  <roger@eyesopen.com>
81         PR middle-end/30222
82         * expmed.c (make_tree): Use the correct type, i.e. the inner
83         type, when constructing the individual elements of a CONST_VECTOR.
85 2007-04-24  Ian Lance Taylor  <iant@google.com>
87         PR tree-optimization/31605
88         * tree-vrp.c (set_value_range): Check that min and max are not
89         both overflow infinities.
90         (set_value_range_to_value): New static function.
91         (extract_range_from_binary_expr): Call set_value_range_to_value.
92         (extract_range_from_expr): Likewise.
93         (extract_range_from_unary_expr): Likewise.  Don't create a range
94         which overflows on both sides.
95         (vrp_meet): Check for a useless range.
96         (vrp_visit_phi_node): If we see a constant which looks like an
97         overflow infinity, turn off the TREE_OVERFLOW flag.
99 2007-04-24  Ian Lance Taylor  <iant@google.com>
101         PR tree-optimization/31602
102         * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
103         conditionals in the copied loop header.
104         * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
105         warnings if TREE_NO_WARNING is set.
106         * doc/invoke.texi (Warning Options): Clarify that
107         -Wstrict-overflow does not warn about loops.
109 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
111         PR target/31641
112         * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant length
113         argument of 0 for memset.
114         (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
115         unsigned shift instead of the signed variant.
117 2007-04-24  Daniel Franke  <franke.daniel@gmail.com>
119         * doc/invoke.texi: Removed leading '-' from option index entries.
121 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
123         PR middle-end/31448
124         * expr.c (reduce_to_bit_field_precision): Handle
125         CONST_INT rtx's.
127 2007-04-20  Richard Henderson  <rth@redhat.com>
129         PR target/28623
130         * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
131         argument; update all callers.
132         (get_unaligned_offset): New.
133         * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
134         get_unaligned_address, just pass on the address directly.
135         (unaligned_extendqidi): Use gen_lowpart instead of open-coding
136         the subreg in the helper patterns.
137         (unaligned_extendqidi_le): Use get_unaligned_offset.
138         (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
139         (unaligned_extendhidi_be): Likewise.
140         (unaligned_extendhidi): Tidy.
141         * config/alpha/alpha-protos.h: Update.
143 2007-04-21  Richard Guenther  <rguenther@suse.de>
145         PR middle-end/31136
146         * fold-const.c (fold_unary): Call fold_convert_const on the
147         original tree.
149 2007-04-20  Richard Henderson  <rth@redhat.com>
151         * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
153 2007-04-20  Bernd Schmidt  <bernd.schmidt@analog.com>
155         * reload.c (combine_reloads): When trying to use a dying register,
156         check whether it's uninitialized and don't use if so.
158 2007-04-20  Jakub Jelinek  <jakub@redhat.com>
160         * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
161         for __builtin_ia32_cmpordss.
163         PR tree-optimization/31632
164         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
165         and arg1 for optimizations of comparison against min/max values.
166         Fold arg0 to arg1's type for optimizations of comparison against
167         min+1 and max-1 values.
169 2007-04-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
171         PR rtl-optimization/29841
172         * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
173         trap instructions.
174         * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
175         that may cause control flow transfer from being moved.
177 2007-04-18  Anatoly Sokolov <aesok@post.ru>
179         * config/avr/avr.c (ptrreg_to_str): Replace error() with
180         output_operand_lossage().
182 2007-04-17  Anatoly Sokolov <aesok@post.ru>
184         PR target/30483
185         * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
186         error().
188 2007-04-17  Jan Hubicka  <jh@suse.cz>
190         PR middle-end/30700
191         * dwarf2out.c (reference_to_unused): Ask cgraph for functions
192         availablility; add more sanity checking; ask varpool only about
193         VAR_DECL.
195 2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>
197         * Backport from mainline:
198         2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>
200         * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
201         on "0".
202         (sse_vmmulv4sf3): Likewise.
203         (sse2_vmaddv2df3): Likewise.
204         (sse2_vmmulv2df3): Likewise.
206 2007-04-16  Matthias Klose  <doko@debian.org>
208         * config/alpha/linux.h (CPP_SPEC): Define.
209         * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
211 2007-04-16  Anatoly Sokolov <aesok@post.ru>
213         * config/avr/avr.c (avr_arch_types): Rearranging  array.
214         (enum avr_arch): Add.
215         (avr_mcu_types): Use avr_arch enumeration constants instead of 
216         numbers.
217         * config/avr/avr.h (LINK_SPEC): Simplify.
219 2007-04-16  Jan Hubicka  <jh@suse.cz>
221         PR target/27869
222         * config/i386/sse.md
223         (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
224         (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
225         (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
226         (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
228 2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>
230         * Backport from mainline:
231         2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>
233         PR target/31582
234         * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
235         copy of source, pass it to ix86_expand_vector_set and return
236         it as target.
238 2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
240         PR c/31520
241         * c-decl.c (finish_decl): Grab the type of the decl after the call
242         to store_init_value.
244 2007-04-14  Jakub Jelinek  <jakub@redhat.com>
246         PR c++/25874
247         * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
248         post dominators and cleanup cfg before returning.
250 2007-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
252         * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
253         null before emitting a .nsubspa directive.
255 2007-04-08  Anatoly Sokolov <aesok@post.ru>
257         PR target/29932
258         * config/avr/predicates.md (io_address_operand): Delete predicate.
259         (low_io_address_operand): Don't use 'mode' argument.
260         (higth_io_address_operand): Rename ...
261         (high_io_address_operand): ... to this. Don't use 'mode' argument.
262         * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
263         for above change.
265 2007-04-07  Anatoly Sokolov <aesok@post.ru>
267         PR target/30289
268         * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as 
269         earlyclobber.
271 2007-04-05  Anatoly Sokolov <aesok@post.ru>
273         PR target/25448
274         * config/avr/avr.c (avr_handle_fndecl_attribute): Use the 
275         DECL_ASSEMBLER_NAME, not the DECL_NAME.
277 2007-04-04  Richard Henderson  <rth@redhat.com>
279         PR target/31361
280         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove
281         v8hi_ftype_v8hi_v2di, v4si_ftype_v4si_v2di.  Use like-types for
282         the variable shift builtins.
283         (ix86_expand_builtin): Properly expand the variable shift builtins.
284         * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
285         operand 2 be TImode.
286         * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
287         _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
288         _mm_srli_epi32, _mm_srli_epi64): Turn into macros.
289         (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
290         (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
291         _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
292         two-vector shift builtins.
294 2007-04-04  Chen liqin  <liqin@sunnorth.com.cn>
296         * config/score/crti.asm: Change _bss_start to __bss_start.
297         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
298         (OUTGOING_REG_PARM_STACK_SPACE) update.
299         * config/score/score.opt: add options to make backend support
300         score5, score5u, score7 and score7d.
301         * config/score/score.md: Likewise.
302         * config/score/misc.md: Likewise.
303         * config/score/mac.md: Likewise.
304         * doc/invoke.texi: Likewise.
305         * doc/md.texi: update constraints define.
307 2007-04-03  Stuart Hastings  <stuart@apple.com>
309         PR 31281
310         * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
311         * cse.c (record_jump_equiv): Bail out on CCmode comparisons.
313 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
315         PR middle-end/30704
316         * fold-const.c (native_encode_real): Encode real.c provided longs
317         as a series of 32-bit native integers.
318         (native_interpret_real): Interpret buffer as a series of 32-bit
319         native integers.
321 2007-04-02  Eric Christopher  <echristo@apple.com>
323         * doc/invoke.texi (i386 and x86-64 Options): Document -m64
324         limitations on darwin.
326 2007-04-02  Anatoly Sokolov <aesok@post.ru>
328         PR target/31137
329         * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
331 2007-04-02  H.J. Lu  <hongjiu.lu@intel.com>
333         * Backport from mainline:
334         2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
336         PR target/31380
337         * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
339 2007-03-30  Anatoly Sokolov <aesok@post.ru>
341         * config/avr/avr.c (avr_override_options): Clear
342         'flag_delete_null_pointer_checks'.
344 2007-03-29  Michael Matz  <matz@suse.de>
346         * builtins.c (expand_builtin_sync_operation,
347         expand_builtin_compare_and_swap,
348         expand_builtin_lock_test_and_set): Care for extending CONST_INTs
349         correctly.
351         * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
352         sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
353         for operand 3.
355 2007-03-28  Mike Stump  <mrs@apple.com>
357         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
358         * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
359         * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
361 2007-03-27  Anatoly Sokolov <aesok@post.ru>
363         * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
364         architecture.
366 2007-03-26  Ian Lance Taylor  <iant@google.com>
368         PR tree-optimization/31345
369         * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
370         [+INF, +INF(OVF)] into VARYING.
372 2007-03-23  Martin Michlmayr  <tbm@cyrius.com>
374         * doc/invoke.texi (-fforce-mem): Update documentation to reflect
375         that this option will be removed in 4.3 rather than 4.2.
376         * opts.c (common_handle_option): Likewise.
378 2007-03-21  Mike Stump  <mrs@apple.com>
380         * c.opt: Fixup for Objective-C/C++.
382 2007-03-21  Richard Henderson  <rth@redhat.com>
384         PR target/31245
385         * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
386         * config/i386/mmintrin.h (__m64): Likewise.
387         * config/i386/xmmintrin.h (__m128): Likewise.
389 2007-03-20  Jakub Jelinek  <jakub@redhat.com>
391         PR c/30762
392         * c-typeck.c (convert_for_assignment): Call comptypes for
393         RECORD_TYPE or UNION_TYPE.
395         PR inline-asm/30505
396         * reload1.c (reload): Do invalid ASM checking after
397         cleanup_subreg_operands.
399 2007-03-19  Jeff Law  <law@redhat.com>
401         * tree-cfg.c (find_taken_edge): Tighten conditions for
402         optimizing computed gotos.
404 2007-03-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
406         * pa.c (attr_length_call): Partially revert change of 2007-03-09.
407         (output_call): Likewise.
409 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
411         PR debug/29906
412         * dwarf2out.c (force_type_die): Adjust comment.
413         (dwarf2out_imported_module_or_decl): Handle base AT_import types.
415 2007-03-15  Seongbae Park <seongbae.park@gmail.com>
417         PR tree-optimization/30590
418         * tree-nrv.c (tree_nrv): Check for the partial update
419         of the return value.
421 2007-03-14  Ian Lance Taylor  <iant@google.com>
423         * tree-vrp.c (value_inside_range): Ignore fold warnings.
425 2007-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
427         PR target/31123
428         * pa.md (vdepi_ior): Don't allow zero length deposit.  Likewise for
429         two unamed patterns.
431 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
433         * doc/extend.texi: Edit "gnu_inline" documentation.
434         * doc/invoke.texi: Edit "-fgnu89-inline" documentation.
436 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
438         * doc/extend.texi: Fix cpp.info cross-reference.
439         * doc/invoke.texi: Fix cpp.info cross-reference.
440         * doc/passes.texi: Fix gcc.info cross-reference.
442 2007-03-12  Daniel Berlin  <dberlin@dberlin.org>
444         Fix PR tree-optimization/28544
445         * tree-ssa-operands.c (add_virtual_operand):
446         Move assert triggering on aliasing violations into
447         debugging define
449 2007-03-12  Ian Lance Taylor  <iant@google.com>
451         * c.opt (fgnu89-inline): New option.
452         * c-opts.c (c_common_post_options): Warn about -fno-gnu89-inline.
453         * c-common.c (c_common_attributes): Add gnu_inline attribyte.
454         (handle_gnu_inline_attribute): New static function.
455         * c-decl.c (start_function): Warn if we see a non-static inline
456         function in C99 mode.
457         * c-cppbuiltin.c (c_cpp_builtins): Define __GNUC_GNU_INLINE__.
458         * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
459         (C Dialect Options): Document -fgnu89-inline.
460         * doc/extend.texi (Function Attributes): Document gnu_inline.
461         (Inline): Mention that C99 inline will be implemented in 4.3.
462         Refer to ways to get the old handling.
463         * doc/cpp.texi (Common Predefined Macros): Document
464         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
466 2007-03-12  Richard Henderson  <rth@redhat.com>
468         * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
469         (TARGET_SECTION_TYPE_FLAGS): New.
471 2007-03-12  Richard Henderson  <rth@redhat.com>
473         * config/darwin.c (machopic_reloc_rw_mask): New.
474         (machopic_select_section): Use decl_readonly_section.
475         * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
476         * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
478 2007-02-14  Richard Guenther  <rguenther@suse.de>
480         Backport from mainline:
481         * flags.h (issue_strict_overflow_warning): Convert to a macro.
483 2007-03-11  Ian Lance Taylor  <iant@google.com>
485         Backport -fstrict-overflow/-Wstrict-overflow from mainline:
486         2007-03-11  Ian Lance Taylor  <iant@google.com>
488         * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
489         the *_DIV_EXPR codes correctly with overflow infinities.
491         2007-03-09  Ian Lance Taylor  <iant@google.com>
493         * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
494         argument) like -Wstrict-overflow=2.
495         * doc/invoke.texi (Warning Options): Update documentation.
497         2007-03-08  Ian Lance Taylor  <iant@google.com>
499         * tree-vrp.c: Include "toplev.h" and "intl.h".
500         (usable_range_p): New static function.
501         (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
502         overflowed values, juts set *strict_overflow_p.
503         (compare_values): Only return -2 if one of the operands is not a
504         constant.
505         (compare_ranges): Call usable_range_p.
506         (compare_range_with_value): Likewise.
507         (vrp_evaluate_conditional_warnv): Rename from
508         vrp_evaluate_conditional.  Make static.  Change all callers.
509         (vrp_evaluate_conditional): New function.
510         (simplify_div_or_mod_using_ranges): Issue warning about reliance
511         on signed overflow.
512         (simplify_abs_using_ranges): Likewise.
513         (simplify_stmt_for_jump_threading): Add within_stmt parameter.
514         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
515         within_stmt parameter.
516         * tree-ssa-propagate.c (fold_predicate_in): Update call to
517         vrp_evaluate_conditional.
518         * tree-ssa-threadedge.c
519         (record_temporary_equivalences_from_stmts_at_dest): Change
520         simplify parameter to take a second tree parameter.
521         (simplify_control_stmt_condition): Likewise.
522         (thread_across_edge): Likewise.
523         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
524         (thread_across_edge): Likewise.
525         * Makefile.in (tree-vrp.o): Depend upon toplev.h and intl.h.
527         2007-03-05  Ian Lance Taylor  <iant@google.com>
529         * tree-vrp.c (extract_range_from_assert): Don't try to handle a
530         half-range if the other side is an overflow infinity.
532         2007-03-02  Ian Lance Taylor  <iant@google.com>
534         Used signed infinities in VRP.
535         * tree-vrp.c (uses_overflow_infinity): New static function.
536         (supports_overflow_infinity): New static function.
537         (make_overflow_infinity): New static function.
538         (negative_overflow_infinity): New static function.
539         (positive_overflow_infinity): New static function.
540         (is_negative_overflow_infinity): New static function.
541         (is_positive_overflow_infinity): New static function.
542         (is_overflow_infinity): New static function.
543         (overflow_infinity_range_p): New static function.
544         (compare_values_warnv): New function split out of compare_values.
545         (compare_value): Call it.
546         (set_value_range_to_nonnegative): Add overflow_infinity
547         parameter.  Change caller.
548         (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
549         Change callers.
550         (vrp_expr_computes_nonzero): Likewise.
551         (compare_ranges, compare_range_with_value): Likewise.
552         (compare_name_with_value, compare_names): Likewise.
553         (vrp_evaluate_conditional): Likewise.
554         (set_value_range): Handle infinity
555         (vrp_operand_equal_p, operand_less_p): Likewise.
556         (extract_range_from_assert): Likewise.
557         (vrp_int_const_binop): Likewise.
558         (extract_range_from_binary_expr): Likewise.
559         (extract_range_from_unary_expr): Likewise.
560         (extract_range_from_comparison): Likewise.
561         (extract_range_from_expr): Likewise.
562         (dump_value_range): Likewise.
563         (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
564         (test_for_singularity): Likewise.
565         (vrp_int_const_binop): Remove inline qualifier.
566         (adjust_range_with_scev): Add comment.
567         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
569         2007-02-13  Ian Lance Taylor  <iant@google.com>
571         * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
572         * flags.h (warn_strict_overflow): Declare.
573         (enum warn_strict_overflow_code): Define.
574         (issue_strict_overflow_warning): New static inline function.
575         * opts.c (warn_strict_overflow): New variable.
576         (common_handle_option): Handle OPT_Wstrict_overflow and
577         OPT_Wstrict_overflow_.
578         * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
579         OPT_Wall.
580         * fold-const.c: Include intl.h.
581         (fold_deferring_overflow_warnings): New static variable.
582         (fold_deferred_overflow_warning): New static variable.
583         (fold_deferred_overflow_code): New static variable.
584         (fold_defer_overflow_warnings): New function.
585         (fold_undefer_overflow_warnings): New function.
586         (fold_undefer_and_ignore_overflow_warnings): New function.
587         (fold_deferring_overflow_warnings_p): New function.
588         (fold_overflow_warning): New static function.
589         (make_range): Add strict_overflow_p parameter.  Change all
590         callers.
591         (extract_muldiv, extract_muldiv_1): Likewise.
592         (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
593         tree_expr_nonnegative_p.
594         (fold_negate_expr): Call fold_overflow_warning.
595         (fold_range_test): Likewise.
596         (fold_comparison): Likewise.
597         (fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
598         instead of tree_expr_nonnegative_p.
599         (tree_expr_nonnegative_warnv_p): Rename from
600         tree_expr_nonnegative_p, add strict_overflow_p parameter.
601         (tree_expr_nonnegative_p): New function.
602         (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
603         strict_overflow_p parameter.
604         (tree_expr_nonzero_p): New function.
605         * passes.c (verify_interpass_invariants): New static function.
606         (execute_one_pass): Call it.
607         * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
608         warnings.
609         (number_of_iterations_exit, loop_niter_by_eval): Likewise.
610         (estimate_numbers_of_iterations): Likewise.
611         (scev_probably_wraps_p): Likewise.
612         * tree-ssa-ccp.c: Include "toplev.h".
613         (evaluate_stmt): Defer fold overflow warnings until we know we are
614         going to optimize.
615         (struct fold_stmt_r_data): Add stmt field.
616         (fold_stmt_r): Defer fold overflow warnings until we know we
617         optimized.
618         (fold_stmt): Initialize stmt field of fold_stmt_r_data.
619         (fold_stmt_inplace): Likewise.
620         * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
621         (cleanup_control_expr_graph): Defer fold overflow warnings until
622         we know we are going to optimize.
623         * tree-cfg.c (fold_cond_expr_cond): Likewise.
624         * tree-ssa-threadedge.c (simplify_control_stmt_condition):
625         Likewise.
626         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
627         tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
628         * tree-ssa-loop-manip.c (create_iv): Likewise.
629         * c-typeck.c (build_conditional_expr): Likewise.
630         (build_binary_op): Likewise.
631         * tree-vrp.c (vrp_expr_computes_nonzero): Call
632         tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
633         (extract_range_from_unary_expr): Likewise.
634         * simplify-rtx.c (simplify_const_relational_operation): Warn when
635         assuming that signed overflow does not occur.
636         * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
637         * tree.h (tree_expr_nonnegative_warnv_p): Declare.
638         (fold_defer_overflow_warnings): Declare.
639         (fold_undefer_overflow_warnings): Declare.
640         (fold_undefer_and_ignore_overflow_warnings): Declare.
641         (fold_deferring_overflow_warnings_p): Declare.
642         (tree_expr_nonzero_warnv_p): Declare.
643         * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
644         of warning options.
645         (Warning Options): Document -Wstrict-overflow.
646         * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
647         (tree-ssa-ccp.o): Likewise.
648         (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
649         (fold-const.o): Depend on intl.h.
651         2007-01-27  Ian Lance Taylor  <iant@google.com>
653         * common.opt: Add fstrict-overflow.
654         * opts.c (decode_options): Set flag_strict_overflow if -O2.
655         * flags.h (TYPE_OVERFLOW_WRAPS): Define.
656         (TYPE_OVERFLOW_UNDEFINED): Define.
657         (TYPE_OVERFLOW_TRAPS): Define.  This replaces TYPE_TRAP_SIGNED.
658         Replace all uses.
659         * tree.h (TYPE_TRAP_SIGNED): Don't define.
660         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
661         (fold_negate_expr): Likewise.
662         (make_range): Likewise.
663         (extract_muldiv_1): Likewise.
664         (fold_comparison): Likewise.
665         (fold_binary): Likewise.
666         (tree_expr_nonnegative_p): Likewise.
667         (tree_expr_nonzero_p): Likewise.
668         * tree-vrp.c (compare_values): Likewise.
669         (extract_range_from_binary_expr): Likewise.
670         (extract_range_from_unary_expr): Likewise.
671         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
672         Likewise.
673         (nowrap_type_p): Likewise.
674         * tree-scalar-evolution.c (simple_iv): Likewise.
675         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
676         (build_range_check): Likewise.
677         (extract_muldiv_1): Likewise.
678         (fold_comparison): Likewise.
679         * tree-vrp.c (vrp_int_const_binop): Likewise.
680         (extract_range_from_unary_expr): Likewise.
681         * convert.c (convert_to_integer): Likewise.
682         * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
683         (fold_comparison): Likewise.
684         (fold_binary): Likewise.
685         * optabs.c (optab_for_tree_code): Likewise.
686         * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
687         * simplify-rtx.c (simplify_const_relational_operation): Check
688         flag_strict_overflow and flag_trapv.
689         (simplify_const_relational_operation): Likewise.
690         * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
691         (Optimize Options): Add -fstrict-overflow to -O2 list.  Document
692         -fstrict-overflow.
694         2007-01-17  Ian Lance Taylor  <iant@google.com>
696         * vec.h (VEC_reserve_exact): Define.
697         (vec_gc_p_reserve_exact): Declare.
698         (vec_gc_o_reserve_exact): Declare.
699         (vec_heap_p_reserve_exact): Declare.
700         (vec_heap_o_reserve_exact): Declare.
701         (VEC_OP (T,A,reserve_exact)): New static inline function, three
702         versions.
703         (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
704         negative parameter.
705         (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
706         (VEC_OP (T,A,copy)) [all versions]: Likewise.
707         (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
708         * vec.c (calculate_allocation): Add exact parameter.  Change all
709         callers.
710         (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
711         (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
712         (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
713         (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
714         (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
715         (vec_heap_p_reserve_exact): New function.
716         (vec_heap_o_reserve_exact): New function.
718 2007-03-11  Roger Sayle  <roger@eyesopen.com>
719             Andrew Pinski  <andrew_pinski@playstation.sony.com>
721         PR middle-end/30433
722         * fold-const.c (fold_relational_const): Add back compile-time
723         evaluation of complex constant equality/inequality comparisons.
725 2007-03-11  Ira Rosen  <irar@il.ibm.com>
727         PR tree-optimization/29925
728         * tree-data-ref.c (analyze_offset): Add a return value (bool) to
729         indicate success/failure of the analysis. Add negation to subtrahend
730         in case of subtraction. Fail if both operands contain constants.
731         (create_data_ref): Fail if analyze_offset fails.
733 2007-03-10  Mark Mitchell  <mark@codesourcery.com>
735         PR c++/30924
736         * tree.c (walk_type_fields): Recurse into the element type of
737         ARRAY_TYPEs if there is a pointer set.
739 2007-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
741         * pa.c (attr_length_call): Revise condition for long pc-relative branch.
742         (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
743         calls on the SOM target.  Don't use "LONG_PIC_PCREL" call sequence on
744         SOM target.
746 2007-03-09  Richard Henderson  <rth@redhat.com>
748         PR target/26090
749         * target.h (targetm.asm.out.reloc_rw_mask): New.
750         * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
751         (TARGET_ASM_OUT): Use it.
752         * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
753         * varasm.c (categorize_decl_for_section): Remove shlib argument;
754         use the new reloc_rw_mask target hook instead.
755         (default_section_type_flags_1): Merge into...
756         (default_section_type_flags): ... here.
757         (decl_readonly_section_1): Merge into...
758         (decl_readonly_section): ... here.
759         (default_elf_select_section_1): Merge into...
760         (default_elf_select_section): ... here.
761         (default_unique_section_1): Merge into...
762         (default_unique_section): ... here.
763         (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
764         (default_select_rtx_section): Use it.
765         (default_elf_select_rtx_section): Likewise.
766         * output.h: Update to match.
767         * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
768         * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
769         (TARGET_ASM_RELOC_RW_MASK): New.
770         * config/i386/i386.c (x86_64_elf_select_section): Adjust call
771         to categorize_decl_for_section.
772         (x86_64_elf_unique_section): Likewise.
773         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
774         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
775         (TARGET_ASM_RELOC_RW_MASK): New.
776         * config/ia64/ia64.c (ia64_rwreloc_select_section,
777         ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
778         (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
779         (TARGET_RWRELOC): Remove.
780         (ia64_section_type_flags): Adjust call to default_section_type_flags.
781         * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
782         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
783         (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
784         (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
785         (rs6000_xcoff_select_section): Use decl_readonly_section.
786         (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
787         * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
788         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
789         (TARGET_SECTION_TYPE_FLAGS): Remove.
790         * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
792 2007-03-08  Geoffrey Keating  <geoffk@apple.com>
794         PR 31013
795         * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
796         is declared.
797         * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
798         passed, use shared libgcc.
800 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
802         PR rtl-optimization/30643
803         * cse.c (cse_insn): Recompute dest_hash after insert_regs for
804         dest_addr_elt.
806 2007-03-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
808         PR tree-opt/30045
809         * tree-vrp.c (nonnull_arg_p): Treat the static decl as always
810         non null.
812 2007-03-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
814         PR middle-end/30729
815         * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
816         effects unknown to this function, return early.
818 2007-03-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
820         PR tree-opt/28624
821         * tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary
822         bitmap for EXECUTE_IF_SET_IN_BITMAP.
824 2006-03-09  Mark Shinwell  <shinwell@codesourcery.com>
825             Andrew MacLeod  <amacleod@redhat.com>
826         PR tree-optimization/29877
827         * tree-outof-ssa.c (check_replaceable): Don't allow TER to replace
828         an expression if the RHS is a register variable.
830 2007-03-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
832         PR C/31072
833         * c-decl.c (merge_decls): Don't call make_var_volatile.
834         * varasm.c (make_var_volatile): Remove.
835         * output.h (make_var_volatile): Remove.
837 2007-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
839         * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
840         llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
841         ATTR_CONST_NOTHROW_LIST.
843         * fold-const.c (tree_expr_nonnegative_p): Handle FIX_TRUNC_EXPR.
845 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
847         PR target/30406
848         * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
849         instead of precision.
851 2007-03-08  Volker Reichelt  <reichelt@netcologne.de>
853         PR c++/30852
854         * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
856 2007-03-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
858         * c.opt (Waddress): New.
859         * common.opt (Walways-true): Delete.
860         (Wstring-literal-comparison): Delete.
861         * doc/invoke.texi (Warning Options): Delete -Walways-true and
862         -Wstring-literal-comparison. Add -Waddress.
863         (Waddress): New.
864         (Walways-true): Delete.
865         (Wstring-literal-comparison): Delete.
866         * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
867         consistently instead of -Walways-true in example.
868         * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
869         * c-typeck.c (parser_build_binary_op): Replace
870         -Wstring-literal-comparison and -Walways-true with -Waddress.
871         (build_binary_op): Likewise.
872         * c-common.c (c_common_truthvalue_conversion): Likewise.
874 2007-03-07  Richard Henderson  <rth@redhat.com>
876         PR target/30848
877         * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
878         silently fix up the stack in the case of a missing register.
880 2007-03-06  David Daney  <ddaney@avtrex.com>
882         * doc/install.texi (mips-*-*): Change recommended binutils
883         version.
885 2007-03-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
887         * doc/invoke.texi (Warning Options): Replace -Werror- with
888         -Werror=.
889         * opts.c (common_handle_option): Likewise.
891 2007-03-06  Anatoly Sokolov <aesok@post.ru>
893         * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
894         ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
895         devices.
896         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
897         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
899 2007-03-06  Roger Sayle  <roger@eyesopen.com>
901         PR middle-end/30744
902         * fold-const.c (fold_binary) <EQ_EXPR>: Enforce type consistency
903         when transforming ~X op C to X op' ~C.
905 2007-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
907         * pa.md: In unamed move patterns, disparge copies between general
908         and floating point registers using '?' modifier.  Don't include 'f'
909         constraint for register preferences in DImode, SImode, HImode and
910         QImode patterns.  Likewise for 'r' in DFmode and SFmode patterns.
911         Remove constraints for copies between general and floating registers
912         in soft-float DFmode pattern.
913         (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
914         floating register.
915         (movsf): Likewise.
917 2007-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
919         * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
920         conversion.
922 2007-03-05  Steve Ellcey  <sje@cup.hp.com>
924         Backported from mainline
925         PR debug/29614
926         * cgraph.h (cgraph_varpool_last_needed_node): Make global.
927         * cgraph.c (cgraph_varpool_last_needed_node): Ditto.
928         * cgraphunit.c (cgraph_varpool_assemble_pending_decls):
929         Set cgraph_varpool_last_needed_node to NULL.
931 2007/03/05  David Taylor  <dtaylor@emc.com>
933         PR 31050
934         * gcc.c: Correct copyright date in --version output.
936 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
938         * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
939         -ffixed-line-length-* options.
941 2007-03-05  David Edelsohn  <edelsohn@gnu.ogr>
943         * config/rs6000/t-ppccomm: Always build libgcc2 for GNU/Linux
944         with -mlong-double-128, except SPE.
946         * config/rs6000/darwin-ldouble.c: Only build new functions for
947         __LONG_DOUBLE_128__.
949         Backport from mainline:
950         2007-01-16  David Edelsohn  <edelsohn@gnu.org>
952         * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
953         (strong_alias): Define.
954         (__gcc_qmul): Provide non-FMA for soft-float.
955         (__gcc_qdiv): Same.
956         (__gcc_qneg): New.
957         (__gcc_qeq): New.
958         (__gcc_qle): New.
959         (__gcc_qge): New.
960         (__gcc_qunord): New.
961         (__gcc_stoq): New.
962         (__gcc_dtoq): New.
963         (__gcc_qtos): New.
964         (__gcc_qtod): New.
965         (__gcc_qtoi): New.
966         (__gcc_qtou): New.
967         (__gcc_itoq): New.
968         (__gcc_utoq): New.
969         (fmsub): New.
970         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
971         soft-float functions.
972         * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
973         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
974         about long double soft float.
976 2007-03-05  Richard Guenther  <rguenther@suse.de>
978         Backport from mainline:
979         2007-02-28  Richard Guenther  <rguenther@suse.de>
981         PR middle-end/30364
982         * fold-const.c (fold_binary): Do not associate expressions
983         with more than one variable for integer types that do not wrap.
985 2007-03-04  Eric Botcazou  <ebotcazou@adacore.com>
987         PR ada/26797
988         * doc/invoke.texi (-O2): Document that Tree-VRP is not turned on
989         for the Ada compiler.
991 2007-03-02  Zdenek Dvorak <dvorakz@suse.cz>
993         PR tree-optimization/29902
994         * tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if
995         any involved ssa name appears in abnormal phi node.
997 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
999         * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
1000         (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
1001         if the lhs has side-effects.
1002         <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
1004 2007-03-02  Paul Brook  <paul@codesourcery.com>
1006         * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
1007         modes to LDRD for DImode.
1008         (output_move_double): Fixup out of range ldrd/strd.
1009         (vfp_secondary_reload_class): Rename...
1010         (coproc_secondary_reload_class): ... to this.  Add wb argument.
1011         * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
1012         coproc_secondary_reload_class for CLASS_IWMMXT.
1013         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
1014         * arm-protos.h (coproc_secondary_reload_class): Update prototype.
1016 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
1018         * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
1019         entry by means of emit_insn_at_entry.
1021 2007-03-01  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1023         * doc/invoke.texi (Wextra): Delete outdated paragraph.
1025 2007-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1027         * pa/predicates.md (move_src_operand): Allow zero for mode.
1028         * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
1029         move pattern.
1031 2007-02-27  Mike Stump  <mrs@apple.com>
1033         * config/darwin-crt3.c: Avoid compilation when compiling for a
1034         kext multilib.
1036 2007-02-27  Andreas Schwab  <schwab@suse.de>
1038         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
1040 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
1042         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
1044 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
1046         * doc/include/gcc-common.texi (versionsubtitle): New macro.
1047         * doc/cpp.texi: Standardize title page.
1048         * doc/cppinternals.texi: Likewise.
1049         * doc/gcc.texi: Standardize title page, remove version number
1050         from copyright page.
1051         * doc/gccint.texi: Likewise.
1052         * doc/install.texi: Standardize title page, add table of
1053         contents.
1055 2007-02-24  Mike Stump  <mrs@apple.com>
1057         * config/i386/i386.c (output_pic_addr_const): Stubify optimized
1058         symbols.
1060 2007-02-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1062         * pa.md (muldi3): Force subregs to registers in 64-bit expander.
1064 2007-02-23  Mike Stump  <mrs@apple.com>
1066         * tlink.c (scan_linker_output): Parse linker messages from
1067         darwin9's linker better.
1069 2007-02-21 Ira Rosen  <irar@il.ibm.com>
1071         * tree-ssa-alias.c: Include pointer-set.h
1072         * Makefile.in (tree-ssa-alias.o): Depend on pointer-set.h.
1074 2007-02-21  Jakub Jelinek  <jakub@redhat.com>
1076         Backported from mainline
1077         2006-12-20  Andrew Pinski  <pinskia@gmail.com>
1078         PR middle-end/30143
1079         * omp-low.c (init_tmp_var): New function.
1080         (save_tmp_var): New function.
1081         (lower_omp_1): Use them for VAR_DECL.
1083 2007-02-20  Alan Modra  <amodra@bigpond.net.au>
1085         PR target/29943
1086         * varasm.c (use_blocks_for_decl_p): Return false for decls with
1087         alias attribute.
1089 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
1091         * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
1092         due to calls to functions taking pointers as parameters.
1094 2007-02-19  Richard Henderson  <rth@redhat.com>
1096         PR debug/29558
1097         * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
1098         in memory.
1100 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
1102         * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
1104 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
1106         * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
1107         for arg pointer based indexed addressing.
1109 2007-02-18 Ira Rosen  <irar@il.ibm.com>
1111         * tree-ssa-alias.c (may_aliases_intersect): New function.
1112         * tree-data-ref.c (ptr_ptr_may_alias_p): Call may_aliases_intersect
1113         for different tags.
1114         * tree-flow.h (may_aliases_intersect): Add function declaration.
1116 2007-02-17  Alexandre Oliva  <aoliva@redhat.com>
1118         PR tree-optimization/30823
1119         * tree-sra.c (sra_build_assignment): Drop type-checking assert.
1121 2007-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1123         PR other/27843
1124         * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
1125         nested double- and backquotes.
1127 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
1129         * tree-sra.c (instantiate_missing_elements): Canonicalize
1130         bit-field types.
1131         (sra_build_assignment): New.
1132         (generate_copy_inout, generate_element_copy,
1133         generate_element_zero, generate_one_element_init): Use it.
1135 2007-02-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1137         PR rtl-optimization/29599
1138         Backport from mainline.
1139         * reload1.c (eliminate_regs_in_insn): Take the destination
1140         mode into account when computing the offset.
1142 2007-02-13  Joseph S. Myers  <joseph@codesourcery.com>
1144         * doc/invoke.texi, doc/standards.texi: Refer to
1145         gcc-4.2/c99status.html.
1147 2007-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1149         PR target/30634
1150         * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
1151         CONST_DOUBLE and operand 0 is a hard register.
1152         (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
1153         memory.  Fail if operand 1 is a non-zero CONST_INT and operand 0
1154         is a hard floating-point register.
1156 2007-02-06  Mark Mitchell  <mark@codesourcery.com>
1158         PR target/29487
1159         * tree.h (DECL_REPLACEABLE_P): New macro.
1160         * except.c (set_nothrow_function_flags): Likewise.
1162 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
1164         PR c++/30703
1165         * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
1166         of INDIRECT_REF <RESULT_DECL>.
1168 2007-02-06  Rask Ingemann Lamberisen  <rask@sygehus.dk>
1170         PR 30370
1171         * config/rs6000/t-ppccomm: Correct Makefile typo.
1173 2007-02-06  Roger Sayle  <roger@eyesopen.com>
1175         PR libgomp/28296
1176         Backport from mainline.
1177         * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
1178         it into -D_REENTRANT.
1180 2007-02-05  Alexandre Oliva  <aoliva@redhat.com>
1182         PR debug/30189
1183         * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
1184         even if cv-qualification is the same.
1186 2007-02-05  Geoffrey Keating  <geoffk@apple.com>
1188         * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
1189         __enable_execute_stack on completion.
1191 2007-02-05  Bob Wilson  <bob.wilson@acm.org>
1193         * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
1195 2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1197         PR target/29682
1198         * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory loads to
1199         general or fp registers.  Add comments.
1200         * config/ia64/ia64.md (reg_pred_prefix): Add comment.
1202 2007-02-04  Richard Guenther  <rguenther@suse.de>
1204         Backport from mainline:
1205         2007-01-30  Richard Guenther  <rguenther@suse.de>
1207         PR middle-end/27657
1208         * dwarf2out.c (reference_to_unused): Query varpool if the
1209         variable was output.
1211 2007-02-02  Mike Stump  <mrs@apple.com>
1213         * config.gcc (*-*-darwin*): Backport darwin9.h bits.
1214         * config/darwin9.h: Add.
1215         * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
1216         (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
1217         generate a branch island.
1219 2007-02-02  Hui-May Chang  <hm.chang@apple.com>
1221         Revert for x86 darwin:
1222         2005-06-19  Uros Bizjak  <uros@kss-loka.si>
1224         * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
1225         code before the following patch under TARGET_MACHO.
1226         (ix86_function_value_regno_p): Likewise.
1228 2007-02-02  Simon Martin  <simartin@users.sourceforge.net>
1230         PR c++/28266
1231         * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
1232         expanded only once even if an error occurs.
1234 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
1236         PR middle-end/30473
1237         * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
1238         sprintf (str, "%s").  Do not optimize sprintf (str, "nopercent", p++).
1240 2007-02-01  Guy Martin  <gmsoft@gentoo.org>
1242         * pa.md (tp_load): Correct mfctl instruction syntax.
1244 2007-02-01  Geoffrey Keating  <geoffk@apple.com>
1246         * config/rs6000/rs6000.c (rs6000_stack_info): Correct
1247         altivec_padding_size calculation on AIX.  Improve comment, add
1248         assert to verify that it's right.
1250 2007-01-31  Anatoly Sokolov <aesok@post.ru>
1252         PR target/19087
1253         * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
1255 2007-01-30  Richard Guenther  <rguenther@suse.de>
1257         PR middle-end/30313
1258         * passes.c (execute_one_pass): Reset in_gimple_form to not
1259         confuse non-unit-at-a-time mode.
1261 2007-01-27  Anatoly Sokolov <aesok@post.ru>
1263         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define __AVR_HAVE_MUL__.
1265 2007-01-29  Mike Stump  <mrs@apple.com>
1267         * doc/gccint.texi (Top): Rename Loop Representation to Loop
1268         Analysis and Representation to resolve case insensitive conflict.
1269         * doc/loop.texi (Loop Analysis and Representation): Likewise.
1271 2007-01-29  Josh Conner  <jconner@apple.com>
1273         PR middle-end/29683
1274         * calls.c (compute_argument_addresses): Set stack and stack_slot
1275         for partial args, too.
1276         (store_one_arg): Use locate.size.constant for the size when
1277         generating a save_area.
1279 2007-01-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1281         * doc/sourcebuild.texi: Add comma for clarity.
1282         * doc/extend.texi: Fix some typos.
1283         * doc/passes.texi: Likewise.
1284         * doc/cppinternals.texi: Likewise.
1285         * doc/c-tree.texi: Likewise.
1286         * doc/tree-ssa.texi: Likewise.
1287         * doc/install.texi: Likewise.
1289 2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>
1291         PR tree-optimization/29516
1292         * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
1293         most_expensive_mult_to_index, addr_to_parts,
1294         create_mem_ref, maybe_fold_tmr): Make the type of
1295         fields of TARGET_MEM_REF sizetype.
1296         (move_fixed_address_to_symbol, move_pointer_to_base,
1297         aff_combination_remove_elt): New functions.
1298         * tree.def (TARGET_MEM_REF): Add comment on types of
1299         the operands.
1300         * gcc.dg/tree-ssa/loop-20.c: New test.
1302 2007-01-25  Geoffrey Keating  <geoffk@apple.com>
1304         PR 25127
1305         * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
1306         save Altivec registers in an eh_return function.
1307         (compute_vrsave_mask): Likewise.
1308         (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
1309         for saving Altivec registers.
1310         (rs6000_emit_prologue): Don't allocate stack twice in
1311         eh_return function.  Correct expected value of altivec_save_offset
1312         when using save_world.  Describe save of R0 to stack when using
1313         save_world.  Describe stack pointer adjustment when using
1314         save_world.  Remove duplicated eh_return parameter register saving.
1315         Update sp_offset variable after save_world.
1316         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
1317         darwin-world.asm.
1318         (LIB2FUNCS_EXTRA): Add darwin-world.asm.
1319         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
1320         implies Altivec.
1322 2007-01-24  Geoffrey Keating  <geoffk@apple.com>
1324         * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
1326 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
1328         PR middle-end/27416
1329         * gimplify.c (omp_check_private): New function.
1330         (gimplify_scan_omp_clauses): Use it for
1331         firstprivate/lastprivate/reduction.
1333         PR middle-end/30494
1334         * gimplify.c (omp_add_variable): Don't call omp_notice_variable
1335         on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
1337         PR middle-end/30421
1338         * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
1339         If lower_lastprivate_clauses emits some statements, append them
1340         to dlist rather than body_p and to body_p append an initializer.
1341         (lower_omp_for): Adjust caller.
1343 2007-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1345         PR rtl-optimization/29329
1346         * combine.c (replaced_rhs_insn): Rename to i2mod.
1347         (replaced_rhs_value): Rename to i2mod_new_rhs.
1348         (i2mod_old_rhs): New global variable.
1349         (combine_instructions): Adjust for above change.  Save a copy of
1350         the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
1351         note are substituted in the second instruction.
1352         (distribute_notes) <REG_DEAD>: Adjust for above change.  Do not
1353         ditch the note if it pertains to the second eliminated register
1354         and this register is mentioned in i2mod_old_rhs.
1356         Revert:
1357         2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1359         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
1360         the insn to which the note was originally attached.
1362 2007-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1364         * pa.c (output_move_double): Change array size of xoperands to 4.
1366 2007-01-17  Eric Christopher  <echristo@apple.com>
1368         Backport from mainline:
1369         2006-12-18  Roger Sayle  <roger@eyesopen.com>
1370                     Eric Christopher  <echristo@apple.com>
1372         PR target/29302
1373         * real.c (real_maxval): Correctly handle IBM extended double format.
1375 2007-01-17  Tom Tromey  <tromey@redhat.com>
1377         * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
1378         * doc/install.texi (Testing): Use sourceware.org.
1379         (Binaries): Likewise.
1380         (Specific): Likewise.
1381         * doc/contrib.texi (Contributors): Use sourceware.org.
1383 2007-01-15  Joseph S. Myers  <joseph@codesourcery.com>
1385         * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
1386         glibc CVS.
1388 2007-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1390         * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
1391         * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
1392         (ASM_OUTPUT_INTERNAL_LABEL): Define.
1394 2007-01-10  Ralf Corsépius <ralf.corsepius@rtems.org>
1396         * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
1398 2007-01-09  Nicolas Pitre  <nico@cam.org>
1400         PR target/30173
1401         * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
1403 2007-01-08  Nick Clifton  <nickc@redhat.com>
1405         * config/frv/predicates.md (reg_or_0_operand): Accept
1406         CONST_DOUBLEs.
1408 2007-01-08  Ralf Corsépius <ralf.corsepius@rtems.org>
1410         * config/bfin/rtems.h, config/bfin/t-rtems: New.
1411         * config.gcc: Add bfin*-rtems*.
1413 2007-01-08  Chen liqin  <liqin@sunnorth.com.cn>
1414         * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
1415         * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
1416         const_simm15, const_pow2, const_npow2): Added.
1417         * config/score/misc.md (insv, extv, extzv, movmemsi,
1418         move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
1419         * config/score/score.c (score_address_cost, score_select_cc_mode):
1420         Added.
1421         Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
1422         Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
1423         Update score_print_operand.
1424         * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
1425         Adjust register allocate order and update some macro define.
1426         * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
1427         mdx_block_move_straight, mdx_block_move_loop_head,
1428         mdx_block_move_loop_body, mdx_block_move_loop_foot, mdx_block_move_loop,
1429         mdx_block_move): Added.
1430         (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
1431         mdp_limm): Updated and fix some bug and typo.
1432         * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
1433         (movsf, movdf, doloop_end): Added.
1435 2007-01-05  Richard Guenther  <rguenther@suse.de>
1437         PR middle-end/27826
1438         * tree.c (get_narrower): Do not construct COMPONENT_REFs
1439         with mismatched types.  Instead explicitly build a
1440         conversion NOP_EXPR.
1442 2007-01-05  Jakub Jelinek  <jakub@redhat.com>
1444         PR c/30360
1445         * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
1446         denom against 0.0.
1448 2007-01-03  Jakub Jelinek  <jakub@redhat.com>
1450         * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
1451         (struct _Unwind_Context): Rename args_size to flags, remove
1452         signal_frame field, add a new args_size field and version field.
1453         (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
1454         _Unwind_IsExtendedContext): New inline functions.
1455         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
1456         Assume by_value array is only present if _Unwind_IsExtendedContext.
1457         (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
1458         _Unwind_IsSignalFrame.
1459         (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
1460         (uw_update_context_1): Use _Unwind_SetSignalFrame.
1461         (uw_init_context_1): Initialize context->flags to
1462         EXTENDED_CONTEXT_BIT.
1463         * config/rs6000/linux-unwind.h (frob_update_context): Use
1464         _Unwind_SetSignalFrame.
1466 2007-01-01  Mike Stump  <mrs@apple.com>
1468         * configure.ac: Remove support for building with Apple's gcc-3.1.
1470 2007-01-01  Andreas Schwab  <schwab@suse.de>
1472         PR target/29166
1473         * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
1474         save of BR0 in extra_spill_size instead of spill_size.
1475         (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
1476         area.
1477         (ia64_expand_epilogue): Restore BR0 from its new location.