OSDN Git Service

93ce3426685f2b96ab7d0e4054712a7feb7e48d3
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-10-30  Dirk Mueller  <dmueller@suse.de>
2
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.
7  
8 2006-10-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9
10         PR middle-end/29335
11         * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
12
13 2006-10-30  Pete Steinmetz  <steinmtz@us.ibm.com>
14
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
17         a PARALLEL insn.
18
19 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
20
21         * config/mips/mips.md (mul<mode>3): Split into...
22         (mulsi3, muldi3): ...these separate patterns.
23
24 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
25
26         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
27         but with each set of options separated by spaces.
28
29 2006-10-30  J"orn Rennecke  <joern.rennecke@st.com>
30
31         * unwind-dw2.c (uw_init_context_1): Fix test that checks if
32         dwarf_reg_size_table has been initialized.
33
34 2006-10-30  Roger Sayle  <roger@eyesopen.com>
35
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.
44
45 2006-10-30  David Daney  <ddaney@avtrex.com>
46
47         * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
48
49 2006-10-30  Jakub Jelinek  <jakub@redhat.com>
50
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.
54
55 2006-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
56
57         * dwarf2out.c (file_name_acquire): Correct typo.
58
59 2006-10-29  Daniel Berlin  <dberlin@dberlin.org>
60
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
65         tree-flow-inline.h.
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.
78         Add visited member.
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.
84         (set_new): Ditto.
85         (set_copy): Ditto.
86         (set_remove): Ditto.
87         (set_contains_value): Ditto.
88         (insert_into_set): Ditto.
89         (set_equal): Ditto.
90         (find_leader): 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.
99         (vh_compare): 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.
111         (clean): Ditto.
112         (compute_antic_aux): Ditto.  Mark changed blocks.
113         (compute_antic): Ditto. Iterate in postorder and only over
114         changing blocks.
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.
130         
131 2006-10-29  Roger Sayle  <roger@eyesopen.com>
132
133         * builtins.c (fold_builtin_floor): Check for the availability of
134         the C99 trunc function before transforming floor into trunc.
135
136 2006-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
137
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,
141         add fabs.
142
143 2006-10-29  Roger Sayle  <roger@eyesopen.com>
144
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.
149
150 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
151
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
159         ISA_HAS_MUL3.
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.
176
177 2006-10-29  Roger Sayle  <roger@eyesopen.com>
178
179         PR tree-optimization/15458
180         * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
181         is a constant.
182
183 2006-10-29  Richard Guenther  <rguenther@suse.de>
184
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
189         optimizing for size.
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.
193
194 2006-10-29  Joseph Myers  <joseph@codesourcery.com>
195
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.
204
205 2006-10-29  Richard Guenther  <rguenther@suse.de>
206
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
211         optimizing for size.
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.
215
216 2006-10-29  Richard Guenther  <rguenther@suse.de>
217
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
223         math.
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.
231
232 2006-10-29  Richard Guenther  <rguenther@suse.de>
233
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.
242         (rintsf2): Likewise.
243
244 2006-10-29  Richard Guenther  <rguenther@suse.de>
245
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
249         as conversion 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
259         lceil inline.
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):
265         Likewise.
266         * doc/md.texi (lfloorMN, lceilMN): Document.
267
268 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
269
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.
276
277 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
278
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.
281
282 2006-10-29  Kazu Hirata  <kazu@codesourcery.com>
283
284         * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
285         config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
286         comment typos.
287
288 2006-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
289
290         PR middle-end/29335
291         * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
292         (fold_builtin_pow): Evaluate constant arguments at compile-time
293         using MPFR.
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.
297         (do_mpfr_arg2): New.
298
299 2006-10-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
300
301         PR tree-opt/29271
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.
305
306 2006-10-28  Richard Guenther  <rguenther@suse.de>
307
308         * fold-const.c (maybe_canonicalize_comparison): Fix code
309         to match comment.
310
311 2006-10-28  Uros Bizjak  <uros@kss-loka.si>
312
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.
328
329 2006-10-28  Eric Botcazou  <ebotcazou@adacore.com>
330
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.
342
343 2006-10-28  Richard Guenther  <rguenther@suse.de>
344
345         PR middle-end/26899
346         * fold-const.c (maybe_canonicalize_comparison_1): Helper
347         for maybe_canonicalize_comparison.
348         (maybe_canonicalize_comparison): New function for canonicalizing
349         comparison trees.
350         (fold_comparison): Call it to canonicalize comparisons with
351         constants involved.
352
353 2006-10-28  Richard Guenther  <rguenther@suse.de>
354
355         PR target/28806
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
365         static function.
366         (ix86_expand_lround): New function.
367         * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
368         New expanders.
369         * doc/md.texi (lroundMN2): Document.
370
371 2006-10-28 Uros Bizjak <uros@kss-loka.si>
372
373         PR target/29377
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.
378
379 2006-10-28 Uros Bizjak <uros@kss-loka.si>
380
381         * config/i386/i386.c (output_387_ffreep): Create output from a
382         template string for !HAVE_AS_IX86_FFREEP.
383         
384 2006-10-27  Eric Christopher  <echristo@apple.com>
385
386         * config/darwin.c: Fix formatting and grammar.
387
388 2006-10-27  Jan Hubicka  <jh@suse.cz>
389
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.
395
396 2006-10-27  Vladimir Makarov  <vmakarov@redhat.com>
397
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
406         the macro values.
407         (TARGET_CPU_DEFAULT_NAMES): Add geode.
408         (processor_type): Add PROCESSOR_GEODE.
409
410         * config/i386/i386.md: Include geode.md.
411         (cpu): Add geode.
412
413         * config/i386/i386.c (geode_cost): New initialized global
414         variable.
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.
424
425         * config/i386/geode.md: New file.
426
427         * doc/invoke.texi: Add entry about geode processor.
428
429 2006-10-27  Mike Stump  <mrs@apple.com>
430
431         * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
432         __DYNAMIC__ from here back to ...
433         * config/darwin.h (CPP_SPEC): ... here.
434
435 2006-10-26  Nathan Froyd  <froydnj@codesourcery.com>
436             Nathan Sidwell  <nathan@codesourcery.com>
437
438         * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
439         when choosing the minimum heapsize.
440
441 2006-10-26  Nathan Froyd <froydnj@codesourcery.com>
442
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.
454
455 2006-10-26  Andreas Krebbel  <krebbel1@de.ibm.com>
456
457         * config/s390/s390.c (s390_init_frame_layout): Check positive
458         frame_size.
459
460 2006-10-26  Ben Elliston  <bje@au.ibm.com>
461
462         * gimplify.c (get_name): Remove extraneous break.
463         (gimplify_omp_for): Initialise ret with GS_OK.
464
465 2006-10-25  Steve Ellcey  <sje@cup.hp.com>
466
467         * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
468         Add unix98.o to link line.
469
470 2006-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
471
472         PR middle-end/29335
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.
477
478 2006-10-25  Bob Wilson  <bob.wilson@acm.org>
479
480         * config/xtensa/lib2funcs.S: Use C-style comments.
481
482 2006-10-24  Nathan Froyd  <froydnj@codesourcery.com>
483
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.
488
489 2006-10-25  Daniel Berlin  <dberlin@dberlin.org>
490
491         * tree-ssa-structalias.c (intra_create_variable_infos):
492           Don't recreate nonlocal_all if it already exists.
493
494 2006-10-25  Richard Guenther  <rguenther@suse.de>
495
496         PR target/28803
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.
517
518 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
519
520         PR target/28909
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.
537
538 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
539
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.
551
552         (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
553         depend on flag_unsafe_math_optimizations.
554
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.
559
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.
565
566         * doc/md.texi (fmod, remainder): Document standard named pattern.
567
568 2006-10-24  Richard Sandiford  <richard@codesourcery.com>
569             David Daney  <ddaney@avtrex.com>
570
571         PR middle-end/29519
572         * rtlanal.c (nonzero_address_p):  Remove check for values wrapping.
573
574 2006-10-25  Ben Elliston  <bje@au.ibm.com>
575
576         * doc/extend.texi (Variable Attributes): Typo fix.
577
578 2006-10-24  Uros Bizjak  <uros@kss-loka.si>
579
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.
586
587         * config/i386/i386.c (regclass_map): Add fpcr entry.
588         (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
589         Add fpcr entry.
590         (print_reg): Assert REGNO (x) != FPCR_REG.
591
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.
598
599         * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
600         hardcoded MMX register numbers.
601
602 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
603
604         PR middle-end/29335
605         * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
606         (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
607         Update all callers.
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.
612
613 2006-10-24  Richard Guenther  <rguenther@suse.de>
614
615         PR middle-end/28796
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.
620
621 2006-10-24  Richard Guenther  <rguenther@suse.de>
622
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.
627
628 2006-10-24  Richard Guenther  <rguenther@suse.de>
629
630         PR tree-optimization/29567
631         * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
632         for TRUTH_NOT_EXPR.  Clarify comments.
633
634 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
635
636         PR middle-end/29335
637         * builtins.c (fold_builtin_exponent): Evaluate constant arguments
638         at compile-time using MPFR.  Change parameter VALUE to FUNC,
639         update all callers.
640         (do_mpfr_arg1): Rename `exact' to `inexact'.  Carefully check
641         for overflow and underflow at all times and avoid folding in
642         those cases.
643
644 2006-10-24  Ben Elliston  <bje@au.ibm.com>
645
646         * reload1.c: Formatting fixes.
647
648 2006-10-23  Zdenek Dvorak <dvorakz@suse.cz>
649
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.
656
657 2006-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
658
659         PR middle-end/29335
660         * builtins.c (fold_builtin_sin, fold_builtin_cos,
661         fold_builtin_tan): Fold all constant arguments.  Take a "type"
662         argument as necessary.
663         (do_mpfr_arg1): New.
664         * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
665
666 2006-10-23  Bob Wilson  <bob.wilson@acm.org>
667
668         * config/xtensa/lib1funcs.asm: Use C-style comments.
669
670 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
671
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
675         c_builtin_function.
676         * c-tree.h (builtin_function): Rename to c_builtin_function. Change
677         the signature.
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
683         builtin_function.
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.
725
726 2006-10-23  Jakub Jelinek  <jakub@redhat.com>
727
728         * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
729         BUILT_IN_STRNCAT_CHK.
730
731 2006-10-23  Jan Hubicka  <jh@suse.cz>
732
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.
738
739 2006-10-23  Paul Brook  <paul@codesourcery.com>
740
741         * stor-layout.c (start_record_layout): maximum_field_alignment
742         overrides STRUCTURE_SIZE_BOUNDARY.
743
744 2006-10-23  Ulrich Weigand  <uweigand@de.ibm.com>
745
746         * config/s390/predicates.md ("bras_sym_operand"): Do not accept
747         nonlocal function symbols if flag_pic.
748
749 2006-10-23  Richard Guenther  <rguenther@suse.de>
750
751         PR middle-end/27132
752         PR middle-end/23295
753         * builtins.c (fold_binary): Remove checks for flag_wrapv
754         and flag_trapv where negate_expr_p covers these cases.
755
756 2006-10-23  Richard Guenther  <rguenther@suse.de>
757
758         PR middle-end/29548
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.
763
764 2006-10-23  Richard Guenther  <rguenther@suse.de>
765
766         PR middle-end/21032
767         * convert.c (convert_to_real): Fold (float)-x to -(float)x
768         only if not flag_rounding_math.
769
770 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
771             Kaz Kojima  <kkojima@gcc.gnu.org>
772
773         PR target/28232
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.
781
782 2006-10-22  Jeff Law  <law@redhat.com>
783         Richard Guenther  <rguenther@suse.de>
784
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.
791
792 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
793
794         * config/i386/tmmintrin.h: Remove the duplicated content.
795
796 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
797
798         * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
799         (x86_64-*-*): Likewise.
800
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.
823
824         * config/i386/i386.md (UNSPEC_PSHUFB): New.
825         (UNSPEC_PSIGN): Likewise.
826         (UNSPEC_PALIGNR): Likewise.
827         Include mmx.md before sse.md.
828
829         * config/i386/i386.opt: Add -mssse3.
830
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.
855
856         * config/i386/tmmintrin.h: New file.
857
858         * doc/extend.texi: Document SSSE3 built-in functions.
859
860         * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
861
862 2006-10-22  Ira Rosen  <irar@il.ibm.com>
863
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
866         stmt.
867
868 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
869
870         * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
871         expressions.
872
873 2006-10-21  H.J. Lu  <hongjiu.lu@intel.com>
874
875         * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
876         (UNSPEC_LDDQU): This.
877         * config/i386/sse.md (sse3_lddqu): Updated.
878
879 2006-10-21  Richard Guenther  <rguenther@suse.de>
880
881         * builtins.c (expand_builtin_int_roundingfn_2): New function.
882         (expand_builtin): Use it to expand lrint instead of
883         expand_builtin_mathfn.
884
885 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
886
887         PR middle-end/28252
888         * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
889         flag_unsafe_math_optimizations is set.
890
891 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
892
893         PR target/19398
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.
897
898 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
899
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
906         are memory operands.
907
908 2006-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
909
910         * Makefile.in (LIBS): Add $(GMPLIBS).
911         * doc/install.texi: Update GMP and MPFR requirements.
912         * doc/sourcebuild.texi (need_gmp): Delete.
913
914 2006-10-21  Richard Guenther  <rguenther@suse.de>
915
916         PR tree-optimization/3511
917         * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
918         got new invariant arguments during PHI translation.
919
920 2006-10-21  Richard Guenther  <rguenther@suse.de>
921
922         PR middle-end/26898
923         * fold-const.c (fold_comparison): Fold signed comparisons
924         of the form X +- C1 CMP Y +- C2.
925
926 2006-10-21  Richard Guenther  <rguenther@suse.de>
927
928         PR target/19116
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.
934
935 2006-10-21  Richard Guenther  <rguenther@suse.de>
936
937         * builtins.c (fold_builtin_classify): Fix typo.
938
939 2006-10-21  Richard Guenther  <rguenther@suse.de>
940
941         PR middle-end/28796
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.
946
947 2006-10-21  Richard Guenther  <rguenther@suse.de>
948
949         PR target/29512
950         * config/i386/i386.c (classify_argument): Remove redundant
951         walking of the BINFOs.
952         (contains_128bit_aligned_vector_p): Likewise.
953
954 2006-10-20  Mark Mitchell  <mark@codesourcery.com>
955
956         * BASE-VER: Set to 4.3.0.
957
958 2006-10-20  Daniel Berlin  <dberlin@dberlin.org>
959
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
978         nonlocal_all.
979
980 2006-10-19  Brooks Moses  <bmoses@stanford.edu>
981
982         * doc/install.texi (Downloading GCC): Clarify mention of
983         Fortran in the "full distribution" description.
984
985 2006-10-19  Daniel Berlin  <dberlin@dberlin.org>
986
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,
993         pushed into callers.
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
1006         successors.
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
1018         calls.
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
1022         escape variable.
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
1027         escaped vars.
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
1031         variables.
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
1041         nonlocal_all.
1042         (delete_alias_heapvars): Free nonlocal_for_type and null out
1043         nonlocal_all.
1044
1045 2006-10-19  Eric Botcazou  <ebotcazou@adacore.com>
1046
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.
1058
1059 2006-10-19  Chen Liqin  <liqin@sunnorth.com.cn>
1060
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.
1083
1084 2006-10-19  Nick Clifton  <nickc@redhat.com>
1085
1086         * config/arm/arm.c: Fix spelling typo.
1087
1088 2006-10-18  Tom Tromey  <tromey@redhat.com>
1089
1090         * doc/install.texi (Prerequisites): Mention automake 1.9.6.
1091
1092 2006-10-18  Jan Hubicka  <jh@suse.cz>
1093
1094         PR middle-end/29299
1095         * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
1096         are used.
1097
1098 2006-10-18  Marcin Dalecki  <martin@dalecki.de>
1099
1100         * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
1101         TSI_SAME_STMT, since that's the desired entity.
1102
1103 2006-10-17  Wolfgang Gellerich  <gellerich@de.ibm.com>
1104
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.
1120
1121 2006-10-17  Andrew Pinsiki  <pinskia@gmail.com>
1122             Richard Sandiford  <richard@codesourcery.com>
1123
1124         PR target/29413
1125         * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
1126         * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
1127
1128 2006-10-16  Geoffrey Keating  <geoffk@apple.com>
1129
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.
1134
1135 2006-10-17  Paul Brook  <paul@codesourcery.com>
1136
1137         * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
1138
1139 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
1140
1141         * doc/contrib.texi, doc/install.texi, doc/standards.texi:
1142         Standardize on "GNU Fortran" as the official name of the Fortran
1143         compiler.
1144
1145 2006-10-16  Mike Stump  <mrs@apple.com>
1146
1147         * doc/invoke.texi (Darwin Options): Document -mkernel.
1148         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
1149         -mkernel support.
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.
1160         (mkernel): Add.
1161         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
1162         -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
1163         -mkernel support.
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
1175         in kexts.
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.
1183
1184 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
1185
1186         * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
1187         Added mention of "make pdf" target, and Texinfo requirements for
1188         same.
1189
1190 2006-10-16  DJ Delorie  <dj@redhat.com>
1191
1192         * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
1193         into the GOT in case we need a subreg of the address.
1194
1195 2006-10-16  Richard Guenther  <rguenther@suse.de>
1196
1197         PR target/25519
1198         * doc/extend.texi (X86 Built-in Functions): Fix typos in
1199         SSE builtin documentation.  Document SSE2 builtins.
1200
1201 2006-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1202
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.
1206
1207         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
1208         posix thread support.
1209
1210 2006-10-15  Jan Hubicka  <jh@suse.cz>
1211
1212         PR middle-end/29241
1213         * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
1214         declared always_inline even when not inlining.
1215
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>
1219
1220         PR middle-end/29111
1221         * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
1222
1223 2006-10-15  Jan Hubicka  <jh@suse.cz>
1224             Richard Guenther  <rguenther@suse.de>
1225
1226         PR middle-end/29299
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.
1230
1231 2006-10-15  Bernhard Fischer  <aldot@gcc.gnu.org>
1232
1233         * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
1234
1235 2006-10-14  Uros Bizjak  <uros@kss-loka.si>
1236
1237         * config/i386/athlon.md (athlon_fist): Add fisttp.
1238
1239 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
1240             Ian Lance Taylor  <ian@airs.com>
1241
1242         PR middle-end/29250
1243         * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
1244         CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
1245         recursing.
1246
1247 2006-10-14  Kazu Hirata  <kazu@codesourcery.com>
1248
1249         * config/score/score.c, config/score/score.h: Fix comment
1250         typos.
1251
1252 2006-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1253
1254         PR bootstrap/29402
1255         * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
1256         shell pipeline.
1257
1258 2006-10-13  Eric Christopher  <echristo@apple.com>
1259
1260         * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1261
1262 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
1263
1264         Revert this change:
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.
1268
1269 2006-10-13  Eric Christopher  <echristo@apple.com>
1270
1271         * config/darwin.c (darwin_emit_unwind_label): Strip
1272         name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
1273
1274 2006-10-13  Richard Guenther  <rguenther@suse.de>
1275
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.
1283
1284 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
1285
1286         * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
1287         and MPFR for gfortran.
1288
1289 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
1290
1291         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
1292         alignment supported by 32-bit ELF.
1293
1294 2006-10-13  Paolo Bonzini  <bonzini@gnu.org>
1295
1296         PR c/29092
1297
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.
1305
1306 2006-10-13  Daniel Berlin <dberlin@dberlin.org>
1307             Ramana Radhakrishnan  <ramana.radhakrishnan@celunite.com>
1308
1309         * tree-flow-inline.h (zero_ssa_operands): Fix comment.
1310
1311 2006-10-12  Jan Hubicka  <jh@suse.cz>
1312
1313         PR c/28419
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.
1316
1317 2006-10-12  Jie Zhang  <jie.zhang@analog.com>
1318
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.
1322
1323 2006-10-11  Richard Guenther  <rguenther@suse.de>
1324
1325         PR tree-optimization/28230
1326         * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
1327         to the correct place.
1328
1329 2006-10-11  Richard Guenther  <rguenther@suse.de>
1330
1331         PR inline-asm/29119
1332         * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
1333         addressable.
1334
1335 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
1336
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.
1341
1342 2006-10-10  Anatoly Sokolov <aesok@post.ru>
1343
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.
1351
1352 2006-10-10  Adam Nemet  <anemet@caviumnetworks.com>
1353
1354         * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
1355         avoid alias set 0.
1356
1357 2006-10-10  Jakub Jelinek  <jakub@redhat.com>
1358
1359         PR middle-end/29272
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.
1363
1364 2006-10-10  Richard Guenther  <rguenther@suse.de>
1365
1366         PR rtl-optimization/29323
1367         * except.c (set_nothrow_function_flags): For functions
1368         that do not bind local bail out early.
1369
1370 2006-10-10  Ben Elliston  <bje@au.ibm.com>
1371
1372         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
1373         -mdlmzb option.
1374
1375 2006-10-09  Richard Henderson  <rth@redhat.com>
1376
1377         Revert emutls patch.
1378
1379 2006-10-09  Richard Guenther  <rguenther@suse.de>
1380
1381         PR middle-end/29254
1382         * cgraphunit.c (verify_cgraph_node): Bail out on earlier
1383         errors.
1384
1385 2006-10-09  Steve Ellcey  <sje@cup.hp.com>
1386
1387         PR target/27880
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.
1392
1393 2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
1394
1395         * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
1396
1397 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
1398
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.
1402
1403 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
1404
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.
1408
1409 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
1410
1411         * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
1412
1413 2006-10-07  Kazu Hirata  <kazu@codesourcery.com>
1414
1415         * gimplify.c, sched-int.h: Fix comment typos.
1416
1417         * sched-int.h: Fix comment typos.
1418
1419 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1420
1421         * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
1422         New macros.
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.
1428
1429 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1430
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.
1435
1436 2006-10-06  Zdenek Dvorak <dvorakz@suse.cz>
1437
1438         PR middle-end/29256
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.
1443
1444 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
1445
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.
1454
1455         * tree-loop-linear.c (linear_transform_loops): Don't forget to
1456         free DEPENDENCE_RELATIONS and DATAREFS.
1457
1458         PR target/28924
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.
1462
1463 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
1464
1465         * print-tree.c (print_node_brief, print_node): Print sign of Inf.
1466
1467 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
1468
1469         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
1470
1471 2006-10-05  Uros Bizjak  <uros@kss-loka.si>
1472
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.
1476
1477 2006-10-06  Olivier Hainque  <hainque@adacore.com>
1478
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.
1484
1485 2006-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
1486
1487         * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
1488
1489 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
1490
1491         PR tree-optimization/29290
1492         * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
1493         multiple exits.
1494
1495         PR target/29198
1496         * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
1497         * config/i386/predicates.md (local_symbolic_operand): Likewise.
1498
1499         PR c/29091
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.
1502
1503 2006-10-05  Richard Sandiford  <richard@codesourcery.com>
1504
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
1507         instead.
1508
1509 2006-10-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1510
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.
1515
1516 2006-10-05  Ira Rosen  <irar@il.ibm.com>
1517
1518         * doc/loop.texi: Add data references analysis description.
1519
1520 2006-10-04  Brooks Moses  <bmoses@stanford.edu>
1521
1522         * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
1523
1524 2006-10-04  Richard Henderson  <rth@redhat.com>
1525             Jakub Jelinek  <jakub@redhat.com>
1526
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
1540         emulated tls.
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
1558         for emulated tls.
1559         * emutls.c: New file.
1560         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
1561         tls_object for real tls.
1562
1563 2006-10-04  Zack Weinberg  <zackw@panix.com>
1564
1565         Fix bug in constraint-check generator, reported by Rask Ingemann
1566         Lambertsen:
1567         * genpreds.c (add_constraint): Don't remove anything from the
1568         expression here.
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.
1574
1575 2006-10-04  Ryan Mansfield  <rmansfield@qnx.com>
1576
1577         PR c++/28448
1578         * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
1579
1580 2006-10-03  Geoffrey Keating  <geoffk@apple.com>
1581
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.
1585
1586 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
1587
1588         * doc/install.texi: Fix typos.
1589
1590 2006-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
1591
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.
1595
1596 2006-10-02  Jack Howarth  <howarth@bromo.med.uc.edu>
1597
1598         * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
1599         arg to be struct mach_header_64* instead.
1600
1601 2006-10-02  Jakub Jelinek  <jakub@redhat.com>
1602
1603         PR c/29154
1604         * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
1605         side effects after the outer expression's post side effects.
1606
1607 2006-10-01  Sandra Loosemore  <sandra@codesourcery.com>
1608
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.
1612
1613         * doc/c-tree.texi (Working with declarations): Fix documentation
1614         of FIELD_DECL likewise.
1615
1616 2006-10-01  Ryan Mansfield  <rmansfield@qnx.com>
1617
1618         PR c/20533
1619         * doc/extend.texi: Add used variable attribute description.
1620
1621 2006-09-30  Joseph S. Myers  <joseph@codesourcery.com>
1622
1623         PR c/24010
1624         * c.opt (Woverride-init): New.
1625         * c-opts.c (c_common_post_options): Default warn_override_init to
1626         extra_warnings.
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.
1630         (-Wextra): Update.
1631
1632 2006-09-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
1633
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.
1637
1638 2006-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1639
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
1677         dump file.
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.
1684
1685 2006-09-28  Geoffrey Keating  <geoffk@apple.com>
1686
1687         PR target/28617
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
1691         darwin-64.c.
1692         * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
1693
1694 2006-09-28  Steve Ellcey  <sje@cup.hp.com>
1695
1696         * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
1697         * config/ia64/unwind-hpux.c: Delete.
1698
1699 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
1700
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
1703         variable size.
1704
1705 2006-09-28  Zdenek Dvorak <dvorakz@suse.cz>
1706
1707         * doc/loop.texi: New file.
1708         * doc/gccint.texi: Reference loop.texi.
1709         * Makefile.in (loop.texi): Add.
1710
1711 2006-09-27  Geoffrey Keating  <geoffk@apple.com>
1712
1713         * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
1714         __sysctl.
1715         * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
1716         * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
1717
1718 2006-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1719
1720         * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
1721
1722 2006-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
1723
1724         * doc/install.texi: Document required versions of GMP and MPFR.
1725
1726 2006-09-27  Paul Brook  <paul@codesourcery.com>
1727
1728         PR target/29230
1729         * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
1730
1731 2006-09-27  Richard Sandiford  <richard@codesourcery.com>
1732
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
1736         reg_max_ref_width.
1737
1738 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
1739
1740         PR middle-end/25261
1741         PR middle-end/28790
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.
1745
1746 2006-09-25  Matthias Klose  <doko@debian.org>
1747
1748         * doc/invoke.texi: Add missing full stop.
1749
1750 2006-09-25  Richard Henderson  <rth@redhat.com>
1751
1752         * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
1753         before cgraph_function_flags_ready.
1754
1755 2006-09-24  Zdenek Dvorak <dvorakz@suse.cz>
1756             Adam Nemet  <anemet@caviumnetworks.com>
1757
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.
1762
1763 2006-09-24  Kazu Hirata  <kazu@codesourcery.com>
1764
1765         PR target/28911
1766         * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
1767         -2147483647 - 1 instead of 0x80000000.
1768
1769 2006-09-23  Revital1 Eres  <ERES@il.ibm.com>
1770
1771         * flags.h (HONOR_NANS): Fix typo in comment.
1772
1773 2006-09-23  Uros Bizjak <uros@kss-loka.si>
1774
1775         * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
1776
1777 2006-09-23  Jakub Jelinek  <jakub@redhat.com>
1778
1779         PR c/28706
1780         PR c/28712
1781         * tree.c (merge_attributes, attribute_list_contained): If both
1782         TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
1783         simple_cst_equal.
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.
1788
1789 2006-09-22  Geoffrey Keating  <geoffk@apple.com>
1790
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.
1797
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.
1801
1802 2006-09-22  Mike Stump  <mrs@apple.com>
1803
1804         * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
1805         code.
1806
1807 2006-09-22  Richard Guenther  <rguenther@suse.de>
1808
1809         PR middle-end/28964
1810         * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
1811         sort of stack variables stable.
1812
1813 2006-09-22  Peter Bergner <bergner@vnet.ibm.com>
1814
1815         PR middle-end/28690
1816         * explow.c (force_reg): Set REG_POINTER flag according to
1817         MEM_POINTER flag.
1818
1819 2006-09-22  Zdenek Dvorak <dvorakz@suse.cz>
1820
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.
1825
1826 2006-09-22  Jakub Jelinek  <jakub@redhat.com>
1827
1828         * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
1829         needed.
1830
1831 2006-09-21  Richard Sandiford  <richard@codesourcery.com>
1832
1833         * varasm.c (copy_constant): Fix reversed gcc_assert check.
1834
1835 2006-09-21  Janis Johnson  <janis187@us.ibm.com>
1836
1837         * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
1838
1839 2006-09-21  Roger Sayle  <roger@eyesopen.com>
1840
1841         PR debug/29132
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.
1845
1846 2006-09-20  Richard Sandiford  <richard@codesourcery.com>
1847
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.
1857
1858 2006-09-20  Josh Conner  <jconner@apple.com>
1859
1860         PR middle-end/25505
1861         * calls.c (expand_call): Allow reuse of structure return stack
1862         temp.
1863
1864 2006-09-20  Paul Brook  <paul@codesourcery.com>
1865
1866         * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
1867         positive offsets.
1868
1869 2006-09-20  Janis Johnson  <janis187@us.ibm.com>
1870
1871         * doc/extend.texi (Decimal Float): Update for latest draft TR,
1872         clean up terminology.
1873
1874 2006-09-20  Steve Ellcey  <sje@cup.hp.com>
1875
1876         PR target/28574
1877         * ifcvt.c (dead_or_predicable): Don't predicate then blocks
1878         with tablejumps in them.
1879
1880 2006-09-20  Jakub Jelinek  <jakub@redhat.com>
1881
1882         PR middle-end/28046
1883         * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
1884         wrap it into TARGET_EXPR.
1885
1886 2006-09-20  Eric Christopher  <echristo@apple.com>
1887
1888         * config/i386/i386.c (x86_fisttp): Remove.
1889         * config/i386/i386.h (x86_fisttp): Ditto.
1890         (TARGET_FISTTP): Ditto.
1891
1892 2006-09-19  Eric Christopher  <echristo@apple.com>
1893
1894         * doc/tm.texi (OBJC_JBLEN): Describe.
1895         * config/i386/darwin.h (OBJC_JBLEN): Define.
1896         * config/rs6000/darwin.h: Ditto.
1897
1898 2006-09-19  Steven Bosscher  <steven@gcc.gnu.org>
1899
1900         PR rtl-optimization/21299
1901         * reload1.c (reload): Purge invalid ASMs in the final pass.
1902
1903 2006-09-19  Steve Ellcey  <sje@cup.hp.com>
1904
1905         PR  28490
1906         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
1907         pointers as legitimate constants.
1908
1909 2006-09-19  Paul Brook  <paul@codesourcery.com>
1910
1911         PR target/28516
1912         * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
1913
1914 2006-09-17  Zdenek Dvorak <dvorakz@suse.cz>
1915
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.
1921
1922 2006-09-17  Steven Bosscher  <steven@gcc.gnu.org>
1923
1924         PR c/25993
1925         * c-opts.c (c_common_handle_option): Ignore the -std options
1926         if the input language is assembly.
1927
1928 2006-09-17  Ira Rosen  <irar@il.ibm.com>
1929
1930         PR tree-opt/21591
1931         * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
1932         tag first.
1933         (ptr_ptr_may_alias_p): Likewise.
1934         (record_record_differ_p): New function.
1935         (base_object_differ_p): Call record_record_differ_p.
1936
1937 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
1938
1939         PR tree-opt/29059
1940         * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
1941         away for the expr argument.
1942
1943 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
1944
1945         PR tree-opt/27742
1946         * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
1947         before using it for dumping after vectorizing loops.
1948
1949 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
1950             Jack Howarth  <howarth@bromo.med.uc.edu>
1951
1952         PR target/29030
1953         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
1954         skip on error_mark_node.
1955         (rs6000_darwin64_record_arg_recurse): Likewise.
1956
1957 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
1958
1959         * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
1960         * doc/rtl.texi: Remove related documentation.
1961
1962 2006-09-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1963
1964         * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
1965         printf.
1966
1967 2006-09-15  Jim Wilson  <wilson@specifix.com>
1968
1969         * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
1970         Handle symbol offsets same as they are handled in ia64_expand_move
1971         and move_operand.
1972
1973 2006-09-16  Andreas Tobler  <a.tobler@schweiz.org>
1974
1975         * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
1976         Add forgotten parameter to the fprintf call.
1977
1978 2006-09-15  Steve Ellcey  <sje@cup.hp.com>
1979
1980         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
1981
1982 2006-09-15  Uros Bizjak <uros@kss-loka.si>
1983
1984         * doc/contrib.texi: Add my entry.
1985
1986 2006-09-15  Nick Clifton  <nickc@redhat.com>
1987
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.
1991
1992 2006-09-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1993
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.
1998
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.
2002
2003         * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
2004
2005         * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
2006         bad.
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
2016         flag.
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.
2019
2020 2006-09-15  Kazu Hirata  <kazu@codesourcery.com>
2021
2022         * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
2023         one line.
2024
2025 2006-09-14  Richard Guenther  <rguenther@suse.de>
2026             Kazu Hirata  <kazu@codesourcery.com>
2027
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.
2033
2034 2006-09-14  Anatoly Sokolov <aesok@post.ru>
2035
2036         PR target/26504
2037         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
2038
2039 2006-09-13  Aldy Hernandez  <aldyh@redhat.com>
2040
2041         * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
2042         of a RETURN_EXPR
2043
2044 2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
2045
2046         PR debug/28980
2047         * dwarf2out.c (loc_descriptor_from_tree_1): Handle
2048         FUNCTION_DECL.
2049
2050 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
2051
2052         * basic_block.h (bb_has_eh_pred): Fix comment.
2053
2054 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
2055
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
2059         block start.
2060         * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
2061         registers.
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.
2065
2066 2006-09-13  Richard Sandiford  <richard@codesourcery.com>
2067
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.
2073
2074 2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>
2075
2076         * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
2077         for -Os. Update __m128 alignment requirement.
2078
2079 2006-09-13  Jan Hubicka  <jh@suse.cz>
2080
2081         * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
2082
2083 2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2084
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.
2088
2089 2006-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
2090             Roger Sayle  <roger@eyesopen.com>
2091
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.
2095
2096 2006-09-12  Jason Merrill  <jason@redhat.com>
2097
2098         PR middle-end/28493
2099         * builtins.c (expand_builtin_setjmp_receiver): Clobber
2100         hard_frame_pointer_rtx after using it to update the frame pointer.
2101
2102 2006-09-12  Roger Sayle  <roger@eyesopen.com>
2103
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.
2108
2109 2006-09-12  Roger Sayle  <roger@eyesopen.com>
2110
2111         PR target/22223
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.
2115
2116 2006-09-12  Roger Sayle  <roger@eyesopen.com>
2117
2118         PR middle-end/4520
2119         PR bootstrap/28784
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.
2122
2123 2006-09-12  Jan Hubicka  <jh@suse.cz>
2124
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
2135         of annotations.
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
2152         of set_stmt_info.
2153
2154 2006-09-11  Geoffrey Keating  <geoffk@apple.com>
2155
2156         * config.gcc (i[34567]86-*-darwin*): Set with_arch and
2157         with_cpu by default.
2158
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.
2171         (add_AT_file): New.
2172         (AT_file): New.
2173         (get_AT_file): New.
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
2198         maybe_emit_file.
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.
2205
2206 2006-09-11  H.J. Lu  <hongjiu.lu@intel.com>
2207
2208         PR target/13685
2209         PR target/27537
2210         PR target/28621
2211         * config/i386/i386.c (override_options): Always default to 16
2212         byte stack boundary.
2213
2214 2006-09-11  Alexandre Oliva  <aoliva@redhat.com>
2215
2216         PR target/28672
2217         * var-tracking.c (dump_dataflow_set): Start dumping at
2218         register zero.
2219         (clobber_variable_part): Kill only the variable part in
2220         registers holding it, leaving other variables alone.
2221
2222 2006-09-11  Josh Triplett  <josh@freedesktop.org>
2223
2224         * doc/extend.texi (Other Builtins): Actually use the macro
2225         argument in the documentation example for
2226         __builtin_types_compatible_p.
2227
2228 2006-09-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
2229
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
2234         register.
2235         (sched_analyze_2): ...and here.  Call it to analyze references to
2236         registers.  Treat again reads of a stack register as reading the
2237         register.
2238
2239 2006-09-11  Guenter Roeck  <guenter@roeck-us.net>
2240             David Edelsohn  <edelsohn@gnu.org>
2241
2242         PR target/27287
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.
2246
2247 2006-09-11  Hideki Iwamoto  <h-iwamoto@kit.hi-ho.ne.jp>
2248
2249         * doc/cpp.texi: Fix names of charset options.
2250
2251 2006-09-10  Andrew Pinski  <pinskia@physics.uc.edu>
2252
2253         PR target/29009
2254         * config/i386/i386.c (override_options): Use 128-bit
2255         stack boundary always for 64bits.
2256
2257 2006-09-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2258
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.
2263
2264 2006-09-10  Steven Bosscher  <steven@gcc.gnu.org>
2265
2266         PR middle-end/26983
2267         * builtins.c (expand_builtin_setjmp): Force next_lab to be
2268         preserved.
2269
2270 2006-09-10  Richard Sandiford  <richard@codesourcery.com>
2271
2272         PR target/29006
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.
2281
2282 2006-09-10  Eric Christopher  <echristo@apple.com>
2283
2284         * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
2285         for literal16.
2286
2287 2006-09-09  Eric Christopher  <echristo@apple.com>
2288
2289         PR target/28995
2290         * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
2291         for literal16.
2292
2293 2006-09-09  Roger Sayle  <roger@eyesopen.com>
2294             Nicolas Setton <setton@adacore.com>
2295
2296         * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
2297
2298 2006-09-10  Andreas Schwab  <schwab@suse.de>
2299
2300         * config/m68k/m68k.md (bungt_rev): New pattern.
2301
2302 2006-09-09  Paolo Bonzini  <bonzini@gnu.org>
2303             Dale Johannesen  <dalej@apple.com>
2304
2305         PR target/26778
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.
2309
2310 2006-09-08  Eric Christopher  <echristo@apple.com>
2311
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
2324         x86_64.
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.
2333
2334 2006-09-08  Joseph S. Myers  <joseph@codesourcery.com>
2335
2336         PR c/28504
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.
2344
2345 2006-09-07  Jason Merrill  <jason@redhat.com>
2346
2347         PR middle-end/27724
2348         * varasm.c (output_constant): Only strip actual no-op conversions.
2349
2350         PR target/13685
2351         * config/i386/i386.c (override_options): Use 128-bit
2352         stack boundary if -msse.
2353
2354 2006-09-07  Eric Christopher  <echristo@apple.com>
2355
2356         * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
2357         comment.
2358         * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
2359         Redefine.
2360
2361 2006-09-07  Geoffrey Keating  <geoffk@apple.com>
2362
2363         * dwarf2out.c: Remove strange characters from comment above
2364         dwarf2out_frame_debug_expr.
2365
2366 2006-09-07  Eric Christopher  <echristo@apple.com>
2367
2368         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
2369         * config/darwin.h: ... to here.
2370
2371 2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>
2372
2373         * config/i386/i386.c (x86_partial_flag_reg_stall): New.
2374
2375         * config/i386/i386.h (x86_partial_flag_reg_stall): New.
2376         (TARGET_PARTIAL_FLAG_REG_STALL): New.
2377
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.
2406
2407 2006-09-07 Uros Bizjak <uros@kss-loka.si>
2408
2409         PR target/28946
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.
2420
2421 2006-09-07  Martin Michlmayr  <tbm@cyrius.com>
2422
2423         * doc/contrib.texi: Add myself.
2424
2425 2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
2426
2427         PR middle-end/28862
2428         * stor-layout.c (relayout_decl): Don't zero the alignment if it
2429         was set by the user.
2430
2431 2006-09-07  Paolo Bonzini  <bonzini@gnu.org>
2432
2433         PR target/27117
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.
2437
2438 2006-09-06  James E Wilson  <wilson@specifix.com>
2439
2440         PR rtl-opt/27883
2441         * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
2442         then call count_or_remove_death_notes.
2443
2444 2006-09-06  Jason Merrill  <jason@redhat.com>
2445
2446         PR c++/27371
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.
2450
2451 2006-09-06  Diego Novillo  <dnovillo@redhat.com>
2452
2453         * doc/contrib.texi: Update my entry.
2454
2455 2006-09-06  Nick Clifton  <nickc@redhat.com>
2456
2457         * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
2458
2459 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
2460
2461         PR tree-opt/28937
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):
2471         Likewise.
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
2480         remove_empty_loops.
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.
2488
2489 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
2490
2491         PR tree-opt/28952
2492         * tree-vect-transform.c (vectorizable_condition): Move the check
2493         for the type after the check for simple condition.
2494
2495 2006-09-05  J"orn Rennecke  <joern.rennecke@st.com>
2496             Kaz Kojima  <kkojima@gcc.gnu.org>
2497
2498         PR target/28764
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
2502         an abnormal edge.
2503
2504 2006-09-05  Paolo Bonzini  <bonzini@gnu.org>
2505
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.
2514
2515 2006-09-05  Anatoly Sokolov <aesok@post.ru>
2516
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.
2521
2522 2006-09-05  Richard Guenther  <rguenther@suse.de>
2523
2524         PR tree-optimization/28900
2525         * tree-if-conv.c (find_phi_replacement_condition): Gimplify
2526         compound conditional before creating COND_EXPR condition.
2527
2528 2006-09-05  Richard Guenther  <rguenther@suse.de>
2529
2530         PR tree-optimization/28905
2531         * tree-vrp.c (fix_equivalence_set): Manually implement
2532         !value_ranges_intersect_p to also handle symbolic ranges.
2533
2534 2006-09-05  Richard Guenther  <rguenther@suse.de>
2535
2536         PR middle-end/28935
2537         * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
2538         of a COND_EXPR.
2539
2540 2006-09-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2541
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.
2554
2555 2006-09-02  Geoffrey Keating  <geoffk@apple.com>
2556
2557         Revert this change:
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.
2562
2563 2006-09-02  Jakub Jelinek  <jakub@redhat.com>
2564
2565         PR middle-end/27567
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
2569         into an assignment.
2570         (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
2571         functions.
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}.
2578
2579 2006-09-01  DJ Delorie  <dj@redhat.com>
2580
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.
2587         (b<code>_op): New.
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.
2595         (s<code>): New.
2596         (s<code>_24): 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.
2603
2604 2006-09-01  J"orn Rennecke  <joern.rennecke@st.com>
2605         Richard Guenther  <rguenther@suse.de>
2606         Adam Nemet  <anemet@caviumnetworks.com>
2607
2608         PR middle-end/27226
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.
2612
2613 2006-09-01  Jason Merrill  <jason@redhat.com>
2614
2615         PR c++/28899
2616         * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
2617         want_value.
2618
2619         * gimplify.c (voidify_wrapper_expr): Handle null type.
2620
2621 2006-09-01  Josh Conner  <jconner@apple.com>
2622
2623         PR c++/25505
2624         * tree-nrv.c (dest_safe_for_nrv_p): New function.
2625         (execute_return_slot_opt): Use it.
2626
2627 2006-08-31  Josh Conner  <jconner@apple.com>
2628
2629         PR c++/25505
2630         * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
2631         returning aggregates.
2632
2633 2006-08-31  Zdenek Dvorak <dvorakz@suse.cz>
2634
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.
2638
2639 2006-08-31  Roger Sayle  <roger@eyesopen.com>
2640
2641         PR other/22313
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
2644         current label.
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.
2648
2649 2006-08-31  Andreas Krebbel  <krebbel1@de.ibm.com>
2650
2651         PR target/24367
2652         * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
2653         r12 + SYMBOLIC_CONST.
2654
2655 2006-08-30  Richard Guenther  <rguenther@suse.de>
2656
2657         * Makefile.in (see.o): Add $(EXPR_H) dependency.
2658
2659 2006-08-30  Zdenek Dvorak <dvorakz@suse.cz>
2660
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.
2668
2669 2006-08-29  H.J. Lu  <hongjiu.lu@intel.com>
2670
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.
2677
2678 2006-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
2679             J"orn Rennecke  <joern.rennecke@st.com>
2680
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.
2684
2685 2006-08-28  Zdenek Dvorak <dvorakz@suse.cz>
2686
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):
2693         Declare.
2694         * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
2695         in double_int.
2696         (get_computation_aff, get_computation_cost_at): Handle double_int
2697         return type of constant_multiple_of.
2698
2699 2006-08-28  Kazu Hirata  <kazu@codesourcery.com>
2700
2701         PR middle-end/26632
2702         * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
2703         an implicit conversion.
2704
2705 2006-08-28  Prafulla Thakare  <prafullat@kpitcummins.com>
2706
2707         * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
2708
2709 2006-08-27  Roger Sayle  <roger@eyesopen.com>
2710
2711         * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
2712         x87 instructions.
2713
2714 2006-08-27  Kazu Hirata  <kazu@codesourcery.com>
2715
2716         * config/i386/crtfastmath.c: Fix a comment typo.
2717
2718 2006-08-26  Roger Sayle  <roger@eyesopen.com>
2719
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.
2727
2728 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
2729
2730         PR c++/24009
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.
2738
2739 2006-08-26  David Edelsohn  <edelsohn@gnu.org>
2740
2741         PR target/27544
2742         * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
2743         (PowerPC Type Attributes): New.
2744
2745 2006-08-26  Bob Wilson  <bob.wilson@acm.org>
2746
2747         * config/xtensa/xtensa.c (function_arg_boundary): New.
2748         (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
2749         STACK_BOUNDARY.
2750         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
2751         function_arg_boundary function that limits alignment to STACK_BOUNDARY.
2752
2753 2006-08-26  Jakub Jelinek  <jakub@redhat.com>
2754
2755         PR middle-end/28683
2756         * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
2757         3 following insns.
2758
2759 2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2760
2761         * flow.c (verify_wide_reg): Use internal_error for consistency failure.
2762         (verify_local_live_at_start): Likewise.
2763
2764 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
2765
2766         PR c/27893
2767         * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
2768         omp_add_variable): Treat sizes as variable whenever not
2769         INTEGER_CST.
2770
2771 2006-08-26  Richard Guenther  <rguenther@suse.de>
2772
2773         PR middle-end/28814
2774         * fold-const.c (fold_binary): Fold temporary to correct
2775         type before constructing new comparison.
2776
2777 2006-08-25  Fariborz Jahanian  <fjahanian@apple.com>
2778
2779         PR c/28418
2780         * c-gimplify.c (gimplify_compound_literal_expr): Don't add
2781         variable again if DECL_SEEN_IN_BIND_EXPR_P.
2782
2783 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
2784
2785         PR c/28299
2786         * c-decl.c (start_function): Don't try to process prototype
2787         information from old declaration that isn't a function.
2788
2789 2006-08-25  Jan Hubicka  <jh@suse.cz>
2790
2791         PR target/28621
2792         * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
2793
2794 2006-08-25  Alan Modra  <amodra@bigpond.net.au>
2795
2796         PR target/27075
2797         * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
2798         for 8 byte objects.
2799
2800 2006-08-25  J"orn Rennecke  <joern.rennecke@st.com>
2801
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.
2805
2806 2006-08-25  Bob Wilson  <bob.wilson@acm.org>
2807
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.
2813
2814 2006-08-25  David Edelsohn  <edelsohn@gnu.org>
2815
2816         PR target/28753
2817         * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
2818         predicate to general_operand.  Add 0->y and I->r alternatives.
2819
2820 2006-08-25  Kazu Hirata  <kazu@codesourcery.com>
2821
2822         * doc/tm.texi: Fix a typo.
2823         * predict.c: Fix comment typos.
2824
2825 2006-08-25  Nick Clifton  <nickc@redhat.com>
2826
2827         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
2828         assertions of "cpu" and "machine".
2829
2830 2006-08-24  Andrew Pinski  <pinskia@physics.uc.edu>
2831
2832         PR tree-opt/28807
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
2835         touch the variable.
2836
2837 2006-08-24  Bill Wendling  <wendling@apple.com>
2838
2839         * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
2840
2841 2006-08-24  Jan Hubicka  <jh@suse.cz>
2842
2843         * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
2844
2845 2006-08-24  Jan Hubicka  <jh@suse.cz>
2846
2847         PR debug/26881
2848         * cgraph.c: Fix comments.
2849         (cgraph_varpool_mark_needed_node): Mark only variables not already
2850         output to file.
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
2857
2858 2006-08-24  Jan Hubicka  <jh@suse.cz>
2859
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%
2863         probability.
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.
2869
2870 2006-08-23  Stuart Hastings  <stuart@apple.com>
2871
2872         PR 28825
2873         * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
2874         ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
2875
2876 2006-08-21  Geoffrey Keating  <geoffk@apple.com>
2877
2878         PR debug/28692
2879         * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
2880         complex values, nor for generic vector values.
2881
2882 2006-08-22  Richard Guenther  <rguenther@suse.de>
2883
2884         PR middle-end/28776
2885         * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
2886         parameter.  Convert arguments to arithmetic expression to the
2887         chrecs type.
2888         (analyze_scalar_evolution_1): Adjust caller.
2889
2890 2006-08-22  Jan Hubicka  <jh@suse.cz>
2891
2892         Patch by Paolo Bonzini
2893         * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
2894         my previous patch.
2895
2896 2006-08-22  Daniel Berlin  <dberlin@dberlin.org>
2897
2898         PR tree-optimization/28003
2899         * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
2900         before grouping aliases.
2901
2902 2006-08-22  Roger Sayle  <roger@eyesopen.com>
2903
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.
2906
2907 2006-08-21  Jason Merrill  <jason@redhat.com>
2908
2909         PR c++/27115
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.
2918
2919 2006-08-21  J"orn Rennecke  <joern.rennecke@st.com>
2920
2921         * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
2922         #if !__SHMEDIA__ .
2923
2924 2006-08-21  Olivier Hainque  <hainque@adacore.com>
2925
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.
2929
2930 2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>
2931
2932         * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
2933         necessary places to pass the correct "number of registers" values
2934         to _Unwind_VRS_Pop.
2935
2936 2006-08-20  Jan Hubicka  <jh@suse.cz>
2937
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.
2943
2944 2006-08-20  Jan Hubicka  <jh@suse.cz>
2945
2946         PR rtl-optimization/28071
2947         * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
2948         twice.
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.
2960
2961 2006-08-20  Jan Hubicka  <jh@suse.cz>
2962
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.
2968
2969 2006-08-20  Jan Hubicka  <jh@suse.cz>
2970
2971         PR middle-end/28779
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.
2975
2976 2006-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
2977
2978         PR target/28648 c:
2979         * tree.c (handle_dll_attribute): Return early if not a
2980         var or function decl.
2981
2982 2006-08-18  Joseph Myers  <joseph@codesourcery.com>
2983
2984         PR target/27565
2985         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
2986         alignment of SPE vector types.
2987
2988 2006-08-18  Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
2989
2990         * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
2991
2992 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
2993
2994         PR c/28744
2995         * cgraph.h (struct cgraph_node): Remove externally_visible
2996         bitfield.
2997         * cgraphunit.c (process_function_and_variable_attributes): Set
2998         local.externally_visible rather than externally_visible.
2999
3000         PR c/28744
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.
3006
3007 2006-08-17  Jan Hubicka  <jh@suse.cz>
3008
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
3012         for later removal.
3013         (reload_as_needed): Use the new mechanizm.
3014
3015 2006-08-17  Alexandre Oliva  <aoliva@redhat.com>
3016
3017         PR target/28146
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.
3026
3027 2006-08-17  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3028
3029         PR rtl-optimization/28489
3030         * sched-ebb.c (begin_schedule_ready): Create basic block
3031         at the right place.
3032         (advance_target_bb): Skip empty blocks.
3033         * haifa-sched.c (bb_note): Make global.
3034         * sched-int.h (bb_note): Add prototype.
3035
3036 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
3037
3038         PR tree-optimization/27865
3039         * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
3040         for pointer types.
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
3046         for pointers.
3047
3048 2006-08-17  Paolo Bonzini <bonzini@gnu.org>
3049
3050         PR c++/28573
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.
3057
3058 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
3059
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.
3066
3067 2006-08-16  Naveen.H.S  <naveenh@kpitcummins.com>
3068
3069         * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
3070
3071 2006-08-16  Joseph S. Myers  <joseph@codesourcery.com>
3072
3073         PR c/27697
3074         * c-typeck.c (build_component_ref): Combine qualifiers of
3075         structure or union and field.
3076
3077 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
3078
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
3084         functions.
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.
3089
3090 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
3091
3092         PR tree-optimization/28364
3093         * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
3094         correctly.
3095         (fold_affine_expr): New function.
3096         (may_eliminate_iv): Use fold_affine_expr.
3097
3098 2006-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3099
3100         PR c/27489
3101         * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
3102         Clean up.
3103
3104 2006-08-16  Mike Stump  <mrs@apple.com>
3105
3106         * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
3107         * doc/cppopts.texi (-MD): Likewise.
3108
3109 2006-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
3110
3111         PR c/28287
3112         * c-common.c (handle_weak_attribute): Ignore and warn if
3113         not a FUNCTION_ or VAR_DECL.
3114
3115 2006-07-15  Mike Stump  <mrs@apple.com>
3116
3117         PR c/28280
3118         * c-parser.c (c_parser_typeof_specifier): Don't use
3119         c_finish_expr_stmt, open code desired semantics instead.
3120
3121 2006-08-15  Nick Clifton  <nickc@redhat.com>
3122
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.
3127
3128 2006-08-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3129
3130         PR c/28649
3131         * c-parser.c (c_parser_compound_statement_nostart): Reset
3132         parser->error after each statement.
3133
3134 2006-08-15  Jakub Jelinek  <jakub@redhat.com>
3135
3136         PR middle-end/28713
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.
3141
3142         PR middle-end/28724
3143         * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
3144         to itype in assignment to oldival2.
3145
3146 2006-07-14  Andrew Pinski  <pinksia@physics.uc.edu>
3147
3148         PR c/27490
3149         PR c/27489
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.
3153
3154 2006-07-14  Mike Stump  <mrs@apple.com>
3155
3156         * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
3157
3158 2006-08-14  Kazu Hirata  <kazu@codesourcery.com>
3159
3160         * c-decl.c, var-tracking.c: Fix comment typos.
3161
3162 2006-08-14  Richard Sandiford  <richard@codesourcery.com>
3163
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.
3167
3168 2006-08-13  Alexandre Oliva  <aoliva@redhat.com>
3169             Andrew Pinski  <pinskia@physics.uc.edu>
3170
3171         PR c/27184
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
3178         literal.
3179
3180         * c-decl.c (grokdeclarator): Remove code where we copy the
3181         array type over.
3182
3183 2006-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
3184
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.
3193
3194 2006-08-13  Dirk Mueller  <dmueller@suse.de>
3195
3196         * c-common.c (strict_aliasing_warning): Fix formatting.
3197
3198 2006-08-13  Matthias Klose  <doko@debian.org>
3199
3200         * doc/invoke.texi: Fix spelling errors.
3201
3202 2006-08-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3203
3204         PR rtl-optimization/23454
3205         * reorg.c (relax_delay_slots): Update comment.
3206
3207 2006-08-11  Richard Guenther  <rguenther@suse.de>
3208
3209         PR middle-end/28651
3210         * simplify-rtx.c (simplify_const_relational_operation):
3211         Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
3212         codes.
3213
3214 2006-08-10  Eric Botcazou  <ebotcazou@adacore.com>
3215
3216         * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
3217         TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
3218
3219 2006-08-10  Paul Brook  <paul@codesourcery.com>
3220
3221         * final.c (final_scan_insn): Clear current_insn_predicate before
3222         outputting inline asm.
3223
3224 2006-08-10  Dorit Nuzman  <dorit@il.ibm.com>
3225
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
3231         new_type_alias.
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.
3235
3236 2006-08-09  Nathan Sidwell  <nathan@codesourcery.com>
3237
3238         * gcov.c (no_data_file): New flag.
3239         (read_count_file): Set it if data file not present.  Assume counts
3240         zero if not found.
3241         (output_lines): Don't name the data file, if there wasn't one.
3242
3243 2006-08-09  Eric Botcazou  <ebotcazou@adacore.com>
3244
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.
3248
3249 2006-08-09  Alexandre Oliva  <aoliva@redhat.com>
3250
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
3258         if requested.
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
3270         decl link.
3271
3272 2006-08-07  Victor Kaplansky <victork@il.ibm.com>
3273
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.
3277
3278 2006-08-06  Paolo Bonzini  <bonzini@gnu.org>
3279
3280         PR target/27827
3281
3282         * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
3283         instructions.
3284
3285 2006-08-06  Andreas Schwab  <schwab@suse.de>
3286
3287         * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
3288         string.  Whitespace and comment fixup.
3289
3290 2006-08-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3291
3292         PR c/28502
3293         * c-decl.c (validate_proto_after_old_defn): Return false on invalid
3294         argument.
3295
3296         PR c/27721
3297         * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
3298
3299         PR c/28136
3300         * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
3301
3302 2006-08-04  Jan Hubicka  <jh@suse.cz>
3303
3304         PR target/26655
3305         PR target/28270
3306         * reload.c (push_reload): Patch out the mismatching instruction;
3307         return early.
3308         (find_reload): Bail out if the instruction was patched out.
3309
3310 2006-08-04  Jan Hubicka  <jh@suse.cz>
3311
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.
3315
3316 2006-08-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3317             Roger Sayle  <roger@eyesopen.com>
3318
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
3327         effects.
3328
3329 2006-08-04  Kazu Hirata  <kazu@codesourcery.com>
3330
3331         * tree-cfg.c: Fix a comment typo.
3332
3333 2006-08-03  Mark Mitchell  <mark@codesourcery.com>
3334
3335         PR c++/28148
3336         * varasm.c (output_constant): Give the front end another chance to
3337         expand constants, after stripping NOPs.
3338
3339 2006-08-03  Jan Hubicka  <jh@suse.cz>
3340
3341         * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
3342         implementation.
3343
3344 2006-08-03  Dorit Nuzman  <dorit@il.ibm.com>
3345
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.
3359
3360 2006-08-03  David Edelsohn  <edelsohn@gnu.org>
3361
3362         PR target/27566
3363         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
3364         not reload a SPE symbol_ref into a lo_sum address.
3365
3366 2006-08-02  Daniel Jacobowitz  <dan@codesourcery.com>
3367
3368         PR debug/28063
3369         * dwarf2out.c (prune_unused_types_prune): Move call to
3370         prune_unused_types_update_strings to cover the parent DIE also.
3371
3372 2006-08-02  Jan Hubicka  <jh@suse.cz>
3373
3374         PR gcov/profile/28480
3375         * tree-cfg.c (change_bb_for_stmt): New function.
3376         (tree_merge_blocks, tree_split_blocks): Use it.
3377
3378 2006-08-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3379
3380         PR c++/28250
3381         PR c++/28257
3382         PR c++/28259
3383         PR c++/28267
3384         * toplev.c (compile_file): Return early on errorcount or sorrycount.
3385         * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
3386         (cgraph_optimize): Likewise.
3387
3388 2006-08-01  Stuart Hastings  <stuart@apple.com>
3389
3390         * rtl.h (UINTVAL) New.
3391         * config/rs6000/rs6000.c (SMALL_INT) Use it.
3392         * testsuite/gcc.dg/20060801-1.c: New.
3393
3394 2006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
3395
3396         PR debug/23336
3397         * c-typeck.c (build_external_type): Mark used enum types.
3398         * dwarf2out.c (dwarf2out_abstract_function): Save and restore
3399         cfun also.
3400         (gen_subprogram_die): Whitespace fix.
3401
3402 2006-08-01  Jan Hubicka  <jh@suse.cz>
3403
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
3407         bitmaps.
3408
3409 2006-08-01  Dirk Mueller  <dmueller@suse.de>
3410
3411         * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
3412
3413 2006-07-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3414
3415         * Makefile.in: Revert part of previous patch:
3416         Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
3417         and REGS_H.
3418
3419 2006-07-30  Eric Christopher  <echristo@apple.com>
3420
3421         PR target/27543
3422         * doc/extend.texi (i386 Variable Attributes): Add anchor.
3423         (PowerPC Variable Attributes): New section.
3424
3425 2006-07-30  Atsushi Nemoto  <anemo@mba.ocn.ne.jp>
3426
3427         PR target/28126 (partial fix)
3428         * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
3429
3430 2006-07-28  Jan Hubicka  <jh@suse.cz>
3431
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.
3435
3436 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3437
3438         * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
3439         and variables used in dependencies.
3440
3441 2006-07-27  Arjan van de Ven <arjan@linux.intel.com>
3442
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.
3446
3447 2006-07-27  Carlos O'Donell  <carlos@codesourcery.com>
3448
3449         * Makefile.in: Use mkinstalldirs.
3450
3451 2006-07-27  H.J. Lu  <hongjiu.lu@intel.com>
3452
3453         PR driver/28437
3454         * opts-common.c (prune_options): Skip joined switches.
3455
3456 2006-07-27  Jan Hubicka  <jh@suse.cz>
3457
3458         PR rtl-optimization/28071
3459         * cselib.c (cselib_process_insn): Don't remove useless values too
3460         often for very large hashtables.
3461
3462 2006-07-27  Jan Hubicka  <jh@suse.cz>
3463
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.
3469
3470 2006-07-27  Roger Sayle  <roger@eyesopen.com>
3471
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.
3475
3476 2006-07-27  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
3477
3478         PR gcc/28508
3479         * config/m32r/m32r.md (branch_insn): Reduce pc range for short
3480         branch.
3481         (rev_branch_insn): Likewise.
3482
3483 2006-07-27  Jan Hubicka  <jh@suse.cz>
3484
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.
3490
3491 2006-07-26  Jan Hubicka  <jh@suse.cz>
3492
3493         PR tree-optimization/27882
3494         * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
3495         and decl fields.
3496         * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
3497         next pointer
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.
3503
3504 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
3505
3506         * dbxout.c (output_types_sort): Add a comment.
3507         (output_used_types): Free the VEC.
3508
3509 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
3510
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.
3514
3515 2006-07-26  Zdenek Dvorak <dvorakz@suse.cz>
3516
3517         PR rtl-optimization/27907
3518         * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
3519         FLOAT_TRUNCATE.
3520
3521 2006-07-25  Roger Sayle  <roger@eyesopen.com>
3522
3523         PR middle-end/28473
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.
3526
3527 2006-07-25  Zdenek Dvorak <dvorakz@suse.cz>
3528
3529         * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
3530
3531 2006-07-25  Nick Clifton  <nickc@redhat.com>
3532
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.
3542
3543 2006-07-25  Daniel Jacobowitz  <dan@codesourcery.com>
3544
3545         * dbxout.c (output_used_types_helper): Push queued types
3546         on a VEC.
3547         (output_types_sort): New.
3548         (output_used_types): Collect used types on a VEC and sort them
3549         before emission.
3550
3551 2006-07-24  Richard Guenther  <rguenther@suse.de>
3552
3553         PR middle-end/28463
3554         * cgraph.c (cgraph_remove_node): Do not check if dumps
3555         are enabled.
3556         * cgraphunit.c (cgraph_optimize): Likewise.
3557
3558 2006-07-24  Jan Hubicka  <jh@suse.cz>
3559
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.
3564
3565 2006-07-24  Jan Hubicka  <jh@suse.cz>
3566
3567         PR rtl-optimization/28071
3568         * ipa-inline.c (update_caller_keys): Remove edges that
3569         are no longer inline candidates.
3570
3571 2006-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
3572
3573         PR debug/27473
3574         * dbxout.c (output_used_types_helper, output_used_types): New.
3575         (dbxout_symbol): Call output_used_types.
3576
3577 2006-07-23  Jan Hubicka  <jh@suse.cz>
3578
3579         PR c/25795
3580         PR c++/27369
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.
3587
3588 2006-07-23  Roger Sayle  <roger@eyesopen.com>
3589
3590         PR target/28247
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.
3595
3596 2006-07-23  Steven Bosscher  <steven@gcc.gnu.org>
3597
3598         PR debug/25468
3599         * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
3600         Cache the last found '\0' marker to avoid quadratic behavior.
3601
3602 2006-07-23  Jan Hubicka  <jh@suse.cz>
3603
3604         * i386.md (subsi_3_zext): Fix output template.
3605
3606 2006-07-21  Mike Stump  <mrs@apple.com>
3607
3608         * doc/invoke.texi (C++ Dialect Options): Note that
3609         -fvisibility-inlines-hidden doesn't affect explicitly
3610         instantiationed inline methods.
3611
3612 2006-07-20  Roger Sayle  <roger@eyesopen.com>
3613
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.
3618
3619 2006-07-20  Jason Merrill  <jason@redhat.com>
3620
3621         * tree.c (remove_attribute): New fn.
3622         * tree.h: Declare it.
3623
3624 2006-07-20  Paul Brook  <paul@codesourcery.com>
3625
3626         PR 27363
3627         * cse.c (cse_insn): Add destination addresses to hash table. Check if
3628         they are invalidated by this instruction.
3629
3630 2006-07-21  Danny Smith  <dannysmith@users.sourceforge.net>
3631
3632         PR target/28427
3633         * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
3634
3635 2006-07-20  Eric Christopher  <echristo@apple.com>
3636
3637         PR target/26877
3638         * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
3639
3640 2006-07-19  Eric Christopher  <echristo@apple.com>
3641
3642         * config/t-slibgcc-darwin (stmp-lipo): Remove.
3643         Rewrite dependencies for libgcc_s.1.dylib.
3644
3645 2006-07-19  Jakub Jelinek  <jakub@redhat.com>
3646
3647         * except.c (duplicate_eh_regions_1): Clear next_peer.
3648
3649 2006-07-17  Nathan Sidwell  <nathan@codesourcery.com>
3650
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.
3656
3657 2006-07-18  Roger Sayle  <roger@eyesopen.com>
3658
3659         PR middle-end/28283
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.
3665
3666 2006-07-18  Diego Novillo  <dnovillo@redhat.com>
3667
3668         PR 28410
3669         * tree-ssa-operands.c (access_can_touch_variable): Update
3670         comment.
3671         Return true if ALIAS is .GLOBAL_VAR.
3672
3673 2006-07-18  David Daney  <ddaney@avtrex.com>
3674
3675         * gcc.c (display_help): Fix typo in help text.
3676
3677 2006-07-18  Olivier Hainque  <hainque@adacore.com>
3678
3679         * tree.h (categorize_ctor_elements): Adjust prototype and add
3680         descriptive comment, both in accordance with the interface change
3681         described below.
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
3700         elements.
3701
3702 2006-07-18  Paolo Bonzini  <bonzini@gnu.org>
3703
3704         * configure: Regenerate.
3705         * Makefile.in (build_libsubdir): New configure substitution
3706         (build_libobjdir): New variable.
3707         (BUILD_LIBIBERTY): Use it.
3708
3709 2006-07-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3710
3711         PR c/28286
3712         * c-pragma.c (handle_pragma_pack): Handle invalid constants.
3713
3714 2006-07-18  Alexandre Oliva  <aoliva@redhat.com>
3715
3716         PR c/26993
3717         * c-common.c (handle_weakref_attribute): Ignore attribute in
3718         the same conditions the alias attribute is ignored.
3719
3720 2006-07-17  Carlos O'Donell  <carlos@codesourcery.com>
3721
3722         * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
3723         (dbxout_begin_prologue): Increment scope_labelno.
3724
3725 2006-07-17  Richard Henderson  <rth@redhat.com>
3726
3727         PR 27889
3728         * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
3729         if needed.
3730
3731 2006-07-17  Roger Sayle  <roger@eyesopen.com>
3732             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3733
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.
3741
3742 2006-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
3743
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.
3747
3748 2006-07-17  Zdenek Dvorak <dvorakz@suse.cz>
3749
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
3753         separately.
3754
3755 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
3756
3757         PR middle-end/28403
3758         * optabs.c (expand_doubleword_shift): Wrap the call to
3759         do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
3760
3761 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
3762
3763         PR middle-end/28402
3764         * optabs.c (expand_binop): Pass next_methods rather than methods
3765         to expand_doubleword_shift.
3766
3767 2006-07-17  J"orn Rennecke  <joern.rennecke@st.com>
3768
3769         PR other/28251
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.
3778
3779 2006-07-13  Andrew Haley  <aph@redhat.com>
3780
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.
3785
3786 2006-07-17  Richard Guenther  <rguenther@suse.de>
3787
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
3791         it.
3792
3793 2006-07-16  Eric Botcazou  <ebotcazou@adacore.com>
3794
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.
3799
3800 2006-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
3801
3802         * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
3803
3804 2006-07-15  Roger Sayle  <roger@eyesopen.com>
3805
3806         * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
3807         a new NOP_EXPR case of the switch statement.
3808
3809 2006-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3810
3811         PR middle-end/28160
3812         * stor-layout.c (place_field): Take the bit field with
3813         an excessive size into account in the ms-bitfiled case.
3814
3815         PR middle-end/28161
3816         * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
3817         the previous bit field.
3818
3819 2006-07-14  Eliot Dresselhaus  <eliot@sonic.net>
3820
3821         PR target/27287
3822         * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
3823
3824 2006-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
3825
3826         * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
3827         signal frames correctly even when the signal was installed with
3828         sa_restorer set.
3829
3830 2006-07-14  Carlos O'Donell  <carlos@codesourcery.com>
3831
3832         * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
3833         (dbxout_function_end): Use local label LFBB. Remove hook
3834         DBX_OUTPUT_NFUN.
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.
3841
3842 2006-07-13  Janis Johnson  <janis187@us.ibm.com>
3843
3844         * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
3845
3846 2006-07-13  Jan Hubicka  <jh@suse.cz>
3847
3848         * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
3849         align_variable.
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.
3854
3855 2006-07-13  Nick Clifton  <nickc@redhat.com>
3856
3857         * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
3858         walking the LOG_LINKS chain.
3859
3860 2006-07-12  Geoffrey Keating  <geoffk@apple.com>
3861
3862         * doc/invoke.texi (C++ Dialect Options): Explain difference
3863         between -fvisibility-inlines-hidden and setting hidden
3864         visibility explicitly.
3865
3866 2006-07-12  Eric Christopher  <echristo@apple.com>
3867
3868         * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
3869         (stmp-lipo): Depend on libgcc.a.
3870
3871 2006-07-12  Kazu Hirata  <kazu@codesourcery.com>
3872
3873         * tree.c: Fix a comment typo.
3874
3875 2006-07-12  Naveen.H.S  <naveenh@kpitcummins.com>
3876
3877         * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
3878         dest.
3879         (umulhisi3_r): Likewise.
3880
3881 2006-07-12  Paolo Carlini  <pcarlini@suse.de>
3882
3883         PR libstdc++/27878
3884         * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
3885         x < 19, vs wchar_t support.
3886
3887 2006-07-12  Nick Clifton  <nickc@redhat.com>
3888
3889         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
3890         instead of -isa=sh4.
3891
3892 2006-07-12  Mike Stump  <mrs@apple.com>
3893
3894         * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
3895
3896 2006-07-10  Eric Christopher  <echristo@apple.com>
3897
3898         * config/t-slibgcc-darwin: Rewrite.
3899
3900 2006-07-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3901
3902         PR bootstrap/20437
3903         * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
3904         dependencies.
3905
3906 2006-07-08  Matthias Klose  <doko@debian.org>
3907
3908         * doc/sourcebuild.texi: Fix typo.
3909
3910 2006-07-07  Mike Stump  <mrs@apple.com>
3911
3912         * toplev.c (process_options): Don't give -ffunction-sections may
3913         affect debugging warning for Mach-O.
3914
3915 2006-07-07  James E Wilson  <wilson@specifix.com>
3916
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
3920         SB-1.
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.
3930
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.
3935
3936 2006-07-08  Paul Brook  <paul@codesourcery.com>
3937
3938         PR target/27991
3939         * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
3940
3941 2006-07-07   Richard Guenther  <rguenther@suse.de>
3942
3943         PR middle-end/28268
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.
3949
3950 2006-07-07  Roger Sayle  <roger@eyesopen.com>
3951
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):
3956         Likewise.
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):
3963         Likewise.
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.
3968
3969 2006-07-07  Richard Guenther  <rguenther@suse.de>
3970
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
3975         max and min values.
3976
3977 2006-07-06  Roger Sayle  <roger@eyesopen.com>
3978
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.
3981
3982 2006-07-06  Roger Sayle  <roger@eyesopen.com>
3983
3984         PR target/27968
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.
3989
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.
3993
3994 2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>
3995
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.
4003
4004 2006-07-06  Zdenek Dvorak <dvorakz@suse.cz>
4005
4006         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
4007         argument name.
4008
4009 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
4010
4011         PR target/28150
4012         * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
4013         PRE_{INC,DEC} of TFmode.
4014
4015 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
4016             Alan Modra  <amodra@bigpond.net.au>
4017
4018         PR target/28170
4019         * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
4020         bounds. Simplify.
4021
4022 2006-07-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4023
4024         PR target/28285
4025         * config/alpha/predicates.md (alpha_swapped_comparison_operator):
4026         Remove duplicate gtu.
4027
4028 2006-07-05  Jason Merrill  <jason@redhat.com>
4029
4030         PR c++/13983
4031         PR c++/17519
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.
4035
4036 2006-07-05  Mike Stump  <mrs@apple.com>
4037
4038         * doc/invoke.texi (Invoking G++): Clarify prose for g++.
4039
4040 2006-07-05  H.J. Lu  <hongjiu.lu@intel.com>
4041
4042         PR target/26146
4043         * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
4044
4045 2006-07-05  Richard Guenther  <rguenther@suse.de>
4046
4047         PR target/28158
4048         * config/i386/i386.md (*negdf2_1): Restrict pattern to
4049         TARGET_SSE2 targets if using SSE math.
4050         (*absdf2_1): Likewise.
4051
4052 2006-07-05  Richard Guenther  <rguenther@suse.de>
4053
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.
4057
4058 2006-07-04  Paolo Bonzini  <bonzini@gnu.org>
4059
4060         PR tree-optimization/28218
4061
4062         * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
4063         to calculate and free the dominator information.
4064
4065 2006-07-04  Peter O'Gorman  <peter@pogma.com>
4066
4067         * mklibgcc.in: chmod 644 before ranlib during install.
4068
4069 2006-07-04  Andrew Stubbs <andrew.stubbs@st.com>
4070             J"orn Rennecke <joern.rennecke@st.com>
4071
4072         * configure.ac (.eh_frame data check): Use diff -b.
4073
4074 2006-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4075
4076         PR bootstrap/18058
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.
4081
4082 2006-07-04  Alan Modra  <amodra@bigpond.net.au>
4083
4084         PR target/28207
4085         * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
4086         128-bit IBM long doubles for ABI_V4.
4087
4088 2006-07-03  Eric Botcazou  <ebotcazou@adacore.com>
4089
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.