1 2007-08-31 Jakub Jelinek <jakub@redhat.com>
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.
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.
13 2007-08-27 Jason Merrill <jason@redhat.com>
16 * gimplify.c (gimplify_modify_expr): Discard the assignment of
17 zero-sized types after calling gimplify_modify_expr_rhs.
19 2007-08-24 Jakub Jelinek <jakub@redhat.com>
22 * dwarf2out.c (gen_decl_die): Don't call
23 gen_tagged_type_instantiation_die if decl doesn't have tagged type.
25 2007-08-24 Richard Guenther <rguenther@suse.de>
27 * expr.c (get_inner_reference): Remove unused variable.
29 2007-08-24 Richard Guenther <rguenther@suse.de>
31 * expr.c (get_inner_reference): Do computation of bitoffset
32 from offset in a way we can detect overflow reliably.
34 2007-08-22 Richard Guenther <rguenther@suse.de>
37 * tree.c (host_integerp): Treat sizetype as signed as it is
40 2007-08-20 Adam Nemet <anemet@caviumnetworks.com>
42 * config/mips/predicates.md (const_call_insn_operand): Invoke
43 SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
45 2007-08-17 Chen liqin <liqin@sunnorth.com.cn>
47 * config/score/score.md : Update pattern tablejump.
48 * config/score/score.c : Update score_initialize_trampoline
50 * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
51 (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
52 * doc/contrib.texi: Add my entry.
54 2007-08-02 Andreas Krebbel <krebbel1@de.ibm.com>
56 * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
58 2007-08-01 Andreas Krebbel <krebbel1@de.ibm.com>
60 * config/s390/s390.md (TF in GPR splitter): Change operand_subword
63 2007-07-30 Mark Mitchell <mark@codesourcery.com>
66 * DEV-PHASE: Mark as prerelease.
68 2007-07-25 Steve Ellcey <sje@cup.hp.com>
71 * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
73 2007-07-25 Dorit Nuzman <dorit@il.ibm.com>
74 Devang Patel <dpatel@apple.com>
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.
89 2007-07-24 Richard Guenther <rguenther@suse.de>
91 Backport from mainline:
92 2007-07-16 Richard Guenther <rguenther@suse.de>
93 Uros Bizjak <ubizjak@gmail.com>
95 * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
96 before forcing it to gimple operand.
98 2007-07-24 Richard Guenther <rguenther@suse.de>
100 PR tree-optimization/32723
101 Backport from mainline:
102 2007-03-09 Daniel Berlin <dberlin@dberlin.org>
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.
114 2007-07-23 Bernd Schmidt <bernd.schmidt@analog.com>
116 * reload1.c (choose_reload_regs): Set reload_spill_index for regs
117 chosen during find_reloads.
119 2007-07-19 Release Manager
121 * GCC 4.2.1 released.
123 2007-07-18 Paolo Bonzini <bonzini@gnu.org>
127 2007-07-09 Paolo Bonzini <bonzini@gnu.org>
130 * function.c (rest_of_match_asm_constraints): Pass PROP_REG_INFO.
132 2007-07-06 Paolo Bonzini <bonzini@gnu.org>
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.
143 2007-07-16 Paul Brook <paul@codesourcery.com>
147 * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
149 2007-07-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
152 * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
154 2007-07-09 Paolo Bonzini <bonzini@gnu.org>
157 * function.c (rest_of_match_asm_constraints): Pass PROP_REG_INFO.
159 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
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.
165 2007-07-07 Anatoly Sokolov <aesok@post.ru>
168 * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
170 (avr_attribute_table): Make "naked" attribute apply to function types
171 rather than to decls.
172 (avr_handle_fntype_attribute): New function.
174 2007-07-06 Paolo Bonzini <bonzini@gnu.org>
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.
185 2007-07-06 Uros Bizjak <ubizjak@gmail.com>
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
192 2007-07-04 Richard Guenther <rguenther@suse.de>
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.
198 2007-07-04 Uros Bizjak <ubizjak@gmail.com>
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
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.
218 2007-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
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.
226 2007-07-03 Richard Guenther <rguenther@suse.de>
228 Backport from mainline:
229 2006-12-11 Zdenek Dvorak <dvorakz@suse.cz>
231 PR rtl-optimization/30113
232 * loop-iv.c (implies_p): Require the mode of the operands to be
235 2007-07-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
238 * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
239 (__gthrw_pragma): Provide default definition.
241 * gthr-posix.c (__gthrw_pragma): Define.
243 2007-07-02 Jakub Jelinek <jakub@redhat.com>
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.
254 2007-06-30 Alexandre Oliva <aoliva@redhat.com>
256 * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
259 2007-06-28 Seongbae Park <seongbae.park@gmail.com>
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.
265 2007-06-28 Jakub Jelinek <jakub@redhat.com>
267 * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
268 decl is non-external for AIX ABI.
270 2007-06-28 David Edelsohn <edelsohn@gnu.org>
272 * config/rs6000/predicates.md (current_file_function_operand):
273 Ensure the symbol is non-external for AIX ABI.
275 2007-06-21 H.J. Lu <hongjiu.lu@intel.com>
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.
281 2007-06-21 Jakub Jelinek <jakub@redhat.com>
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
290 2007-06-21 Uros Bizjak <ubizjak@gmail.com>
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.
300 2007-06-20 Jakub Jelinek <jakub@redhat.com>
303 * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
307 * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
308 if ACCUMULATE_OUTGOING_ARGS.
310 2007-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
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
319 2007-06-19 Richard Guenther <rguenther@suse.de>
320 Michael Matz <matz@suse.de>
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
327 (push_fields_onto_fieldstack): Create fields for empty
330 2007-06-19 Jakub Jelinek <jakub@redhat.com>
332 PR tree-optimization/32353
333 * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
335 2007-06-17 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
341 2007-06-15 Diego Novillo <dnovillo@google.com>
344 * tree-ssa-operands.c (build_ssa_operands): Initially assume
345 that the statement does not take any addresses.
347 2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
349 * config/sparc/sparc.c (sparc_override_options): Initialize
352 2007-06-09 Ian Lance Taylor <iant@google.com>
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.
359 2007-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
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.
366 2007-06-06 Ian Lance Taylor <iant@google.com>
368 * fold-const.c (merge_ranges): If range_successor or
369 range_predecessor fail, just return 0.
371 2007-06-05 Ian Lance Taylor <iant@google.com>
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
377 (test_for_singularity): Likewise.
379 2007-06-04 Ian Lance Taylor <iant@google.com>
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.
386 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
388 Backport from mainline:
389 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
391 * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
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.
398 2007-05-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
400 Backport from mainline:
401 2007-05-05 Aurelien Jarno <aurelien@aurel32.net>
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
411 2007-05-27 Daniel Berlin <dberlin@dberlin.org>
414 Backport PTA solver from mainline
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
421 2007-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
423 * tree-vrp.c (compare_names): Initialize sop.
425 2007-05-30 Jakub Jelinek <jakub@redhat.com>
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.
431 2007-05-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
434 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
435 return true when truth_value_p is true and the type
438 2007-05-27 H.J. Lu <hongjiu.lu@intel.com>
440 Backport from mainline:
441 2007-05-25 Uros Bizjak <ubizjak@gmail.com>
443 * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
444 "memory" attribute for "sseishft" type insn without operands[2].
446 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
448 * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
450 2007-05-22 Ian Lance Taylor <iant@google.com>
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.
457 2007-05-23 Chen Liqin <liqin@sunnorth.com.cn>
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.
464 * config/score/score.c (score_print_operand): makes sure that only lower
467 2007-05-21 Uros Bizjak <ubizjak@gmail.com>
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.
478 2007-05-21 Uros Bizjak <ubizjak@gmail.com>
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.
485 2007-05-20 Kaz Kojima <kkojima@gcc.gnu.org>
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.
493 2007-05-20 Kaz Kojima <kkojima@gcc.gnu.org>
496 Backport from mainline.
497 * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
500 2007-05-20 Kaz Kojima <kkojima@gcc.gnu.org>
503 Backport from mainline.
504 * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
507 2007-05-20 Kaz Kojima <kkojima@gcc.gnu.org>
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
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
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.
529 2007-05-18 Joseph Myers <joseph@codesourcery.com>
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
538 2007-05-17 Ian Lance Taylor <iant@google.com>
540 PR tree-optimization/31953
541 * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
543 (set_value_range_to_null): Call set_value_range_to_value.
544 (extract_range_from_comparison): Likewise.
546 2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
552 2007-05-14 Mark Mitchell <mark@codesourcery.com>
554 * BASE-VER: Set to 4.2.1.
555 * DEV-PHASE: Set to prerelease.
557 2007-05-13 Release Manager
559 * GCC 4.2.0 released.
561 2007-05-12 Richard Guenther <rguenther@suse.de>
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.
567 2007-05-01 Ian Lance Taylor <iant@google.com>
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
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.
582 2007-05-01 Joseph Myers <joseph@codesourcery.com>
584 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
586 2007-04-27 Anatoly Sokolov <aesok@post.ru>
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.).
593 2007-04-27 Ian Lance Taylor <iant@google.com>
596 * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
597 TYPE_MAX_VALUE exist, convert them to the new type.
599 2007-04-26 Ian Lance Taylor <iant@google.com>
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
606 2007-04-26 Ulrich Weigand <uweigand@de.ibm.com>
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.
613 2007-04-26 Richard Guenther <rguenther@suse.de>
614 Daniel Berlin <dberlin@dberlin.org>
616 PR tree-optimization/30567
617 * tree-ssa-structalias.c (update_alias_info): Record dereference
618 also if ESCAPE_STORED_IN_GLOBAL.
620 2007-04-26 Jakub Jelinek <jakub@redhat.com>
623 * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
625 PR tree-optimization/30558
626 * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
627 clear this_state.prev_try.
629 2007-04-25 Anatoly Sokolov <aesok@post.ru>
632 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
634 2007-04-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
635 Roger Sayle <roger@eyesopen.com>
638 * expmed.c (make_tree): Use the correct type, i.e. the inner
639 type, when constructing the individual elements of a CONST_VECTOR.
641 2007-04-24 Ian Lance Taylor <iant@google.com>
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.
655 2007-04-24 Ian Lance Taylor <iant@google.com>
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.
665 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
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.
673 2007-04-24 Daniel Franke <franke.daniel@gmail.com>
675 * doc/invoke.texi: Removed leading '-' from option index entries.
677 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
680 * expr.c (reduce_to_bit_field_precision): Handle
683 2007-04-20 Richard Henderson <rth@redhat.com>
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.
699 2007-04-21 Richard Guenther <rguenther@suse.de>
702 * fold-const.c (fold_unary): Call fold_convert_const on the
705 2007-04-20 Richard Henderson <rth@redhat.com>
707 * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
709 2007-04-20 Bernd Schmidt <bernd.schmidt@analog.com>
711 * reload.c (combine_reloads): When trying to use a dying register,
712 check whether it's uninitialized and don't use if so.
714 2007-04-20 Jakub Jelinek <jakub@redhat.com>
716 * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
717 for __builtin_ia32_cmpordss.
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.
725 2007-04-19 Eric Botcazou <ebotcazou@libertysurf.fr>
727 PR rtl-optimization/29841
728 * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
730 * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
731 that may cause control flow transfer from being moved.
733 2007-04-18 Anatoly Sokolov <aesok@post.ru>
735 * config/avr/avr.c (ptrreg_to_str): Replace error() with
736 output_operand_lossage().
738 2007-04-17 Anatoly Sokolov <aesok@post.ru>
741 * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
744 2007-04-17 Jan Hubicka <jh@suse.cz>
747 * dwarf2out.c (reference_to_unused): Ask cgraph for functions
748 availablility; add more sanity checking; ask varpool only about
751 2007-04-17 H.J. Lu <hongjiu.lu@intel.com>
753 * Backport from mainline:
754 2007-04-17 H.J. Lu <hongjiu.lu@intel.com>
756 * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
758 (sse_vmmulv4sf3): Likewise.
759 (sse2_vmaddv2df3): Likewise.
760 (sse2_vmmulv2df3): Likewise.
762 2007-04-16 Matthias Klose <doko@debian.org>
764 * config/alpha/linux.h (CPP_SPEC): Define.
765 * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
767 2007-04-16 Anatoly Sokolov <aesok@post.ru>
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
773 * config/avr/avr.h (LINK_SPEC): Simplify.
775 2007-04-16 Jan Hubicka <jh@suse.cz>
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.
784 2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
786 * Backport from mainline:
787 2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
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
794 2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
797 * c-decl.c (finish_decl): Grab the type of the decl after the call
800 2007-04-14 Jakub Jelinek <jakub@redhat.com>
803 * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
804 post dominators and cleanup cfg before returning.
806 2007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
808 * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
809 null before emitting a .nsubspa directive.
811 2007-04-08 Anatoly Sokolov <aesok@post.ru>
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
821 2007-04-07 Anatoly Sokolov <aesok@post.ru>
824 * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
827 2007-04-05 Anatoly Sokolov <aesok@post.ru>
830 * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
831 DECL_ASSEMBLER_NAME, not the DECL_NAME.
833 2007-04-04 Richard Henderson <rth@redhat.com>
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
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.
850 2007-04-04 Chen liqin <liqin@sunnorth.com.cn>
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.
863 2007-04-03 Stuart Hastings <stuart@apple.com>
866 * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile
868 * cse.c (record_jump_equiv): Bail out on CCmode comparisons.
870 2007-04-03 Jakub Jelinek <jakub@redhat.com>
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
878 2007-04-02 Eric Christopher <echristo@apple.com>
880 * doc/invoke.texi (i386 and x86-64 Options): Document -m64
881 limitations on darwin.
883 2007-04-02 Anatoly Sokolov <aesok@post.ru>
886 * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
888 2007-04-02 H.J. Lu <hongjiu.lu@intel.com>
890 * Backport from mainline:
891 2007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
894 * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
896 2007-03-30 Anatoly Sokolov <aesok@post.ru>
898 * config/avr/avr.c (avr_override_options): Clear
899 'flag_delete_null_pointer_checks'.
901 2007-03-29 Michael Matz <matz@suse.de>
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
908 * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
909 sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
912 2007-03-28 Mike Stump <mrs@apple.com>
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.
918 2007-03-27 Anatoly Sokolov <aesok@post.ru>
920 * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
923 2007-03-26 Ian Lance Taylor <iant@google.com>
925 PR tree-optimization/31345
926 * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
927 [+INF, +INF(OVF)] into VARYING.
929 2007-03-23 Martin Michlmayr <tbm@cyrius.com>
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.
935 2007-03-21 Mike Stump <mrs@apple.com>
937 * c.opt: Fixup for Objective-C/C++.
939 2007-03-21 Richard Henderson <rth@redhat.com>
942 * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
943 * config/i386/mmintrin.h (__m64): Likewise.
944 * config/i386/xmmintrin.h (__m128): Likewise.
946 2007-03-20 Jakub Jelinek <jakub@redhat.com>
949 * c-typeck.c (convert_for_assignment): Call comptypes for
950 RECORD_TYPE or UNION_TYPE.
953 * reload1.c (reload): Do invalid ASM checking after
954 cleanup_subreg_operands.
956 2007-03-19 Jeff Law <law@redhat.com>
958 * tree-cfg.c (find_taken_edge): Tighten conditions for
959 optimizing computed gotos.
961 2007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
963 * pa.c (attr_length_call): Partially revert change of 2007-03-09.
964 (output_call): Likewise.
966 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
969 * dwarf2out.c (force_type_die): Adjust comment.
970 (dwarf2out_imported_module_or_decl): Handle base AT_import types.
972 2007-03-15 Seongbae Park <seongbae.park@gmail.com>
974 PR tree-optimization/30590
975 * tree-nrv.c (tree_nrv): Check for the partial update
978 2007-03-14 Ian Lance Taylor <iant@google.com>
980 * tree-vrp.c (value_inside_range): Ignore fold warnings.
982 2007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
985 * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
988 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
990 * doc/extend.texi: Edit "gnu_inline" documentation.
991 * doc/invoke.texi: Edit "-fgnu89-inline" documentation.
993 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
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.
999 2007-03-12 Daniel Berlin <dberlin@dberlin.org>
1001 Fix PR tree-optimization/28544
1002 * tree-ssa-operands.c (add_virtual_operand):
1003 Move assert triggering on aliasing violations into
1006 2007-03-12 Ian Lance Taylor <iant@google.com>
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__.
1023 2007-03-12 Richard Henderson <rth@redhat.com>
1025 * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
1026 (TARGET_SECTION_TYPE_FLAGS): New.
1028 2007-03-12 Richard Henderson <rth@redhat.com>
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.
1035 2007-02-14 Richard Guenther <rguenther@suse.de>
1037 Backport from mainline:
1038 * flags.h (issue_strict_overflow_warning): Convert to a macro.
1040 2007-03-11 Ian Lance Taylor <iant@google.com>
1042 Backport -fstrict-overflow/-Wstrict-overflow from mainline:
1043 2007-03-11 Ian Lance Taylor <iant@google.com>
1045 * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
1046 the *_DIV_EXPR codes correctly with overflow infinities.
1048 2007-03-09 Ian Lance Taylor <iant@google.com>
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.
1054 2007-03-08 Ian Lance Taylor <iant@google.com>
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
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
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.
1084 2007-03-05 Ian Lance Taylor <iant@google.com>
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.
1089 2007-03-02 Ian Lance Taylor <iant@google.com>
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.
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.
1126 2007-02-13 Ian Lance Taylor <iant@google.com>
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
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
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
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
1172 (struct fold_stmt_r_data): Add stmt field.
1173 (fold_stmt_r): Defer fold overflow warnings until we know we
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):
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
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.
1208 2007-01-27 Ian Lance Taylor <iant@google.com>
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.
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):
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
1251 2007-01-17 Ian Lance Taylor <iant@google.com>
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
1260 (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
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
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.
1275 2007-03-11 Roger Sayle <roger@eyesopen.com>
1276 Andrew Pinski <andrew_pinski@playstation.sony.com>
1279 * fold-const.c (fold_relational_const): Add back compile-time
1280 evaluation of complex constant equality/inequality comparisons.
1282 2007-03-11 Ira Rosen <irar@il.ibm.com>
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.
1290 2007-03-10 Mark Mitchell <mark@codesourcery.com>
1293 * tree.c (walk_type_fields): Recurse into the element type of
1294 ARRAY_TYPEs if there is a pointer set.
1296 2007-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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
1303 2007-03-09 Richard Henderson <rth@redhat.com>
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.
1349 2007-03-08 Geoffrey Keating <geoffk@apple.com>
1352 * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
1354 * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
1355 passed, use shared libgcc.
1357 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
1359 PR rtl-optimization/30643
1360 * cse.c (cse_insn): Recompute dest_hash after insert_regs for
1363 2007-03-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
1366 * tree-vrp.c (nonnull_arg_p): Treat the static decl as always
1369 2007-03-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
1372 * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
1373 effects unknown to this function, return early.
1375 2007-03-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
1378 * tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary
1379 bitmap for EXECUTE_IF_SET_IN_BITMAP.
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.
1387 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
1394 2007-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1396 * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
1397 llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
1398 ATTR_CONST_NOTHROW_LIST.
1400 * fold-const.c (tree_expr_nonnegative_p): Handle FIX_TRUNC_EXPR.
1402 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
1405 * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
1406 instead of precision.
1408 2007-03-08 Volker Reichelt <reichelt@netcologne.de>
1411 * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
1413 2007-03-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
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.
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.
1431 2007-03-07 Richard Henderson <rth@redhat.com>
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.
1437 2007-03-06 David Daney <ddaney@avtrex.com>
1439 * doc/install.texi (mips-*-*): Change recommended binutils
1442 2007-03-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1444 * doc/invoke.texi (Warning Options): Replace -Werror- with
1446 * opts.c (common_handle_option): Likewise.
1448 2007-03-06 Anatoly Sokolov <aesok@post.ru>
1450 * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
1451 ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
1453 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1454 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1456 2007-03-06 Roger Sayle <roger@eyesopen.com>
1459 * fold-const.c (fold_binary) <EQ_EXPR>: Enforce type consistency
1460 when transforming ~X op C to X op' ~C.
1462 2007-03-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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
1474 2007-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1476 * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
1479 2007-03-05 Steve Ellcey <sje@cup.hp.com>
1481 Backported from mainline
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.
1488 2007/03/05 David Taylor <dtaylor@emc.com>
1491 * gcc.c: Correct copyright date in --version output.
1493 2007-03-05 Brooks Moses <brooks.moses@codesourcery.com>
1495 * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
1496 -ffixed-line-length-* options.
1498 2007-03-05 David Edelsohn <edelsohn@gnu.ogr>
1500 * config/rs6000/t-ppccomm: Always build libgcc2 for GNU/Linux
1501 with -mlong-double-128, except SPE.
1503 * config/rs6000/darwin-ldouble.c: Only build new functions for
1504 __LONG_DOUBLE_128__.
1506 Backport from mainline:
1507 2007-01-16 David Edelsohn <edelsohn@gnu.org>
1509 * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
1510 (strong_alias): Define.
1511 (__gcc_qmul): Provide non-FMA for soft-float.
1517 (__gcc_qunord): 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.
1533 2007-03-05 Richard Guenther <rguenther@suse.de>
1535 Backport from mainline:
1536 2007-02-28 Richard Guenther <rguenther@suse.de>
1539 * fold-const.c (fold_binary): Do not associate expressions
1540 with more than one variable for integer types that do not wrap.
1542 2007-03-04 Eric Botcazou <ebotcazou@adacore.com>
1545 * doc/invoke.texi (-O2): Document that Tree-VRP is not turned on
1546 for the Ada compiler.
1548 2007-03-02 Zdenek Dvorak <dvorakz@suse.cz>
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.
1554 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
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.
1561 2007-03-02 Paul Brook <paul@codesourcery.com>
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.
1573 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
1575 * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
1576 entry by means of emit_insn_at_entry.
1578 2007-03-01 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1580 * doc/invoke.texi (Wextra): Delete outdated paragraph.
1582 2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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
1588 2007-02-27 Mike Stump <mrs@apple.com>
1590 * config/darwin-crt3.c: Avoid compilation when compiling for a
1593 2007-02-27 Andreas Schwab <schwab@suse.de>
1595 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
1597 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
1599 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
1601 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
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
1612 2007-02-24 Mike Stump <mrs@apple.com>
1614 * config/i386/i386.c (output_pic_addr_const): Stubify optimized
1617 2007-02-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1619 * pa.md (muldi3): Force subregs to registers in 64-bit expander.
1621 2007-02-23 Mike Stump <mrs@apple.com>
1623 * tlink.c (scan_linker_output): Parse linker messages from
1624 darwin9's linker better.
1626 2007-02-21 Ira Rosen <irar@il.ibm.com>
1628 * tree-ssa-alias.c: Include pointer-set.h
1629 * Makefile.in (tree-ssa-alias.o): Depend on pointer-set.h.
1631 2007-02-21 Jakub Jelinek <jakub@redhat.com>
1633 Backported from mainline
1634 2006-12-20 Andrew Pinski <pinskia@gmail.com>
1636 * omp-low.c (init_tmp_var): New function.
1637 (save_tmp_var): New function.
1638 (lower_omp_1): Use them for VAR_DECL.
1640 2007-02-20 Alan Modra <amodra@bigpond.net.au>
1643 * varasm.c (use_blocks_for_decl_p): Return false for decls with
1646 2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
1648 * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
1649 due to calls to functions taking pointers as parameters.
1651 2007-02-19 Richard Henderson <rth@redhat.com>
1654 * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
1657 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
1659 * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
1661 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
1663 * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
1664 for arg pointer based indexed addressing.
1666 2007-02-18 Ira Rosen <irar@il.ibm.com>
1668 * tree-ssa-alias.c (may_aliases_intersect): New function.
1669 * tree-data-ref.c (ptr_ptr_may_alias_p): Call may_aliases_intersect
1671 * tree-flow.h (may_aliases_intersect): Add function declaration.
1673 2007-02-17 Alexandre Oliva <aoliva@redhat.com>
1675 PR tree-optimization/30823
1676 * tree-sra.c (sra_build_assignment): Drop type-checking assert.
1678 2007-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1681 * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
1682 nested double- and backquotes.
1684 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
1686 * tree-sra.c (instantiate_missing_elements): Canonicalize
1688 (sra_build_assignment): New.
1689 (generate_copy_inout, generate_element_copy,
1690 generate_element_zero, generate_one_element_init): Use it.
1692 2007-02-15 Kaz Kojima <kkojima@gcc.gnu.org>
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.
1699 2007-02-13 Joseph S. Myers <joseph@codesourcery.com>
1701 * doc/invoke.texi, doc/standards.texi: Refer to
1702 gcc-4.2/c99status.html.
1704 2007-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
1713 2007-02-06 Mark Mitchell <mark@codesourcery.com>
1716 * tree.h (DECL_REPLACEABLE_P): New macro.
1717 * except.c (set_nothrow_function_flags): Likewise.
1719 2007-02-07 Jakub Jelinek <jakub@redhat.com>
1722 * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
1723 of INDIRECT_REF <RESULT_DECL>.
1725 2007-02-06 Rask Ingemann Lamberisen <rask@sygehus.dk>
1728 * config/rs6000/t-ppccomm: Correct Makefile typo.
1730 2007-02-06 Roger Sayle <roger@eyesopen.com>
1733 Backport from mainline.
1734 * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
1735 it into -D_REENTRANT.
1737 2007-02-05 Alexandre Oliva <aoliva@redhat.com>
1740 * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
1741 even if cv-qualification is the same.
1743 2007-02-05 Geoffrey Keating <geoffk@apple.com>
1745 * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
1746 __enable_execute_stack on completion.
1748 2007-02-05 Bob Wilson <bob.wilson@acm.org>
1750 * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
1752 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
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.
1759 2007-02-04 Richard Guenther <rguenther@suse.de>
1761 Backport from mainline:
1762 2007-01-30 Richard Guenther <rguenther@suse.de>
1765 * dwarf2out.c (reference_to_unused): Query varpool if the
1766 variable was output.
1768 2007-02-02 Mike Stump <mrs@apple.com>
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.
1776 2007-02-02 Hui-May Chang <hm.chang@apple.com>
1778 Revert for x86 darwin:
1779 2005-06-19 Uros Bizjak <uros@kss-loka.si>
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.
1785 2007-02-02 Simon Martin <simartin@users.sourceforge.net>
1788 * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
1789 expanded only once even if an error occurs.
1791 2007-02-02 Jakub Jelinek <jakub@redhat.com>
1794 * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
1795 sprintf (str, "%s"). Do not optimize sprintf (str, "nopercent", p++).
1797 2007-02-01 Guy Martin <gmsoft@gentoo.org>
1799 * pa.md (tp_load): Correct mfctl instruction syntax.
1801 2007-02-01 Geoffrey Keating <geoffk@apple.com>
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.
1807 2007-01-31 Anatoly Sokolov <aesok@post.ru>
1810 * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
1812 2007-01-30 Richard Guenther <rguenther@suse.de>
1815 * passes.c (execute_one_pass): Reset in_gimple_form to not
1816 confuse non-unit-at-a-time mode.
1818 2007-01-27 Anatoly Sokolov <aesok@post.ru>
1820 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define __AVR_HAVE_MUL__.
1822 2007-01-29 Mike Stump <mrs@apple.com>
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.
1828 2007-01-29 Josh Conner <jconner@apple.com>
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.
1836 2007-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
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.
1846 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
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
1857 * gcc.dg/tree-ssa/loop-20.c: New test.
1859 2007-01-25 Geoffrey Keating <geoffk@apple.com>
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
1875 (LIB2FUNCS_EXTRA): Add darwin-world.asm.
1876 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
1879 2007-01-24 Geoffrey Keating <geoffk@apple.com>
1881 * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
1883 2007-01-24 Jakub Jelinek <jakub@redhat.com>
1886 * gimplify.c (omp_check_private): New function.
1887 (gimplify_scan_omp_clauses): Use it for
1888 firstprivate/lastprivate/reduction.
1891 * gimplify.c (omp_add_variable): Don't call omp_notice_variable
1892 on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
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.
1900 2007-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
1914 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
1916 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
1917 the insn to which the note was originally attached.
1919 2007-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1921 * pa.c (output_move_double): Change array size of xoperands to 4.
1923 2007-01-17 Eric Christopher <echristo@apple.com>
1925 Backport from mainline:
1926 2006-12-18 Roger Sayle <roger@eyesopen.com>
1927 Eric Christopher <echristo@apple.com>
1930 * real.c (real_maxval): Correctly handle IBM extended double format.
1932 2007-01-17 Tom Tromey <tromey@redhat.com>
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.
1940 2007-01-15 Joseph S. Myers <joseph@codesourcery.com>
1942 * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
1945 2007-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
1951 2007-01-10 Ralf Corsépius <ralf.corsepius@rtems.org>
1953 * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
1955 2007-01-09 Nicolas Pitre <nico@cam.org>
1958 * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
1960 2007-01-08 Nick Clifton <nickc@redhat.com>
1962 * config/frv/predicates.md (reg_or_0_operand): Accept
1965 2007-01-08 Ralf Corsépius <ralf.corsepius@rtems.org>
1967 * config/bfin/rtems.h, config/bfin/t-rtems: New.
1968 * config.gcc: Add bfin*-rtems*.
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):
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.
1992 2007-01-05 Richard Guenther <rguenther@suse.de>
1995 * tree.c (get_narrower): Do not construct COMPONENT_REFs
1996 with mismatched types. Instead explicitly build a
1997 conversion NOP_EXPR.
1999 2007-01-05 Jakub Jelinek <jakub@redhat.com>
2002 * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
2005 2007-01-03 Jakub Jelinek <jakub@redhat.com>
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.
2023 2007-01-01 Mike Stump <mrs@apple.com>
2025 * configure.ac: Remove support for building with Apple's gcc-3.1.
2027 2007-01-01 Andreas Schwab <schwab@suse.de>
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
2034 (ia64_expand_epilogue): Restore BR0 from its new location.