]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/gcc/ChangeLog
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / gcc / ChangeLog
1 2007-08-31  Jakub Jelinek  <jakub@redhat.com>
2
3         PR rtl-optimization/33148
4         * simplify-rtx.c (simplify_unary_operation_1): Only optimize
5         (neg (lt X 0)) if X has scalar int mode.
6
7         PR debug/32914
8         * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR
9         initializer, use build_vector_from_ctor if possible to create
10         VECTOR_CST out of it.  If vector initializer is not VECTOR_CST
11         even after this, return NULL.
12
13 2007-08-27  Jason Merrill  <jason@redhat.com>
14
15         PR c++/31337
16         * gimplify.c (gimplify_modify_expr): Discard the assignment of 
17         zero-sized types after calling gimplify_modify_expr_rhs.
18
19 2007-08-24  Jakub Jelinek  <jakub@redhat.com>
20
21         PR debug/32610
22         * dwarf2out.c (gen_decl_die): Don't call
23         gen_tagged_type_instantiation_die if decl doesn't have tagged type.
24
25 2007-08-24  Richard Guenther  <rguenther@suse.de>
26
27         * expr.c (get_inner_reference): Remove unused variable.
28
29 2007-08-24  Richard Guenther  <rguenther@suse.de>
30
31         * expr.c (get_inner_reference): Do computation of bitoffset
32         from offset in a way we can detect overflow reliably.
33
34 2007-08-22  Richard Guenther  <rguenther@suse.de>
35
36         PR middle-end/32563
37         * tree.c (host_integerp): Treat sizetype as signed as it is
38         sign-extended.
39
40 2007-08-20  Adam Nemet  <anemet@caviumnetworks.com>
41
42         * config/mips/predicates.md (const_call_insn_operand): Invoke
43         SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
44
45 2007-08-17  Chen liqin  <liqin@sunnorth.com.cn>
46
47         * config/score/score.md : Update pattern tablejump.
48         * config/score/score.c : Update score_initialize_trampoline 
49         function.
50         * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
51         (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
52         * doc/contrib.texi: Add my entry.
53
54 2007-08-02  Andreas Krebbel  <krebbel1@de.ibm.com>
55
56         * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
57
58 2007-08-01  Andreas Krebbel  <krebbel1@de.ibm.com>
59
60         * config/s390/s390.md (TF in GPR splitter): Change operand_subword
61         parameter to TFmode.
62
63 2007-07-30  Mark Mitchell  <mark@codesourcery.com>
64
65         * BASE-VER: Bump.
66         * DEV-PHASE: Mark as prerelease.
67
68 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
69
70         PR target/32218
71         * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
72
73 2007-07-25  Dorit Nuzman  <dorit@il.ibm.com>
74             Devang Patel  <dpatel@apple.com>
75
76         PR tree-optimization/25413
77         * targhooks.c (default_builtin_vector_alignment_reachable): New.
78         * targhooks.h (default_builtin_vector_alignment_reachable): New.
79         * tree.h (contains_packed_reference): New.
80         * expr.c (contains_packed_reference): New.
81         * tree-vect-analyze.c (vector_alignment_reachable_p): New.
82         (vect_enhance_data_refs_alignment): Call
83         vector_alignment_reachable_p.
84         * target.h (vector_alignment_reachable): New builtin.
85         * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
86         * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
87         (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
88
89 2007-07-24  Richard Guenther  <rguenther@suse.de>
90
91         Backport from mainline:
92         2007-07-16  Richard Guenther  <rguenther@suse.de>
93                     Uros Bizjak  <ubizjak@gmail.com>
94
95         * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
96         before forcing it to gimple operand.
97
98 2007-07-24  Richard Guenther  <rguenther@suse.de>
99
100         PR tree-optimization/32723
101         Backport from mainline:
102         2007-03-09  Daniel Berlin  <dberlin@dberlin.org>
103
104         * tree-ssa-structalias.c (shared_bitmap_info_t): New structure.
105         (shared_bitmap_table): New variable.
106         (shared_bitmap_hash): New function.
107         (shared_bitmap_eq): Ditto
108         (shared_bitmap_lookup): Ditto.
109         (shared_bitmap_add): Ditto.
110         (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
111         (init_alias_vars): Init shared bitmap hashtable.
112         (delete_points_to_sets): Delete shared bitmap hashtable.
113
114 2007-07-23  Bernd Schmidt  <bernd.schmidt@analog.com>
115
116         * reload1.c (choose_reload_regs): Set reload_spill_index for regs
117         chosen during find_reloads.
118
119 2007-07-19  Release Manager
120
121         * GCC 4.2.1 released.
122
123 2007-07-18  Paolo Bonzini  <bonzini@gnu.org>
124
125         Revert:
126
127         2007-07-09  Paolo Bonzini  <bonzini@gnu.org>
128
129         PR middle-end/32004
130         * function.c (rest_of_match_asm_constraints): Pass PROP_REG_INFO.
131
132         2007-07-06  Paolo Bonzini  <bonzini@gnu.org>
133
134         PR middle-end/32004
135         * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
136         pass_match_asm_constraints): New.
137         * passes.c (init_optimization_passes): Add new pass.
138         * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
139         * function.h (struct function): Add has_asm_statement bit.
140         (current_function_has_asm_statement): New.
141         * tree-pass.h (pass_match_asm_constraints): New.
142
143 2007-07-16  Paul Brook  <paul@codesourcery.com>
144
145         PR target/32753
146         gcc/
147         * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
148
149 2007-07-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
150
151         PR target/32538
152         * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
153
154 2007-07-09  Paolo Bonzini  <bonzini@gnu.org>
155
156         PR middle-end/32004
157         * function.c (rest_of_match_asm_constraints): Pass PROP_REG_INFO.
158
159 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
160
161         PR tree-optimization/32681
162         * tree-if-conv.c (find_phi_replacement_condition): Use the condition
163         saved in second_edge->aux when first_bb is a loop header.
164
165 2007-07-07 Anatoly Sokolov <aesok@post.ru>
166
167         PR target/31331
168         * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
169         rather than a decl. 
170         (avr_attribute_table): Make "naked" attribute apply to function types
171         rather than to decls.
172         (avr_handle_fntype_attribute): New function.
173
174 2007-07-06  Paolo Bonzini  <bonzini@gnu.org>
175
176         PR middle-end/32004
177         * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
178         pass_match_asm_constraints): New.
179         * passes.c (init_optimization_passes): Add new pass.
180         * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
181         * function.h (struct function): Add has_asm_statement bit.
182         (current_function_has_asm_statement): New.
183         * tree-pass.h (pass_match_asm_constraints): New.
184
185 2007-07-06  Uros Bizjak  <ubizjak@gmail.com>
186
187         PR rtl-optimization/32450
188         * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
189         to ensure that instructions are not moved into the prologue when
190         profiling is on.
191
192 2007-07-04  Richard Guenther  <rguenther@suse.de>
193
194         PR tree-optimization/32500
195         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
196         Only use basic blocks that are always executed to infer loop bounds.
197
198 2007-07-04  Uros Bizjak  <ubizjak@gmail.com>
199
200         PR tree-optimization/31966
201         PR tree-optimization/32533
202         * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
203         "basic_block" description as its third argument.  Update function
204         calls to get destination bb from "edge" argument.  Save "cond" into
205         aux field of the edge.  Update prototype for changed arguments.
206         (if_convertible_loop_p): Clear aux field of incoming edges if bb
207         contains phi node.
208         (find_phi_replacement_condition): Operate on incoming edges, not
209         on predecessor blocks.  If there is a condition saved in the
210         incoming edge aux field, AND it with incoming bb predicate.
211         Return source bb of the first edge.
212         (clean_predicate_lists): Clean aux field of outgoing node edges.
213         (tree_if_conversion): Do not initialize cond variable. Move
214         variable declaration into the loop.
215         (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
216         initializations of new_stmt, arg0 and arg1 variables.
217
218 2007-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
219
220         PR target/32506
221         Backport from mainline.
222         * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
223         predicate instead of target_operand.
224         (divsi3_i1_media, divsi3_media_2): Likewise.
225
226 2007-07-03  Richard Guenther  <rguenther@suse.de>
227
228         Backport from mainline:
229         2006-12-11  Zdenek Dvorak <dvorakz@suse.cz>
230
231         PR rtl-optimization/30113
232         * loop-iv.c (implies_p): Require the mode of the operands to be
233         scalar.
234
235 2007-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
236
237         PR target/28307
238         * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
239         (__gthrw_pragma): Provide default definition.
240         (__gthrw2): Use it.
241         * gthr-posix.c (__gthrw_pragma): Define.
242
243 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
244
245         PR libgomp/32468
246         * omp-low.c (check_combined_parallel): New function.
247         (lower_omp_parallel): Call it via walk_stmts, set
248         OMP_PARALLEL_COMBINED if appropriate.
249         (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
250         isn't the only statement in WS_ENTRY_BB or OMP_RETURN
251         the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
252         don't consider it as combined parallel.
253
254 2007-06-30  Alexandre Oliva  <aoliva@redhat.com>
255
256         * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
257         limbo die nodes.
258
259 2007-06-28  Seongbae Park  <seongbae.park@gmail.com>
260
261         * config/arm/arm.c (arm_get_frame_offsets): Set
262         offsets->locals_base to avoid negative stack size.
263         (thumb_expand_prologue): Assert on negative stack size.
264
265 2007-06-28  Jakub Jelinek  <jakub@redhat.com>
266
267         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
268         decl is non-external for AIX ABI.
269
270 2007-06-28  David Edelsohn  <edelsohn@gnu.org>
271
272         * config/rs6000/predicates.md (current_file_function_operand):
273         Ensure the symbol is non-external for AIX ABI.
274
275 2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>
276
277         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_VEC_EXT_V16QI.
278         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_vec_ext_v16qi.
279         (ix86_expand_builtin): Handle IX86_BUILTIN_VEC_EXT_V16QI.
280
281 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
282
283         PR middle-end/32362
284         * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
285         but decl is a global var, instead return decl.
286         * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
287         even for is_global_var decls, if they are private in some outer
288         context.
289
290 2007-06-21  Uros Bizjak  <ubizjak@gmail.com>
291
292         PR target/32389
293         * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
294         * config/i386/i386.c (assign_386_stack_local): Assert that
295         SLOT_VIRTUAL is valid only before virtual regs are instantiated.
296         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
297         Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
298         * config/i386/i386.md (truncdfsf2, truncxfsf2, truncxfdf2): Ditto.
299
300 2007-06-20  Jakub Jelinek  <jakub@redhat.com>
301
302         PR inline-asm/32109
303         * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
304         and !allows_mem.
305
306         PR middle-end/32285
307         * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
308         if ACCUMULATE_OUTGOING_ARGS.
309
310 2007-06-20  Kaz Kojima  <kkojima@gcc.gnu.org>
311
312         PR rtl-optimization/28011
313         Backport from mainline.
314         * reload.c (push_reload): Set dont_share if IN appears in OUT
315         also when IN is a PLUS rtx.
316         (reg_overlap_mentioned_for_reload_p): Return true if X and IN
317         are same PLUS rtx.
318
319 2007-06-19  Richard Guenther  <rguenther@suse.de>
320         Michael Matz  <matz@suse.de>
321
322         PR tree-optimization/30252
323         * tree-ssa-structalias.c (solution_set_add): Make sure to
324         preserve all relevant vars.
325         (handle_ptr_arith): Make sure to only handle positive
326         offsets.
327         (push_fields_onto_fieldstack): Create fields for empty
328         bases.
329
330 2007-06-19  Jakub Jelinek  <jakub@redhat.com>
331
332         PR tree-optimization/32353
333         * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
334
335 2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
336
337         * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
338         return mode from the builtin itself.
339         (sparc_fold_builtin): Fix cast of zero constant.
340
341 2007-06-15  Diego Novillo  <dnovillo@google.com>
342
343         PR 32327
344         * tree-ssa-operands.c (build_ssa_operands): Initially assume
345         that the statement does not take any addresses.
346
347 2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
348
349         * config/sparc/sparc.c (sparc_override_options): Initialize
350         fpu mask correctly.
351
352 2007-06-09  Ian Lance Taylor  <iant@google.com>
353
354         PR tree-optimization/32169
355         * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
356         CONVERT_EXPR, check whether min and max both converted to an
357         overflow infinity representation.
358
359 2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
360
361         PR target/32163
362         Backport from mainline.
363         * config/sh/sh.md (symGOT_load): Don't schedule insns when
364         the symbol is generated with the stack protector.
365
366 2007-06-06  Ian Lance Taylor  <iant@google.com>
367
368         * fold-const.c (merge_ranges): If range_successor or
369         range_predecessor fail, just return 0.
370
371 2007-06-05  Ian Lance Taylor  <iant@google.com>
372
373         * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
374         PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
375         (extract_range_from_assert): Set TREE_NO_WARNING when creating an
376         expression.
377         (test_for_singularity): Likewise.
378
379 2007-06-04  Ian Lance Taylor  <iant@google.com>
380
381         * tree-vrp.c (adjust_range_with_scev): When loop is not expected
382         to overflow, reduce overflow infinity to regular infinity.
383         (vrp_var_may_overflow): New static function.
384         (vrp_visit_phi_node): Check vrp_var_may_overflow.
385
386 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
387
388         Backport from mainline:
389         2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
390
391         * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
392         with MASK_SSE2.
393         (__builtin_ia32_vec_ext_v2di): Likewise.
394         (__builtin_ia32_vec_ext_v4si): Likewise.
395         (__builtin_ia32_vec_ext_v8hi): Likewise.
396         (__builtin_ia32_vec_set_v8hi): Likewise.
397
398 2007-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
399
400         Backport from mainline:
401         2007-05-05  Aurelien Jarno  <aurelien@aurel32.net>
402
403         * config/pa/pa.md: Split tgd_load, tld_load and tie_load
404         into pic and non-pic versions. Mark r19 as used for 
405         tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used 
406         for tgd_load, tld_load and tie_load .
407         * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
408         version of tgd_load, tld_load and tie_load depending on the 
409         value of flag_pic.
410
411 2007-05-27  Daniel Berlin <dberlin@dberlin.org>
412
413         Fix PR/30052
414         Backport PTA solver from mainline
415
416         * pointer-set.c: Copy from mainline
417         * pointer-set.h: Ditto.
418         * tree-ssa-structalias.c: Copy solver portions from mainline.
419         * Makefile.in (tree-ssa-structalias.o): Update dependencies
420
421 2007-05-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
422
423         * tree-vrp.c (compare_names): Initialize sop.
424
425 2007-05-30  Jakub Jelinek  <jakub@redhat.com>
426
427         PR tree-optimization/31769
428         * except.c (duplicate_eh_regions): Clear prev_try if
429         ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
430
431 2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
432
433         PR tree-opt/32100
434         * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
435         return true when truth_value_p is true and the type
436         is of signed:1.
437
438 2007-05-27  H.J. Lu  <hongjiu.lu@intel.com>
439
440         Backport from mainline:
441         2007-05-25  Uros Bizjak  <ubizjak@gmail.com>
442
443         * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
444         "memory" attribute for "sseishft" type insn without operands[2].
445
446         2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
447
448         * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
449
450 2007-05-22  Ian Lance Taylor  <iant@google.com>
451
452         * tree-vrp.c (avoid_overflow_infinity): New static function,
453         broken out of set_value_range_to_value.
454         (set_value_range_to_value): Call avoid_overflow_infinity.
455         (extract_range_from_assert): Likewise.
456
457 2007-05-23  Chen Liqin  <liqin@sunnorth.com.cn>
458
459         PR target/30987
460         * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): remove.
461         * config/score/predicate.md (const_pow2, const_npow2): remove.
462         * config/score/score.h (ASM_OUTPUT_EXTERNAL): add ASM_OUTPUT_EXTERNAL undef.
463         PR target/30474
464         * config/score/score.c (score_print_operand): makes sure that only lower 
465         bits are used.
466         
467 2007-05-21  Uros Bizjak  <ubizjak@gmail.com>
468
469         PR target/31167
470         Backport from mainline.
471         * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
472         x86_64_general_operand as operand[2] predicate.  Remove "iF"
473         from operand constraints and use "e" constraint instead.
474         (*subti3_1, *subti3_1 splitter): Ditto.
475         (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
476         operand[1] predicate.
477
478 2007-05-21  Uros Bizjak  <ubizjak@gmail.com>
479
480         PR target/30041
481         Backport from mainline.
482         * config/i386/sse.md ("*sse3_movddup"): Use operands[0] and
483         operands[1] in insn constraint.  Correct type attribute to sselog1.
484
485 2007-05-20  Kaz Kojima  <kkojima@gcc.gnu.org>
486
487         PR target/31701
488         Backport from mainline.
489         * config/sh/sh.c (output_stack_adjust): Avoid using the frame
490         register itself to hold the offset constant.  Tell flow the use
491         of r4 and r5 when they are used.
492
493 2007-05-20  Kaz Kojima  <kkojima@gcc.gnu.org>
494
495         PR target/31480
496         Backport from mainline.
497         * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
498         is null.
499
500 2007-05-20  Kaz Kojima  <kkojima@gcc.gnu.org>
501
502         PR target/31022
503         Backport from mainline.
504         * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
505         instead of PATTERN.
506
507 2007-05-20  Kaz Kojima  <kkojima@gcc.gnu.org>
508
509         PR target/27405
510         Backport from mainline.
511         * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
512         (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
513         cmp{eq,gt,gtu}{si,di}_media.
514         (*cmpne0si_media): Remove.
515         (*movsicc_umin): Adjust gen_cmp*_media call.
516         (unordered): Change the mode of unordered and operands[1] to
517         SImode.
518         (seq): Adjust gen_cmp*_media calls.  Make the mode of
519         a temporary result of compare SImode if needed.  If the mode
520         of operands[0] is DImode, extend the temporary result to DImode.
521         (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
522         (sunorderd): Change the mode of match_operand and unorderd to
523         SImode.
524         (cmpeq{sf,df}_media): Remove.
525         (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
526         (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
527         and compare operation to SImode.
528
529 2007-05-18  Joseph Myers  <joseph@codesourcery.com>
530
531         * config/soft-fp/double.h, config/soft-fp/extended.h,
532         config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
533         config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
534         config/soft-fp/op-2.h, config/soft-fp/op-4.h,
535         config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
536         glibc CVS.
537
538 2007-05-17  Ian Lance Taylor  <iant@google.com>
539
540         PR tree-optimization/31953
541         * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
542         Change all callers.
543         (set_value_range_to_null): Call set_value_range_to_value.
544         (extract_range_from_comparison): Likewise.
545
546 2007-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
547
548         PR rtl-optimization/31691
549         * combine.c (simplify_set): Build a new src pattern instead of
550         substituting its operands in the COMPARE case.
551
552 2007-05-14  Mark Mitchell  <mark@codesourcery.com>
553
554         * BASE-VER: Set to 4.2.1.
555         * DEV-PHASE: Set to prerelease.
556
557 2007-05-13  Release Manager
558
559         * GCC 4.2.0 released.
560
561 2007-05-12  Richard Guenther  <rguenther@suse.de>
562
563         PR tree-optimization/31797
564         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
565         propagate into a stmt that has volatile ops.
566
567 2007-05-01  Ian Lance Taylor  <iant@google.com>
568
569         PR tree-optimization/31739
570         * tree-vrp.c (vrp_val_is_max): New static function.
571         (vrp_val_is_min): New static function.
572         (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
573         copying the node.
574         (set_value_range): Use vrp_val_is_{max,min}.
575         (extract_range_from_assert): Likewise.
576         (extract_range_from_binary_expr): Likewise.
577         (extract_range_from_unary_expr): Likewise.
578         (dump_value_range, vrp_meet): Likewise.
579         (vrp_visit_phi_node): Likewise.
580         * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
581
582 2007-05-01  Joseph Myers  <joseph@codesourcery.com>
583
584         * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
585
586 2007-04-27  Anatoly Sokolov <aesok@post.ru>
587
588         * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and 
589         ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
590         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
591         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
592
593 2007-04-27  Ian Lance Taylor  <iant@google.com>
594
595         PR middle-end/31710
596         * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
597         TYPE_MAX_VALUE exist, convert them to the new type.
598
599 2007-04-26  Ian Lance Taylor  <iant@google.com>
600
601         PR target/28675
602         * reload.c (find_reloads_subreg_address): If the address was valid
603         in the original mode but not in the new mode, reload the whole
604         address.
605
606 2007-04-26  Ulrich Weigand  <uweigand@de.ibm.com>
607
608         PR middle-end/30761
609         * reload1.c (eliminate_regs_in_insn): In the single_set special
610         case, attempt to re-recognize the insn before falling back to
611         having reload fix it up.
612
613 2007-04-26  Richard Guenther  <rguenther@suse.de>
614         Daniel Berlin  <dberlin@dberlin.org>
615
616         PR tree-optimization/30567
617         * tree-ssa-structalias.c (update_alias_info): Record dereference
618         also if ESCAPE_STORED_IN_GLOBAL.
619
620 2007-04-26  Jakub Jelinek  <jakub@redhat.com>
621
622         PR c++/31598
623         * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
624
625         PR tree-optimization/30558
626         * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
627         clear this_state.prev_try.
628
629 2007-04-25  Anatoly Sokolov <aesok@post.ru>
630
631         PR target/18989
632         * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
633
634 2007-04-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
635             Roger Sayle  <roger@eyesopen.com>
636
637         PR middle-end/30222
638         * expmed.c (make_tree): Use the correct type, i.e. the inner
639         type, when constructing the individual elements of a CONST_VECTOR.
640
641 2007-04-24  Ian Lance Taylor  <iant@google.com>
642
643         PR tree-optimization/31605
644         * tree-vrp.c (set_value_range): Check that min and max are not
645         both overflow infinities.
646         (set_value_range_to_value): New static function.
647         (extract_range_from_binary_expr): Call set_value_range_to_value.
648         (extract_range_from_expr): Likewise.
649         (extract_range_from_unary_expr): Likewise.  Don't create a range
650         which overflows on both sides.
651         (vrp_meet): Check for a useless range.
652         (vrp_visit_phi_node): If we see a constant which looks like an
653         overflow infinity, turn off the TREE_OVERFLOW flag.
654
655 2007-04-24  Ian Lance Taylor  <iant@google.com>
656
657         PR tree-optimization/31602
658         * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
659         conditionals in the copied loop header.
660         * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
661         warnings if TREE_NO_WARNING is set.
662         * doc/invoke.texi (Warning Options): Clarify that
663         -Wstrict-overflow does not warn about loops.
664
665 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
666
667         PR target/31641
668         * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant length
669         argument of 0 for memset.
670         (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
671         unsigned shift instead of the signed variant.
672
673 2007-04-24  Daniel Franke  <franke.daniel@gmail.com>
674
675         * doc/invoke.texi: Removed leading '-' from option index entries.
676
677 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
678
679         PR middle-end/31448
680         * expr.c (reduce_to_bit_field_precision): Handle
681         CONST_INT rtx's.
682
683 2007-04-20  Richard Henderson  <rth@redhat.com>
684
685         PR target/28623
686         * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
687         argument; update all callers.
688         (get_unaligned_offset): New.
689         * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
690         get_unaligned_address, just pass on the address directly.
691         (unaligned_extendqidi): Use gen_lowpart instead of open-coding
692         the subreg in the helper patterns.
693         (unaligned_extendqidi_le): Use get_unaligned_offset.
694         (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
695         (unaligned_extendhidi_be): Likewise.
696         (unaligned_extendhidi): Tidy.
697         * config/alpha/alpha-protos.h: Update.
698
699 2007-04-21  Richard Guenther  <rguenther@suse.de>
700
701         PR middle-end/31136
702         * fold-const.c (fold_unary): Call fold_convert_const on the
703         original tree.
704
705 2007-04-20  Richard Henderson  <rth@redhat.com>
706
707         * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
708
709 2007-04-20  Bernd Schmidt  <bernd.schmidt@analog.com>
710
711         * reload.c (combine_reloads): When trying to use a dying register,
712         check whether it's uninitialized and don't use if so.
713
714 2007-04-20  Jakub Jelinek  <jakub@redhat.com>
715
716         * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
717         for __builtin_ia32_cmpordss.
718
719         PR tree-optimization/31632
720         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
721         and arg1 for optimizations of comparison against min/max values.
722         Fold arg0 to arg1's type for optimizations of comparison against
723         min+1 and max-1 values.
724
725 2007-04-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
726
727         PR rtl-optimization/29841
728         * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
729         trap instructions.
730         * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
731         that may cause control flow transfer from being moved.
732
733 2007-04-18  Anatoly Sokolov <aesok@post.ru>
734
735         * config/avr/avr.c (ptrreg_to_str): Replace error() with
736         output_operand_lossage().
737
738 2007-04-17  Anatoly Sokolov <aesok@post.ru>
739
740         PR target/30483
741         * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
742         error().
743
744 2007-04-17  Jan Hubicka  <jh@suse.cz>
745
746         PR middle-end/30700
747         * dwarf2out.c (reference_to_unused): Ask cgraph for functions
748         availablility; add more sanity checking; ask varpool only about
749         VAR_DECL.
750
751 2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>
752
753         * Backport from mainline:
754         2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>
755
756         * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
757         on "0".
758         (sse_vmmulv4sf3): Likewise.
759         (sse2_vmaddv2df3): Likewise.
760         (sse2_vmmulv2df3): Likewise.
761
762 2007-04-16  Matthias Klose  <doko@debian.org>
763
764         * config/alpha/linux.h (CPP_SPEC): Define.
765         * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
766
767 2007-04-16  Anatoly Sokolov <aesok@post.ru>
768
769         * config/avr/avr.c (avr_arch_types): Rearranging  array.
770         (enum avr_arch): Add.
771         (avr_mcu_types): Use avr_arch enumeration constants instead of 
772         numbers.
773         * config/avr/avr.h (LINK_SPEC): Simplify.
774
775 2007-04-16  Jan Hubicka  <jh@suse.cz>
776
777         PR target/27869
778         * config/i386/sse.md
779         (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
780         (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
781         (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
782         (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
783
784 2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>
785
786         * Backport from mainline:
787         2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>
788
789         PR target/31582
790         * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
791         copy of source, pass it to ix86_expand_vector_set and return
792         it as target.
793
794 2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
795
796         PR c/31520
797         * c-decl.c (finish_decl): Grab the type of the decl after the call
798         to store_init_value.
799
800 2007-04-14  Jakub Jelinek  <jakub@redhat.com>
801
802         PR c++/25874
803         * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
804         post dominators and cleanup cfg before returning.
805
806 2007-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
807
808         * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
809         null before emitting a .nsubspa directive.
810
811 2007-04-08  Anatoly Sokolov <aesok@post.ru>
812
813         PR target/29932
814         * config/avr/predicates.md (io_address_operand): Delete predicate.
815         (low_io_address_operand): Don't use 'mode' argument.
816         (higth_io_address_operand): Rename ...
817         (high_io_address_operand): ... to this. Don't use 'mode' argument.
818         * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
819         for above change.
820
821 2007-04-07  Anatoly Sokolov <aesok@post.ru>
822
823         PR target/30289
824         * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as 
825         earlyclobber.
826
827 2007-04-05  Anatoly Sokolov <aesok@post.ru>
828
829         PR target/25448
830         * config/avr/avr.c (avr_handle_fndecl_attribute): Use the 
831         DECL_ASSEMBLER_NAME, not the DECL_NAME.
832
833 2007-04-04  Richard Henderson  <rth@redhat.com>
834
835         PR target/31361
836         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove
837         v8hi_ftype_v8hi_v2di, v4si_ftype_v4si_v2di.  Use like-types for
838         the variable shift builtins.
839         (ix86_expand_builtin): Properly expand the variable shift builtins.
840         * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
841         operand 2 be TImode.
842         * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
843         _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
844         _mm_srli_epi32, _mm_srli_epi64): Turn into macros.
845         (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
846         (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
847         _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
848         two-vector shift builtins.
849
850 2007-04-04  Chen liqin  <liqin@sunnorth.com.cn>
851
852         * config/score/crti.asm: Change _bss_start to __bss_start.
853         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
854         (OUTGOING_REG_PARM_STACK_SPACE) update.
855         * config/score/score.opt: add options to make backend support
856         score5, score5u, score7 and score7d.
857         * config/score/score.md: Likewise.
858         * config/score/misc.md: Likewise.
859         * config/score/mac.md: Likewise.
860         * doc/invoke.texi: Likewise.
861         * doc/md.texi: update constraints define.
862
863 2007-04-03  Stuart Hastings  <stuart@apple.com>
864
865         PR 31281
866         * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile
867         from rethrow decl.
868         * cse.c (record_jump_equiv): Bail out on CCmode comparisons.
869
870 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
871
872         PR middle-end/30704
873         * fold-const.c (native_encode_real): Encode real.c provided longs
874         as a series of 32-bit native integers.
875         (native_interpret_real): Interpret buffer as a series of 32-bit
876         native integers.
877
878 2007-04-02  Eric Christopher  <echristo@apple.com>
879
880         * doc/invoke.texi (i386 and x86-64 Options): Document -m64
881         limitations on darwin.
882
883 2007-04-02  Anatoly Sokolov <aesok@post.ru>
884
885         PR target/31137
886         * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
887
888 2007-04-02  H.J. Lu  <hongjiu.lu@intel.com>
889
890         * Backport from mainline:
891         2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
892
893         PR target/31380
894         * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
895
896 2007-03-30  Anatoly Sokolov <aesok@post.ru>
897
898         * config/avr/avr.c (avr_override_options): Clear
899         'flag_delete_null_pointer_checks'.
900
901 2007-03-29  Michael Matz  <matz@suse.de>
902
903         * builtins.c (expand_builtin_sync_operation,
904         expand_builtin_compare_and_swap,
905         expand_builtin_lock_test_and_set): Care for extending CONST_INTs
906         correctly.
907
908         * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
909         sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
910         for operand 3.
911
912 2007-03-28  Mike Stump  <mrs@apple.com>
913
914         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
915         * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
916         * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
917
918 2007-03-27  Anatoly Sokolov <aesok@post.ru>
919
920         * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
921         architecture.
922
923 2007-03-26  Ian Lance Taylor  <iant@google.com>
924
925         PR tree-optimization/31345
926         * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
927         [+INF, +INF(OVF)] into VARYING.
928
929 2007-03-23  Martin Michlmayr  <tbm@cyrius.com>
930
931         * doc/invoke.texi (-fforce-mem): Update documentation to reflect
932         that this option will be removed in 4.3 rather than 4.2.
933         * opts.c (common_handle_option): Likewise.
934
935 2007-03-21  Mike Stump  <mrs@apple.com>
936
937         * c.opt: Fixup for Objective-C/C++.
938
939 2007-03-21  Richard Henderson  <rth@redhat.com>
940
941         PR target/31245
942         * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
943         * config/i386/mmintrin.h (__m64): Likewise.
944         * config/i386/xmmintrin.h (__m128): Likewise.
945
946 2007-03-20  Jakub Jelinek  <jakub@redhat.com>
947
948         PR c/30762
949         * c-typeck.c (convert_for_assignment): Call comptypes for
950         RECORD_TYPE or UNION_TYPE.
951
952         PR inline-asm/30505
953         * reload1.c (reload): Do invalid ASM checking after
954         cleanup_subreg_operands.
955
956 2007-03-19  Jeff Law  <law@redhat.com>
957
958         * tree-cfg.c (find_taken_edge): Tighten conditions for
959         optimizing computed gotos.
960
961 2007-03-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
962
963         * pa.c (attr_length_call): Partially revert change of 2007-03-09.
964         (output_call): Likewise.
965
966 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
967
968         PR debug/29906
969         * dwarf2out.c (force_type_die): Adjust comment.
970         (dwarf2out_imported_module_or_decl): Handle base AT_import types.
971
972 2007-03-15  Seongbae Park <seongbae.park@gmail.com>
973
974         PR tree-optimization/30590
975         * tree-nrv.c (tree_nrv): Check for the partial update
976         of the return value.
977
978 2007-03-14  Ian Lance Taylor  <iant@google.com>
979
980         * tree-vrp.c (value_inside_range): Ignore fold warnings.
981
982 2007-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
983
984         PR target/31123
985         * pa.md (vdepi_ior): Don't allow zero length deposit.  Likewise for
986         two unamed patterns.
987
988 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
989
990         * doc/extend.texi: Edit "gnu_inline" documentation.
991         * doc/invoke.texi: Edit "-fgnu89-inline" documentation.
992
993 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
994
995         * doc/extend.texi: Fix cpp.info cross-reference.
996         * doc/invoke.texi: Fix cpp.info cross-reference.
997         * doc/passes.texi: Fix gcc.info cross-reference.
998
999 2007-03-12  Daniel Berlin  <dberlin@dberlin.org>
1000
1001         Fix PR tree-optimization/28544
1002         * tree-ssa-operands.c (add_virtual_operand):
1003         Move assert triggering on aliasing violations into
1004         debugging define
1005
1006 2007-03-12  Ian Lance Taylor  <iant@google.com>
1007
1008         * c.opt (fgnu89-inline): New option.
1009         * c-opts.c (c_common_post_options): Warn about -fno-gnu89-inline.
1010         * c-common.c (c_common_attributes): Add gnu_inline attribyte.
1011         (handle_gnu_inline_attribute): New static function.
1012         * c-decl.c (start_function): Warn if we see a non-static inline
1013         function in C99 mode.
1014         * c-cppbuiltin.c (c_cpp_builtins): Define __GNUC_GNU_INLINE__.
1015         * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
1016         (C Dialect Options): Document -fgnu89-inline.
1017         * doc/extend.texi (Function Attributes): Document gnu_inline.
1018         (Inline): Mention that C99 inline will be implemented in 4.3.
1019         Refer to ways to get the old handling.
1020         * doc/cpp.texi (Common Predefined Macros): Document
1021         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
1022
1023 2007-03-12  Richard Henderson  <rth@redhat.com>
1024
1025         * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
1026         (TARGET_SECTION_TYPE_FLAGS): New.
1027
1028 2007-03-12  Richard Henderson  <rth@redhat.com>
1029
1030         * config/darwin.c (machopic_reloc_rw_mask): New.
1031         (machopic_select_section): Use decl_readonly_section.
1032         * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
1033         * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
1034
1035 2007-02-14  Richard Guenther  <rguenther@suse.de>
1036
1037         Backport from mainline:
1038         * flags.h (issue_strict_overflow_warning): Convert to a macro.
1039
1040 2007-03-11  Ian Lance Taylor  <iant@google.com>
1041
1042         Backport -fstrict-overflow/-Wstrict-overflow from mainline:
1043         2007-03-11  Ian Lance Taylor  <iant@google.com>
1044
1045         * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
1046         the *_DIV_EXPR codes correctly with overflow infinities.
1047
1048         2007-03-09  Ian Lance Taylor  <iant@google.com>
1049
1050         * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
1051         argument) like -Wstrict-overflow=2.
1052         * doc/invoke.texi (Warning Options): Update documentation.
1053
1054         2007-03-08  Ian Lance Taylor  <iant@google.com>
1055
1056         * tree-vrp.c: Include "toplev.h" and "intl.h".
1057         (usable_range_p): New static function.
1058         (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
1059         overflowed values, juts set *strict_overflow_p.
1060         (compare_values): Only return -2 if one of the operands is not a
1061         constant.
1062         (compare_ranges): Call usable_range_p.
1063         (compare_range_with_value): Likewise.
1064         (vrp_evaluate_conditional_warnv): Rename from
1065         vrp_evaluate_conditional.  Make static.  Change all callers.
1066         (vrp_evaluate_conditional): New function.
1067         (simplify_div_or_mod_using_ranges): Issue warning about reliance
1068         on signed overflow.
1069         (simplify_abs_using_ranges): Likewise.
1070         (simplify_stmt_for_jump_threading): Add within_stmt parameter.
1071         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
1072         within_stmt parameter.
1073         * tree-ssa-propagate.c (fold_predicate_in): Update call to
1074         vrp_evaluate_conditional.
1075         * tree-ssa-threadedge.c
1076         (record_temporary_equivalences_from_stmts_at_dest): Change
1077         simplify parameter to take a second tree parameter.
1078         (simplify_control_stmt_condition): Likewise.
1079         (thread_across_edge): Likewise.
1080         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
1081         (thread_across_edge): Likewise.
1082         * Makefile.in (tree-vrp.o): Depend upon toplev.h and intl.h.
1083
1084         2007-03-05  Ian Lance Taylor  <iant@google.com>
1085
1086         * tree-vrp.c (extract_range_from_assert): Don't try to handle a
1087         half-range if the other side is an overflow infinity.
1088
1089         2007-03-02  Ian Lance Taylor  <iant@google.com>
1090
1091         Used signed infinities in VRP.
1092         * tree-vrp.c (uses_overflow_infinity): New static function.
1093         (supports_overflow_infinity): New static function.
1094         (make_overflow_infinity): New static function.
1095         (negative_overflow_infinity): New static function.
1096         (positive_overflow_infinity): New static function.
1097         (is_negative_overflow_infinity): New static function.
1098         (is_positive_overflow_infinity): New static function.
1099         (is_overflow_infinity): New static function.
1100         (overflow_infinity_range_p): New static function.
1101         (compare_values_warnv): New function split out of compare_values.
1102         (compare_value): Call it.
1103         (set_value_range_to_nonnegative): Add overflow_infinity
1104         parameter.  Change caller.
1105         (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
1106         Change callers.
1107         (vrp_expr_computes_nonzero): Likewise.
1108         (compare_ranges, compare_range_with_value): Likewise.
1109         (compare_name_with_value, compare_names): Likewise.
1110         (vrp_evaluate_conditional): Likewise.
1111         (set_value_range): Handle infinity
1112         (vrp_operand_equal_p, operand_less_p): Likewise.
1113         (extract_range_from_assert): Likewise.
1114         (vrp_int_const_binop): Likewise.
1115         (extract_range_from_binary_expr): Likewise.
1116         (extract_range_from_unary_expr): Likewise.
1117         (extract_range_from_comparison): Likewise.
1118         (extract_range_from_expr): Likewise.
1119         (dump_value_range): Likewise.
1120         (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
1121         (test_for_singularity): Likewise.
1122         (vrp_int_const_binop): Remove inline qualifier.
1123         (adjust_range_with_scev): Add comment.
1124         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
1125
1126         2007-02-13  Ian Lance Taylor  <iant@google.com>
1127
1128         * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
1129         * flags.h (warn_strict_overflow): Declare.
1130         (enum warn_strict_overflow_code): Define.
1131         (issue_strict_overflow_warning): New static inline function.
1132         * opts.c (warn_strict_overflow): New variable.
1133         (common_handle_option): Handle OPT_Wstrict_overflow and
1134         OPT_Wstrict_overflow_.
1135         * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
1136         OPT_Wall.
1137         * fold-const.c: Include intl.h.
1138         (fold_deferring_overflow_warnings): New static variable.
1139         (fold_deferred_overflow_warning): New static variable.
1140         (fold_deferred_overflow_code): New static variable.
1141         (fold_defer_overflow_warnings): New function.
1142         (fold_undefer_overflow_warnings): New function.
1143         (fold_undefer_and_ignore_overflow_warnings): New function.
1144         (fold_deferring_overflow_warnings_p): New function.
1145         (fold_overflow_warning): New static function.
1146         (make_range): Add strict_overflow_p parameter.  Change all
1147         callers.
1148         (extract_muldiv, extract_muldiv_1): Likewise.
1149         (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
1150         tree_expr_nonnegative_p.
1151         (fold_negate_expr): Call fold_overflow_warning.
1152         (fold_range_test): Likewise.
1153         (fold_comparison): Likewise.
1154         (fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
1155         instead of tree_expr_nonnegative_p.
1156         (tree_expr_nonnegative_warnv_p): Rename from
1157         tree_expr_nonnegative_p, add strict_overflow_p parameter.
1158         (tree_expr_nonnegative_p): New function.
1159         (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
1160         strict_overflow_p parameter.
1161         (tree_expr_nonzero_p): New function.
1162         * passes.c (verify_interpass_invariants): New static function.
1163         (execute_one_pass): Call it.
1164         * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
1165         warnings.
1166         (number_of_iterations_exit, loop_niter_by_eval): Likewise.
1167         (estimate_numbers_of_iterations): Likewise.
1168         (scev_probably_wraps_p): Likewise.
1169         * tree-ssa-ccp.c: Include "toplev.h".
1170         (evaluate_stmt): Defer fold overflow warnings until we know we are
1171         going to optimize.
1172         (struct fold_stmt_r_data): Add stmt field.
1173         (fold_stmt_r): Defer fold overflow warnings until we know we
1174         optimized.
1175         (fold_stmt): Initialize stmt field of fold_stmt_r_data.
1176         (fold_stmt_inplace): Likewise.
1177         * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
1178         (cleanup_control_expr_graph): Defer fold overflow warnings until
1179         we know we are going to optimize.
1180         * tree-cfg.c (fold_cond_expr_cond): Likewise.
1181         * tree-ssa-threadedge.c (simplify_control_stmt_condition):
1182         Likewise.
1183         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
1184         tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
1185         * tree-ssa-loop-manip.c (create_iv): Likewise.
1186         * c-typeck.c (build_conditional_expr): Likewise.
1187         (build_binary_op): Likewise.
1188         * tree-vrp.c (vrp_expr_computes_nonzero): Call
1189         tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
1190         (extract_range_from_unary_expr): Likewise.
1191         * simplify-rtx.c (simplify_const_relational_operation): Warn when
1192         assuming that signed overflow does not occur.
1193         * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
1194         * tree.h (tree_expr_nonnegative_warnv_p): Declare.
1195         (fold_defer_overflow_warnings): Declare.
1196         (fold_undefer_overflow_warnings): Declare.
1197         (fold_undefer_and_ignore_overflow_warnings): Declare.
1198         (fold_deferring_overflow_warnings_p): Declare.
1199         (tree_expr_nonzero_warnv_p): Declare.
1200         * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
1201         of warning options.
1202         (Warning Options): Document -Wstrict-overflow.
1203         * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
1204         (tree-ssa-ccp.o): Likewise.
1205         (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
1206         (fold-const.o): Depend on intl.h.
1207
1208         2007-01-27  Ian Lance Taylor  <iant@google.com>
1209
1210         * common.opt: Add fstrict-overflow.
1211         * opts.c (decode_options): Set flag_strict_overflow if -O2.
1212         * flags.h (TYPE_OVERFLOW_WRAPS): Define.
1213         (TYPE_OVERFLOW_UNDEFINED): Define.
1214         (TYPE_OVERFLOW_TRAPS): Define.  This replaces TYPE_TRAP_SIGNED.
1215         Replace all uses.
1216         * tree.h (TYPE_TRAP_SIGNED): Don't define.
1217         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
1218         (fold_negate_expr): Likewise.
1219         (make_range): Likewise.
1220         (extract_muldiv_1): Likewise.
1221         (fold_comparison): Likewise.
1222         (fold_binary): Likewise.
1223         (tree_expr_nonnegative_p): Likewise.
1224         (tree_expr_nonzero_p): Likewise.
1225         * tree-vrp.c (compare_values): Likewise.
1226         (extract_range_from_binary_expr): Likewise.
1227         (extract_range_from_unary_expr): Likewise.
1228         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
1229         Likewise.
1230         (nowrap_type_p): Likewise.
1231         * tree-scalar-evolution.c (simple_iv): Likewise.
1232         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
1233         (build_range_check): Likewise.
1234         (extract_muldiv_1): Likewise.
1235         (fold_comparison): Likewise.
1236         * tree-vrp.c (vrp_int_const_binop): Likewise.
1237         (extract_range_from_unary_expr): Likewise.
1238         * convert.c (convert_to_integer): Likewise.
1239         * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
1240         (fold_comparison): Likewise.
1241         (fold_binary): Likewise.
1242         * optabs.c (optab_for_tree_code): Likewise.
1243         * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
1244         * simplify-rtx.c (simplify_const_relational_operation): Check
1245         flag_strict_overflow and flag_trapv.
1246         (simplify_const_relational_operation): Likewise.
1247         * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
1248         (Optimize Options): Add -fstrict-overflow to -O2 list.  Document
1249         -fstrict-overflow.
1250
1251         2007-01-17  Ian Lance Taylor  <iant@google.com>
1252
1253         * vec.h (VEC_reserve_exact): Define.
1254         (vec_gc_p_reserve_exact): Declare.
1255         (vec_gc_o_reserve_exact): Declare.
1256         (vec_heap_p_reserve_exact): Declare.
1257         (vec_heap_o_reserve_exact): Declare.
1258         (VEC_OP (T,A,reserve_exact)): New static inline function, three
1259         versions.
1260         (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
1261         negative parameter.
1262         (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
1263         (VEC_OP (T,A,copy)) [all versions]: Likewise.
1264         (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
1265         * vec.c (calculate_allocation): Add exact parameter.  Change all
1266         callers.
1267         (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
1268         (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
1269         (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
1270         (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
1271         (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
1272         (vec_heap_p_reserve_exact): New function.
1273         (vec_heap_o_reserve_exact): New function.
1274
1275 2007-03-11  Roger Sayle  <roger@eyesopen.com>
1276             Andrew Pinski  <andrew_pinski@playstation.sony.com>
1277
1278         PR middle-end/30433
1279         * fold-const.c (fold_relational_const): Add back compile-time
1280         evaluation of complex constant equality/inequality comparisons.
1281
1282 2007-03-11  Ira Rosen  <irar@il.ibm.com>
1283
1284         PR tree-optimization/29925
1285         * tree-data-ref.c (analyze_offset): Add a return value (bool) to
1286         indicate success/failure of the analysis. Add negation to subtrahend
1287         in case of subtraction. Fail if both operands contain constants.
1288         (create_data_ref): Fail if analyze_offset fails.
1289
1290 2007-03-10  Mark Mitchell  <mark@codesourcery.com>
1291
1292         PR c++/30924
1293         * tree.c (walk_type_fields): Recurse into the element type of
1294         ARRAY_TYPEs if there is a pointer set.
1295
1296 2007-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1297
1298         * pa.c (attr_length_call): Revise condition for long pc-relative branch.
1299         (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
1300         calls on the SOM target.  Don't use "LONG_PIC_PCREL" call sequence on
1301         SOM target.
1302
1303 2007-03-09  Richard Henderson  <rth@redhat.com>
1304
1305         PR target/26090
1306         * target.h (targetm.asm.out.reloc_rw_mask): New.
1307         * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
1308         (TARGET_ASM_OUT): Use it.
1309         * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
1310         * varasm.c (categorize_decl_for_section): Remove shlib argument;
1311         use the new reloc_rw_mask target hook instead.
1312         (default_section_type_flags_1): Merge into...
1313         (default_section_type_flags): ... here.
1314         (decl_readonly_section_1): Merge into...
1315         (decl_readonly_section): ... here.
1316         (default_elf_select_section_1): Merge into...
1317         (default_elf_select_section): ... here.
1318         (default_unique_section_1): Merge into...
1319         (default_unique_section): ... here.
1320         (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
1321         (default_select_rtx_section): Use it.
1322         (default_elf_select_rtx_section): Likewise.
1323         * output.h: Update to match.
1324         * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
1325         * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
1326         (TARGET_ASM_RELOC_RW_MASK): New.
1327         * config/i386/i386.c (x86_64_elf_select_section): Adjust call
1328         to categorize_decl_for_section.
1329         (x86_64_elf_unique_section): Likewise.
1330         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
1331         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
1332         (TARGET_ASM_RELOC_RW_MASK): New.
1333         * config/ia64/ia64.c (ia64_rwreloc_select_section,
1334         ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
1335         (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
1336         (TARGET_RWRELOC): Remove.
1337         (ia64_section_type_flags): Adjust call to default_section_type_flags.
1338         * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
1339         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
1340         (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
1341         (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
1342         (rs6000_xcoff_select_section): Use decl_readonly_section.
1343         (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
1344         * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
1345         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
1346         (TARGET_SECTION_TYPE_FLAGS): Remove.
1347         * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
1348
1349 2007-03-08  Geoffrey Keating  <geoffk@apple.com>
1350
1351         PR 31013
1352         * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
1353         is declared.
1354         * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
1355         passed, use shared libgcc.
1356
1357 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
1358
1359         PR rtl-optimization/30643
1360         * cse.c (cse_insn): Recompute dest_hash after insert_regs for
1361         dest_addr_elt.
1362
1363 2007-03-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1364
1365         PR tree-opt/30045
1366         * tree-vrp.c (nonnull_arg_p): Treat the static decl as always
1367         non null.
1368
1369 2007-03-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1370
1371         PR middle-end/30729
1372         * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
1373         effects unknown to this function, return early.
1374
1375 2007-03-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1376
1377         PR tree-opt/28624
1378         * tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary
1379         bitmap for EXECUTE_IF_SET_IN_BITMAP.
1380
1381 2006-03-09  Mark Shinwell  <shinwell@codesourcery.com>
1382             Andrew MacLeod  <amacleod@redhat.com>
1383         PR tree-optimization/29877
1384         * tree-outof-ssa.c (check_replaceable): Don't allow TER to replace
1385         an expression if the RHS is a register variable.
1386
1387 2007-03-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1388
1389         PR C/31072
1390         * c-decl.c (merge_decls): Don't call make_var_volatile.
1391         * varasm.c (make_var_volatile): Remove.
1392         * output.h (make_var_volatile): Remove.
1393
1394 2007-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1395
1396         * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
1397         llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
1398         ATTR_CONST_NOTHROW_LIST.
1399
1400         * fold-const.c (tree_expr_nonnegative_p): Handle FIX_TRUNC_EXPR.
1401
1402 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
1403
1404         PR target/30406
1405         * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
1406         instead of precision.
1407
1408 2007-03-08  Volker Reichelt  <reichelt@netcologne.de>
1409
1410         PR c++/30852
1411         * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
1412
1413 2007-03-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1414
1415         * c.opt (Waddress): New.
1416         * common.opt (Walways-true): Delete.
1417         (Wstring-literal-comparison): Delete.
1418         * doc/invoke.texi (Warning Options): Delete -Walways-true and
1419         -Wstring-literal-comparison. Add -Waddress.
1420         (Waddress): New.
1421         (Walways-true): Delete.
1422         (Wstring-literal-comparison): Delete.
1423         * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
1424         consistently instead of -Walways-true in example.
1425         * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
1426         * c-typeck.c (parser_build_binary_op): Replace
1427         -Wstring-literal-comparison and -Walways-true with -Waddress.
1428         (build_binary_op): Likewise.
1429         * c-common.c (c_common_truthvalue_conversion): Likewise.
1430
1431 2007-03-07  Richard Henderson  <rth@redhat.com>
1432
1433         PR target/30848
1434         * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
1435         silently fix up the stack in the case of a missing register.
1436
1437 2007-03-06  David Daney  <ddaney@avtrex.com>
1438
1439         * doc/install.texi (mips-*-*): Change recommended binutils
1440         version.
1441
1442 2007-03-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1443
1444         * doc/invoke.texi (Warning Options): Replace -Werror- with
1445         -Werror=.
1446         * opts.c (common_handle_option): Likewise.
1447
1448 2007-03-06  Anatoly Sokolov <aesok@post.ru>
1449
1450         * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
1451         ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
1452         devices.
1453         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1454         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1455
1456 2007-03-06  Roger Sayle  <roger@eyesopen.com>
1457
1458         PR middle-end/30744
1459         * fold-const.c (fold_binary) <EQ_EXPR>: Enforce type consistency
1460         when transforming ~X op C to X op' ~C.
1461
1462 2007-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1463
1464         * pa.md: In unamed move patterns, disparge copies between general
1465         and floating point registers using '?' modifier.  Don't include 'f'
1466         constraint for register preferences in DImode, SImode, HImode and
1467         QImode patterns.  Likewise for 'r' in DFmode and SFmode patterns.
1468         Remove constraints for copies between general and floating registers
1469         in soft-float DFmode pattern.
1470         (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
1471         floating register.
1472         (movsf): Likewise.
1473
1474 2007-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1475
1476         * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
1477         conversion.
1478
1479 2007-03-05  Steve Ellcey  <sje@cup.hp.com>
1480
1481         Backported from mainline
1482         PR debug/29614
1483         * cgraph.h (cgraph_varpool_last_needed_node): Make global.
1484         * cgraph.c (cgraph_varpool_last_needed_node): Ditto.
1485         * cgraphunit.c (cgraph_varpool_assemble_pending_decls):
1486         Set cgraph_varpool_last_needed_node to NULL.
1487
1488 2007/03/05  David Taylor  <dtaylor@emc.com>
1489
1490         PR 31050
1491         * gcc.c: Correct copyright date in --version output.
1492
1493 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
1494
1495         * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
1496         -ffixed-line-length-* options.
1497
1498 2007-03-05  David Edelsohn  <edelsohn@gnu.ogr>
1499
1500         * config/rs6000/t-ppccomm: Always build libgcc2 for GNU/Linux
1501         with -mlong-double-128, except SPE.
1502
1503         * config/rs6000/darwin-ldouble.c: Only build new functions for
1504         __LONG_DOUBLE_128__.
1505
1506         Backport from mainline:
1507         2007-01-16  David Edelsohn  <edelsohn@gnu.org>
1508
1509         * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
1510         (strong_alias): Define.
1511         (__gcc_qmul): Provide non-FMA for soft-float.
1512         (__gcc_qdiv): Same.
1513         (__gcc_qneg): New.
1514         (__gcc_qeq): New.
1515         (__gcc_qle): New.
1516         (__gcc_qge): New.
1517         (__gcc_qunord): New.
1518         (__gcc_stoq): New.
1519         (__gcc_dtoq): New.
1520         (__gcc_qtos): New.
1521         (__gcc_qtod): New.
1522         (__gcc_qtoi): New.
1523         (__gcc_qtou): New.
1524         (__gcc_itoq): New.
1525         (__gcc_utoq): New.
1526         (fmsub): New.
1527         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
1528         soft-float functions.
1529         * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
1530         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
1531         about long double soft float.
1532
1533 2007-03-05  Richard Guenther  <rguenther@suse.de>
1534
1535         Backport from mainline:
1536         2007-02-28  Richard Guenther  <rguenther@suse.de>
1537
1538         PR middle-end/30364
1539         * fold-const.c (fold_binary): Do not associate expressions
1540         with more than one variable for integer types that do not wrap.
1541
1542 2007-03-04  Eric Botcazou  <ebotcazou@adacore.com>
1543
1544         PR ada/26797
1545         * doc/invoke.texi (-O2): Document that Tree-VRP is not turned on
1546         for the Ada compiler.
1547
1548 2007-03-02  Zdenek Dvorak <dvorakz@suse.cz>
1549
1550         PR tree-optimization/29902
1551         * tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if
1552         any involved ssa name appears in abnormal phi node.
1553
1554 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
1555
1556         * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
1557         (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
1558         if the lhs has side-effects.
1559         <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
1560
1561 2007-03-02  Paul Brook  <paul@codesourcery.com>
1562
1563         * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
1564         modes to LDRD for DImode.
1565         (output_move_double): Fixup out of range ldrd/strd.
1566         (vfp_secondary_reload_class): Rename...
1567         (coproc_secondary_reload_class): ... to this.  Add wb argument.
1568         * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
1569         coproc_secondary_reload_class for CLASS_IWMMXT.
1570         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
1571         * arm-protos.h (coproc_secondary_reload_class): Update prototype.
1572
1573 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
1574
1575         * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
1576         entry by means of emit_insn_at_entry.
1577
1578 2007-03-01  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1579
1580         * doc/invoke.texi (Wextra): Delete outdated paragraph.
1581
1582 2007-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1583
1584         * pa/predicates.md (move_src_operand): Allow zero for mode.
1585         * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
1586         move pattern.
1587
1588 2007-02-27  Mike Stump  <mrs@apple.com>
1589
1590         * config/darwin-crt3.c: Avoid compilation when compiling for a
1591         kext multilib.
1592
1593 2007-02-27  Andreas Schwab  <schwab@suse.de>
1594
1595         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
1596
1597 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
1598
1599         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
1600
1601 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
1602
1603         * doc/include/gcc-common.texi (versionsubtitle): New macro.
1604         * doc/cpp.texi: Standardize title page.
1605         * doc/cppinternals.texi: Likewise.
1606         * doc/gcc.texi: Standardize title page, remove version number
1607         from copyright page.
1608         * doc/gccint.texi: Likewise.
1609         * doc/install.texi: Standardize title page, add table of
1610         contents.
1611
1612 2007-02-24  Mike Stump  <mrs@apple.com>
1613
1614         * config/i386/i386.c (output_pic_addr_const): Stubify optimized
1615         symbols.
1616
1617 2007-02-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1618
1619         * pa.md (muldi3): Force subregs to registers in 64-bit expander.
1620
1621 2007-02-23  Mike Stump  <mrs@apple.com>
1622
1623         * tlink.c (scan_linker_output): Parse linker messages from
1624         darwin9's linker better.
1625
1626 2007-02-21 Ira Rosen  <irar@il.ibm.com>
1627
1628         * tree-ssa-alias.c: Include pointer-set.h
1629         * Makefile.in (tree-ssa-alias.o): Depend on pointer-set.h.
1630
1631 2007-02-21  Jakub Jelinek  <jakub@redhat.com>
1632
1633         Backported from mainline
1634         2006-12-20  Andrew Pinski  <pinskia@gmail.com>
1635         PR middle-end/30143
1636         * omp-low.c (init_tmp_var): New function.
1637         (save_tmp_var): New function.
1638         (lower_omp_1): Use them for VAR_DECL.
1639
1640 2007-02-20  Alan Modra  <amodra@bigpond.net.au>
1641
1642         PR target/29943
1643         * varasm.c (use_blocks_for_decl_p): Return false for decls with
1644         alias attribute.
1645
1646 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
1647
1648         * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
1649         due to calls to functions taking pointers as parameters.
1650
1651 2007-02-19  Richard Henderson  <rth@redhat.com>
1652
1653         PR debug/29558
1654         * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
1655         in memory.
1656
1657 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
1658
1659         * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
1660
1661 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
1662
1663         * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
1664         for arg pointer based indexed addressing.
1665
1666 2007-02-18 Ira Rosen  <irar@il.ibm.com>
1667
1668         * tree-ssa-alias.c (may_aliases_intersect): New function.
1669         * tree-data-ref.c (ptr_ptr_may_alias_p): Call may_aliases_intersect
1670         for different tags.
1671         * tree-flow.h (may_aliases_intersect): Add function declaration.
1672
1673 2007-02-17  Alexandre Oliva  <aoliva@redhat.com>
1674
1675         PR tree-optimization/30823
1676         * tree-sra.c (sra_build_assignment): Drop type-checking assert.
1677
1678 2007-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1679
1680         PR other/27843
1681         * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
1682         nested double- and backquotes.
1683
1684 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
1685
1686         * tree-sra.c (instantiate_missing_elements): Canonicalize
1687         bit-field types.
1688         (sra_build_assignment): New.
1689         (generate_copy_inout, generate_element_copy,
1690         generate_element_zero, generate_one_element_init): Use it.
1691
1692 2007-02-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1693
1694         PR rtl-optimization/29599
1695         Backport from mainline.
1696         * reload1.c (eliminate_regs_in_insn): Take the destination
1697         mode into account when computing the offset.
1698
1699 2007-02-13  Joseph S. Myers  <joseph@codesourcery.com>
1700
1701         * doc/invoke.texi, doc/standards.texi: Refer to
1702         gcc-4.2/c99status.html.
1703
1704 2007-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1705
1706         PR target/30634
1707         * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
1708         CONST_DOUBLE and operand 0 is a hard register.
1709         (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
1710         memory.  Fail if operand 1 is a non-zero CONST_INT and operand 0
1711         is a hard floating-point register.
1712
1713 2007-02-06  Mark Mitchell  <mark@codesourcery.com>
1714
1715         PR target/29487
1716         * tree.h (DECL_REPLACEABLE_P): New macro.
1717         * except.c (set_nothrow_function_flags): Likewise.
1718
1719 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
1720
1721         PR c++/30703
1722         * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
1723         of INDIRECT_REF <RESULT_DECL>.
1724
1725 2007-02-06  Rask Ingemann Lamberisen  <rask@sygehus.dk>
1726
1727         PR 30370
1728         * config/rs6000/t-ppccomm: Correct Makefile typo.
1729
1730 2007-02-06  Roger Sayle  <roger@eyesopen.com>
1731
1732         PR libgomp/28296
1733         Backport from mainline.
1734         * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
1735         it into -D_REENTRANT.
1736
1737 2007-02-05  Alexandre Oliva  <aoliva@redhat.com>
1738
1739         PR debug/30189
1740         * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
1741         even if cv-qualification is the same.
1742
1743 2007-02-05  Geoffrey Keating  <geoffk@apple.com>
1744
1745         * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
1746         __enable_execute_stack on completion.
1747
1748 2007-02-05  Bob Wilson  <bob.wilson@acm.org>
1749
1750         * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
1751
1752 2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1753
1754         PR target/29682
1755         * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory loads to
1756         general or fp registers.  Add comments.
1757         * config/ia64/ia64.md (reg_pred_prefix): Add comment.
1758
1759 2007-02-04  Richard Guenther  <rguenther@suse.de>
1760
1761         Backport from mainline:
1762         2007-01-30  Richard Guenther  <rguenther@suse.de>
1763
1764         PR middle-end/27657
1765         * dwarf2out.c (reference_to_unused): Query varpool if the
1766         variable was output.
1767
1768 2007-02-02  Mike Stump  <mrs@apple.com>
1769
1770         * config.gcc (*-*-darwin*): Backport darwin9.h bits.
1771         * config/darwin9.h: Add.
1772         * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
1773         (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
1774         generate a branch island.
1775
1776 2007-02-02  Hui-May Chang  <hm.chang@apple.com>
1777
1778         Revert for x86 darwin:
1779         2005-06-19  Uros Bizjak  <uros@kss-loka.si>
1780
1781         * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
1782         code before the following patch under TARGET_MACHO.
1783         (ix86_function_value_regno_p): Likewise.
1784
1785 2007-02-02  Simon Martin  <simartin@users.sourceforge.net>
1786
1787         PR c++/28266
1788         * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
1789         expanded only once even if an error occurs.
1790
1791 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
1792
1793         PR middle-end/30473
1794         * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
1795         sprintf (str, "%s").  Do not optimize sprintf (str, "nopercent", p++).
1796
1797 2007-02-01  Guy Martin  <gmsoft@gentoo.org>
1798
1799         * pa.md (tp_load): Correct mfctl instruction syntax.
1800
1801 2007-02-01  Geoffrey Keating  <geoffk@apple.com>
1802
1803         * config/rs6000/rs6000.c (rs6000_stack_info): Correct
1804         altivec_padding_size calculation on AIX.  Improve comment, add
1805         assert to verify that it's right.
1806
1807 2007-01-31  Anatoly Sokolov <aesok@post.ru>
1808
1809         PR target/19087
1810         * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
1811
1812 2007-01-30  Richard Guenther  <rguenther@suse.de>
1813
1814         PR middle-end/30313
1815         * passes.c (execute_one_pass): Reset in_gimple_form to not
1816         confuse non-unit-at-a-time mode.
1817
1818 2007-01-27  Anatoly Sokolov <aesok@post.ru>
1819
1820         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define __AVR_HAVE_MUL__.
1821
1822 2007-01-29  Mike Stump  <mrs@apple.com>
1823
1824         * doc/gccint.texi (Top): Rename Loop Representation to Loop
1825         Analysis and Representation to resolve case insensitive conflict.
1826         * doc/loop.texi (Loop Analysis and Representation): Likewise.
1827
1828 2007-01-29  Josh Conner  <jconner@apple.com>
1829
1830         PR middle-end/29683
1831         * calls.c (compute_argument_addresses): Set stack and stack_slot
1832         for partial args, too.
1833         (store_one_arg): Use locate.size.constant for the size when
1834         generating a save_area.
1835
1836 2007-01-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1837
1838         * doc/sourcebuild.texi: Add comma for clarity.
1839         * doc/extend.texi: Fix some typos.
1840         * doc/passes.texi: Likewise.
1841         * doc/cppinternals.texi: Likewise.
1842         * doc/c-tree.texi: Likewise.
1843         * doc/tree-ssa.texi: Likewise.
1844         * doc/install.texi: Likewise.
1845
1846 2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>
1847
1848         PR tree-optimization/29516
1849         * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
1850         most_expensive_mult_to_index, addr_to_parts,
1851         create_mem_ref, maybe_fold_tmr): Make the type of
1852         fields of TARGET_MEM_REF sizetype.
1853         (move_fixed_address_to_symbol, move_pointer_to_base,
1854         aff_combination_remove_elt): New functions.
1855         * tree.def (TARGET_MEM_REF): Add comment on types of
1856         the operands.
1857         * gcc.dg/tree-ssa/loop-20.c: New test.
1858
1859 2007-01-25  Geoffrey Keating  <geoffk@apple.com>
1860
1861         PR 25127
1862         * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
1863         save Altivec registers in an eh_return function.
1864         (compute_vrsave_mask): Likewise.
1865         (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
1866         for saving Altivec registers.
1867         (rs6000_emit_prologue): Don't allocate stack twice in
1868         eh_return function.  Correct expected value of altivec_save_offset
1869         when using save_world.  Describe save of R0 to stack when using
1870         save_world.  Describe stack pointer adjustment when using
1871         save_world.  Remove duplicated eh_return parameter register saving.
1872         Update sp_offset variable after save_world.
1873         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
1874         darwin-world.asm.
1875         (LIB2FUNCS_EXTRA): Add darwin-world.asm.
1876         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
1877         implies Altivec.
1878
1879 2007-01-24  Geoffrey Keating  <geoffk@apple.com>
1880
1881         * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
1882
1883 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
1884
1885         PR middle-end/27416
1886         * gimplify.c (omp_check_private): New function.
1887         (gimplify_scan_omp_clauses): Use it for
1888         firstprivate/lastprivate/reduction.
1889
1890         PR middle-end/30494
1891         * gimplify.c (omp_add_variable): Don't call omp_notice_variable
1892         on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
1893
1894         PR middle-end/30421
1895         * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
1896         If lower_lastprivate_clauses emits some statements, append them
1897         to dlist rather than body_p and to body_p append an initializer.
1898         (lower_omp_for): Adjust caller.
1899
1900 2007-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1901
1902         PR rtl-optimization/29329
1903         * combine.c (replaced_rhs_insn): Rename to i2mod.
1904         (replaced_rhs_value): Rename to i2mod_new_rhs.
1905         (i2mod_old_rhs): New global variable.
1906         (combine_instructions): Adjust for above change.  Save a copy of
1907         the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
1908         note are substituted in the second instruction.
1909         (distribute_notes) <REG_DEAD>: Adjust for above change.  Do not
1910         ditch the note if it pertains to the second eliminated register
1911         and this register is mentioned in i2mod_old_rhs.
1912
1913         Revert:
1914         2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1915
1916         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
1917         the insn to which the note was originally attached.
1918
1919 2007-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1920
1921         * pa.c (output_move_double): Change array size of xoperands to 4.
1922
1923 2007-01-17  Eric Christopher  <echristo@apple.com>
1924
1925         Backport from mainline:
1926         2006-12-18  Roger Sayle  <roger@eyesopen.com>
1927                     Eric Christopher  <echristo@apple.com>
1928
1929         PR target/29302
1930         * real.c (real_maxval): Correctly handle IBM extended double format.
1931
1932 2007-01-17  Tom Tromey  <tromey@redhat.com>
1933
1934         * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
1935         * doc/install.texi (Testing): Use sourceware.org.
1936         (Binaries): Likewise.
1937         (Specific): Likewise.
1938         * doc/contrib.texi (Contributors): Use sourceware.org.
1939
1940 2007-01-15  Joseph S. Myers  <joseph@codesourcery.com>
1941
1942         * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
1943         glibc CVS.
1944
1945 2007-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1946
1947         * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
1948         * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
1949         (ASM_OUTPUT_INTERNAL_LABEL): Define.
1950
1951 2007-01-10  Ralf Corsépius <ralf.corsepius@rtems.org>
1952
1953         * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
1954
1955 2007-01-09  Nicolas Pitre  <nico@cam.org>
1956
1957         PR target/30173
1958         * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
1959
1960 2007-01-08  Nick Clifton  <nickc@redhat.com>
1961
1962         * config/frv/predicates.md (reg_or_0_operand): Accept
1963         CONST_DOUBLEs.
1964
1965 2007-01-08  Ralf Corsépius <ralf.corsepius@rtems.org>
1966
1967         * config/bfin/rtems.h, config/bfin/t-rtems: New.
1968         * config.gcc: Add bfin*-rtems*.
1969
1970 2007-01-08  Chen liqin  <liqin@sunnorth.com.cn>
1971         * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
1972         * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
1973         const_simm15, const_pow2, const_npow2): Added.
1974         * config/score/misc.md (insv, extv, extzv, movmemsi,
1975         move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
1976         * config/score/score.c (score_address_cost, score_select_cc_mode):
1977         Added.
1978         Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
1979         Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
1980         Update score_print_operand.
1981         * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
1982         Adjust register allocate order and update some macro define.
1983         * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
1984         mdx_block_move_straight, mdx_block_move_loop_head,
1985         mdx_block_move_loop_body, mdx_block_move_loop_foot, mdx_block_move_loop,
1986         mdx_block_move): Added.
1987         (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
1988         mdp_limm): Updated and fix some bug and typo.
1989         * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
1990         (movsf, movdf, doloop_end): Added.
1991
1992 2007-01-05  Richard Guenther  <rguenther@suse.de>
1993
1994         PR middle-end/27826
1995         * tree.c (get_narrower): Do not construct COMPONENT_REFs
1996         with mismatched types.  Instead explicitly build a
1997         conversion NOP_EXPR.
1998
1999 2007-01-05  Jakub Jelinek  <jakub@redhat.com>
2000
2001         PR c/30360
2002         * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
2003         denom against 0.0.
2004
2005 2007-01-03  Jakub Jelinek  <jakub@redhat.com>
2006
2007         * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
2008         (struct _Unwind_Context): Rename args_size to flags, remove
2009         signal_frame field, add a new args_size field and version field.
2010         (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
2011         _Unwind_IsExtendedContext): New inline functions.
2012         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
2013         Assume by_value array is only present if _Unwind_IsExtendedContext.
2014         (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
2015         _Unwind_IsSignalFrame.
2016         (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
2017         (uw_update_context_1): Use _Unwind_SetSignalFrame.
2018         (uw_init_context_1): Initialize context->flags to
2019         EXTENDED_CONTEXT_BIT.
2020         * config/rs6000/linux-unwind.h (frob_update_context): Use
2021         _Unwind_SetSignalFrame.
2022
2023 2007-01-01  Mike Stump  <mrs@apple.com>
2024
2025         * configure.ac: Remove support for building with Apple's gcc-3.1.
2026
2027 2007-01-01  Andreas Schwab  <schwab@suse.de>
2028
2029         PR target/29166
2030         * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
2031         save of BR0 in extra_spill_size instead of spill_size.
2032         (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
2033         area.
2034         (ia64_expand_epilogue): Restore BR0 from its new location.