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