1 2006-10-30 Dirk Mueller <dmueller@suse.de>
3 * c-common.h (strict_aliasing_warning): Fix whitespace.
4 * c-decl (start_function): Move code for main decl warning ..
5 * c-common.c (check_main_parameter_types): .. here.
6 * c-common.h (check_main_parameter_types): Declare.
8 2006-10-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11 * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
13 2006-10-30 Pete Steinmetz <steinmtz@us.ibm.com>
15 * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
16 be a PARALLEL containing sets. Return false when out_pat is not
19 2006-10-30 Richard Sandiford <richard@codesourcery.com>
21 * config/mips/mips.md (mul<mode>3): Split into...
22 (mulsi3, muldi3): ...these separate patterns.
24 2006-10-30 Richard Sandiford <richard@codesourcery.com>
26 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
27 but with each set of options separated by spaces.
29 2006-10-30 J"orn Rennecke <joern.rennecke@st.com>
31 * unwind-dw2.c (uw_init_context_1): Fix test that checks if
32 dwarf_reg_size_table has been initialized.
34 2006-10-30 Roger Sayle <roger@eyesopen.com>
36 * builtins.c (expand_builtin_mathfn_3): Correct coding style.
37 * ddg.c (print_ddg_edge): Likewise.
38 * dwarf2out.c (prune_unused_types_walk): Likewise.
39 * ifcvt.c (noce_try_cmove_arith): Likewise.
40 * langhooks.c (add_builtin_function): Likewise.
41 * reg-stack.c (subst_stack_regs_pat): Likewise.
42 * tree.c (expanded_location): Likewise.
43 * tree-dump.c (dequeue_and_dump): Likewise.
45 2006-10-30 David Daney <ddaney@avtrex.com>
47 * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
49 2006-10-30 Jakub Jelinek <jakub@redhat.com>
51 PR tree-optimization/29637
52 * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
53 of the innertype is the innertype itself.
55 2006-10-30 Danny Smith <dannysmith@users.sourceforge.net>
57 * dwarf2out.c (file_name_acquire): Correct typo.
59 2006-10-29 Daniel Berlin <dberlin@dberlin.org>
61 * tree.h (tree_value_handle): Remove struct value_set declaration.
62 Change value_set to bitmap_set.
63 * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
64 * tree-vn.c (get_value_handle): Made inline and moved to
66 * tree-flow-inline.h: (has_stmt_ann): New function.
67 * tree-ssa-pre.c (expressions): New variable.
68 (next_expression_id): Ditto.
69 (alloc_expression_id): New function.
70 (struct value_set): Remove.
71 (get_expression_id): New function.
72 (get_or_alloc_expression_id): Ditto.
73 (expression_for_id): Ditto.
74 (clear_expression_ids): Ditto.
75 (FOR_EACH_EXPR_ID_IN_SET): New macro.
76 (bb_value_sets): Renamed to bb_bitmap_sets.
77 All value sets replaced with bitmap_sets.
79 (BB_VISITED): New macro.
80 (postorder): New variable.
81 (add_to_value): Removed.
82 (value_exists_in_set_bitmap): Ditto.
83 (value_insert_into_set_bitmap): Ditto.
87 (set_contains_value): Ditto.
88 (insert_into_set): Ditto.
91 (bitmap_set_subtract_from_value_set): Ditto.
92 (value_insert_into_set): Ditto.
93 (print_value_set): Ditto.
94 (debug_value_set): Ditto.
95 (constant_expr_p): New function.
96 (bitmap_remove_from_set): Ditto.
97 (bitmap_insert_into_set): Ditto.
98 (bitmap_set_free): Ditto.
100 (sorted_array_from_bitmap_set): Ditto.
101 (bitmap_set_subtract): Ditto.
102 (bitmap_set_equal): Ditto.
103 (debug_bitmap_set): Ditto.
104 (find_leader_in_sets): Ditto.
105 (bitmap_set_replace_value): Modify for bitmapped sets.
106 (phi_translate): Ditto.
107 (phi_translate_set): Ditto.
108 (bitmap_find_leader): Ditto.
109 (valid_in_sets): Ditto.
110 (union_contains_value): Ditto.
112 (compute_antic_aux): Ditto. Mark changed blocks.
113 (compute_antic): Ditto. Iterate in postorder and only over
115 (compute_rvuse_and_antic_safe): Reuse postorder.
116 (create_component_ref_by_pieces): Modify for bitmapped sets.
117 (find_or_generate_expression): Ditto.
118 (create_expression_by_pieces): Ditto.
119 (insert_into_preds_of_block): Ditto.
120 (changed_blocks): New variable.
121 (do_regular_insertion): Broken out from insert_aux.
122 (insert_aux): Modified for bitmapped sets.
123 (find_existing_value_expr): New function.
124 (create_value_expr_from): Use it.
125 (insert_extra_phis): Removed.
126 (print_bitmap_set): Renamed from bitmap_print_value_set.
127 (compute_avail): Handle RETURN_EXPR.
128 (init_pre): Modify for bitmapped sets.
129 * tree-flow.h (has_stmt_ann): New function.
131 2006-10-29 Roger Sayle <roger@eyesopen.com>
133 * builtins.c (fold_builtin_floor): Check for the availability of
134 the C99 trunc function before transforming floor into trunc.
136 2006-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
138 * builtins.c (fold_builtin_hypot): Rearrange recursive
139 transformation before others, and also do ABS_EXPR. When
140 necessary, check flag_unsafe_math_optimizations. When necessary,
143 2006-10-29 Roger Sayle <roger@eyesopen.com>
145 * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
146 Fold ~X op C as X op' ~C, where op' is the swapped comparison.
147 (fold_binary): ~X eq/ne C is now handled in fold_comparison.
148 Fold -X eq/ne -Y as X eq/ne Y.
150 2006-10-29 Richard Sandiford <richard@codesourcery.com>
152 * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
153 GENERATE_MULT3_<MODE>. Restrict the test to SImode. Use ISA_HAS_MUL3
154 rather than GENERATE_MULT3_SI in the various define_peephole2s.
155 (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
156 Use an inclusive test for "mult" rather than "mul".
157 (rotr<mode>3): Depend on ISA_HAS_ROR.
158 * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
160 (GENERATE_MULT3_DI): Delete.
161 (ISA_HAS_64BIT_REGS): Use consistent formatting.
162 (ISA_HAS_MUL3): New macro.
163 (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
164 (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
165 (ISA_HAS_CLZ_CLO): Likewise.
166 (ISA_HAS_DCLZ_DCLO): Delete.
167 (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
168 (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
169 the VR4120 and VR4130.
170 (ISA_HAS_MACCHI): Use consistent formatting.
171 (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
172 (ISA_HAS_ROR): ...this new macro.
173 (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
174 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
175 (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
177 2006-10-29 Roger Sayle <roger@eyesopen.com>
179 PR tree-optimization/15458
180 * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
183 2006-10-29 Richard Guenther <rguenther@suse.de>
185 * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
186 (ix86_expand_truncdf_32): Likewise.
187 * config/i386/i386.c (ix86_expand_trunc): New function expanding
188 trunc inline for SSE math and -fno-trapping-math and if not
190 (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
191 * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
192 for expanding btrunc inline for SSE math.
194 2006-10-29 Joseph Myers <joseph@codesourcery.com>
196 * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
197 Handle tuning for bi-arch i[34567]86-*-linux* like that for
198 i[34567]86-*-solaris2.1[0-9]*.
199 * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
200 Define conditionally depending on TARGET_64BIT_DEFAULT.
201 (SPEC_32, SPEC_64): Define.
202 (LINK_SPEC): Use them.
203 * doc/install.texi (--enable-targets=all): Document for x86-linux.
205 2006-10-29 Richard Guenther <rguenther@suse.de>
207 * config/i386/i386-protos.h (ix86_expand_round): Declare.
208 (ix86_expand_rounddf_32): Likewise.
209 * config/i386/i386.c (ix86_expand_round): New function expanding
210 round inline for SSE math and -fno-trapping-math and if not
212 (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
213 * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
214 round via ix86_expand_round.
216 2006-10-29 Richard Guenther <rguenther@suse.de>
218 * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
219 (ix86_expand_floorceildf_32): Likewise.
220 * config/i386/i386.c (ix86_expand_sse_compare_mask): New
221 static helper function.
222 (ix86_expand_floorceil): Expander for floor and ceil to SSE
224 (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
225 * config/i386/i386.md (floordf2): Adjust to enable floor
226 expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
227 -fno-trapping-math is enabled and if not optimizing for size.
228 (floorsf2, ceildf2, ceilsf2): Likewise.
229 * config/i386/sse.md (sse_maskcmpsf3): New insn.
230 (sse2_maskcmpdf3): Likewise.
232 2006-10-29 Richard Guenther <rguenther@suse.de>
234 * builtins.c (expand_builtin_mathfn): Expand nearbyint as
235 rint in case -fno-trapping-math is enabled.
236 * config/i386/i386-protos.h (ix86_expand_rint): Declare.
237 * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
238 (ix86_expand_sse_fabs): Likewise.
239 (ix86_expand_rint): New function expanding rint to x87 or SSE math.
240 * config/i386/i386.md (rintdf2): Enable for SSE math if
241 -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
244 2006-10-29 Richard Guenther <rguenther@suse.de>
246 * genopinit.c (optabs): Change lfloor_optab and lceil_optab
247 to conversion optabs.
248 * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
250 * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
251 (enum convert_optab_index): Add COI_lfloor and COI_lceil.
252 (lfloor_optab, lceil_optab): Adjust defines.
253 * builtins.c (expand_builtin_int_roundingfn): Adjust for
254 lfloor and lceil optabs now being conversion optabs.
255 * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
256 * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
257 New static helper function.
258 (ix86_expand_lfloorceil): New function to expand lfloor and
260 * config/i386/i386.md (lfloor<mode>2): Split into ...
261 (lfloorxf<mode>2): ... x87 variant
262 (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
263 using ix86_expand_lfloorceil.
264 (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
266 * doc/md.texi (lfloorMN, lceilMN): Document.
268 2006-10-29 Richard Sandiford <richard@codesourcery.com>
270 * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE. Test for the
271 -mno-shared assembler option on mips targets.
272 * configure, config.in: Regenerate.
273 * config/mips/linux.h (NO_SHARED_SPECS): New macro.
274 (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
275 * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
277 2006-10-29 Richard Sandiford <richard@codesourcery.com>
279 * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
280 as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
282 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
284 * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
285 config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
288 2006-10-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
291 * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
292 (fold_builtin_pow): Evaluate constant arguments at compile-time
294 (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
295 (do_mpfr_ckconv): New helper function.
296 (do_mpfr_arg1): Use do_mpfr_ckconv.
299 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
302 * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
303 (-fdump-rtl-sched): Rename to ..
304 (-fdump-rtl-sched1): here. Also fix file extension number.
306 2006-10-28 Richard Guenther <rguenther@suse.de>
308 * fold-const.c (maybe_canonicalize_comparison): Fix code
311 2006-10-28 Uros Bizjak <uros@kss-loka.si>
313 * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
314 (NON_QI_REG_P): Use IN_RANGE.
315 (REX_INT_REGNO_P): Use IN_RANGE.
316 (FP_REGNO_P): Use IN_RANGE.
317 (SSE_REGNO_P): Use IN_RANGE.
318 (REX_SSE_REGNO_P): Use IN_RANGE.
319 (MMX_REGNO_P): Use IN_RANGE.
320 (STACK_REGNO_P): New macro.
321 (STACK_REG_P): Use STACK_REGNO_P.
322 (NON_STACK_REG_P): Use STACK_REGNO_P.
323 (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
324 (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
325 (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
326 (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
327 (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
329 2006-10-28 Eric Botcazou <ebotcazou@adacore.com>
331 * except.h (output_function_exception_table): Add 'const char*' param.
332 * except.c (switch_to_exception_section): Add 'const char*' param.
333 If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
334 and flag_function_sections is set, use a function-specific section.
335 (output_function_exception_table): Add 'const char*' param.
336 Adjust call to switch_to_exception_section.
337 * final.c (rest_of_handle_final): Adjust calls to
338 output_function_exception_table.
339 * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
340 * config.in: Regenerate.
341 * configure: Likewise.
343 2006-10-28 Richard Guenther <rguenther@suse.de>
346 * fold-const.c (maybe_canonicalize_comparison_1): Helper
347 for maybe_canonicalize_comparison.
348 (maybe_canonicalize_comparison): New function for canonicalizing
350 (fold_comparison): Call it to canonicalize comparisons with
353 2006-10-28 Richard Guenther <rguenther@suse.de>
356 * builtins.c (expand_builtin_int_roundingfn_2): Expand
357 BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
358 (expand_builtin): Adjust likewise.
359 * genopinit.c (optabs[]): Add lround optab.
360 * optabs.c (init_optabs): Initialize lround_optab.
361 * optabs.h (enum convert_optab_index): Add COI_lround.
362 (lround_optab): Define.
363 * config/i386/i386-protos.h (ix86_expand_lround): Declare.
364 * config/i386/i386.c (ix86_sse_copysign_to_positive): New
366 (ix86_expand_lround): New function.
367 * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
369 * doc/md.texi (lroundMN2): Document.
371 2006-10-28 Uros Bizjak <uros@kss-loka.si>
374 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
375 argument to HOST_WIDE_INT. Update function prototype.
376 (round_frame_size): Change return type to HOST_WIDE_INT. Change
377 "size" argument to HOST_WIDE_INT. Update function prototype.
379 2006-10-28 Uros Bizjak <uros@kss-loka.si>
381 * config/i386/i386.c (output_387_ffreep): Create output from a
382 template string for !HAVE_AS_IX86_FFREEP.
384 2006-10-27 Eric Christopher <echristo@apple.com>
386 * config/darwin.c: Fix formatting and grammar.
388 2006-10-27 Jan Hubicka <jh@suse.cz>
390 * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
391 to be thrown away soon when IGNORE is set.
392 * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
393 indicating when return value shall not be computed.
394 * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
396 2006-10-27 Vladimir Makarov <vmakarov@redhat.com>
398 * config/i386/i386.h (TARGET_GEODE):
399 (TARGET_CPU_CPP_BUILTINS): Add code for geode.
400 (TARGET_CPU_DEFAULT_geode): New macro.
401 (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
402 TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
403 TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
404 TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
405 TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
407 (TARGET_CPU_DEFAULT_NAMES): Add geode.
408 (processor_type): Add PROCESSOR_GEODE.
410 * config/i386/i386.md: Include geode.md.
413 * config/i386/i386.c (geode_cost): New initialized global
415 (m_GEODE, m_K6_GEODE): New macros.
416 (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
417 x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
418 x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
419 x86_schedule): Use m_K6_GEODE instead of m_K6.
420 (x86_movx, x86_cmove): Set up m_GEODE.
421 (x86_integer_DFmode_moves): Clear m_GEODE.
422 (processor_target_table): Add entry for geode.
423 (processor_alias_table): Ditto.
425 * config/i386/geode.md: New file.
427 * doc/invoke.texi: Add entry about geode processor.
429 2006-10-27 Mike Stump <mrs@apple.com>
431 * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
432 __DYNAMIC__ from here back to ...
433 * config/darwin.h (CPP_SPEC): ... here.
435 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
436 Nathan Sidwell <nathan@codesourcery.com>
438 * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
439 when choosing the minimum heapsize.
441 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
443 * gcc/unwind-dw2.h: Move cfa-related variables into
444 struct frame_state_reg_info to ensure that the CFA is properly
445 handled when executing DW_CFA_{remember,restore}_state.
446 * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
447 gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
448 gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
449 gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
450 gcc/config/rs6000/linux-unwind.h,
451 gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
452 gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
453 Modify to use new cfa_* fields.
455 2006-10-26 Andreas Krebbel <krebbel1@de.ibm.com>
457 * config/s390/s390.c (s390_init_frame_layout): Check positive
460 2006-10-26 Ben Elliston <bje@au.ibm.com>
462 * gimplify.c (get_name): Remove extraneous break.
463 (gimplify_omp_for): Initialise ret with GS_OK.
465 2006-10-25 Steve Ellcey <sje@cup.hp.com>
467 * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
468 Add unix98.o to link line.
470 2006-10-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
473 * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
474 Calculate compile-time constants using MPFR.
475 (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
476 BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
478 2006-10-25 Bob Wilson <bob.wilson@acm.org>
480 * config/xtensa/lib2funcs.S: Use C-style comments.
482 2006-10-24 Nathan Froyd <froydnj@codesourcery.com>
484 * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
485 (file_table_relative_p): Likewise.
486 (dwarf2out_finish): Likewise.
487 (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
489 2006-10-25 Daniel Berlin <dberlin@dberlin.org>
491 * tree-ssa-structalias.c (intra_create_variable_infos):
492 Don't recreate nonlocal_all if it already exists.
494 2006-10-25 Richard Guenther <rguenther@suse.de>
497 * optabs.h (enum optab_index): Remove OTI_lrint.
498 (enum convert_optab_index): Add COI_lrint.
499 (lrint_optab): Adjust.
500 (expand_sfix_optab): Declare.
501 * optabs.c (expand_sfix_optab): New function.
502 (init_optabs): Init lrint_optab as conversion optab.
503 * genopinit.c (lrint_optab): Change to a conversion optab.
504 * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
505 expansion via conversion optab.
506 * config/i386/i386.md (*fistdi2_1): Remove
507 flag_unsafe_math_optimizations guard.
508 (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
509 fist<mode>2_with_temp): Likewise.
510 (lrint<mode>2): Split into...
511 (lrintxf<mode>2): ... x87 part
512 (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
513 * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
514 sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
515 UNSPEC_FIX_NOTRUNC matching non-vector float modes.
516 * doc/md.texi (lrintMN2): Document.
518 2006-10-25 Uros Bizjak <uros@kss-loka.si>
521 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
522 Use inc and dec instructions for TARGET_USE_INCDEC.
523 ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
524 ("sync_double_compare_and_swap<mode>"): Likewise.
525 ("*sync_double_compare_and_swapdi_pic"): Likewise.
526 ("*sync_compare_and_swap_cc<mode>"): Likewise.
527 ("sync_double_compare_and_swap_cc<mode>"): Likewise.
528 ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
529 ("sync_old_add<mode>"): Likewise.
530 ("sync_lock_test_and_set<mode>"): Likewise.
531 ("sync_lock_test_and_set<mode>"): Likewise.
532 ("sync_add<mode>"): Likewise.
533 ("sync_sub<mode>"): Likewise.
534 ("sync_ior<mode>"): Likewise.
535 ("sync_and<mode>"): Likewise.
536 ("sync_xor<mode>"): Likewise.
538 2006-10-25 Uros Bizjak <uros@kss-loka.si>
540 * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
541 (remainder_optab): Define corresponding macro.
542 (drem_optab): Remove.
543 * optabs.c (init_optabs): Initialize remainder_optab. Remove
544 drem_optab initialization.
545 * genopinit.c (optabs): Implement remainder_optab using
546 remainder?f3 patterns. Remove drem_optab.
547 * builtins.c (expand_builtin_mathfn_2): Handle
548 BUILT_IN_REMAINDER{,F,L} using remainder_optab.
549 (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
550 expand_builtin_mathfn_2.
552 (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
553 depend on flag_unsafe_math_optimizations.
555 * config/i386/i386.md ("remaindersf3", "remainderdf3")
556 ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
557 Do not depend on flag_unsafe_math_optimizations. Use
558 truncxf?f expander instead of truncxf?f_i387_noop.
560 ("fpremxf4", "fprem1xf4"): Do not depend on
561 flag_unsafe_math_optimizations.
562 ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
563 flag_unsafe_math_optimizations. Use truncxf?f expander
564 instead of truncxf?f_i387_noop.
566 * doc/md.texi (fmod, remainder): Document standard named pattern.
568 2006-10-24 Richard Sandiford <richard@codesourcery.com>
569 David Daney <ddaney@avtrex.com>
572 * rtlanal.c (nonzero_address_p): Remove check for values wrapping.
574 2006-10-25 Ben Elliston <bje@au.ibm.com>
576 * doc/extend.texi (Variable Attributes): Typo fix.
578 2006-10-24 Uros Bizjak <uros@kss-loka.si>
580 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
581 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
582 (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
583 (FRAME_POINTER_REGNUM): Update register number to 21.
584 (REG_CLASS_CONTENTS): Update contents for added fpcr register.
585 (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
587 * config/i386/i386.c (regclass_map): Add fpcr entry.
588 (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
590 (print_reg): Assert REGNO (x) != FPCR_REG.
592 * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
593 (DIRFLAG_REG): Renumber.
594 (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
595 (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
596 (sse_prologue_save, *sse_prologue_save_insn): Renumber
597 hardcoded SSE register numbers.
599 * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
600 hardcoded MMX register numbers.
602 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
605 * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
606 (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
608 (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
609 (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
610 BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
611 BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
613 2006-10-24 Richard Guenther <rguenther@suse.de>
616 * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
617 and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
618 for deciding optimizations in consistency with fold-const.c
619 (fold_builtin_unordered_cmp): Likewise.
621 2006-10-24 Richard Guenther <rguenther@suse.de>
623 * builtins.c (fold_builtin_floor): Fold floor (x) where
624 x is nonnegative to trunc (x).
625 (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
626 nonnegative to FIX_TRUNC_EXPR.
628 2006-10-24 Richard Guenther <rguenther@suse.de>
630 PR tree-optimization/29567
631 * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
632 for TRUTH_NOT_EXPR. Clarify comments.
634 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
637 * builtins.c (fold_builtin_exponent): Evaluate constant arguments
638 at compile-time using MPFR. Change parameter VALUE to FUNC,
640 (do_mpfr_arg1): Rename `exact' to `inexact'. Carefully check
641 for overflow and underflow at all times and avoid folding in
644 2006-10-24 Ben Elliston <bje@au.ibm.com>
646 * reload1.c: Formatting fixes.
648 2006-10-23 Zdenek Dvorak <dvorakz@suse.cz>
650 PR tree-optimization/14784
651 * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
652 * tree-ssa-structalias.c (get_constraint_for,
653 intra_create_variable_infos): Set is_heapvar.
654 * tree-ssa-operands.c (access_can_touch_variable): Do not handle
655 non-heapvar pointer variables specially.
657 2006-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
660 * builtins.c (fold_builtin_sin, fold_builtin_cos,
661 fold_builtin_tan): Fold all constant arguments. Take a "type"
662 argument as necessary.
664 * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
666 2006-10-23 Bob Wilson <bob.wilson@acm.org>
668 * config/xtensa/lib1funcs.asm: Use C-style comments.
670 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
672 * tree.c (local_define_builtin): Replace calls to
673 lang_hooks.builtin_function with add_builtin_function.
674 * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
676 * c-tree.h (builtin_function): Rename to c_builtin_function. Change
678 * c-decl.c (builtin_function): Rename to c_builtin_function. Move
679 common code to add_builtin_function.
680 * langhooks.c (add_builtin_function): New function.
681 (lhd_builtin_function): New function.
682 * langhooks.h (struct lang_hooks): Change the signature of
684 (add_builtin_function): New function.
685 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
686 calls to lang_hooks.builtin_function with add_builtin_function.
687 * c-common.c (decl_builtin_1): Replace calls to
688 lang_hooks.builtin_function with add_builtin_function.
689 * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
690 lang_hooks.builtin_function with add_builtin_function.
691 * config/frv/frv.c (def_builtin): Replace calls to
692 lang_hooks.builtin_function with add_builtin_function.
693 * config/s390/s390.c (s390_init_builtins): Replace calls to
694 lang_hooks.builtin_function with add_builtin_function.
695 * config/sparc/sparc.c (def_builtin): Replace calls to
696 lang_hooks.builtin_function with add_builtin_function.
697 * config/i386/i386.c (def_builtin): Replace calls to
698 lang_hooks.builtin_function with add_builtin_function.
699 * config/sh/sh.c (sh_media_init_builtins): Replace calls to
700 lang_hooks.builtin_function with add_builtin_function.
701 * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
702 lang_hooks.builtin_function with add_builtin_function.
703 * config/stormy16/stormy16.c (xstormy16_init_builtins):
704 Replace calls to lang_hooks.builtin_function with
705 add_builtin_function.
706 * config/iq2000/iq2000.c (def_builtin):
707 Replace calls to lang_hooks.builtin_function with
708 add_builtin_function.
709 * config/ia64/ia64.c (def_builtin): Replace calls to
710 lang_hooks.builtin_function with add_builtin_function.
711 * config/rs6000/rs6000.c (def_builtin): Replace calls to
712 lang_hooks.builtin_function with add_builtin_function.
713 (altivec_init_builtins): Replace calls to
714 lang_hooks.builtin_function with add_builtin_function.
715 * config/arm/arm.c (def_mbuiltin): Replace calls to
716 lang_hooks.builtin_function with add_builtin_function.
717 (arm_init_tls_builtins): Replace calls to
718 lang_hooks.builtin_function with add_builtin_function.
719 * config/mips/mips.c (mips_init_builtins): Replace calls to
720 lang_hooks.builtin_function with add_builtin_function.
721 * config/bfin/bfin.c (def_builtin): Replace calls to
722 lang_hooks.builtin_function with add_builtin_function.
723 * langhooks-def.h (lhd_builtin_function): New function.
724 (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
726 2006-10-23 Jakub Jelinek <jakub@redhat.com>
728 * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
729 BUILT_IN_STRNCAT_CHK.
731 2006-10-23 Jan Hubicka <jh@suse.cz>
733 * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
734 don't do conversion from memmove to memcpy here.
735 (expand_builtin_bcopy, expand_builtin): Update call of
736 expand_builtin_memmove.
737 (fold_builtin_memory_op): Do folding of memmove to memcpy here.
739 2006-10-23 Paul Brook <paul@codesourcery.com>
741 * stor-layout.c (start_record_layout): maximum_field_alignment
742 overrides STRUCTURE_SIZE_BOUNDARY.
744 2006-10-23 Ulrich Weigand <uweigand@de.ibm.com>
746 * config/s390/predicates.md ("bras_sym_operand"): Do not accept
747 nonlocal function symbols if flag_pic.
749 2006-10-23 Richard Guenther <rguenther@suse.de>
753 * builtins.c (fold_binary): Remove checks for flag_wrapv
754 and flag_trapv where negate_expr_p covers these cases.
756 2006-10-23 Richard Guenther <rguenther@suse.de>
759 * fold-const.c (fold_plusminus_mult_expr): Check exact power
760 of two on the absolute value.
761 (fold_binary): Fold x * -C to -x * C if x is easily negatable
762 and negating -C does not overflow.
764 2006-10-23 Richard Guenther <rguenther@suse.de>
767 * convert.c (convert_to_real): Fold (float)-x to -(float)x
768 only if not flag_rounding_math.
770 2006-10-22 Richard Sandiford <richard@codesourcery.com>
771 Kaz Kojima <kkojima@gcc.gnu.org>
774 * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
775 SImode memory reference for the source of a movua.
776 * config/sh/sh.md (UNSPEC_MOVUA): New macro.
777 (movua): Use an unspec instead of sign_extract. Expect the source
778 to have mode BLKmode.
779 (extv, insv): Use a BLKmode rather than SImode memory reference
780 for the source of a movua.
782 2006-10-22 Jeff Law <law@redhat.com>
783 Richard Guenther <rguenther@suse.de>
785 PR tree-optimization/15911
786 * tree-vrp.c (extract_code_and_val_from_cond): New function.
787 (register_edge_assert_for_1): Likewise.
788 (register_edge_assert_for): Handle &&/&/||/| in conditionals.
789 (find_conditional_asserts): Adjust for new function signature.
790 (find_assert_locations): Likewise.
792 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
794 * config/i386/tmmintrin.h: Remove the duplicated content.
796 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
798 * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
799 (x86_64-*-*): Likewise.
801 * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
802 (override_options): Check SSSE3.
803 (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
804 IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
805 IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
806 IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
807 IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
808 IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
809 IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
810 IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
811 IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
812 IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
813 IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
814 IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
815 IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
816 IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
817 IX86_BUILTIN_PABSD128.
818 (bdesc_2arg): Add SSSE3.
819 (bdesc_1arg): Likewise.
820 (ix86_init_mmx_sse_builtins): Support SSSE3.
821 (ix86_expand_builtin): Likewise.
822 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
824 * config/i386/i386.md (UNSPEC_PSHUFB): New.
825 (UNSPEC_PSIGN): Likewise.
826 (UNSPEC_PALIGNR): Likewise.
827 Include mmx.md before sse.md.
829 * config/i386/i386.opt: Add -mssse3.
831 * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
832 (ssse3_phaddwv4hi3): Likewise.
833 (ssse3_phadddv4si3): Likewise.
834 (ssse3_phadddv2si3): Likewise.
835 (ssse3_phaddswv8hi3): Likewise.
836 (ssse3_phaddswv4hi3): Likewise.
837 (ssse3_phsubwv8hi3): Likewise.
838 (ssse3_phsubwv4hi3): Likewise.
839 (ssse3_phsubdv4si3): Likewise.
840 (ssse3_phsubdv2si3): Likewise.
841 (ssse3_phsubswv8hi3): Likewise.
842 (ssse3_phsubswv4hi3): Likewise.
843 (ssse3_pmaddubswv8hi3): Likewise.
844 (ssse3_pmaddubswv4hi3): Likewise.
845 (ssse3_pmulhrswv8hi3): Likewise.
846 (ssse3_pmulhrswv4hi3): Likewise.
847 (ssse3_pshufbv16qi3): Likewise.
848 (ssse3_pshufbv8qi3): Likewise.
849 (ssse3_psign<mode>3): Likewise.
850 (ssse3_psign<mode>3): Likewise.
851 (ssse3_palignrti): Likewise.
852 (ssse3_palignrdi): Likewise.
853 (abs<mode>2): Likewise.
854 (abs<mode>2): Likewise.
856 * config/i386/tmmintrin.h: New file.
858 * doc/extend.texi: Document SSSE3 built-in functions.
860 * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
862 2006-10-22 Ira Rosen <irar@il.ibm.com>
864 * tree-vect-transform.c (vectorizable_load): Use the type of the
865 return value of the mask_for_load builtin to create realign_load
868 2006-10-22 Richard Sandiford <richard@codesourcery.com>
870 * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
873 2006-10-21 H.J. Lu <hongjiu.lu@intel.com>
875 * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
876 (UNSPEC_LDDQU): This.
877 * config/i386/sse.md (sse3_lddqu): Updated.
879 2006-10-21 Richard Guenther <rguenther@suse.de>
881 * builtins.c (expand_builtin_int_roundingfn_2): New function.
882 (expand_builtin): Use it to expand lrint instead of
883 expand_builtin_mathfn.
885 2006-10-21 Uros Bizjak <uros@kss-loka.si>
888 * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
889 flag_unsafe_math_optimizations is set.
891 2006-10-21 Uros Bizjak <uros@kss-loka.si>
894 * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
895 patterns to use memory input operand in x87->mem->XMM
896 reload sequences. Skip transformation for TARGET_K8.
898 2006-10-21 Uros Bizjak <uros@kss-loka.si>
900 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
901 force operand1 to register if both operands are memory operands.
902 (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
903 (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
904 if both operands are memory operands.
905 (truncdfsf2): Do not force operand1 to register if both operands
908 2006-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
910 * Makefile.in (LIBS): Add $(GMPLIBS).
911 * doc/install.texi: Update GMP and MPFR requirements.
912 * doc/sourcebuild.texi (need_gmp): Delete.
914 2006-10-21 Richard Guenther <rguenther@suse.de>
916 PR tree-optimization/3511
917 * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
918 got new invariant arguments during PHI translation.
920 2006-10-21 Richard Guenther <rguenther@suse.de>
923 * fold-const.c (fold_comparison): Fold signed comparisons
924 of the form X +- C1 CMP Y +- C2.
926 2006-10-21 Richard Guenther <rguenther@suse.de>
929 * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
930 if flag_unsafe_math_optimizations is specified. We have
931 flag_finite_math_only for that.
932 * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
933 or flag_unsafe_math_optimizations.
935 2006-10-21 Richard Guenther <rguenther@suse.de>
937 * builtins.c (fold_builtin_classify): Fix typo.
939 2006-10-21 Richard Guenther <rguenther@suse.de>
942 * simplify-rtx.c (simplify_const_relational_operation):
943 Do not constant-fold ORDERED and UNORDERED for
944 flag_unsafe_math_optimizations but only we do not need to
945 honor NaNs for the given mode.
947 2006-10-21 Richard Guenther <rguenther@suse.de>
950 * config/i386/i386.c (classify_argument): Remove redundant
951 walking of the BINFOs.
952 (contains_128bit_aligned_vector_p): Likewise.
954 2006-10-20 Mark Mitchell <mark@codesourcery.com>
956 * BASE-VER: Set to 4.3.0.
958 2006-10-20 Daniel Berlin <dberlin@dberlin.org>
960 * tree.h (DECL_PTA_ARTIFICIAL): Remove.
961 (tree_decl_with_vis): Remove artificial_pta_var flag.
962 * tree-flow.h (referenced_var_check_and_insert): Expose.
963 (nonlocal_all): New prototype.
964 * tree-ssa-structalias.c (nonlocal_for_type): Remove.
965 (nonlocal_all): Make global.
966 (nonlocal_lookup): Remove.
967 (nonlocal_insert): Ditto.
968 (create_nonlocal_var): Do not call nonlocal_insert.
969 (get_nonlocal_id_for_type): Remove.
970 (find_global_initializers): Mark new vars we find for renaming.
971 (intra_create_variable_infos): Only create one nonlocal.
972 (expand_nonlocal_solutions): Remove.
973 (compute_points_to_sets): Don't call it.
974 (ipa_pta_execute): Ditto.
975 (init_alias_heapvars): Don't create nonlocal_for_type.
976 (delete_alias_heapvars): Don't remove it.
977 * tree-ssa-operands.c (access_can_touch_variable): Don't prune
980 2006-10-19 Brooks Moses <bmoses@stanford.edu>
982 * doc/install.texi (Downloading GCC): Clarify mention of
983 Fortran in the "full distribution" description.
985 2006-10-19 Daniel Berlin <dberlin@dberlin.org>
987 Fix PR tree-optimization/28778
988 Fix PR tree-optimization/29156
989 Fix PR tree-optimization/29415
990 * tree.h (DECL_PTA_ARTIFICIAL): New macro.
991 (tree_decl_with_vis): Add artificial_pta_var flag.
992 * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
994 * tree-ssa-structalias.c (nonlocal_for_type): New variable.
995 (nonlocal_all): Ditto.
996 (struct variable_info): Add directly_dereferenced member.
997 (var_escaped_vars): New variable.
998 (escaped_vars_tree): Ditto.
999 (escaped_vars_id): Ditto.
1000 (nonlocal_vars_id): Ditto.
1001 (new_var_info): Set directly_dereferenced.
1002 (graph_size): New variable
1003 (build_constraint_graph): Use graph_size.
1004 (solve_graph): Don't process constraints that cannot change the
1005 solution, don't try to propagate an empty solution to our
1007 (process_constraint): Set directly_dereferenced.
1008 (could_have_pointers): New function.
1009 (get_constraint_for_component_ref): Don't process STRING_CST.
1010 (nonlocal_lookup): New function.
1011 (nonlocal_insert): Ditto.
1012 (create_nonlocal_var): Ditto.
1013 (get_nonlocal_id_for_type): Ditto.
1014 (get_constraint_for): Allow results vector to be empty in the case
1015 of string constants.
1016 Handle results of calls properly.
1017 (update_alias_info): Update alias info stats on number and type of
1019 (find_func_aliases): Use could_have_pointers.
1020 (make_constraint_from_escaped): Renamed from
1021 make_constraint_to_anything, and changed to make constraints from
1023 (make_constraint_to_escaped): New function.
1024 (find_global_initializers): Ditto.
1025 (create_variable_info_for): Make constraint from escaped to any
1026 global variable, and from any global variable to the set of
1028 (intra_create_variable_infos): Deal with escaped instead of
1029 pointing to anything.
1030 (set_uids_in_ptset): Do type pruning on directly dereferenced
1032 (find_what_p_points_to): Adjust call to set_uids_with_ptset.
1033 (init_base_vars): Fix comment, and initialize escaped_vars.
1034 (need_to_solve): Removed.
1035 (find_escape_constraints): New function.
1036 (expand_nonlocal_solutions): Ditto.
1037 (compute_points_to_sets): Call find_escape_constraints and
1038 expand_nonlocal_solutions.
1039 (delete_points_to_sets): Don't fall off the end of the graph.
1040 (init_alias_heapvars): Initialize nonlocal_for_type and
1042 (delete_alias_heapvars): Free nonlocal_for_type and null out
1045 2006-10-19 Eric Botcazou <ebotcazou@adacore.com>
1047 * fold-const.c (add_double): Rename to add_double_with_sign.
1048 Add 'unsigned_p' parameter and take it into account for the overflow.
1049 (mul_double): Rename to mul_double_with_sign.
1050 Add 'unsigned_p' parameter and take it into account for the overflow.
1051 (fold_div_compare): Call add_double_with_sign instead of add_double
1052 and mul_double_with_sign instead of mul_double, passing them the
1053 unsignedness of the type.
1054 * tree.h (add_double): Macroize.
1055 (add_double_with_sign): New prototype.
1056 (mul_double): Macroize.
1057 (mul_double_with_sign): New prototype.
1059 2006-10-19 Chen Liqin <liqin@sunnorth.com.cn>
1061 * config/score/crti.asm: New file.
1062 * config/score/crtn.asm: New file.
1063 * config/score/elf.h: New file.
1064 * config/score/mac.md: New file.
1065 * config/score/misc.md: New file.
1066 * config/score/mul-div.S: New file.
1067 * config/score/predicates.md: New file.
1068 * config/score/score7.md: New file.
1069 * config/score/score.c: New file.
1070 * config/score/score-conv.h: New file.
1071 * config/score/score.h: New file.
1072 * config/score/score.md: New file.
1073 * config/score/score-mdaux.c: New file.
1074 * config/score/score-mdaux.h: New file.
1075 * config/score/score-modes.def: New file.
1076 * config/score/score.opt: New file.
1077 * config/score/score-protos.h: New file.
1078 * config/score/score-version.h: New file.
1079 * config/score/t-score-elf: New file.
1080 * config.gcc: Add score*-*-* configurations(Update before).
1081 * doc/invoke.texi (Score Options): New section.
1082 * doc/md.texi (Score family): New section to document constraints.
1084 2006-10-19 Nick Clifton <nickc@redhat.com>
1086 * config/arm/arm.c: Fix spelling typo.
1088 2006-10-18 Tom Tromey <tromey@redhat.com>
1090 * doc/install.texi (Prerequisites): Mention automake 1.9.6.
1092 2006-10-18 Jan Hubicka <jh@suse.cz>
1095 * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
1098 2006-10-18 Marcin Dalecki <martin@dalecki.de>
1100 * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
1101 TSI_SAME_STMT, since that's the desired entity.
1103 2006-10-17 Wolfgang Gellerich <gellerich@de.ibm.com>
1105 * config/s390/contraints.md: New file.
1106 * config/s390/s390-protos.h (s390_mem_constraint,
1107 s390_O_constraint_str, s390_N_constraint_str,
1108 s390_float_const_zero_p): Function prototypes added.
1109 * config/s390/s390.c (s390_extra_constraint_str,
1110 s390_const_double_ok_for_constraint_p,
1111 s390_const_ok_for_constraint_p): Functions removed.
1112 (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
1113 s390_float_const_zero_p): New functions.
1114 * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
1115 CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
1116 EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
1117 Macro definitions removed.
1118 (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
1119 s390_extra_constraint_str): Functions removed.
1121 2006-10-17 Andrew Pinsiki <pinskia@gmail.com>
1122 Richard Sandiford <richard@codesourcery.com>
1125 * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
1126 * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
1128 2006-10-16 Geoffrey Keating <geoffk@apple.com>
1130 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
1131 (DWARF2_FRAME_REG_OUT): Likewise.
1132 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
1133 (DWARF2_FRAME_REG_OUT): Likewise.
1135 2006-10-17 Paul Brook <paul@codesourcery.com>
1137 * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
1139 2006-10-16 Brooks Moses <bmoses@stanford.edu>
1141 * doc/contrib.texi, doc/install.texi, doc/standards.texi:
1142 Standardize on "GNU Fortran" as the official name of the Fortran
1145 2006-10-16 Mike Stump <mrs@apple.com>
1147 * doc/invoke.texi (Darwin Options): Document -mkernel.
1148 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
1150 (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support. Add
1151 SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
1152 (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
1153 (OS_MISSING_ALTIVEC): Add.
1154 * config/i386/i386.c (override_options): Add
1155 SUBSUBTARGET_OVERRIDE_OPTIONS callout.
1156 * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
1157 -mkernel, -static or -mdynamic-no-pic is given.
1158 (C_COMMON_OVERRIDE_OPTIONS): Add.
1159 * config/darwin.opt (fapple-kext): Add.
1161 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
1162 -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
1164 (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
1165 (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
1166 (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
1167 (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
1168 (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
1169 (flag_mkernel): Add.
1170 (flag_apple_kext): Add.
1171 (TARGET_KEXTABI): Add.
1172 * config/darwin.c (darwin_handle_kext_attribute): Add.
1173 (DARWIN_VTABLE_P): Add.
1174 (darwin_binds_local_p): Add partial support for rebinding vtables
1176 (darwin_kextabi_p): Add.
1177 (darwin_override_options): Add.
1178 * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
1179 (darwin_kextabi_p): Add.
1180 (darwin_override_options): Add.
1181 * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
1182 __DYNAMIC__ and __STATIC__ here.
1184 2006-10-16 Brooks Moses <bmoses@stanford.edu>
1186 * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
1187 Added mention of "make pdf" target, and Texinfo requirements for
1190 2006-10-16 DJ Delorie <dj@redhat.com>
1192 * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
1193 into the GOT in case we need a subreg of the address.
1195 2006-10-16 Richard Guenther <rguenther@suse.de>
1198 * doc/extend.texi (X86 Built-in Functions): Fix typos in
1199 SSE builtin documentation. Document SSE2 builtins.
1201 2006-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1203 * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
1204 symbol in the output file for non-shared links when -nostdlib or
1205 -nodefaultlibs isn't specified.
1207 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
1208 posix thread support.
1210 2006-10-15 Jan Hubicka <jh@suse.cz>
1213 * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
1214 declared always_inline even when not inlining.
1216 2006-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
1217 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1218 Andrew Pinski <pinskia@gmail.com>
1221 * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
1223 2006-10-15 Jan Hubicka <jh@suse.cz>
1224 Richard Guenther <rguenther@suse.de>
1227 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
1228 process_function_and_variable_attributes on all variables, including
1229 those discovered during cgraph construction phase.
1231 2006-10-15 Bernhard Fischer <aldot@gcc.gnu.org>
1233 * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
1235 2006-10-14 Uros Bizjak <uros@kss-loka.si>
1237 * config/i386/athlon.md (athlon_fist): Add fisttp.
1239 2006-10-13 David Edelsohn <edelsohn@gnu.org>
1240 Ian Lance Taylor <ian@airs.com>
1243 * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
1244 CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
1247 2006-10-14 Kazu Hirata <kazu@codesourcery.com>
1249 * config/score/score.c, config/score/score.h: Fix comment
1252 2006-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1255 * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
1258 2006-10-13 Eric Christopher <echristo@apple.com>
1260 * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1262 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
1265 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
1266 * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
1267 alignment supported by 32-bit ELF.
1269 2006-10-13 Eric Christopher <echristo@apple.com>
1271 * config/darwin.c (darwin_emit_unwind_label): Strip
1272 name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
1274 2006-10-13 Richard Guenther <rguenther@suse.de>
1276 PR tree-optimization/29446
1277 * tree-vrp.c (fix_equivalence_set): Remove.
1278 (extract_range_from_assert): Do not call fix_equivalence_set.
1279 (debug_value_range): Print a newline.
1280 (compare_name_with_value): For equivalence sets with
1281 inconsistent value ranges conservatively bail out.
1282 (compare_names): Likewise.
1284 2006-10-13 David Edelsohn <edelsohn@gnu.org>
1286 * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
1287 and MPFR for gfortran.
1289 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
1291 * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
1292 alignment supported by 32-bit ELF.
1294 2006-10-13 Paolo Bonzini <bonzini@gnu.org>
1298 * c-typeck.c (digest_init): Always allow initializing vectors
1299 that have static storage duration with compound literals.
1300 * tree.c (build_type_attribute_qual_variant): New, based on
1301 build_type_attribute_variant.
1302 (build_type_attribute_variant): Rewrite using the former.
1303 (make_vector_type): Use build_type_attribute_qual_variant to build
1304 type variants. Use type_hash_canon on the others.
1306 2006-10-13 Daniel Berlin <dberlin@dberlin.org>
1307 Ramana Radhakrishnan <ramana.radhakrishnan@celunite.com>
1309 * tree-flow-inline.h (zero_ssa_operands): Fix comment.
1311 2006-10-12 Jan Hubicka <jh@suse.cz>
1314 * c-decl.c (c_make_fname_decl): Do not segfault in case where
1315 current_function_decl is set but current_function_scope is not.
1317 2006-10-12 Jie Zhang <jie.zhang@analog.com>
1319 * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
1320 emit_insn to emit eh_return_internal instruction.
1321 (eh_return_internal): Explicitly set pc.
1323 2006-10-11 Richard Guenther <rguenther@suse.de>
1325 PR tree-optimization/28230
1326 * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
1327 to the correct place.
1329 2006-10-11 Richard Guenther <rguenther@suse.de>
1332 * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
1335 2006-10-10 Brooks Moses <bmoses@stanford.edu>
1337 * configure.ac: Added pdf to "Make-hooks"
1338 * Makefile.in: Added TEXI2PDF definition, and various pdf-file
1339 targets and *.pdf file patterns in cleanup targets.
1340 * configure: Regenerated.
1342 2006-10-10 Anatoly Sokolov <aesok@post.ru>
1344 * config/avr/predicates.md: New file.
1345 * config/avr/avr.md: Include it.
1346 (REG_SP): New constant.
1347 (peepholes): Use predicates.
1348 (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
1349 difficult_branch, difficult_rvbranch, cbi, sbi, sbix_branch,
1350 sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
1352 2006-10-10 Adam Nemet <anemet@caviumnetworks.com>
1354 * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
1357 2006-10-10 Jakub Jelinek <jakub@redhat.com>
1360 * builtins.c (var_decl_component_p): New function.
1361 (fold_builtin_memset, fold_builtin_memory_op): Restrict
1362 single entry optimization to variables and components thereof.
1364 2006-10-10 Richard Guenther <rguenther@suse.de>
1366 PR rtl-optimization/29323
1367 * except.c (set_nothrow_function_flags): For functions
1368 that do not bind local bail out early.
1370 2006-10-10 Ben Elliston <bje@au.ibm.com>
1372 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
1375 2006-10-09 Richard Henderson <rth@redhat.com>
1377 Revert emutls patch.
1379 2006-10-09 Richard Guenther <rguenther@suse.de>
1382 * cgraphunit.c (verify_cgraph_node): Bail out on earlier
1385 2006-10-09 Steve Ellcey <sje@cup.hp.com>
1388 * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
1389 * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
1390 * configure: Regenerate.
1391 * config.in: Regenerate.
1393 2006-10-09 Aldy Hernandez <aldyh@redhat.com>
1395 * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
1397 2006-10-08 Richard Sandiford <richard@codesourcery.com>
1399 * config/mips/mips.c (mips_legitimize_tls_address): Implement
1400 all TLS models in the same way as local exec if !TARGET_ABICALLS.
1401 Remove stray newline.
1403 2006-10-08 Richard Sandiford <richard@codesourcery.com>
1405 * config/mips/mips.c (mips_classify_symbol): Do not return
1406 SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
1407 (mips_in_small_data_p): Tweak comments.
1409 2006-10-08 Richard Sandiford <richard@codesourcery.com>
1411 * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
1413 2006-10-07 Kazu Hirata <kazu@codesourcery.com>
1415 * gimplify.c, sched-int.h: Fix comment typos.
1417 * sched-int.h: Fix comment typos.
1419 2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1421 * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
1423 * sched-ebb.c (begin_schedule_ready): Use them.
1424 * haifa-sched.c (schedule_insn, move_insn, try_ready,
1425 add_to_speculative_block, create_check_block_twin, speculate_insn,
1426 fix_jump_move, move_block_after_check): Ditto.
1427 * sched-rgn.c (new_ready): Ditto.
1429 2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1431 PR rtl-optimization/29128
1432 * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
1433 * sched-ebb.c (advance_target_bb): Use it to fix condition to
1434 allow interblock movement of speculation checks.
1436 2006-10-06 Zdenek Dvorak <dvorakz@suse.cz>
1439 * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
1440 casted to integer type.
1441 (get_address_cost): Decrease cost of [symbol + index] addressing modes
1442 if they are significantly more expensive than [reg + index] ones.
1444 2006-10-06 Jakub Jelinek <jakub@redhat.com>
1446 PR tree-optimization/29330
1447 * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
1448 (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
1449 on newly allocated ddrs.
1450 (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
1451 to VEC (loop_p, heap) pointer.
1452 (compute_data_dependences_for_loop): Adjust caller.
1453 (free_dependence_relations): Free DDR_LOOP_NEST.
1455 * tree-loop-linear.c (linear_transform_loops): Don't forget to
1456 free DEPENDENCE_RELATIONS and DATAREFS.
1459 * builtins.c (expand_builtin_sync_operation,
1460 expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
1461 Use convert_to_mode to handle promoted arguments.
1463 2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
1465 * print-tree.c (print_node_brief, print_node): Print sign of Inf.
1467 2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
1469 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
1471 2006-10-05 Uros Bizjak <uros@kss-loka.si>
1473 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
1474 "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
1475 Use <modeconstraint> instead of "r" as operand 1 constraint.
1477 2006-10-06 Olivier Hainque <hainque@adacore.com>
1479 * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
1480 Don't recurse on the pointed-to type.
1481 * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
1482 DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
1483 types with components of variable size.
1485 2006-10-06 Danny Smith <dannysmith@users.sourceforge.net>
1487 * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
1489 2006-10-06 Jakub Jelinek <jakub@redhat.com>
1491 PR tree-optimization/29290
1492 * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
1496 * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
1497 * config/i386/predicates.md (local_symbolic_operand): Likewise.
1500 * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
1501 the number of vector elements fill the rest with zeros.
1503 2006-10-05 Richard Sandiford <richard@codesourcery.com>
1505 * config/mips/mips.c (mips_pass_by_reference): Do not return false
1506 for EABI if type is NULL. Use a size check based on GET_MODE_SIZE
1509 2006-10-05 Bernd Schmidt <bernd.schmidt@analog.com>
1511 * config/bfin/bfin.md (subsi3): Lose expander, change previously
1512 unnamed pattern into subsi3. Use correct constraints/predicates.
1513 * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
1514 * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
1516 2006-10-05 Ira Rosen <irar@il.ibm.com>
1518 * doc/loop.texi: Add data references analysis description.
1520 2006-10-04 Brooks Moses <bmoses@stanford.edu>
1522 * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
1524 2006-10-04 Richard Henderson <rth@redhat.com>
1525 Jakub Jelinek <jakub@redhat.com>
1527 * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
1528 * builtin-types.def (BT_WORD): Make unsigned.
1529 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
1530 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
1531 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
1532 * c-decl.c (grokdeclarator): Don't error if !have_tls.
1533 * c-parser.c (c_parser_omp_threadprivate): Likewise.
1534 * cgraph.c (decide_is_variable_needed): Look at force_output.
1535 Recurse for emulated tls.
1536 * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
1537 checks redundant with decide_is_variable_needed.
1538 (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
1539 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
1541 * expr.c (emutls_var_address): New.
1542 (expand_expr_real_1): Expand emulated tls.
1543 (expand_expr_addr_expr_1): Likewise.
1544 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
1545 * output.h (emutls_finish): Declare.
1546 * toplev.c (compile_file): Call it.
1547 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
1548 address before wrapping in CONST.
1549 * varasm.c (emutls_htab, emutls_object_type): New.
1550 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
1551 (get_emutls_object_name, get_emutls_object_type): New.
1552 (get_emutls_init_templ_addr, emutls_decl): New.
1553 (emutls_common_1, emutls_finish): New.
1554 (assemble_variable): When emulating tls, swap decls; generate
1555 constructor for the emutls objects.
1556 (do_assemble_alias): When emulating tls, swap decl and target name.
1557 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
1559 * emutls.c: New file.
1560 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
1561 tls_object for real tls.
1563 2006-10-04 Zack Weinberg <zackw@panix.com>
1565 Fix bug in constraint-check generator, reported by Rask Ingemann
1567 * genpreds.c (add_constraint): Don't remove anything from the
1569 (write_tm_constrs_h): Detect whether "op" argument is used, and
1570 mark it ARG_UNUSED if it isn't.
1571 (write_insn_const_int_ok_for_constraint): Skip the part of the
1572 expression that would test whether "op" (which is not available
1573 here) is a CONST_INT.
1575 2006-10-04 Ryan Mansfield <rmansfield@qnx.com>
1578 * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
1580 2006-10-03 Geoffrey Keating <geoffk@apple.com>
1582 * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
1583 current Leopard versions.
1584 * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
1586 2006-10-03 Kazu Hirata <kazu@codesourcery.com>
1588 * doc/install.texi: Fix typos.
1590 2006-10-03 Eric Botcazou <ebotcazou@libertysurf.fr>
1592 * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
1593 * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
1594 * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
1596 2006-10-02 Jack Howarth <howarth@bromo.med.uc.edu>
1598 * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
1599 arg to be struct mach_header_64* instead.
1601 2006-10-02 Jakub Jelinek <jakub@redhat.com>
1604 * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
1605 side effects after the outer expression's post side effects.
1607 2006-10-01 Sandra Loosemore <sandra@codesourcery.com>
1609 * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix
1610 comments to reflect actual behavior and relationship between
1611 DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
1613 * doc/c-tree.texi (Working with declarations): Fix documentation
1614 of FIELD_DECL likewise.
1616 2006-10-01 Ryan Mansfield <rmansfield@qnx.com>
1619 * doc/extend.texi: Add used variable attribute description.
1621 2006-09-30 Joseph S. Myers <joseph@codesourcery.com>
1624 * c.opt (Woverride-init): New.
1625 * c-opts.c (c_common_post_options): Default warn_override_init to
1627 * c-typeck.c (add_pending_init, output_init_element): Warn for
1628 overriding initializers without side effects.
1629 * doc/invoke.texi (-Woverride-init): Document.
1632 2006-09-30 Eric Botcazou <ebotcazou@libertysurf.fr>
1634 PR rtl-optimization/28096
1635 * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
1636 assignment has already been used as a destination earlier in the block.
1638 2006-09-29 Eric Botcazou <ebotcazou@adacore.com>
1640 * builtins.c (expand_builtin_setjmp): Delete.
1641 (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
1642 <BUILT_IN_SETJMP_SETUP>: New case.
1643 <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
1644 <BUILT_IN_SETJMP_RECEIVER>: Likewise.
1645 * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
1646 (BUILT_IN_SETJMP_DISPATCHER): Likewise.
1647 (BUILT_IN_SETJMP_RECEIVER): Likewise.
1648 * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
1649 (lower_function_body): Initialize it to false. If it is set to true
1650 at the end of the processing, emit the setjmp dispatcher.
1651 (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
1652 is __builtin_setjmp and set calls_builtin_setjmp to true as well.
1653 <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
1654 on the rhs of the assignment.
1655 (lower_builtin_setjmp): New function.
1656 * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
1657 BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
1658 * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
1659 to detect calls that can go to non-local labels. Use specific
1660 helper to create the abnormal edges associated with them.
1661 <MODIFY_EXPR>: Likewise.
1662 (make_abnormal_goto_edges): New function extracted from...
1663 (make_goto_expr_edges): ...here. Call it for computed gotos.
1664 (simple_goto_p): Minor tweak.
1665 (tree_can_make_abnormal_goto): New predicate.
1666 (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
1667 (tree_purge_dead_abnormal_call_edges): New function.
1668 * tree-flow.h (tree_can_make_abnormal_goto): Declare.
1669 (tree_purge_dead_abnormal_call_edges): Likewise.
1670 (make_abnormal_goto_edges): Likewise.
1671 * tree-inline.c (expand_call_inline): Simplify statement frobbing.
1672 Purge all dead abnormal edges if the call was in the last statement.
1673 * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
1674 (execute_fixup_cfg): If there are non-local labels in the function,
1675 scan the basic blocks and split them at calls that can go to non-local
1676 labels or add missing abnormal call edges. Write down the CFG in the
1678 (pass_fixup_cfg): Remove TODO_dump_func flag.
1679 * unwind-sjlj.c: Poison setjmp.
1680 * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
1681 * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
1682 (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
1683 (DONT_USE_BUILTIN_SETJMP): Document it.
1685 2006-09-28 Geoffrey Keating <geoffk@apple.com>
1688 * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
1689 to 1 when __ppc64__ is defined.
1690 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
1692 * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
1694 2006-09-28 Steve Ellcey <sje@cup.hp.com>
1696 * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
1697 * config/ia64/unwind-hpux.c: Delete.
1699 2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
1701 * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
1702 on the element before gimplifying it, instead of punting if it is of
1705 2006-09-28 Zdenek Dvorak <dvorakz@suse.cz>
1707 * doc/loop.texi: New file.
1708 * doc/gccint.texi: Reference loop.texi.
1709 * Makefile.in (loop.texi): Add.
1711 2006-09-27 Geoffrey Keating <geoffk@apple.com>
1713 * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
1715 * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
1716 * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
1718 2006-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
1720 * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
1722 2006-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
1724 * doc/install.texi: Document required versions of GMP and MPFR.
1726 2006-09-27 Paul Brook <paul@codesourcery.com>
1729 * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
1731 2006-09-27 Richard Sandiford <richard@codesourcery.com>
1733 * reload1.c (alter_reg): Require the alignment of the stack slot to
1734 be at least reg_max_ref_width bytes.
1735 (scan_paradoxical_subregs): Record the largest width in
1738 2006-09-26 Jakub Jelinek <jakub@redhat.com>
1742 * tree-nested.c (struct nesting_info): Added static_chain_added.
1743 (convert_call_expr): Set static_chain_added when adding static
1744 chain. Handle OMP_PARALLEL and OMP_SECTION.
1746 2006-09-25 Matthias Klose <doko@debian.org>
1748 * doc/invoke.texi: Add missing full stop.
1750 2006-09-25 Richard Henderson <rth@redhat.com>
1752 * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
1753 before cgraph_function_flags_ready.
1755 2006-09-24 Zdenek Dvorak <dvorakz@suse.cz>
1756 Adam Nemet <anemet@caviumnetworks.com>
1758 * tree-ssa-loop-ivopts.c (aff_combination_convert,
1759 determine_common_wider_type): New functions.
1760 (get_computation_aff): Use them to simplify arithmetic between
1761 UBASE and CBASE if they are shortened from the same type.
1763 2006-09-24 Kazu Hirata <kazu@codesourcery.com>
1766 * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
1767 -2147483647 - 1 instead of 0x80000000.
1769 2006-09-23 Revital1 Eres <ERES@il.ibm.com>
1771 * flags.h (HONOR_NANS): Fix typo in comment.
1773 2006-09-23 Uros Bizjak <uros@kss-loka.si>
1775 * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
1777 2006-09-23 Jakub Jelinek <jakub@redhat.com>
1781 * tree.c (merge_attributes, attribute_list_contained): If both
1782 TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
1784 * c-typeck.c (comptypes_internal): Don't consider aggregates
1785 in different TUs as compatible if there one set of attributes is
1786 not a subset of the other type's attributes.
1787 (composite_type): Try harder not to create a new aggregate type.
1789 2006-09-22 Geoffrey Keating <geoffk@apple.com>
1791 * config/i386/driver-i386.c: Always define host_detect_local_cpu.
1792 * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
1793 or x86_64 host. Define HAVE_LOCAL_CPU_DETECT.
1794 (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
1795 than replicating condition above.
1796 * config.host (i[34567]86-*-*): Always use driver-i386.o.
1798 * config/darwin.h (LINK_SYSROOT_SPEC): New.
1799 (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
1800 the linker by default.
1802 2006-09-22 Mike Stump <mrs@apple.com>
1804 * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
1807 2006-09-22 Richard Guenther <rguenther@suse.de>
1810 * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
1811 sort of stack variables stable.
1813 2006-09-22 Peter Bergner <bergner@vnet.ibm.com>
1816 * explow.c (force_reg): Set REG_POINTER flag according to
1819 2006-09-22 Zdenek Dvorak <dvorakz@suse.cz>
1821 PR tree-optimization/28888
1822 * tree-if-conv.c (combine_blocks): Rewritten.
1823 * tree-cfg.c (tree_verify_flow_info): Check that edges with
1824 EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
1826 2006-09-22 Jakub Jelinek <jakub@redhat.com>
1828 * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
1831 2006-09-21 Richard Sandiford <richard@codesourcery.com>
1833 * varasm.c (copy_constant): Fix reversed gcc_assert check.
1835 2006-09-21 Janis Johnson <janis187@us.ibm.com>
1837 * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
1839 2006-09-21 Roger Sayle <roger@eyesopen.com>
1842 * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
1843 dw_fde_current_label, to be the start of the function, i.e. the same
1844 value as dw_fde_begin.
1846 2006-09-20 Richard Sandiford <richard@codesourcery.com>
1848 * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
1849 * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
1850 (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
1851 (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
1852 (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
1853 (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
1854 (abs<mode>2, neg<mode>2): Likewise.
1855 * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
1856 (*mips_abs_ps): New define_insn.
1858 2006-09-20 Josh Conner <jconner@apple.com>
1861 * calls.c (expand_call): Allow reuse of structure return stack
1864 2006-09-20 Paul Brook <paul@codesourcery.com>
1866 * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
1869 2006-09-20 Janis Johnson <janis187@us.ibm.com>
1871 * doc/extend.texi (Decimal Float): Update for latest draft TR,
1872 clean up terminology.
1874 2006-09-20 Steve Ellcey <sje@cup.hp.com>
1877 * ifcvt.c (dead_or_predicable): Don't predicate then blocks
1878 with tablejumps in them.
1880 2006-09-20 Jakub Jelinek <jakub@redhat.com>
1883 * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
1884 wrap it into TARGET_EXPR.
1886 2006-09-20 Eric Christopher <echristo@apple.com>
1888 * config/i386/i386.c (x86_fisttp): Remove.
1889 * config/i386/i386.h (x86_fisttp): Ditto.
1890 (TARGET_FISTTP): Ditto.
1892 2006-09-19 Eric Christopher <echristo@apple.com>
1894 * doc/tm.texi (OBJC_JBLEN): Describe.
1895 * config/i386/darwin.h (OBJC_JBLEN): Define.
1896 * config/rs6000/darwin.h: Ditto.
1898 2006-09-19 Steven Bosscher <steven@gcc.gnu.org>
1900 PR rtl-optimization/21299
1901 * reload1.c (reload): Purge invalid ASMs in the final pass.
1903 2006-09-19 Steve Ellcey <sje@cup.hp.com>
1906 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
1907 pointers as legitimate constants.
1909 2006-09-19 Paul Brook <paul@codesourcery.com>
1912 * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
1914 2006-09-17 Zdenek Dvorak <dvorakz@suse.cz>
1916 PR tree-optimization/28887
1917 * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
1918 component parts from the reference.
1919 (gather_memory_references_ref): Record the reference without the
1920 nonaddressable component parts.
1922 2006-09-17 Steven Bosscher <steven@gcc.gnu.org>
1925 * c-opts.c (c_common_handle_option): Ignore the -std options
1926 if the input language is assembly.
1928 2006-09-17 Ira Rosen <irar@il.ibm.com>
1931 * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
1933 (ptr_ptr_may_alias_p): Likewise.
1934 (record_record_differ_p): New function.
1935 (base_object_differ_p): Call record_record_differ_p.
1937 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
1940 * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
1941 away for the expr argument.
1943 2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
1946 * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
1947 before using it for dumping after vectorizing loops.
1949 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
1950 Jack Howarth <howarth@bromo.med.uc.edu>
1953 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
1954 skip on error_mark_node.
1955 (rs6000_darwin64_record_arg_recurse): Likewise.
1957 2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
1959 * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
1960 * doc/rtl.texi: Remove related documentation.
1962 2006-09-16 Bernd Schmidt <bernd.schmidt@analog.com>
1964 * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
1967 2006-09-15 Jim Wilson <wilson@specifix.com>
1969 * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
1970 Handle symbol offsets same as they are handled in ia64_expand_move
1973 2006-09-16 Andreas Tobler <a.tobler@schweiz.org>
1975 * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
1976 Add forgotten parameter to the fprintf call.
1978 2006-09-15 Steve Ellcey <sje@cup.hp.com>
1980 * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
1982 2006-09-15 Uros Bizjak <uros@kss-loka.si>
1984 * doc/contrib.texi: Add my entry.
1986 2006-09-15 Nick Clifton <nickc@redhat.com>
1988 * doc/md.texi (Processor pipeline description): Fix typo in
1989 example of how to use the absence_set directive and reword the
1990 description to make it slightly easier to read.
1992 2006-09-15 Bernd Schmidt <bernd.schmidt@analog.com>
1994 * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
1995 * loop-doloop.c (doloop_optimize): Use it to limit costs of
1996 expanding the number of iterations.
1997 * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
1999 * cfgrtl.c (emit_insn_at_entry): New function.
2000 * rtl.h (emit_insn_at_entry): Declare it.
2001 * integrate.c (emit_initial_value_sets): Use it.
2003 * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
2005 * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
2007 (struct loop_work and related VEC declarations): Delete.
2008 (bfin_dump_loops): Print out new member bad.
2009 (bfin_bb_in_loop): Use plain bitmap test. Don't recurse.
2010 (bfin_scan_loop): Don't recurse.
2011 (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
2012 loops. No longer need to update outer loops if the current one is
2013 found bad. Move some validitiy checks to bfin_discover_loop.
2014 (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
2015 but changed not to check for nesting. Also changed to use the new bad
2017 (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
2018 time. Use bitmap based test to discover loop nesting.
2020 2006-09-15 Kazu Hirata <kazu@codesourcery.com>
2022 * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
2025 2006-09-14 Richard Guenther <rguenther@suse.de>
2026 Kazu Hirata <kazu@codesourcery.com>
2028 PR middle-end/28884.
2029 * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
2030 (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
2031 Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
2032 with TARGET_FUNCTION_VALUE.
2034 2006-09-14 Anatoly Sokolov <aesok@post.ru>
2037 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
2039 2006-09-13 Aldy Hernandez <aldyh@redhat.com>
2041 * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
2044 2006-09-13 Andrew Pinski <pinskia@physics.uc.edu>
2047 * dwarf2out.c (loc_descriptor_from_tree_1): Handle
2050 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
2052 * basic_block.h (bb_has_eh_pred): Fix comment.
2054 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
2056 * flow.c (calculate_global_regs_live): Invalidate eh registers
2057 on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
2058 (propagate_block): Handle eh registers as if they were set at basic
2060 * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
2062 * global.c (global_conflicts): Make eh registers to conflict with
2063 pseudos live at basic block begin.
2064 * basic_block.h (bb_has_eh_pred): New function.
2066 2006-09-13 Richard Sandiford <richard@codesourcery.com>
2068 PR rtl-optimization/28982
2069 * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
2070 index of a PRE_MODIFY or POST_MODIFY address.
2071 * reload1.c (inc_for_reload): Use find_replacement on the original
2072 base and index registers.
2074 2006-09-12 H.J. Lu <hongjiu.lu@intel.com>
2076 * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
2077 for -Os. Update __m128 alignment requirement.
2079 2006-09-13 Jan Hubicka <jh@suse.cz>
2081 * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
2083 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2085 PR rtl-optimization/28243
2086 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
2087 the insn to which the note was originally attached.
2089 2006-09-12 Andrew Pinski <pinskia@physics.uc.edu>
2090 Roger Sayle <roger@eyesopen.com>
2092 * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
2093 outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
2094 on platforms that don't use dwarf for debug info.
2096 2006-09-12 Jason Merrill <jason@redhat.com>
2099 * builtins.c (expand_builtin_setjmp_receiver): Clobber
2100 hard_frame_pointer_rtx after using it to update the frame pointer.
2102 2006-09-12 Roger Sayle <roger@eyesopen.com>
2104 * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
2105 (TARGET_ASM_CLOSE_PAREN): Likewise.
2106 * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
2107 (TARGET_ASM_CLOSE_PAREN): Likewise.
2109 2006-09-12 Roger Sayle <roger@eyesopen.com>
2112 * config/alpha/alpha.c (alpha_start_function): Don't emit stack
2113 frame information for frames larger than 512 Kbytes on Tru64 when
2114 using the native assembler.
2116 2006-09-12 Roger Sayle <roger@eyesopen.com>
2120 * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
2121 and symbols. Instead use the implementation from cse.c's hash_rtx.
2123 2006-09-12 Jan Hubicka <jh@suse.cz>
2125 PR rtl-optimization/28071
2126 * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
2127 (vect_transform_loop): Likewise.
2128 * tree-vectorizer.c (new_loop_vec_info): Likewise.
2129 (new_loop_vec_info): Likewise.
2130 (destroy_loop_vec_info): Likewise.
2131 * tree-dfa.c (create_var_ann): Use GCC_CNEW.
2132 (create_stmt_ann): Likewise.
2133 (create_tree_ann): Rename to ...
2134 (create_tree_common_ann): ... this one; allocate only the common part
2136 * tree-vn.c (set_value_handle): Use get_tree_common_ann.
2137 (get_value_handle): Likewise.
2138 * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
2139 get_tree_common_ann.
2140 * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
2141 (vinfo_for_stmt): Use stmt annotations.
2142 * tree-flow.h (tree_ann_common_t): New type.
2143 (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
2144 (tree_ann, get_tree_ann, create_tree_ann): New.
2145 * tree-flow-inline.h (get_function_ann): Do more type checking.
2146 (stmt_ann): Likewise.
2147 (tree_ann): Rename to ...
2148 (tree_common_ann): ... this one; return ony common_ann
2149 (get_tree_ann): Rename to ...
2150 (tree_common_ann): This one; return only common_ann.
2151 * tree-vect-patterns.c (vect_pattern_recog_1): Update call
2154 2006-09-11 Geoffrey Keating <geoffk@apple.com>
2156 * config.gcc (i[34567]86-*-darwin*): Set with_arch and
2157 with_cpu by default.
2159 * dwarf2out.c (dwarf_file_data): New.
2160 (enum dw_val_class): Add dw_val_class_file.
2161 (struct dw_val_struct): Add val_file.
2162 (file_table): Change to a hash table.
2163 (file_table_emitted): Delete.
2164 (file_table_last_lookup_index): Delete.
2165 (emitcount): Delete.
2166 (last_emitted_file): New.
2167 (lookup_filename): Change prototype to return a struct dwarf_file_data.
2168 (init_file_table): Delete.
2169 (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
2170 (AT_addr): Add comment.
2174 (print_die): Handle dw_val_class_file.
2175 (print_dwarf_line_table): Update for new file table structure.
2176 (attr_checksum): Do checksum a filename.
2177 (same_dw_val_p, same_attr_p): Do compare a filename.
2178 (size_of_die): Handle dw_val_class_file.
2179 (value_format): Likewise.
2180 (output_die): Likewise. Also, call maybe_emit_file here.
2181 (struct file_info): Constify filenames. Make file_idx a pointer
2182 to a struct dwarf_file_data.
2183 (struct dir_info): Constify directory names. Remove 'used' field.
2184 (struct file_name_acquire_data): New.
2185 (file_name_acquire): New.
2186 (output_file_names): Modify to handle new file data structures.
2187 (add_src_coords_attributes): Use add_AT_file.
2188 (add_call_src_coords_attributes): Likewise.
2189 (dwarf2out_imported_module_or_decl): Likewise.
2190 (gen_subprogram_die): Modify for new file data structures.
2191 (gen_variable_die): Likewise.
2192 (file_table_eq): New.
2193 (file_table_hash): New.
2194 (file_table_last_lookup): New.
2195 (lookup_filename): Rewrite to handle new file data structures.
2196 (maybe_emit_file): Rewrite to handle new file data structures.
2197 (dwarf2out_source_line): Always call lookup_filename and
2199 (dwarf2out_init): Create file_table here.
2200 (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
2201 (file_table_relative_p): New.
2202 (dwarf2out_finish): Change detection of relative filenames
2203 to work with new file data structures. Move output_line_info call
2204 after debug_info output.
2206 2006-09-11 H.J. Lu <hongjiu.lu@intel.com>
2211 * config/i386/i386.c (override_options): Always default to 16
2212 byte stack boundary.
2214 2006-09-11 Alexandre Oliva <aoliva@redhat.com>
2217 * var-tracking.c (dump_dataflow_set): Start dumping at
2219 (clobber_variable_part): Kill only the variable part in
2220 registers holding it, leaving other variables alone.
2222 2006-09-11 Josh Triplett <josh@freedesktop.org>
2224 * doc/extend.texi (Other Builtins): Actually use the macro
2225 argument in the documentation example for
2226 __builtin_types_compatible_p.
2228 2006-09-11 Eric Botcazou <ebotcazou@libertysurf.fr>
2230 PR rtl-optimization/28726
2231 * sched-deps.c (sched_analyze_reg): New function extracted from...
2232 (sched_analyze_1): ...here. Call it to analyze references to
2233 registers. Treat again writes to a stack register as writing to the
2235 (sched_analyze_2): ...and here. Call it to analyze references to
2236 registers. Treat again reads of a stack register as reading the
2239 2006-09-11 Guenter Roeck <guenter@roeck-us.net>
2240 David Edelsohn <edelsohn@gnu.org>
2243 * config/rs6000/spe.md (frob_df_di): Remove %H.
2244 (frob_di_df): Remove %H. Change evmergelo to mr.
2245 (frob_di_df_2): Remove %H. Change evldd to two loads.
2247 2006-09-11 Hideki Iwamoto <h-iwamoto@kit.hi-ho.ne.jp>
2249 * doc/cpp.texi: Fix names of charset options.
2251 2006-09-10 Andrew Pinski <pinskia@physics.uc.edu>
2254 * config/i386/i386.c (override_options): Use 128-bit
2255 stack boundary always for 64bits.
2257 2006-09-10 Eric Botcazou <ebotcazou@libertysurf.fr>
2259 PR rtl-optimization/28636
2260 * combine.c (force_to_mode): Test for side-effects before
2261 substituting by zero.
2262 (simplify_shift_const): Likewise for zero or other constants.
2264 2006-09-10 Steven Bosscher <steven@gcc.gnu.org>
2267 * builtins.c (expand_builtin_setjmp): Force next_lab to be
2270 2006-09-10 Richard Sandiford <richard@codesourcery.com>
2273 * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
2274 * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
2275 returned by mode_for_size, rather than the mode of src itself,
2276 to choose between 32-bit and 64-bit patterns.
2277 (mips_mem_fits_mode_p): New function.
2278 * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
2279 that the size of the source matches the size of the destination.
2280 (mov_<store>l, mov_<store>r): Likewise.
2282 2006-09-10 Eric Christopher <echristo@apple.com>
2284 * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
2287 2006-09-09 Eric Christopher <echristo@apple.com>
2290 * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
2293 2006-09-09 Roger Sayle <roger@eyesopen.com>
2294 Nicolas Setton <setton@adacore.com>
2296 * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
2298 2006-09-10 Andreas Schwab <schwab@suse.de>
2300 * config/m68k/m68k.md (bungt_rev): New pattern.
2302 2006-09-09 Paolo Bonzini <bonzini@gnu.org>
2303 Dale Johannesen <dalej@apple.com>
2306 * regclass.c (struct reg_pref): Update documentation.
2307 (regclass): Set prefclass to NO_REGS if memory is the best option.
2308 (record_reg_classes): Cope with a prefclass set to NO_REGS.
2310 2006-09-08 Eric Christopher <echristo@apple.com>
2312 * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
2313 * config/t-slibgcc-darwin: Support x86_64 multilib.
2314 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
2315 Return 1 for x86_64-darwin.
2316 * config/i386/t-darwin: Add m64 multilib.
2317 (LIB2_SIDITI_CONV_FUNCS): Use.
2318 (LIB2FUNCS_EXTRA): Ditto.
2319 * config/i386/darwin.h: Support x86_64.
2320 * config/i386/i386.c (override_options): Turn on flag_pic
2321 for x86_64-darwin. Disable flag_omit_pointer.
2322 (get_pc_thunk_name): Assert !TARGET_64BIT.
2323 (legitimate_address_p): Disable machopic addressing for
2325 (legitimize_pic_address): Ditto.
2326 (ix86_expand_move): Ditto.
2327 (ix86_expand_call): Ditto.
2328 (machopic_output_stub): Ditto.
2329 * config/darwin.c (machopic_select_section): Support literal16.
2330 (machopic_select_rtx_section): Ditto.
2331 * config/darwin-sections.def: Ditto.
2332 * config/darwin-64.c: New.
2334 2006-09-08 Joseph S. Myers <joseph@codesourcery.com>
2337 * c-tree.h (struct c_arg_info): Add pending_sizes.
2338 * c-parser.c (c_parser_parms_declarator,
2339 c_parser_parms_list_declarator): Initialize pending_sizes.
2340 * c-decl.c (get_parm_info): Initialize pending_sizes.
2341 (get_parm_info): Set pending_sizes.
2342 (grokdeclarator): Call put_pending_sizes for parameters for
2343 function definition only.
2345 2006-09-07 Jason Merrill <jason@redhat.com>
2348 * varasm.c (output_constant): Only strip actual no-op conversions.
2351 * config/i386/i386.c (override_options): Use 128-bit
2352 stack boundary if -msse.
2354 2006-09-07 Eric Christopher <echristo@apple.com>
2356 * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
2358 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
2361 2006-09-07 Geoffrey Keating <geoffk@apple.com>
2363 * dwarf2out.c: Remove strange characters from comment above
2364 dwarf2out_frame_debug_expr.
2366 2006-09-07 Eric Christopher <echristo@apple.com>
2368 * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
2369 * config/darwin.h: ... to here.
2371 2006-09-07 H.J. Lu <hongjiu.lu@intel.com>
2373 * config/i386/i386.c (x86_partial_flag_reg_stall): New.
2375 * config/i386/i386.h (x86_partial_flag_reg_stall): New.
2376 (TARGET_PARTIAL_FLAG_REG_STALL): New.
2378 * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
2379 TARGET_PARTIAL_FLAG_REG_STALL.
2380 (*ashldi3_cconly_rex64): Likewise.
2381 (*ashlsi3_cmp): Likewise.
2382 (*ashlsi3_cconly): Likewise.
2383 (*ashlsi3_cmp_zext): Likewise.
2384 (*ashlhi3_cmp): Likewise.
2385 (*ashlhi3_cconly): Likewise.
2386 (*ashlqi3_cmp): Likewise.
2387 (*ashlqi3_cconly): Likewise.
2388 (*ashrdi3_cmp_rex64): Likewise.
2389 (*ashrdi3_cconly_rex64): Likewise.
2390 (*ashrsi3_cmp): Likewise.
2391 (*ashrsi3_cconly): Likewise.
2392 (*ashrsi3_cmp_zext): Likewise.
2393 (*ashrhi3_cmp): Likewise.
2394 (*ashrhi3_cconly): Likewise.
2395 (*ashrqi3_cmp): Likewise.
2396 (*ashrqi3_cconly): Likewise.
2397 (*lshrdi3_cmp_rex64): Likewise.
2398 (*lshrdi3_cconly_rex64): Likewise.
2399 (*lshrsi3_cmp): Likewise.
2400 (*lshrsi3_cconly): Likewise.
2401 (*lshrsi3_cmp_zext): Likewise.
2402 (*lshrhi3_cmp): Likewise.
2403 (*lshrhi3_cconly): Likewise.
2404 (*lshrqi2_cmp): Likewise.
2405 (*lshrqi2_cconly): Likewise.
2407 2006-09-07 Uros Bizjak <uros@kss-loka.si>
2410 * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
2411 "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
2412 "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
2413 "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
2414 "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
2415 "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
2416 "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
2417 "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
2418 "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
2419 implement only CC setting effects of shift instructions.
2421 2006-09-07 Martin Michlmayr <tbm@cyrius.com>
2423 * doc/contrib.texi: Add myself.
2425 2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
2428 * stor-layout.c (relayout_decl): Don't zero the alignment if it
2429 was set by the user.
2431 2006-09-07 Paolo Bonzini <bonzini@gnu.org>
2434 * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
2435 (divsi_inv_m1): Use them.
2436 (UNSPEC_DIV_INV_TABLE): New constant.
2438 2006-09-06 James E Wilson <wilson@specifix.com>
2441 * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
2442 then call count_or_remove_death_notes.
2444 2006-09-06 Jason Merrill <jason@redhat.com>
2447 * tree-inline.c (copy_result_decl_to_var): New fn.
2448 (declare_return_variable): Use it. Call declare_inline_vars here.
2449 (expand_call_inline): Not here.
2451 2006-09-06 Diego Novillo <dnovillo@redhat.com>
2453 * doc/contrib.texi: Update my entry.
2455 2006-09-06 Nick Clifton <nickc@redhat.com>
2457 * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
2459 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
2462 * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
2463 (canonicalize_induction_variables): Likewise.
2464 (tree_unroll_loops_completely): Likewise.
2465 (tree_ssa_prefetch_arrays): Likewise.
2466 (remove_empty_loops): Likewise.
2467 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
2468 TODO_cleanup_cfg instead of directly calling
2469 cleanup_tree_cfg_loop.
2470 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
2472 (tree_unroll_loops_completely): Likewise.
2473 (remove_empty_loops): Likewise.
2474 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
2475 * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
2476 of tree_ssa_unswitch_loops.
2477 (tree_ssa_loop_ivcanon): Use the return value of
2478 canonicalize_induction_variables.
2479 (tree_ssa_empty_loop): Use the return value of
2481 (tree_complete_unroll): Use the return value of
2482 tree_unroll_loops_completely.
2483 (tree_ssa_loop_prefetch): Use the return value of
2484 tree_ssa_prefetch_arrays.
2485 * passes.c (execute_todo): Before Cleanup CFG, set
2486 updating_used_alone and after cleanup CFG, call
2487 recalculate_used_alone.
2489 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
2492 * tree-vect-transform.c (vectorizable_condition): Move the check
2493 for the type after the check for simple condition.
2495 2006-09-05 J"orn Rennecke <joern.rennecke@st.com>
2496 Kaz Kojima <kkojima@gcc.gnu.org>
2499 * mode-switching.c (optimize_mode_switching): Make the destination
2500 block of an abnormal edge have no anticipatable mode. Don't
2501 insert mode switching code at the end of the source block of
2504 2006-09-05 Paolo Bonzini <bonzini@gnu.org>
2506 PR rtl-optimization/26847
2507 * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
2508 (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
2509 (simplify_plus_minus): Count n_constants while filling ops. Replace
2510 qsort with insertion sort. Before going through the array to simplify
2511 pairs, sort it. Delay early exit until after the first sort, exiting
2512 only if no swaps occurred. Simplify pairs in reversed order, without
2513 special-casing the first iteration. Pack ops after simplifying pairs.
2515 2006-09-05 Anatoly Sokolov <aesok@post.ru>
2517 * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
2518 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2519 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2520 (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
2522 2006-09-05 Richard Guenther <rguenther@suse.de>
2524 PR tree-optimization/28900
2525 * tree-if-conv.c (find_phi_replacement_condition): Gimplify
2526 compound conditional before creating COND_EXPR condition.
2528 2006-09-05 Richard Guenther <rguenther@suse.de>
2530 PR tree-optimization/28905
2531 * tree-vrp.c (fix_equivalence_set): Manually implement
2532 !value_ranges_intersect_p to also handle symbolic ranges.
2534 2006-09-05 Richard Guenther <rguenther@suse.de>
2537 * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
2540 2006-09-04 Eric Botcazou <ebotcazou@libertysurf.fr>
2542 PR rtl-optimization/27616
2543 * cse.c (table_size): New static variable.
2544 (new_basic_block): Initialize it to 0.
2545 (remove_from_table): Decrement it.
2546 (insert): Increment it.
2547 (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
2548 (fold_rtx_mem): Enforce a cap on the recursion depth. Call
2549 fold_rtx_mem_1 if under the cap.
2550 (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
2551 the lookup of the equivalent expression and test for equality of the
2552 first operand of the equivalent expression before in turn looking up
2553 an equivalent constant for the second operand.
2555 2006-09-02 Geoffrey Keating <geoffk@apple.com>
2558 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
2559 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
2560 pointer, instead of assuming it is possible to derive the
2561 correct args size from a call insn.
2563 2006-09-02 Jakub Jelinek <jakub@redhat.com>
2566 * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
2567 (fold_builtin_mempcpy): Rename to...
2568 (fold_builtin_memory_op): ... this. Optimize one element copy
2570 (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
2572 (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
2573 (expand_builtin_memcpy, expand_builtin_mempcpy,
2574 expand_builtin_memmove): Likewise. Use fold_builtin_memory_op.
2575 (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
2576 BUILT_IN_BCOPY. Use fold_builtin_memory_op for
2577 BUILT_IN_MEM{CPY,PCPY,MOVE}.
2579 2006-09-01 DJ Delorie <dj@redhat.com>
2581 * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
2582 (stzx_16): Likewise.
2583 ("stzx_24_<mode>"): Likewise.
2584 ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
2585 ("cmp<mode>_op"): New.
2586 (cmp<mode>): Change to expander; just save operands.
2588 (b<code>): Change to expander, emit compare here.
2589 (s<code>_op): Change to use split and expander.
2590 (s<code>_24_op): Likewise.
2591 (s<code>_<mode>): New.
2592 (s<code>_<mode>_24): New.
2593 (movqicc_<code>_<mode): New.
2594 (movhicc_<code>_<mode>): New.
2597 * config/m32c/m32c.c (compare_op0, compare_op1): New.
2598 (m32c_pend_compare): New.
2599 (m32c_unpend_compare): New.
2600 (m32c_expand_scc): New.
2601 (m32c_expand_movcc): Emit the compare also.
2602 * config/m32c/predicates.md (mra_nopp_operand): New.
2604 2006-09-01 J"orn Rennecke <joern.rennecke@st.com>
2605 Richard Guenther <rguenther@suse.de>
2606 Adam Nemet <anemet@caviumnetworks.com>
2609 * builtins.c (get_pointer_alignment): Handle more forms
2610 of base addresses that can be used to derive more precise
2611 information about alignment.
2613 2006-09-01 Jason Merrill <jason@redhat.com>
2616 * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
2619 * gimplify.c (voidify_wrapper_expr): Handle null type.
2621 2006-09-01 Josh Conner <jconner@apple.com>
2624 * tree-nrv.c (dest_safe_for_nrv_p): New function.
2625 (execute_return_slot_opt): Use it.
2627 2006-08-31 Josh Conner <jconner@apple.com>
2630 * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
2631 returning aggregates.
2633 2006-08-31 Zdenek Dvorak <dvorakz@suse.cz>
2635 PR tree-optimization/28839
2636 * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
2637 blocks in that phi arguments appear.
2639 2006-08-31 Roger Sayle <roger@eyesopen.com>
2642 * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
2643 NULL, otherwise use an advance_loc4 to adjust relative to the
2645 (output_cfi) <DW_CFA_set_loc>: Update the current label.
2646 (dwarf2out_switch_text_section): Reset the current label to avoid
2647 using advance_loc4 over section boundaries.
2649 2006-08-31 Andreas Krebbel <krebbel1@de.ibm.com>
2652 * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
2653 r12 + SYMBOLIC_CONST.
2655 2006-08-30 Richard Guenther <rguenther@suse.de>
2657 * Makefile.in (see.o): Add $(EXPR_H) dependency.
2659 2006-08-30 Zdenek Dvorak <dvorakz@suse.cz>
2661 PR rtl-optimization/27735
2662 * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
2663 Add new argument to keep track of whether an irreducible region
2664 was affected. All callers changed.
2665 (fix_irreducible_loops): Removed.
2666 (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
2667 flags were invalidated.
2669 2006-08-29 H.J. Lu <hongjiu.lu@intel.com>
2671 * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
2672 instead of SF operands.
2673 (*fop_df_comm_sse): Likewise.
2674 (*fop_df_comm_i387): Likewise.
2675 (*fop_df_1_mixed): Likewise.
2676 (*fop_df_1_sse): Likewise.
2678 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
2679 J"orn Rennecke <joern.rennecke@st.com>
2681 PR tree-optimization/17506
2682 * tree-ssa.c (warn_uninit): If warning about a location outside of
2683 the current function, note where the variable was declared.
2685 2006-08-28 Zdenek Dvorak <dvorakz@suse.cz>
2687 PR tree-optimization/28411
2688 * double-int.c (double_int_div): Use double_int_divmod.
2689 (double_int_divmod, double_int_sdivmod, double_int_udivmod,
2690 double_int_mod, double_int_smod, double_int_umod): New functions.
2691 * double-int.h (double_int_divmod, double_int_sdivmod,
2692 double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
2694 * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
2696 (get_computation_aff, get_computation_cost_at): Handle double_int
2697 return type of constant_multiple_of.
2699 2006-08-28 Kazu Hirata <kazu@codesourcery.com>
2702 * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
2703 an implicit conversion.
2705 2006-08-28 Prafulla Thakare <prafullat@kpitcummins.com>
2707 * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
2709 2006-08-27 Roger Sayle <roger@eyesopen.com>
2711 * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
2714 2006-08-27 Kazu Hirata <kazu@codesourcery.com>
2716 * config/i386/crtfastmath.c: Fix a comment typo.
2718 2006-08-26 Roger Sayle <roger@eyesopen.com>
2720 * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
2721 temporary visit flags on CASE_LABEL_EXPRs.
2722 * c-common.c (match_case_to_enum): Add function comment. Avoid
2723 O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
2724 (c_do_switch_warnings): Reorganize to record CASE_LOW_SEEN and
2725 CASE_HIGH_SEEN for enumerated types. If the switch expression is
2726 a constant, only warn if that constant value isn't handled.
2728 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
2731 * input.h (restore_input_file_stack): Declare.
2732 (INPUT_FILE_STACK_BITS): Define.
2733 * toplev.c (fs_p, input_file_stack_history,
2734 input_file_stack_restored, restore_input_file_stack): New.
2735 (push_srcloc, pop_srcloc): Check for input_file_stack_tick
2736 overflowing INPUT_FILE_STACK_BITS bits. Save new state of stack.
2737 (pop_srcloc): Don't free old state of stack.
2739 2006-08-26 David Edelsohn <edelsohn@gnu.org>
2742 * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
2743 (PowerPC Type Attributes): New.
2745 2006-08-26 Bob Wilson <bob.wilson@acm.org>
2747 * config/xtensa/xtensa.c (function_arg_boundary): New.
2748 (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
2750 * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
2751 function_arg_boundary function that limits alignment to STACK_BOUNDARY.
2753 2006-08-26 Jakub Jelinek <jakub@redhat.com>
2756 * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
2759 2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2761 * flow.c (verify_wide_reg): Use internal_error for consistency failure.
2762 (verify_local_live_at_start): Likewise.
2764 2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
2767 * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
2768 omp_add_variable): Treat sizes as variable whenever not
2771 2006-08-26 Richard Guenther <rguenther@suse.de>
2774 * fold-const.c (fold_binary): Fold temporary to correct
2775 type before constructing new comparison.
2777 2006-08-25 Fariborz Jahanian <fjahanian@apple.com>
2780 * c-gimplify.c (gimplify_compound_literal_expr): Don't add
2781 variable again if DECL_SEEN_IN_BIND_EXPR_P.
2783 2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
2786 * c-decl.c (start_function): Don't try to process prototype
2787 information from old declaration that isn't a function.
2789 2006-08-25 Jan Hubicka <jh@suse.cz>
2792 * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
2794 2006-08-25 Alan Modra <amodra@bigpond.net.au>
2797 * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
2800 2006-08-25 J"orn Rennecke <joern.rennecke@st.com>
2802 PR tree-optimization/16876
2803 * c-typeck.c (c_convert_parm_for_inlining): Don't take early
2804 exit if PARM doesn't match VALUE.
2806 2006-08-25 Bob Wilson <bob.wilson@acm.org>
2808 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
2809 literal_prefix directive.
2810 (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
2811 * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
2812 * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
2814 2006-08-25 David Edelsohn <edelsohn@gnu.org>
2817 * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
2818 predicate to general_operand. Add 0->y and I->r alternatives.
2820 2006-08-25 Kazu Hirata <kazu@codesourcery.com>
2822 * doc/tm.texi: Fix a typo.
2823 * predict.c: Fix comment typos.
2825 2006-08-25 Nick Clifton <nickc@redhat.com>
2827 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
2828 assertions of "cpu" and "machine".
2830 2006-08-24 Andrew Pinski <pinskia@physics.uc.edu>
2833 * tree-ssa-operands.c (access_can_touch_variable): Don't say
2834 the access through a base which has an alias set of 0 cannot
2837 2006-08-24 Bill Wendling <wendling@apple.com>
2839 * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
2841 2006-08-24 Jan Hubicka <jh@suse.cz>
2843 * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
2845 2006-08-24 Jan Hubicka <jh@suse.cz>
2848 * cgraph.c: Fix comments.
2849 (cgraph_varpool_mark_needed_node): Mark only variables not already
2851 * cgraphunit.c: Update comments; include gt-cgraphunit.h
2852 (cgraph_varpool_assembled_nodes_queue): New static variable.
2853 (cgraph_varpool_assemble_decl): Record output decls for debug out code.
2854 (cgraph_varpool_output_debug_info): New function.
2855 (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
2856 * Makefile.in: Add gt-cgraphunit.h
2858 2006-08-24 Jan Hubicka <jh@suse.cz>
2860 * predict.c (probability_reliable_p): New predicate.
2861 (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
2862 (predict_loops): Do not predict loop exit with less than 2%
2864 * basic-block.h (edge_probability_reliable_p,
2865 br_prob_note_reliable_p): Declare.
2866 * ia64.h (ia64_print_operand): Do not disable on-chip branch
2867 prediction when static predictor is not reliable.
2868 * rs6000.c (output_cbranch): Likewise.
2870 2006-08-23 Stuart Hastings <stuart@apple.com>
2873 * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
2874 ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
2876 2006-08-21 Geoffrey Keating <geoffk@apple.com>
2879 * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
2880 complex values, nor for generic vector values.
2882 2006-08-22 Richard Guenther <rguenther@suse.de>
2885 * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
2886 parameter. Convert arguments to arithmetic expression to the
2888 (analyze_scalar_evolution_1): Adjust caller.
2890 2006-08-22 Jan Hubicka <jh@suse.cz>
2892 Patch by Paolo Bonzini
2893 * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
2896 2006-08-22 Daniel Berlin <dberlin@dberlin.org>
2898 PR tree-optimization/28003
2899 * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
2900 before grouping aliases.
2902 2006-08-22 Roger Sayle <roger@eyesopen.com>
2904 * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
2905 if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
2907 2006-08-21 Jason Merrill <jason@redhat.com>
2910 * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
2911 wrapper. Loop to handle nested wrappers.
2912 (gimplify_bind_expr): Remove temp parameter.
2913 (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
2914 and STATEMENT_LIST on the rhs.
2915 (gimplify_statement_list): Voidify the STATEMENT_LIST.
2916 (gimplify_expr): Pass pre_p to gimplify_statement_list.
2917 (gimplify_target_expr): Remove special BIND_EXPR handling.
2919 2006-08-21 J"orn Rennecke <joern.rennecke@st.com>
2921 * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
2924 2006-08-21 Olivier Hainque <hainque@adacore.com>
2926 * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
2927 Arrange for the temporary captures of components overlapping the lhs
2928 to happen before the lhs is possibly cleared.
2930 2006-08-21 Mark Shinwell <shinwell@codesourcery.com>
2932 * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
2933 necessary places to pass the correct "number of registers" values
2936 2006-08-20 Jan Hubicka <jh@suse.cz>
2938 * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
2939 (create_name_tags): Instead of quadratic checking use hashtable.
2940 * bitmap.h: Include hashtab.h.
2941 (bitmap_hash): Declare.
2942 * bitmap.c (bitmap_hash): New function.
2944 2006-08-20 Jan Hubicka <jh@suse.cz>
2946 PR rtl-optimization/28071
2947 * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
2949 * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
2950 * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
2951 (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
2952 cgraph_decide_inlining_incrementally): Update use of
2953 cgraph_check_inline_limits.
2954 * cgraph.c (edge_hash, edge_eq): New function.
2955 (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
2956 cgraph_edge_remove_caller, cgraph_node_remove_callees,
2957 cgraph_remove_node): Maintain call site hash.
2958 * cgraph.h (struct cgraph_node): Add call_site_hash.
2959 (cgraph_set_call_stmt): New function.
2961 2006-08-20 Jan Hubicka <jh@suse.cz>
2963 PR rtl-optimization/28071
2964 * reload1.c (reg_has_output_reload): Turn into regset.
2965 (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
2966 choose_reload_regs, emit_reload_insns): Update to new
2967 reg_has_output_reload.
2969 2006-08-20 Jan Hubicka <jh@suse.cz>
2972 * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
2973 function body sizes.
2974 * cgraphunit.c (cgraph_analyze_function): Don't do so.
2976 2006-08-20 Danny Smith <dannysmith@users.sourceforge.net>
2979 * tree.c (handle_dll_attribute): Return early if not a
2980 var or function decl.
2982 2006-08-18 Joseph Myers <joseph@codesourcery.com>
2985 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
2986 alignment of SPE vector types.
2988 2006-08-18 Christophe Jaillet <christophe.jaillet@wanadoo.fr>
2990 * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
2992 2006-08-17 Jakub Jelinek <jakub@redhat.com>
2995 * cgraph.h (struct cgraph_node): Remove externally_visible
2997 * cgraphunit.c (process_function_and_variable_attributes): Set
2998 local.externally_visible rather than externally_visible.
3001 * c-common.c (handle_externally_visible_attribute): First look
3002 at TREE_CODE and only if it is function or var decl, check for
3003 non-public objects. Don't warn for DECL_EXTERNAL.
3004 * cgraphunit.c (process_function_and_variable_attributes): Warn
3005 if externally_visible attribute is used on non-public object.
3007 2006-08-17 Jan Hubicka <jh@suse.cz>
3009 PR tree-optimization/27865
3010 * reload1.c (forget_marked_reloads): New function.
3011 (forget_old_reloads_1): When data are passed, just mark the registers
3013 (reload_as_needed): Use the new mechanizm.
3015 2006-08-17 Alexandre Oliva <aoliva@redhat.com>
3018 * reload.h (reg_equiv_alt_mem_list): New declaration.
3019 * reload1.c (reg_equiv_alt_mem_list): New definition.
3020 (reload): Initialize it and release it.
3021 (delete_output_reload): Use it.
3022 * reload.c (push_reg_equiv_alt_mem): New function.
3023 (find_reloads_toplev): Call it.
3024 (find_reloads_address, find_reloads_address_1): Likewise.
3025 (find_reloads_subreg_address): Likewise.
3027 2006-08-17 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3029 PR rtl-optimization/28489
3030 * sched-ebb.c (begin_schedule_ready): Create basic block
3032 (advance_target_bb): Skip empty blocks.
3033 * haifa-sched.c (bb_note): Make global.
3034 * sched-int.h (bb_note): Add prototype.
3036 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
3038 PR tree-optimization/27865
3039 * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
3041 * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
3042 fold_used_pointer, pointer_used_p): New functions.
3043 (analyze_scalar_evolution_1): Use fold_used_pointer.
3044 * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
3045 * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
3048 2006-08-17 Paolo Bonzini <bonzini@gnu.org>
3051 * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
3052 or the INTEGER_CST. Fail on a CALL_EXPR.
3053 (fold_offsetof): Pass new argument to fold_offsetof_1.
3054 * c-parser.c (c_parser_postfix_expression): Don't include a NULL
3055 operand into an INDIRECT_REF.
3056 * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
3058 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
3060 PR gcov/profile/26570
3061 * value-prof.c (static_values): Removed.
3062 (tree_find_values_to_profile): Do not set static_values.
3063 (find_values_to_profile): Do not free static_values.
3064 * profile.c (instrument_values): Do not free the values.
3065 (branch_prob): Free the values.
3067 2006-08-16 Naveen.H.S <naveenh@kpitcummins.com>
3069 * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
3071 2006-08-16 Joseph S. Myers <joseph@codesourcery.com>
3074 * c-typeck.c (build_component_ref): Combine qualifiers of
3075 structure or union and field.
3077 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
3079 PR rtl-optimization/28071
3080 * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
3081 * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
3082 * tree-into-ssa.c (struct dom_dfsnum): New.
3083 (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
3085 (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
3086 compute_global_livein.
3087 (prepare_block_for_update, prepare_use_sites_for): Mark the uses
3088 in phi nodes in the correct blocks.
3090 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
3092 PR tree-optimization/28364
3093 * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
3095 (fold_affine_expr): New function.
3096 (may_eliminate_iv): Use fold_affine_expr.
3098 2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3101 * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
3104 2006-08-16 Mike Stump <mrs@apple.com>
3106 * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
3107 * doc/cppopts.texi (-MD): Likewise.
3109 2006-08-15 Danny Smith <dannysmith@users.sourceforge.net>
3112 * c-common.c (handle_weak_attribute): Ignore and warn if
3113 not a FUNCTION_ or VAR_DECL.
3115 2006-07-15 Mike Stump <mrs@apple.com>
3118 * c-parser.c (c_parser_typeof_specifier): Don't use
3119 c_finish_expr_stmt, open code desired semantics instead.
3121 2006-08-15 Nick Clifton <nickc@redhat.com>
3123 * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
3124 fragment to tmake_file only if threads are enabled.
3125 * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
3126 * config/i386/t-gthr-win32: New file. ... here.
3128 2006-08-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3131 * c-parser.c (c_parser_compound_statement_nostart): Reset
3132 parser->error after each statement.
3134 2006-08-15 Jakub Jelinek <jakub@redhat.com>
3137 * omp-low.c (lower_omp_parallel): Convert t to
3138 receiver_decl's type.
3139 (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
3140 source before comparison.
3143 * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
3144 to itype in assignment to oldival2.
3146 2006-07-14 Andrew Pinski <pinksia@physics.uc.edu>
3150 * c-typeck.c (build_compound_expr): If the second expression
3151 is an error mark, then just return an error mark instead of
3152 creating a COMPOUND_EXPR.
3154 2006-07-14 Mike Stump <mrs@apple.com>
3156 * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
3158 2006-08-14 Kazu Hirata <kazu@codesourcery.com>
3160 * c-decl.c, var-tracking.c: Fix comment typos.
3162 2006-08-14 Richard Sandiford <richard@codesourcery.com>
3164 PR rtl-optimization/28634
3165 * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
3166 for floating-point modes unless flag_unsafe_math_optimizations.
3168 2006-08-13 Alexandre Oliva <aoliva@redhat.com>
3169 Andrew Pinski <pinskia@physics.uc.edu>
3172 * tree.c (build_array_type): Unify array types with
3173 unspecified index_type.
3174 * c-decl.c (grokdeclarator): Make sure we do not modify a
3175 unified incomplete array type.
3176 * c-typeck.c (store_init_value): Create distinct type before
3177 filling in the index type in an initializer from a compound
3180 * c-decl.c (grokdeclarator): Remove code where we copy the
3183 2006-08-13 Andrew Pinski <pinskia@physics.uc.edu>
3185 * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
3186 into account for TODO_dump_cgraph.
3187 (TODO_update_ssa_no_phi): Likewise.
3188 (TODO_update_ssa_full_phi): Likewise.
3189 (TODO_update_ssa_only_virtuals): Likewise.
3190 (TODO_remove_unused_locals): Likewise.
3191 (TODO_set_props): Likewise.
3192 (TODO_update_stmt_usage): Likewise.
3194 2006-08-13 Dirk Mueller <dmueller@suse.de>
3196 * c-common.c (strict_aliasing_warning): Fix formatting.
3198 2006-08-13 Matthias Klose <doko@debian.org>
3200 * doc/invoke.texi: Fix spelling errors.
3202 2006-08-11 Eric Botcazou <ebotcazou@libertysurf.fr>
3204 PR rtl-optimization/23454
3205 * reorg.c (relax_delay_slots): Update comment.
3207 2006-08-11 Richard Guenther <rguenther@suse.de>
3210 * simplify-rtx.c (simplify_const_relational_operation):
3211 Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
3214 2006-08-10 Eric Botcazou <ebotcazou@adacore.com>
3216 * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
3217 TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
3219 2006-08-10 Paul Brook <paul@codesourcery.com>
3221 * final.c (final_scan_insn): Clear current_insn_predicate before
3222 outputting inline asm.
3224 2006-08-10 Dorit Nuzman <dorit@il.ibm.com>
3226 PR tree-optimization/26197
3227 * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
3228 get_ref_base_and_extent and overlap_subvar to add only relevant
3229 subvars as may-aliases.
3230 (add_may_alias_for_new_tag): New function, factored out of
3232 * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
3233 with additional argument.
3234 * tree-flow.h (new_type_alias): Takes additional argument.
3236 2006-08-09 Nathan Sidwell <nathan@codesourcery.com>
3238 * gcov.c (no_data_file): New flag.
3239 (read_count_file): Set it if data file not present. Assume counts
3241 (output_lines): Don't name the data file, if there wasn't one.
3243 2006-08-09 Eric Botcazou <ebotcazou@adacore.com>
3245 * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
3246 (rs6000_generate_compare): Tweak comments.
3247 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
3249 2006-08-09 Alexandre Oliva <aoliva@redhat.com>
3251 * var-tracking.c (enum micro_operation_type): Add MO_COPY.
3252 (var_debug_decl): New function.
3253 (var_reg_set): Follow debug decl link. Add location even if
3254 reg is already known to hold some other variable.
3255 (var_mem_set): Follow debug decl link.
3256 (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
3257 decl link. Delete other known locations of the variable part
3259 (var_reg_delete, var_mem_delete): Delete other known locations
3260 of the variable part if requested.
3261 (same_variable_part_p): New function.
3262 (add_stores): Select MO_COPY when appropriate.
3263 (vt_initialize): Handle it.
3264 (compute_bb_dataflow, emit_notes_in_bb): Likewise. Delete
3265 known locations for MO_SET and MO_CLOBBER.
3266 (find_variable_location_part): New function.
3267 (set_variable_part, delete_variable_part): Use it.
3268 (clobber_variable_part): New function.
3269 * dwarf2out.c (dwarf2out_var_location): Do not follow debug
3272 2006-08-07 Victor Kaplansky <victork@il.ibm.com>
3274 PR tree-optimization/26969
3275 * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
3276 with an empty list of PHIs.
3278 2006-08-06 Paolo Bonzini <bonzini@gnu.org>
3282 * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
3285 2006-08-06 Andreas Schwab <schwab@suse.de>
3287 * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
3288 string. Whitespace and comment fixup.
3290 2006-08-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3293 * c-decl.c (validate_proto_after_old_defn): Return false on invalid
3297 * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
3300 * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
3302 2006-08-04 Jan Hubicka <jh@suse.cz>
3306 * reload.c (push_reload): Patch out the mismatching instruction;
3308 (find_reload): Bail out if the instruction was patched out.
3310 2006-08-04 Jan Hubicka <jh@suse.cz>
3312 PR tree-optimization/24888
3313 * tree-inline.c (expand_call_inline): Do not re-record variables.
3314 (declare_inline_vars): Add variable to unexpanded_var_list.
3316 2006-08-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3317 Roger Sayle <roger@eyesopen.com>
3319 PR rtl-optimization/26244
3320 * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
3321 inner_const are negative or greater than or equal to the bitsize of
3322 MODE. If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
3323 Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
3324 Simplify complicated if statement. For ASHIFT and LSHIFTRT, return
3325 CONST0_RTX (mode) when the new shift count is greater than or equal to
3326 to the bitsize of the object being shifted and XEXP (y, 0) has no side
3329 2006-08-04 Kazu Hirata <kazu@codesourcery.com>
3331 * tree-cfg.c: Fix a comment typo.
3333 2006-08-03 Mark Mitchell <mark@codesourcery.com>
3336 * varasm.c (output_constant): Give the front end another chance to
3337 expand constants, after stripping NOPs.
3339 2006-08-03 Jan Hubicka <jh@suse.cz>
3341 * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
3344 2006-08-03 Dorit Nuzman <dorit@il.ibm.com>
3346 PR tree-optimization/27770
3347 * tree-vectorizer.h (get_vectype_for_scalar_type): Function
3348 declaration removed (moved to tree-flow.h).
3349 (vect_can_force_dr_alignment_p): Likewise.
3350 * tree-flow.h (get_vectype_for_scalar_type): New function declaration
3351 (moved from tree-vectorizer.h).
3352 (vect_can_force_dr_alignment_p): Likewise.
3353 * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
3354 from outside the vectorizer - in particular from cgraph stage.
3355 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
3356 the alignment of global arrays when -fsection-anchors is enabled.
3357 * cgraphunit.c (cgraph_increase_alignment): New function.
3358 (cgraph_optimize): Call cgraph_increase_alignment.
3360 2006-08-03 David Edelsohn <edelsohn@gnu.org>
3363 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
3364 not reload a SPE symbol_ref into a lo_sum address.
3366 2006-08-02 Daniel Jacobowitz <dan@codesourcery.com>
3369 * dwarf2out.c (prune_unused_types_prune): Move call to
3370 prune_unused_types_update_strings to cover the parent DIE also.
3372 2006-08-02 Jan Hubicka <jh@suse.cz>
3374 PR gcov/profile/28480
3375 * tree-cfg.c (change_bb_for_stmt): New function.
3376 (tree_merge_blocks, tree_split_blocks): Use it.
3378 2006-08-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3384 * toplev.c (compile_file): Return early on errorcount or sorrycount.
3385 * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
3386 (cgraph_optimize): Likewise.
3388 2006-08-01 Stuart Hastings <stuart@apple.com>
3390 * rtl.h (UINTVAL) New.
3391 * config/rs6000/rs6000.c (SMALL_INT) Use it.
3392 * testsuite/gcc.dg/20060801-1.c: New.
3394 2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
3397 * c-typeck.c (build_external_type): Mark used enum types.
3398 * dwarf2out.c (dwarf2out_abstract_function): Save and restore
3400 (gen_subprogram_die): Whitespace fix.
3402 2006-08-01 Jan Hubicka <jh@suse.cz>
3404 * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
3405 bitmap when not needed.
3406 * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
3409 2006-08-01 Dirk Mueller <dmueller@suse.de>
3411 * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
3413 2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3415 * Makefile.in: Revert part of previous patch:
3416 Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
3419 2006-07-30 Eric Christopher <echristo@apple.com>
3422 * doc/extend.texi (i386 Variable Attributes): Add anchor.
3423 (PowerPC Variable Attributes): New section.
3425 2006-07-30 Atsushi Nemoto <anemo@mba.ocn.ne.jp>
3427 PR target/28126 (partial fix)
3428 * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
3430 2006-07-28 Jan Hubicka <jh@suse.cz>
3432 PR rtl-optimization/28071
3433 * cfgrtl.c (rtl_delete_block): Free regsets.
3434 * flow.c (allocate_bb_life_data): Re-use regsets if available.
3436 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3438 * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
3439 and variables used in dependencies.
3441 2006-07-27 Arjan van de Ven <arjan@linux.intel.com>
3443 * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
3444 %fs for -mcmodel=kernel.
3445 (stack_tls_protect_test_di): Likewise.
3447 2006-07-27 Carlos O'Donell <carlos@codesourcery.com>
3449 * Makefile.in: Use mkinstalldirs.
3451 2006-07-27 H.J. Lu <hongjiu.lu@intel.com>
3454 * opts-common.c (prune_options): Skip joined switches.
3456 2006-07-27 Jan Hubicka <jh@suse.cz>
3458 PR rtl-optimization/28071
3459 * cselib.c (cselib_process_insn): Don't remove useless values too
3460 often for very large hashtables.
3462 2006-07-27 Jan Hubicka <jh@suse.cz>
3464 PR rtl-optimization/28071
3465 * global.c (greg_obstack): New obstack.
3466 (allocate_bb_info): Use it.
3467 (free_bb_info): Likewise.
3468 (modify_reg_pav): Likewise.
3470 2006-07-27 Roger Sayle <roger@eyesopen.com>
3472 * builtins.c (fold_fixed_mathfn): When long and long long are the
3473 same size, canonicalize llceil*, llfloor*, llround* and llrint*
3474 functions to their lceil*, lfloor*, lround* and lrint* forms.
3476 2006-07-27 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3479 * config/m32r/m32r.md (branch_insn): Reduce pc range for short
3481 (rev_branch_insn): Likewise.
3483 2006-07-27 Jan Hubicka <jh@suse.cz>
3485 PR rtl-optimization/28071
3486 * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
3487 (reg_set_in_bb, max_reg_computed): New static variables.
3488 (regmove_optimize): Free the new array.
3489 (fixup_match_1): Update call of reg_is_remote_constant_p.
3491 2006-07-26 Jan Hubicka <jh@suse.cz>
3493 PR tree-optimization/27882
3494 * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
3496 * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
3498 (cgraph_analyze_compilation_unit): Likewise.
3499 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
3500 * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
3501 (cgraph_early_inlinine): Make order garbage collected.
3502 * Makefile.in (gt-ipa-inline): New garbagecollected file.
3504 2006-07-26 Daniel Jacobowitz <dan@codesourcery.com>
3506 * dbxout.c (output_types_sort): Add a comment.
3507 (output_used_types): Free the VEC.
3509 2006-07-26 Daniel Jacobowitz <dan@codesourcery.com>
3511 * function.c (reorder_fix_fragments): Delete.
3512 (reorder_blocks): Don't call it.
3513 (reorder_blocks_1): Put all subblocks under the origin block.
3515 2006-07-26 Zdenek Dvorak <dvorakz@suse.cz>
3517 PR rtl-optimization/27907
3518 * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
3521 2006-07-25 Roger Sayle <roger@eyesopen.com>
3524 * convert.c (convert_to_integer): When transforming (T)foo(x) into
3525 bar(x) check that bar's result type can represent all the values of T.
3527 2006-07-25 Zdenek Dvorak <dvorakz@suse.cz>
3529 * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
3531 2006-07-25 Nick Clifton <nickc@redhat.com>
3533 * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
3534 size_lookup[] array.
3535 (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
3536 (ggc_pch_count_object): Likewise.
3537 (ggc_pch_alloc_object): Likewise.
3538 (ggc_pch_write_object): Likewise.
3539 (init_ggc): Do not attempt to initialize entries in the
3540 size_lookup[] array for objects whose size is greater than than
3541 the length of the array.
3543 2006-07-25 Daniel Jacobowitz <dan@codesourcery.com>
3545 * dbxout.c (output_used_types_helper): Push queued types
3547 (output_types_sort): New.
3548 (output_used_types): Collect used types on a VEC and sort them
3551 2006-07-24 Richard Guenther <rguenther@suse.de>
3554 * cgraph.c (cgraph_remove_node): Do not check if dumps
3556 * cgraphunit.c (cgraph_optimize): Likewise.
3558 2006-07-24 Jan Hubicka <jh@suse.cz>
3560 PR rtl-optimization/28071
3561 * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
3562 * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
3563 splitting before first stmt.
3565 2006-07-24 Jan Hubicka <jh@suse.cz>
3567 PR rtl-optimization/28071
3568 * ipa-inline.c (update_caller_keys): Remove edges that
3569 are no longer inline candidates.
3571 2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
3574 * dbxout.c (output_used_types_helper, output_used_types): New.
3575 (dbxout_symbol): Call output_used_types.
3577 2006-07-23 Jan Hubicka <jh@suse.cz>
3581 * cgraph.c (cgraph_varpool_nodes): Export.
3582 (decide_is_variable_needed): Ignored "used" attribute in
3583 unit-at-a-time mode.
3584 * cgraph.h (cgraph_varpool_nodes): Declare.
3585 * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
3586 unit-at-a-time mode.
3588 2006-07-23 Roger Sayle <roger@eyesopen.com>
3591 * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
3592 mutex_destroy even when !_LIBOOBJC. Remove duplicate prototype of
3593 the __gthrw form of thr_keycreate.
3594 (__gthread_key_delete): Silence the unused argument warning.
3596 2006-07-23 Steven Bosscher <steven@gcc.gnu.org>
3599 * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
3600 Cache the last found '\0' marker to avoid quadratic behavior.
3602 2006-07-23 Jan Hubicka <jh@suse.cz>
3604 * i386.md (subsi_3_zext): Fix output template.
3606 2006-07-21 Mike Stump <mrs@apple.com>
3608 * doc/invoke.texi (C++ Dialect Options): Note that
3609 -fvisibility-inlines-hidden doesn't affect explicitly
3610 instantiationed inline methods.
3612 2006-07-20 Roger Sayle <roger@eyesopen.com>
3614 * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
3615 if the target assembler is GNU binutils' gas.
3616 * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
3617 whether to pass GNU gas or native as command line options.
3619 2006-07-20 Jason Merrill <jason@redhat.com>
3621 * tree.c (remove_attribute): New fn.
3622 * tree.h: Declare it.
3624 2006-07-20 Paul Brook <paul@codesourcery.com>
3627 * cse.c (cse_insn): Add destination addresses to hash table. Check if
3628 they are invalidated by this instruction.
3630 2006-07-21 Danny Smith <dannysmith@users.sourceforge.net>
3633 * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
3635 2006-07-20 Eric Christopher <echristo@apple.com>
3638 * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
3640 2006-07-19 Eric Christopher <echristo@apple.com>
3642 * config/t-slibgcc-darwin (stmp-lipo): Remove.
3643 Rewrite dependencies for libgcc_s.1.dylib.
3645 2006-07-19 Jakub Jelinek <jakub@redhat.com>
3647 * except.c (duplicate_eh_regions_1): Clear next_peer.
3649 2006-07-17 Nathan Sidwell <nathan@codesourcery.com>
3651 * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
3652 -mlongcall does not guarantee all calls will be long.
3653 * doc/extend.texi (long_call/short_call): Document that longcall
3654 does not guarantee a long call will be used.
3655 (longcall/shortcall): Likewise.
3657 2006-07-18 Roger Sayle <roger@eyesopen.com>
3660 * expmed.c (expand_shift): Additionally check that the shift_cost
3661 is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
3662 before implementing a LSHIFT_EXPR as a sequence of additions.
3663 * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
3664 middle-end that DImode shifts need to be synthesized by expand.
3666 2006-07-18 Diego Novillo <dnovillo@redhat.com>
3669 * tree-ssa-operands.c (access_can_touch_variable): Update
3671 Return true if ALIAS is .GLOBAL_VAR.
3673 2006-07-18 David Daney <ddaney@avtrex.com>
3675 * gcc.c (display_help): Fix typo in help text.
3677 2006-07-18 Olivier Hainque <hainque@adacore.com>
3679 * tree.h (categorize_ctor_elements): Adjust prototype and add
3680 descriptive comment, both in accordance with the interface change
3682 * varasm.c (constructor_static_from_elts_p): New function.
3683 Whether a constructor node is a valid static constant initializer
3684 if all its elements are.
3685 (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
3686 * output.h: Declare it.
3687 * expr.c (categorize_ctor_elements_1): Return whether the constructor
3688 is a valid constant initializer instead of computing the number of
3689 non-constant elements. Use constructor_static_from_elts_p for this
3690 purpose. Replace the head comment with an indication that this is a
3691 helper for categorize_ctor_elements.
3692 (categorize_ctor_elements): Same interface change as for the _1
3693 helper. Former head comment from this helper moved here, adjusted to
3694 account for the interface changes.
3695 (mostly_zeros_p): Adjust call to categorize_ctor_elements.
3696 (all_zeros_p): Likewise.
3697 * gimplify.c (gimplify_init_constructor): Decide whether we can make
3698 static versions of the constructor from the categorize_ctor_elements
3699 return value instead of the formerly computed number of non-constant
3702 2006-07-18 Paolo Bonzini <bonzini@gnu.org>
3704 * configure: Regenerate.
3705 * Makefile.in (build_libsubdir): New configure substitution
3706 (build_libobjdir): New variable.
3707 (BUILD_LIBIBERTY): Use it.
3709 2006-07-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3712 * c-pragma.c (handle_pragma_pack): Handle invalid constants.
3714 2006-07-18 Alexandre Oliva <aoliva@redhat.com>
3717 * c-common.c (handle_weakref_attribute): Ignore attribute in
3718 the same conditions the alias attribute is ignored.
3720 2006-07-17 Carlos O'Donell <carlos@codesourcery.com>
3722 * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
3723 (dbxout_begin_prologue): Increment scope_labelno.
3725 2006-07-17 Richard Henderson <rth@redhat.com>
3728 * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
3731 2006-07-17 Roger Sayle <roger@eyesopen.com>
3732 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3734 * config/i386/gmon-sol2.c: Silence compilation warnings by partially
3735 synchronizing code with config/sparc/gmon-sol2.c. Remove #if 0
3736 blocks. #include "tconfig.h" and "tsystem.h" to prototype system
3737 functions such as sbrk, write, etc.. Add function prototypes.
3738 Convert function declarations from K&R to ISO C. Cast pointers
3739 to "long" and "unsigned long" instead of "int" and "unsigned int".
3740 Convert tokens following #endif into comments.
3742 2006-07-17 Toon Moene <toon@moene.indiv.nluug.nl>
3744 * invoke.texi: Remove mention of f77; Reformat table for
3745 inline parameter options correctly; mention that -malign-double
3746 is default on x86-64 targets.
3748 2006-07-17 Zdenek Dvorak <dvorakz@suse.cz>
3750 * tree-chrec.c (avoid_arithmetics_in_type_p): New.
3751 (convert_affine_scev, chrec_convert_aggressive): Use
3752 avoid_arithmetics_in_type_p. Do not check for the subtypes
3755 2006-07-17 Richard Sandiford <richard@codesourcery.com>
3758 * optabs.c (expand_doubleword_shift): Wrap the call to
3759 do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
3761 2006-07-17 Richard Sandiford <richard@codesourcery.com>
3764 * optabs.c (expand_binop): Pass next_methods rather than methods
3765 to expand_doubleword_shift.
3767 2006-07-17 J"orn Rennecke <joern.rennecke@st.com>
3770 * tree.h (dump_addr): Declare.
3771 * print-tree.c (dump_addr): New function.
3772 (print_node_brief, print_node): Use it.
3773 * print-rtl.c (print_rtx): Likewise.
3774 * common.opt (-fdump-noaddr): New option.
3775 * doc/invoke.texi (-fdump-noaddr): Document.
3776 * loop-unroll.c (si_info_hash): Make hash independent of addresses.
3777 (ve_info_hash): Likewise.
3779 2006-07-13 Andrew Haley <aph@redhat.com>
3781 PR tree-optimization/19505
3782 * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
3783 edge leaving this block, make sure that the destination of this
3784 block has only one predecessor.
3786 2006-07-17 Richard Guenther <rguenther@suse.de>
3788 PR tree-optimization/28238
3789 * tree-inline.c (copy_bb): Check if we produced valid
3790 gimple copying and substituting a stmt. If not, gimplify
3793 2006-07-16 Eric Botcazou <ebotcazou@adacore.com>
3795 * optabs.c (maybe_encapsulate_block): New function extracted from...
3796 (emit_libcall_block): ...here. Invoke it on the block of insns to
3797 maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
3798 (emit_no_conflict_block): Likewise.
3800 2006-07-16 Eric Botcazou <ebotcazou@libertysurf.fr>
3802 * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
3804 2006-07-15 Roger Sayle <roger@eyesopen.com>
3806 * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
3807 a new NOP_EXPR case of the switch statement.
3809 2006-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
3812 * stor-layout.c (place_field): Take the bit field with
3813 an excessive size into account in the ms-bitfiled case.
3816 * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
3817 the previous bit field.
3819 2006-07-14 Eliot Dresselhaus <eliot@sonic.net>
3822 * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
3824 2006-07-14 Ulrich Weigand <uweigand@de.ibm.com>
3826 * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
3827 signal frames correctly even when the signal was installed with
3830 2006-07-14 Carlos O'Donell <carlos@codesourcery.com>
3832 * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
3833 (dbxout_function_end): Use local label LFBB. Remove hook
3835 (dbxout_source_line): Use local label LFBB.
3836 (dbxout_block): Likewise.
3837 (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
3838 (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
3839 * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
3840 and DBX_OUTPUT_NFUN.
3842 2006-07-13 Janis Johnson <janis187@us.ibm.com>
3844 * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
3846 2006-07-13 Jan Hubicka <jh@suse.cz>
3848 * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
3850 * output.h (align_variable): Declare.
3851 * varasm.c (align_variable): Export.
3852 * value-prof.c (tree_value_profile_transformations): Recompute iterator
3853 when basic block changed.
3855 2006-07-13 Nick Clifton <nickc@redhat.com>
3857 * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
3858 walking the LOG_LINKS chain.
3860 2006-07-12 Geoffrey Keating <geoffk@apple.com>
3862 * doc/invoke.texi (C++ Dialect Options): Explain difference
3863 between -fvisibility-inlines-hidden and setting hidden
3864 visibility explicitly.
3866 2006-07-12 Eric Christopher <echristo@apple.com>
3868 * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
3869 (stmp-lipo): Depend on libgcc.a.
3871 2006-07-12 Kazu Hirata <kazu@codesourcery.com>
3873 * tree.c: Fix a comment typo.
3875 2006-07-12 Naveen.H.S <naveenh@kpitcummins.com>
3877 * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
3879 (umulhisi3_r): Likewise.
3881 2006-07-12 Paolo Carlini <pcarlini@suse.de>
3884 * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
3885 x < 19, vs wchar_t support.
3887 2006-07-12 Nick Clifton <nickc@redhat.com>
3889 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
3890 instead of -isa=sh4.
3892 2006-07-12 Mike Stump <mrs@apple.com>
3894 * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
3896 2006-07-10 Eric Christopher <echristo@apple.com>
3898 * config/t-slibgcc-darwin: Rewrite.
3900 2006-07-10 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3903 * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
3906 2006-07-08 Matthias Klose <doko@debian.org>
3908 * doc/sourcebuild.texi: Fix typo.
3910 2006-07-07 Mike Stump <mrs@apple.com>
3912 * toplev.c (process_options): Don't give -ffunction-sections may
3913 affect debugging warning for Mach-O.
3915 2006-07-07 James E Wilson <wilson@specifix.com>
3917 * config/mips/mips.md (cpu): Add sb1a.
3918 * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
3919 addition to sb1. Adjust comments to clarify SB-1A differences from
3921 (ir_sb1a_load): New. Modify bypasses to use it.
3922 (ir_sb1a_simple_alu): Likewise.
3923 * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
3924 (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
3925 (mips_issue_rate): Add PROCESSOR_SB1A.
3926 (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
3927 * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
3928 (TARGET_SB1): Add PROCESSOR_SB1A check.
3929 (TUNE_SB1): Likewise.
3931 * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
3932 * config/mips/mips.c (mips_store_data_bypass_p): New.
3933 * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
3934 store_data_bypass_p.
3936 2006-07-08 Paul Brook <paul@codesourcery.com>
3939 * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
3941 2006-07-07 Richard Guenther <rguenther@suse.de>
3944 * tree.h (build_one_cst): Declare.
3945 * tree.c (build_one_cst): New function.
3946 * tree-ssa-math-opts.c (get_constant_one): Remove.
3947 (insert_reciprocals): Use build_one_cst.
3948 * fold-const.c (fold_plusminus_mult): Likewise.
3950 2006-07-07 Roger Sayle <roger@eyesopen.com>
3952 * pointer-set.c (pointer_set_destroy): Correct whitespace.
3953 * cfgloopanal.c (dump_graph): Likewise.
3954 * dojump.c (discard_pending_stack_adjust): Likewise.
3955 * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
3957 * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
3958 * function.c (finalize_block_changes): Likewise.
3959 * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
3960 * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
3961 * rtl.c (dump_rtx_statistics): Likewise.
3962 * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
3964 * varray.c (dump_varray_statistics): Likewise.
3965 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
3966 decode_decimal64, encode_decimal128, decode_decimal128,
3967 decimal_real_to_decimal): Likewise.
3969 2006-07-07 Richard Guenther <rguenther@suse.de>
3971 PR tree-optimization/28187
3972 * tree-vrp.c (vrp_operand_equal_p): New function.
3973 (vrp_bitmap_equal_p): Likewise.
3974 (update_value_range): Use them to compare old and new
3977 2006-07-06 Roger Sayle <roger@eyesopen.com>
3979 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
3980 a default case to switch statement to silence compiler warnings.
3982 2006-07-06 Roger Sayle <roger@eyesopen.com>
3985 * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
3986 the configured assembler supports the x87's ffreep mnemonic.
3987 * configure: Regenerate.
3988 * config.in: Regenerate.
3990 * config/i386/i386.c (output_387_ffreep): New function.
3991 (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
3992 (output_387_reg_move): Likewise.
3994 2006-07-06 Paul Eggert <eggert@cs.ucla.edu>
3996 Port to hosts whose 'sort' and 'tail' implementations
3997 treat operands with leading '+' as file names, as POSIX
3998 has required since 2001. However, make sure the code still
3999 works on pre-POSIX hosts.
4000 * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
4001 which says you should use "tail -c +N" rather than "tail +Nc".
4002 Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
4004 2006-07-06 Zdenek Dvorak <dvorakz@suse.cz>
4006 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
4009 2006-07-06 David Edelsohn <edelsohn@gnu.org>
4012 * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
4013 PRE_{INC,DEC} of TFmode.
4015 2006-07-06 David Edelsohn <edelsohn@gnu.org>
4016 Alan Modra <amodra@bigpond.net.au>
4019 * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
4022 2006-07-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4025 * config/alpha/predicates.md (alpha_swapped_comparison_operator):
4026 Remove duplicate gtu.
4028 2006-07-05 Jason Merrill <jason@redhat.com>
4032 * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
4033 * c-common.c (handle_packed_attribute): So don't copy it here.
4034 * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
4036 2006-07-05 Mike Stump <mrs@apple.com>
4038 * doc/invoke.texi (Invoking G++): Clarify prose for g++.
4040 2006-07-05 H.J. Lu <hongjiu.lu@intel.com>
4043 * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
4045 2006-07-05 Richard Guenther <rguenther@suse.de>
4048 * config/i386/i386.md (*negdf2_1): Restrict pattern to
4049 TARGET_SSE2 targets if using SSE math.
4050 (*absdf2_1): Likewise.
4052 2006-07-05 Richard Guenther <rguenther@suse.de>
4054 PR tree-optimization/28162
4055 * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
4056 make sure to convert the operands to the correct type.
4058 2006-07-04 Paolo Bonzini <bonzini@gnu.org>
4060 PR tree-optimization/28218
4062 * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
4063 to calculate and free the dominator information.
4065 2006-07-04 Peter O'Gorman <peter@pogma.com>
4067 * mklibgcc.in: chmod 644 before ranlib during install.
4069 2006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
4070 J"orn Rennecke <joern.rennecke@st.com>
4072 * configure.ac (.eh_frame data check): Use diff -b.
4074 2006-07-04 Eric Botcazou <ebotcazou@libertysurf.fr>
4077 * Makefile.in (BUILD_RTL): Add build/vec.o.
4078 (build/gencondmd.o): Filter out -fkeep-inline-functions.
4079 (build/genextract): Delete.
4080 (build/genautomata): Likewise.
4082 2006-07-04 Alan Modra <amodra@bigpond.net.au>
4085 * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
4086 128-bit IBM long doubles for ABI_V4.
4088 2006-07-03 Eric Botcazou <ebotcazou@adacore.com>
4090 * tree.c (range_in_array_bounds_p): New predicate.
4091 * tree.h (range_in_array_bounds_p): Declare it.
4092 * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
4093 return a less conservative answer.
4094 * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
4095 and flag 'is_group'.
4096 (IS_ELEMENT_FOR_GROUP): New macro.
4097 (FOR_EACH_ACTUAL_CHILD): Likewise.
4098 (next_child_for_group): New helper function.
4099 (can_completely_scalarize_p): Take into account groups.
4100 (sra_hash_tree): Handle RANGE_EXPR.
4101 (sra_elt_eq): Likewise.
4102 (lookup_element): Be prepared for handling groups.
4103 (is_valid_const_index): Delete.
4104 (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
4105 instead of is_valid_const_index.
4106 <ARRAY_RANGE_REF>: New case.
4107 (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
4108 is_valid_const_index.
4109 <ARRAY_RANGE_REF>: Do not unconditionally punt.
4110 (scan_dump): Dump info for groups too.
4111 (decide_instantiation_1): Likewise.
4112 (decide_block_copy): Assert that the element is not a group.
4113 Propagate decision to groups.
4114 (generate_one_element_ref): Handle RANGE_EXPR.
4115 (mark_no_warning): Iterate over actual childs.
4116 (generate_copy_inout): Likewise.