OSDN Git Service

* opts.c (decode_options): Disable CSE skip blocks.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-10-31  Steven Bosscher  <steven@gcc.gnu.org>
2
3         * opts.c (decode_options): Disable CSE skip blocks.
4
5 2006-10-30  Dirk Mueller  <dmueller@suse.de>
6
7         * c-common.h (strict_aliasing_warning): Fix whitespace.
8         * c-decl (start_function): Move code for main decl warning ..
9         * c-common.c (check_main_parameter_types): .. here.
10         * c-common.h (check_main_parameter_types): Declare.
11  
12 2006-10-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13
14         PR middle-end/29335
15         * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
16
17 2006-10-30  Pete Steinmetz  <steinmtz@us.ibm.com>
18
19         * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
20         be a PARALLEL containing sets.  Return false when out_pat is not
21         a PARALLEL insn.
22
23 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
24
25         * config/mips/mips.md (mul<mode>3): Split into...
26         (mulsi3, muldi3): ...these separate patterns.
27
28 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
29
30         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
31         but with each set of options separated by spaces.
32
33 2006-10-30  J"orn Rennecke  <joern.rennecke@st.com>
34
35         * unwind-dw2.c (uw_init_context_1): Fix test that checks if
36         dwarf_reg_size_table has been initialized.
37
38 2006-10-30  Roger Sayle  <roger@eyesopen.com>
39
40         * builtins.c (expand_builtin_mathfn_3): Correct coding style.
41         * ddg.c (print_ddg_edge): Likewise.
42         * dwarf2out.c (prune_unused_types_walk): Likewise.
43         * ifcvt.c (noce_try_cmove_arith): Likewise.
44         * langhooks.c (add_builtin_function): Likewise.
45         * reg-stack.c (subst_stack_regs_pat): Likewise.
46         * tree.c (expanded_location): Likewise.
47         * tree-dump.c (dequeue_and_dump): Likewise.
48
49 2006-10-30  David Daney  <ddaney@avtrex.com>
50
51         * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
52
53 2006-10-30  Jakub Jelinek  <jakub@redhat.com>
54
55         PR tree-optimization/29637
56         * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
57         of the innertype is the innertype itself.
58
59 2006-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
60
61         * dwarf2out.c (file_name_acquire): Correct typo.
62
63 2006-10-29  Daniel Berlin  <dberlin@dberlin.org>
64
65         * tree.h (tree_value_handle): Remove struct value_set declaration.      
66         Change value_set to bitmap_set.
67         * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
68         * tree-vn.c (get_value_handle): Made inline and moved to
69         tree-flow-inline.h.
70         * tree-flow-inline.h: (has_stmt_ann): New function.
71         * tree-ssa-pre.c (expressions): New variable.
72         (next_expression_id): Ditto.
73         (alloc_expression_id): New function.
74         (struct value_set): Remove.
75         (get_expression_id): New function.
76         (get_or_alloc_expression_id): Ditto.
77         (expression_for_id): Ditto.
78         (clear_expression_ids): Ditto.
79         (FOR_EACH_EXPR_ID_IN_SET): New macro.
80         (bb_value_sets): Renamed to bb_bitmap_sets.
81         All value sets replaced with bitmap_sets.
82         Add visited member.
83         (BB_VISITED): New macro.
84         (postorder): New variable.
85         (add_to_value): Removed.
86         (value_exists_in_set_bitmap): Ditto.
87         (value_insert_into_set_bitmap): Ditto.
88         (set_new): Ditto.
89         (set_copy): Ditto.
90         (set_remove): Ditto.
91         (set_contains_value): Ditto.
92         (insert_into_set): Ditto.
93         (set_equal): Ditto.
94         (find_leader): Ditto.
95         (bitmap_set_subtract_from_value_set): Ditto.
96         (value_insert_into_set): Ditto.
97         (print_value_set): Ditto.
98         (debug_value_set): Ditto.
99         (constant_expr_p): New function.
100         (bitmap_remove_from_set): Ditto.
101         (bitmap_insert_into_set): Ditto.
102         (bitmap_set_free): Ditto.
103         (vh_compare): Ditto.
104         (sorted_array_from_bitmap_set): Ditto.
105         (bitmap_set_subtract): Ditto.
106         (bitmap_set_equal): Ditto.
107         (debug_bitmap_set): Ditto.
108         (find_leader_in_sets): Ditto.
109         (bitmap_set_replace_value): Modify for bitmapped sets.
110         (phi_translate): Ditto.
111         (phi_translate_set): Ditto.
112         (bitmap_find_leader): Ditto.
113         (valid_in_sets): Ditto.
114         (union_contains_value): Ditto.
115         (clean): Ditto.
116         (compute_antic_aux): Ditto.  Mark changed blocks.
117         (compute_antic): Ditto. Iterate in postorder and only over
118         changing blocks.
119         (compute_rvuse_and_antic_safe): Reuse postorder.
120         (create_component_ref_by_pieces): Modify for bitmapped sets.
121         (find_or_generate_expression): Ditto.
122         (create_expression_by_pieces): Ditto.
123         (insert_into_preds_of_block): Ditto.
124         (changed_blocks): New variable.
125         (do_regular_insertion): Broken out from insert_aux.
126         (insert_aux): Modified for bitmapped sets.
127         (find_existing_value_expr): New function.
128         (create_value_expr_from): Use it.
129         (insert_extra_phis): Removed.
130         (print_bitmap_set): Renamed from bitmap_print_value_set.
131         (compute_avail): Handle RETURN_EXPR.
132         (init_pre): Modify for bitmapped sets.
133         * tree-flow.h (has_stmt_ann): New function.
134         
135 2006-10-29  Roger Sayle  <roger@eyesopen.com>
136
137         * builtins.c (fold_builtin_floor): Check for the availability of
138         the C99 trunc function before transforming floor into trunc.
139
140 2006-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
141
142         * builtins.c (fold_builtin_hypot): Rearrange recursive
143         transformation before others, and also do ABS_EXPR.  When
144         necessary, check flag_unsafe_math_optimizations.  When necessary,
145         add fabs.
146
147 2006-10-29  Roger Sayle  <roger@eyesopen.com>
148
149         * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
150         Fold ~X op C as X op' ~C, where op' is the swapped comparison.
151         (fold_binary): ~X eq/ne C is now handled in fold_comparison.
152         Fold -X eq/ne -Y as X eq/ne Y.
153
154 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
155
156         * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
157         GENERATE_MULT3_<MODE>.  Restrict the test to SImode.  Use ISA_HAS_MUL3
158         rather than GENERATE_MULT3_SI in the various define_peephole2s.
159         (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
160         Use an inclusive test for "mult" rather than "mul".
161         (rotr<mode>3): Depend on ISA_HAS_ROR.
162         * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
163         ISA_HAS_MUL3.
164         (GENERATE_MULT3_DI): Delete.
165         (ISA_HAS_64BIT_REGS): Use consistent formatting.
166         (ISA_HAS_MUL3): New macro.
167         (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
168         (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
169         (ISA_HAS_CLZ_CLO): Likewise.
170         (ISA_HAS_DCLZ_DCLO): Delete.
171         (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
172         (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
173         the VR4120 and VR4130.
174         (ISA_HAS_MACCHI): Use consistent formatting.
175         (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
176         (ISA_HAS_ROR): ...this new macro.
177         (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
178         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
179         (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
180
181 2006-10-29  Roger Sayle  <roger@eyesopen.com>
182
183         PR tree-optimization/15458
184         * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
185         is a constant.
186
187 2006-10-29  Richard Guenther  <rguenther@suse.de>
188
189         * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
190         (ix86_expand_truncdf_32): Likewise.
191         * config/i386/i386.c (ix86_expand_trunc): New function expanding
192         trunc inline for SSE math and -fno-trapping-math and if not
193         optimizing for size.
194         (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
195         * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
196         for expanding btrunc inline for SSE math.
197
198 2006-10-29  Joseph Myers  <joseph@codesourcery.com>
199
200         * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
201         Handle tuning for bi-arch i[34567]86-*-linux* like that for
202         i[34567]86-*-solaris2.1[0-9]*.
203         * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
204         Define conditionally depending on TARGET_64BIT_DEFAULT.
205         (SPEC_32, SPEC_64): Define.
206         (LINK_SPEC): Use them.
207         * doc/install.texi (--enable-targets=all): Document for x86-linux.
208
209 2006-10-29  Richard Guenther  <rguenther@suse.de>
210
211         * config/i386/i386-protos.h (ix86_expand_round): Declare.
212         (ix86_expand_rounddf_32): Likewise.
213         * config/i386/i386.c (ix86_expand_round): New function expanding
214         round inline for SSE math and -fno-trapping-math and if not
215         optimizing for size.
216         (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
217         * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
218         round via ix86_expand_round.
219
220 2006-10-29  Richard Guenther  <rguenther@suse.de>
221
222         * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
223         (ix86_expand_floorceildf_32): Likewise.
224         * config/i386/i386.c (ix86_expand_sse_compare_mask): New
225         static helper function.
226         (ix86_expand_floorceil): Expander for floor and ceil to SSE
227         math.
228         (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
229         * config/i386/i386.md (floordf2): Adjust to enable floor
230         expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
231         -fno-trapping-math is enabled and if not optimizing for size.
232         (floorsf2, ceildf2, ceilsf2): Likewise.
233         * config/i386/sse.md (sse_maskcmpsf3): New insn.
234         (sse2_maskcmpdf3): Likewise.
235
236 2006-10-29  Richard Guenther  <rguenther@suse.de>
237
238         * builtins.c (expand_builtin_mathfn): Expand nearbyint as
239         rint in case -fno-trapping-math is enabled.
240         * config/i386/i386-protos.h (ix86_expand_rint): Declare.
241         * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
242         (ix86_expand_sse_fabs): Likewise.
243         (ix86_expand_rint): New function expanding rint to x87 or SSE math.
244         * config/i386/i386.md (rintdf2): Enable for SSE math if
245         -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
246         (rintsf2): Likewise.
247
248 2006-10-29  Richard Guenther  <rguenther@suse.de>
249
250         * genopinit.c (optabs): Change lfloor_optab and lceil_optab
251         to conversion optabs.
252         * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
253         as conversion optab.
254         * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
255         (enum convert_optab_index): Add COI_lfloor and COI_lceil.
256         (lfloor_optab, lceil_optab): Adjust defines.
257         * builtins.c (expand_builtin_int_roundingfn): Adjust for
258         lfloor and lceil optabs now being conversion optabs.
259         * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
260         * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
261         New static helper function.
262         (ix86_expand_lfloorceil): New function to expand lfloor and
263         lceil inline.
264         * config/i386/i386.md (lfloor<mode>2): Split into ...
265         (lfloorxf<mode>2): ... x87 variant
266         (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
267         using ix86_expand_lfloorceil.
268         (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
269         Likewise.
270         * doc/md.texi (lfloorMN, lceilMN): Document.
271
272 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
273
274         * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE.  Test for the
275         -mno-shared assembler option on mips targets.
276         * configure, config.in: Regenerate.
277         * config/mips/linux.h (NO_SHARED_SPECS): New macro.
278         (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
279         * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
280
281 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
282
283         * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
284         as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
285
286 2006-10-29  Kazu Hirata  <kazu@codesourcery.com>
287
288         * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
289         config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
290         comment typos.
291
292 2006-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
293
294         PR middle-end/29335
295         * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
296         (fold_builtin_pow): Evaluate constant arguments at compile-time
297         using MPFR.
298         (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
299         (do_mpfr_ckconv): New helper function.
300         (do_mpfr_arg1): Use do_mpfr_ckconv.
301         (do_mpfr_arg2): New.
302
303 2006-10-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
304
305         PR tree-opt/29271
306         * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
307         (-fdump-rtl-sched): Rename to ..
308         (-fdump-rtl-sched1): here.  Also fix file extension number.
309
310 2006-10-28  Richard Guenther  <rguenther@suse.de>
311
312         * fold-const.c (maybe_canonicalize_comparison): Fix code
313         to match comment.
314
315 2006-10-28  Uros Bizjak  <uros@kss-loka.si>
316
317         * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
318         (NON_QI_REG_P): Use IN_RANGE.
319         (REX_INT_REGNO_P): Use IN_RANGE.
320         (FP_REGNO_P): Use IN_RANGE.
321         (SSE_REGNO_P): Use IN_RANGE.
322         (REX_SSE_REGNO_P): Use IN_RANGE.
323         (MMX_REGNO_P): Use IN_RANGE.
324         (STACK_REGNO_P): New macro.
325         (STACK_REG_P): Use STACK_REGNO_P.
326         (NON_STACK_REG_P): Use STACK_REGNO_P.
327         (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
328         (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
329         (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
330         (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
331         (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
332
333 2006-10-28  Eric Botcazou  <ebotcazou@adacore.com>
334
335         * except.h (output_function_exception_table): Add 'const char*' param.
336         * except.c (switch_to_exception_section): Add 'const char*' param.
337         If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
338         and flag_function_sections is set, use a function-specific section.
339         (output_function_exception_table): Add 'const char*' param.
340         Adjust call to switch_to_exception_section.
341         * final.c (rest_of_handle_final): Adjust calls to
342         output_function_exception_table.
343         * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
344         * config.in: Regenerate.
345         * configure: Likewise.
346
347 2006-10-28  Richard Guenther  <rguenther@suse.de>
348
349         PR middle-end/26899
350         * fold-const.c (maybe_canonicalize_comparison_1): Helper
351         for maybe_canonicalize_comparison.
352         (maybe_canonicalize_comparison): New function for canonicalizing
353         comparison trees.
354         (fold_comparison): Call it to canonicalize comparisons with
355         constants involved.
356
357 2006-10-28  Richard Guenther  <rguenther@suse.de>
358
359         PR target/28806
360         * builtins.c (expand_builtin_int_roundingfn_2): Expand
361         BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
362         (expand_builtin): Adjust likewise.
363         * genopinit.c (optabs[]): Add lround optab.
364         * optabs.c (init_optabs): Initialize lround_optab.
365         * optabs.h (enum convert_optab_index): Add COI_lround.
366         (lround_optab): Define.
367         * config/i386/i386-protos.h (ix86_expand_lround): Declare.
368         * config/i386/i386.c (ix86_sse_copysign_to_positive): New
369         static function.
370         (ix86_expand_lround): New function.
371         * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
372         New expanders.
373         * doc/md.texi (lroundMN2): Document.
374
375 2006-10-28 Uros Bizjak <uros@kss-loka.si>
376
377         PR target/29377
378         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
379         argument to HOST_WIDE_INT.  Update function prototype.
380         (round_frame_size): Change return type to HOST_WIDE_INT.  Change
381         "size" argument to HOST_WIDE_INT.  Update function prototype.
382
383 2006-10-28 Uros Bizjak <uros@kss-loka.si>
384
385         * config/i386/i386.c (output_387_ffreep): Create output from a
386         template string for !HAVE_AS_IX86_FFREEP.
387         
388 2006-10-27  Eric Christopher  <echristo@apple.com>
389
390         * config/darwin.c: Fix formatting and grammar.
391
392 2006-10-27  Jan Hubicka  <jh@suse.cz>
393
394         * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
395         to be thrown away soon when IGNORE is set.
396         * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
397         indicating when return value shall not be computed.
398         * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
399
400 2006-10-27  Vladimir Makarov  <vmakarov@redhat.com>
401
402         * config/i386/i386.h (TARGET_GEODE):
403         (TARGET_CPU_CPP_BUILTINS): Add code for geode.
404         (TARGET_CPU_DEFAULT_geode): New macro.
405         (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
406         TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
407         TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
408         TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
409         TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
410         the macro values.
411         (TARGET_CPU_DEFAULT_NAMES): Add geode.
412         (processor_type): Add PROCESSOR_GEODE.
413
414         * config/i386/i386.md: Include geode.md.
415         (cpu): Add geode.
416
417         * config/i386/i386.c (geode_cost): New initialized global
418         variable.
419         (m_GEODE, m_K6_GEODE): New macros.
420         (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
421         x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
422         x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
423         x86_schedule): Use m_K6_GEODE instead of m_K6.
424         (x86_movx, x86_cmove): Set up m_GEODE.
425         (x86_integer_DFmode_moves): Clear m_GEODE.
426         (processor_target_table): Add entry for geode.
427         (processor_alias_table): Ditto.
428
429         * config/i386/geode.md: New file.
430
431         * doc/invoke.texi: Add entry about geode processor.
432
433 2006-10-27  Mike Stump  <mrs@apple.com>
434
435         * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
436         __DYNAMIC__ from here back to ...
437         * config/darwin.h (CPP_SPEC): ... here.
438
439 2006-10-26  Nathan Froyd  <froydnj@codesourcery.com>
440             Nathan Sidwell  <nathan@codesourcery.com>
441
442         * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
443         when choosing the minimum heapsize.
444
445 2006-10-26  Nathan Froyd <froydnj@codesourcery.com>
446
447         * gcc/unwind-dw2.h: Move cfa-related variables into
448         struct frame_state_reg_info to ensure that the CFA is properly
449         handled when executing DW_CFA_{remember,restore}_state.
450         * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
451         gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
452         gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
453         gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
454         gcc/config/rs6000/linux-unwind.h,
455         gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
456         gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
457         Modify to use new cfa_* fields.
458
459 2006-10-26  Andreas Krebbel  <krebbel1@de.ibm.com>
460
461         * config/s390/s390.c (s390_init_frame_layout): Check positive
462         frame_size.
463
464 2006-10-26  Ben Elliston  <bje@au.ibm.com>
465
466         * gimplify.c (get_name): Remove extraneous break.
467         (gimplify_omp_for): Initialise ret with GS_OK.
468
469 2006-10-25  Steve Ellcey  <sje@cup.hp.com>
470
471         * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
472         Add unix98.o to link line.
473
474 2006-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
475
476         PR middle-end/29335
477         * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
478         Calculate compile-time constants using MPFR.
479         (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
480         BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
481
482 2006-10-25  Bob Wilson  <bob.wilson@acm.org>
483
484         * config/xtensa/lib2funcs.S: Use C-style comments.
485
486 2006-10-24  Nathan Froyd  <froydnj@codesourcery.com>
487
488         * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
489         (file_table_relative_p): Likewise.
490         (dwarf2out_finish): Likewise.
491         (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
492
493 2006-10-25  Daniel Berlin  <dberlin@dberlin.org>
494
495         * tree-ssa-structalias.c (intra_create_variable_infos):
496           Don't recreate nonlocal_all if it already exists.
497
498 2006-10-25  Richard Guenther  <rguenther@suse.de>
499
500         PR target/28803
501         * optabs.h (enum optab_index): Remove OTI_lrint.
502         (enum convert_optab_index): Add COI_lrint.
503         (lrint_optab): Adjust.
504         (expand_sfix_optab): Declare.
505         * optabs.c (expand_sfix_optab): New function.
506         (init_optabs): Init lrint_optab as conversion optab.
507         * genopinit.c (lrint_optab): Change to a conversion optab.
508         * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
509         expansion via conversion optab.
510         * config/i386/i386.md (*fistdi2_1): Remove
511         flag_unsafe_math_optimizations guard.
512         (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
513         fist<mode>2_with_temp): Likewise.
514         (lrint<mode>2): Split into...
515         (lrintxf<mode>2): ... x87 part
516         (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
517         * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
518         sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
519         UNSPEC_FIX_NOTRUNC matching non-vector float modes.
520         * doc/md.texi (lrintMN2): Document.
521
522 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
523
524         PR target/28909
525         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
526         Use inc and dec instructions for TARGET_USE_INCDEC.
527         ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
528         ("sync_double_compare_and_swap<mode>"): Likewise.
529         ("*sync_double_compare_and_swapdi_pic"): Likewise.
530         ("*sync_compare_and_swap_cc<mode>"): Likewise.
531         ("sync_double_compare_and_swap_cc<mode>"): Likewise.
532         ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
533         ("sync_old_add<mode>"): Likewise.
534         ("sync_lock_test_and_set<mode>"): Likewise.
535         ("sync_lock_test_and_set<mode>"): Likewise.
536         ("sync_add<mode>"): Likewise.
537         ("sync_sub<mode>"): Likewise.
538         ("sync_ior<mode>"): Likewise.
539         ("sync_and<mode>"): Likewise.
540         ("sync_xor<mode>"): Likewise.
541
542 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
543
544         * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
545         (remainder_optab): Define corresponding macro.
546         (drem_optab): Remove.
547         * optabs.c (init_optabs): Initialize remainder_optab.  Remove
548         drem_optab initialization.
549         * genopinit.c (optabs): Implement remainder_optab using
550         remainder?f3 patterns.  Remove drem_optab.
551         * builtins.c (expand_builtin_mathfn_2): Handle
552         BUILT_IN_REMAINDER{,F,L} using remainder_optab.
553         (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
554         expand_builtin_mathfn_2.
555
556         (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
557         depend on flag_unsafe_math_optimizations.
558
559         * config/i386/i386.md ("remaindersf3", "remainderdf3")
560         ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
561         Do not depend on flag_unsafe_math_optimizations.  Use
562         truncxf?f expander instead of truncxf?f_i387_noop.
563
564         ("fpremxf4", "fprem1xf4"): Do not depend on
565         flag_unsafe_math_optimizations.
566         ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
567         flag_unsafe_math_optimizations.  Use truncxf?f expander
568         instead of truncxf?f_i387_noop.
569
570         * doc/md.texi (fmod, remainder): Document standard named pattern.
571
572 2006-10-24  Richard Sandiford  <richard@codesourcery.com>
573             David Daney  <ddaney@avtrex.com>
574
575         PR middle-end/29519
576         * rtlanal.c (nonzero_address_p):  Remove check for values wrapping.
577
578 2006-10-25  Ben Elliston  <bje@au.ibm.com>
579
580         * doc/extend.texi (Variable Attributes): Typo fix.
581
582 2006-10-24  Uros Bizjak  <uros@kss-loka.si>
583
584         * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
585         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
586         (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
587         (FRAME_POINTER_REGNUM): Update register number to 21.
588         (REG_CLASS_CONTENTS): Update contents for added fpcr register.
589         (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
590
591         * config/i386/i386.c (regclass_map): Add fpcr entry.
592         (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
593         Add fpcr entry.
594         (print_reg): Assert REGNO (x) != FPCR_REG.
595
596         * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
597         (DIRFLAG_REG): Renumber.
598         (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
599         (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
600         (sse_prologue_save, *sse_prologue_save_insn): Renumber
601         hardcoded SSE register numbers.
602
603         * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
604         hardcoded MMX register numbers.
605
606 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
607
608         PR middle-end/29335
609         * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
610         (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
611         Update all callers.
612         (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
613         (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
614         BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
615         BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
616
617 2006-10-24  Richard Guenther  <rguenther@suse.de>
618
619         PR middle-end/28796
620         * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
621         and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
622         for deciding optimizations in consistency with fold-const.c
623         (fold_builtin_unordered_cmp): Likewise.
624
625 2006-10-24  Richard Guenther  <rguenther@suse.de>
626
627         * builtins.c (fold_builtin_floor): Fold floor (x) where
628         x is nonnegative to trunc (x).
629         (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
630         nonnegative to FIX_TRUNC_EXPR.
631
632 2006-10-24  Richard Guenther  <rguenther@suse.de>
633
634         PR tree-optimization/29567
635         * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
636         for TRUTH_NOT_EXPR.  Clarify comments.
637
638 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
639
640         PR middle-end/29335
641         * builtins.c (fold_builtin_exponent): Evaluate constant arguments
642         at compile-time using MPFR.  Change parameter VALUE to FUNC,
643         update all callers.
644         (do_mpfr_arg1): Rename `exact' to `inexact'.  Carefully check
645         for overflow and underflow at all times and avoid folding in
646         those cases.
647
648 2006-10-24  Ben Elliston  <bje@au.ibm.com>
649
650         * reload1.c: Formatting fixes.
651
652 2006-10-23  Zdenek Dvorak <dvorakz@suse.cz>
653
654         PR tree-optimization/14784
655         * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
656         * tree-ssa-structalias.c (get_constraint_for,
657         intra_create_variable_infos): Set is_heapvar.
658         * tree-ssa-operands.c (access_can_touch_variable): Do not handle
659         non-heapvar pointer variables specially.
660
661 2006-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
662
663         PR middle-end/29335
664         * builtins.c (fold_builtin_sin, fold_builtin_cos,
665         fold_builtin_tan): Fold all constant arguments.  Take a "type"
666         argument as necessary.
667         (do_mpfr_arg1): New.
668         * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
669
670 2006-10-23  Bob Wilson  <bob.wilson@acm.org>
671
672         * config/xtensa/lib1funcs.asm: Use C-style comments.
673
674 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
675
676         * tree.c (local_define_builtin): Replace calls to
677         lang_hooks.builtin_function with add_builtin_function.
678         * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
679         c_builtin_function.
680         * c-tree.h (builtin_function): Rename to c_builtin_function. Change
681         the signature.
682         * c-decl.c (builtin_function): Rename to c_builtin_function. Move
683         common code to add_builtin_function.
684         * langhooks.c (add_builtin_function): New function.
685         (lhd_builtin_function): New function.
686         * langhooks.h (struct lang_hooks): Change the signature of
687         builtin_function.
688         (add_builtin_function): New function.
689         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
690         calls to lang_hooks.builtin_function with add_builtin_function.
691         * c-common.c (decl_builtin_1): Replace calls to
692         lang_hooks.builtin_function with add_builtin_function.
693         * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
694         lang_hooks.builtin_function with add_builtin_function.
695         * config/frv/frv.c (def_builtin): Replace calls to
696         lang_hooks.builtin_function with add_builtin_function.
697         * config/s390/s390.c (s390_init_builtins): Replace calls to
698         lang_hooks.builtin_function with add_builtin_function.
699         * config/sparc/sparc.c (def_builtin): Replace calls to
700         lang_hooks.builtin_function with add_builtin_function.
701         * config/i386/i386.c (def_builtin): Replace calls to
702         lang_hooks.builtin_function with add_builtin_function.
703         * config/sh/sh.c (sh_media_init_builtins): Replace calls to
704         lang_hooks.builtin_function with add_builtin_function.
705         * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
706         lang_hooks.builtin_function with add_builtin_function.
707         * config/stormy16/stormy16.c (xstormy16_init_builtins):
708         Replace calls to lang_hooks.builtin_function with
709         add_builtin_function.
710         * config/iq2000/iq2000.c (def_builtin):
711         Replace calls to lang_hooks.builtin_function with
712         add_builtin_function.
713         * config/ia64/ia64.c (def_builtin): Replace calls to
714         lang_hooks.builtin_function with add_builtin_function.
715         * config/rs6000/rs6000.c (def_builtin): Replace calls to
716         lang_hooks.builtin_function with add_builtin_function.
717         (altivec_init_builtins): Replace calls to
718         lang_hooks.builtin_function with add_builtin_function.
719         * config/arm/arm.c (def_mbuiltin): Replace calls to
720         lang_hooks.builtin_function with add_builtin_function.
721         (arm_init_tls_builtins): Replace calls to
722         lang_hooks.builtin_function with add_builtin_function.
723         * config/mips/mips.c (mips_init_builtins): Replace calls to
724         lang_hooks.builtin_function with add_builtin_function.
725         * config/bfin/bfin.c (def_builtin): Replace calls to
726         lang_hooks.builtin_function with add_builtin_function.
727         * langhooks-def.h (lhd_builtin_function): New function.
728         (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
729
730 2006-10-23  Jakub Jelinek  <jakub@redhat.com>
731
732         * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
733         BUILT_IN_STRNCAT_CHK.
734
735 2006-10-23  Jan Hubicka  <jh@suse.cz>
736
737         * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
738         don't do conversion from memmove to memcpy here.
739         (expand_builtin_bcopy, expand_builtin): Update call of
740         expand_builtin_memmove.
741         (fold_builtin_memory_op): Do folding of memmove to memcpy here.
742
743 2006-10-23  Paul Brook  <paul@codesourcery.com>
744
745         * stor-layout.c (start_record_layout): maximum_field_alignment
746         overrides STRUCTURE_SIZE_BOUNDARY.
747
748 2006-10-23  Ulrich Weigand  <uweigand@de.ibm.com>
749
750         * config/s390/predicates.md ("bras_sym_operand"): Do not accept
751         nonlocal function symbols if flag_pic.
752
753 2006-10-23  Richard Guenther  <rguenther@suse.de>
754
755         PR middle-end/27132
756         PR middle-end/23295
757         * builtins.c (fold_binary): Remove checks for flag_wrapv
758         and flag_trapv where negate_expr_p covers these cases.
759
760 2006-10-23  Richard Guenther  <rguenther@suse.de>
761
762         PR middle-end/29548
763         * fold-const.c (fold_plusminus_mult_expr): Check exact power
764         of two on the absolute value.
765         (fold_binary): Fold x * -C to -x * C if x is easily negatable
766         and negating -C does not overflow.
767
768 2006-10-23  Richard Guenther  <rguenther@suse.de>
769
770         PR middle-end/21032
771         * convert.c (convert_to_real): Fold (float)-x to -(float)x
772         only if not flag_rounding_math.
773
774 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
775             Kaz Kojima  <kkojima@gcc.gnu.org>
776
777         PR target/28232
778         * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
779         SImode memory reference for the source of a movua.
780         * config/sh/sh.md (UNSPEC_MOVUA): New macro.
781         (movua): Use an unspec instead of sign_extract.  Expect the source
782         to have mode BLKmode.
783         (extv, insv): Use a BLKmode rather than SImode memory reference
784         for the source of a movua.
785
786 2006-10-22  Jeff Law  <law@redhat.com>
787         Richard Guenther  <rguenther@suse.de>
788
789         PR tree-optimization/15911
790         * tree-vrp.c (extract_code_and_val_from_cond): New function.
791         (register_edge_assert_for_1): Likewise.
792         (register_edge_assert_for): Handle &&/&/||/| in conditionals.
793         (find_conditional_asserts): Adjust for new function signature.
794         (find_assert_locations): Likewise.
795
796 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
797
798         * config/i386/tmmintrin.h: Remove the duplicated content.
799
800 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
801
802         * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
803         (x86_64-*-*): Likewise.
804
805         * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
806         (override_options): Check SSSE3.
807         (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
808         IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
809         IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
810         IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
811         IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
812         IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
813         IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
814         IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
815         IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
816         IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
817         IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
818         IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
819         IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
820         IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
821         IX86_BUILTIN_PABSD128.
822         (bdesc_2arg): Add SSSE3.
823         (bdesc_1arg): Likewise.
824         (ix86_init_mmx_sse_builtins): Support SSSE3.
825         (ix86_expand_builtin): Likewise.
826         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
827
828         * config/i386/i386.md (UNSPEC_PSHUFB): New.
829         (UNSPEC_PSIGN): Likewise.
830         (UNSPEC_PALIGNR): Likewise.
831         Include mmx.md before sse.md.
832
833         * config/i386/i386.opt: Add -mssse3.
834
835         * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
836         (ssse3_phaddwv4hi3): Likewise.
837         (ssse3_phadddv4si3): Likewise.
838         (ssse3_phadddv2si3): Likewise.
839         (ssse3_phaddswv8hi3): Likewise.
840         (ssse3_phaddswv4hi3): Likewise.
841         (ssse3_phsubwv8hi3): Likewise.
842         (ssse3_phsubwv4hi3): Likewise.
843         (ssse3_phsubdv4si3): Likewise.
844         (ssse3_phsubdv2si3): Likewise.
845         (ssse3_phsubswv8hi3): Likewise.
846         (ssse3_phsubswv4hi3): Likewise.
847         (ssse3_pmaddubswv8hi3): Likewise.
848         (ssse3_pmaddubswv4hi3): Likewise.
849         (ssse3_pmulhrswv8hi3): Likewise.
850         (ssse3_pmulhrswv4hi3): Likewise.
851         (ssse3_pshufbv16qi3): Likewise.
852         (ssse3_pshufbv8qi3): Likewise.
853         (ssse3_psign<mode>3): Likewise.
854         (ssse3_psign<mode>3): Likewise.
855         (ssse3_palignrti): Likewise.
856         (ssse3_palignrdi): Likewise.
857         (abs<mode>2): Likewise.
858         (abs<mode>2): Likewise.
859
860         * config/i386/tmmintrin.h: New file.
861
862         * doc/extend.texi: Document SSSE3 built-in functions.
863
864         * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
865
866 2006-10-22  Ira Rosen  <irar@il.ibm.com>
867
868         * tree-vect-transform.c (vectorizable_load): Use the type of the
869         return value of the mask_for_load builtin to create realign_load
870         stmt.
871
872 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
873
874         * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
875         expressions.
876
877 2006-10-21  H.J. Lu  <hongjiu.lu@intel.com>
878
879         * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
880         (UNSPEC_LDDQU): This.
881         * config/i386/sse.md (sse3_lddqu): Updated.
882
883 2006-10-21  Richard Guenther  <rguenther@suse.de>
884
885         * builtins.c (expand_builtin_int_roundingfn_2): New function.
886         (expand_builtin): Use it to expand lrint instead of
887         expand_builtin_mathfn.
888
889 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
890
891         PR middle-end/28252
892         * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
893         flag_unsafe_math_optimizations is set.
894
895 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
896
897         PR target/19398
898         * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
899         patterns to use memory input operand in x87->mem->XMM
900         reload sequences.  Skip transformation for TARGET_K8.
901
902 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
903
904         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
905         force operand1 to register if both operands are memory operands.
906         (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
907         (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
908         if both operands are memory operands.
909         (truncdfsf2): Do not force operand1 to register if both operands
910         are memory operands.
911
912 2006-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
913
914         * Makefile.in (LIBS): Add $(GMPLIBS).
915         * doc/install.texi: Update GMP and MPFR requirements.
916         * doc/sourcebuild.texi (need_gmp): Delete.
917
918 2006-10-21  Richard Guenther  <rguenther@suse.de>
919
920         PR tree-optimization/3511
921         * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
922         got new invariant arguments during PHI translation.
923
924 2006-10-21  Richard Guenther  <rguenther@suse.de>
925
926         PR middle-end/26898
927         * fold-const.c (fold_comparison): Fold signed comparisons
928         of the form X +- C1 CMP Y +- C2.
929
930 2006-10-21  Richard Guenther  <rguenther@suse.de>
931
932         PR target/19116
933         * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
934         if flag_unsafe_math_optimizations is specified.  We have
935         flag_finite_math_only for that.
936         * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
937         or flag_unsafe_math_optimizations.
938
939 2006-10-21  Richard Guenther  <rguenther@suse.de>
940
941         * builtins.c (fold_builtin_classify): Fix typo.
942
943 2006-10-21  Richard Guenther  <rguenther@suse.de>
944
945         PR middle-end/28796
946         * simplify-rtx.c (simplify_const_relational_operation):
947         Do not constant-fold ORDERED and UNORDERED for
948         flag_unsafe_math_optimizations but only we do not need to
949         honor NaNs for the given mode.
950
951 2006-10-21  Richard Guenther  <rguenther@suse.de>
952
953         PR target/29512
954         * config/i386/i386.c (classify_argument): Remove redundant
955         walking of the BINFOs.
956         (contains_128bit_aligned_vector_p): Likewise.
957
958 2006-10-20  Mark Mitchell  <mark@codesourcery.com>
959
960         * BASE-VER: Set to 4.3.0.
961
962 2006-10-20  Daniel Berlin  <dberlin@dberlin.org>
963
964         * tree.h (DECL_PTA_ARTIFICIAL): Remove.
965         (tree_decl_with_vis): Remove artificial_pta_var flag.
966         * tree-flow.h (referenced_var_check_and_insert): Expose.
967         (nonlocal_all): New prototype.
968         * tree-ssa-structalias.c (nonlocal_for_type): Remove.
969         (nonlocal_all): Make global.
970         (nonlocal_lookup): Remove.
971         (nonlocal_insert): Ditto.
972         (create_nonlocal_var): Do not call nonlocal_insert.
973         (get_nonlocal_id_for_type): Remove.
974         (find_global_initializers): Mark new vars we find for renaming.
975         (intra_create_variable_infos): Only create one nonlocal.
976         (expand_nonlocal_solutions): Remove.
977         (compute_points_to_sets): Don't call it.
978         (ipa_pta_execute): Ditto.
979         (init_alias_heapvars): Don't create nonlocal_for_type.
980         (delete_alias_heapvars): Don't remove it.
981         * tree-ssa-operands.c (access_can_touch_variable): Don't prune
982         nonlocal_all.
983
984 2006-10-19  Brooks Moses  <bmoses@stanford.edu>
985
986         * doc/install.texi (Downloading GCC): Clarify mention of
987         Fortran in the "full distribution" description.
988
989 2006-10-19  Daniel Berlin  <dberlin@dberlin.org>
990
991         Fix PR tree-optimization/28778
992         Fix PR tree-optimization/29156
993         Fix PR tree-optimization/29415
994         * tree.h (DECL_PTA_ARTIFICIAL): New macro.
995         (tree_decl_with_vis): Add artificial_pta_var flag.
996         * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
997         pushed into callers.
998         * tree-ssa-structalias.c (nonlocal_for_type): New variable.
999         (nonlocal_all): Ditto.
1000         (struct variable_info): Add directly_dereferenced member.
1001         (var_escaped_vars): New variable.
1002         (escaped_vars_tree): Ditto.
1003         (escaped_vars_id): Ditto.
1004         (nonlocal_vars_id): Ditto.
1005         (new_var_info): Set directly_dereferenced.
1006         (graph_size): New variable
1007         (build_constraint_graph): Use graph_size.
1008         (solve_graph): Don't process constraints that cannot change the
1009         solution, don't try to propagate an empty solution to our
1010         successors.
1011         (process_constraint): Set directly_dereferenced.
1012         (could_have_pointers): New function.
1013         (get_constraint_for_component_ref): Don't process STRING_CST.
1014         (nonlocal_lookup): New function.
1015         (nonlocal_insert): Ditto.
1016         (create_nonlocal_var): Ditto.
1017         (get_nonlocal_id_for_type): Ditto.
1018         (get_constraint_for): Allow results vector to be empty in the case
1019         of string constants.
1020         Handle results of calls properly.
1021         (update_alias_info): Update alias info stats on number and type of
1022         calls.
1023         (find_func_aliases): Use could_have_pointers.
1024         (make_constraint_from_escaped): Renamed from
1025         make_constraint_to_anything, and changed to make constraints from
1026         escape variable.
1027         (make_constraint_to_escaped): New function.
1028         (find_global_initializers): Ditto.
1029         (create_variable_info_for): Make constraint from escaped to any
1030         global variable, and from any global variable to the set of
1031         escaped vars.
1032         (intra_create_variable_infos): Deal with escaped instead of
1033         pointing to anything.
1034         (set_uids_in_ptset): Do type pruning on directly dereferenced
1035         variables.
1036         (find_what_p_points_to): Adjust call to set_uids_with_ptset.
1037         (init_base_vars): Fix comment, and initialize escaped_vars.
1038         (need_to_solve): Removed.
1039         (find_escape_constraints): New function.
1040         (expand_nonlocal_solutions): Ditto.
1041         (compute_points_to_sets): Call find_escape_constraints and
1042         expand_nonlocal_solutions.
1043         (delete_points_to_sets): Don't fall off the end of the graph.
1044         (init_alias_heapvars): Initialize nonlocal_for_type and
1045         nonlocal_all.
1046         (delete_alias_heapvars): Free nonlocal_for_type and null out
1047         nonlocal_all.
1048
1049 2006-10-19  Eric Botcazou  <ebotcazou@adacore.com>
1050
1051         * fold-const.c (add_double): Rename to add_double_with_sign.
1052         Add 'unsigned_p' parameter and take it into account for the overflow.
1053         (mul_double): Rename to mul_double_with_sign.
1054         Add 'unsigned_p' parameter and take it into account for the overflow.
1055         (fold_div_compare): Call add_double_with_sign instead of add_double
1056         and mul_double_with_sign instead of mul_double, passing them the
1057         unsignedness of the type.
1058         * tree.h (add_double): Macroize.
1059         (add_double_with_sign): New prototype.
1060         (mul_double): Macroize.
1061         (mul_double_with_sign): New prototype.
1062
1063 2006-10-19  Chen Liqin  <liqin@sunnorth.com.cn>
1064
1065         * config/score/crti.asm: New file.
1066         * config/score/crtn.asm: New file.
1067         * config/score/elf.h: New file.
1068         * config/score/mac.md: New file.
1069         * config/score/misc.md: New file.
1070         * config/score/mul-div.S: New file.
1071         * config/score/predicates.md: New file.
1072         * config/score/score7.md: New file.
1073         * config/score/score.c: New file.
1074         * config/score/score-conv.h: New file.
1075         * config/score/score.h: New file.
1076         * config/score/score.md: New file.
1077         * config/score/score-mdaux.c: New file.
1078         * config/score/score-mdaux.h: New file.
1079         * config/score/score-modes.def: New file.
1080         * config/score/score.opt: New file.
1081         * config/score/score-protos.h: New file.
1082         * config/score/score-version.h: New file.
1083         * config/score/t-score-elf: New file.
1084         * config.gcc: Add score*-*-* configurations(Update before).
1085         * doc/invoke.texi (Score Options): New section.
1086         * doc/md.texi (Score family): New section to document constraints.
1087
1088 2006-10-19  Nick Clifton  <nickc@redhat.com>
1089
1090         * config/arm/arm.c: Fix spelling typo.
1091
1092 2006-10-18  Tom Tromey  <tromey@redhat.com>
1093
1094         * doc/install.texi (Prerequisites): Mention automake 1.9.6.
1095
1096 2006-10-18  Jan Hubicka  <jh@suse.cz>
1097
1098         PR middle-end/29299
1099         * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
1100         are used.
1101
1102 2006-10-18  Marcin Dalecki  <martin@dalecki.de>
1103
1104         * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
1105         TSI_SAME_STMT, since that's the desired entity.
1106
1107 2006-10-17  Wolfgang Gellerich  <gellerich@de.ibm.com>
1108
1109         * config/s390/contraints.md: New file.
1110         * config/s390/s390-protos.h (s390_mem_constraint,
1111         s390_O_constraint_str, s390_N_constraint_str,
1112         s390_float_const_zero_p): Function prototypes added.
1113         * config/s390/s390.c (s390_extra_constraint_str,
1114         s390_const_double_ok_for_constraint_p,
1115         s390_const_ok_for_constraint_p): Functions removed.
1116         (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
1117         s390_float_const_zero_p): New functions.
1118         * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
1119         CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
1120         EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
1121         Macro definitions removed.
1122         (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
1123         s390_extra_constraint_str): Functions removed.
1124
1125 2006-10-17  Andrew Pinsiki  <pinskia@gmail.com>
1126             Richard Sandiford  <richard@codesourcery.com>
1127
1128         PR target/29413
1129         * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
1130         * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
1131
1132 2006-10-16  Geoffrey Keating  <geoffk@apple.com>
1133
1134         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
1135         (DWARF2_FRAME_REG_OUT): Likewise.
1136         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
1137         (DWARF2_FRAME_REG_OUT): Likewise.
1138
1139 2006-10-17  Paul Brook  <paul@codesourcery.com>
1140
1141         * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
1142
1143 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
1144
1145         * doc/contrib.texi, doc/install.texi, doc/standards.texi:
1146         Standardize on "GNU Fortran" as the official name of the Fortran
1147         compiler.
1148
1149 2006-10-16  Mike Stump  <mrs@apple.com>
1150
1151         * doc/invoke.texi (Darwin Options): Document -mkernel.
1152         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
1153         -mkernel support.
1154         (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support.  Add
1155         SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
1156         (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
1157         (OS_MISSING_ALTIVEC): Add.
1158         * config/i386/i386.c (override_options): Add
1159         SUBSUBTARGET_OVERRIDE_OPTIONS callout.
1160         * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
1161         -mkernel, -static or -mdynamic-no-pic is given.
1162         (C_COMMON_OVERRIDE_OPTIONS): Add.
1163         * config/darwin.opt (fapple-kext): Add.
1164         (mkernel): Add.
1165         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
1166         -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
1167         -mkernel support.
1168         (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
1169         (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
1170         (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
1171         (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
1172         (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
1173         (flag_mkernel): Add.
1174         (flag_apple_kext): Add.
1175         (TARGET_KEXTABI): Add.
1176         * config/darwin.c (darwin_handle_kext_attribute): Add.
1177         (DARWIN_VTABLE_P): Add.
1178         (darwin_binds_local_p): Add partial support for rebinding vtables
1179         in kexts.
1180         (darwin_kextabi_p): Add.
1181         (darwin_override_options): Add.
1182         * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
1183         (darwin_kextabi_p): Add.
1184         (darwin_override_options): Add.
1185         * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
1186         __DYNAMIC__ and __STATIC__ here.
1187
1188 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
1189
1190         * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
1191         Added mention of "make pdf" target, and Texinfo requirements for
1192         same.
1193
1194 2006-10-16  DJ Delorie  <dj@redhat.com>
1195
1196         * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
1197         into the GOT in case we need a subreg of the address.
1198
1199 2006-10-16  Richard Guenther  <rguenther@suse.de>
1200
1201         PR target/25519
1202         * doc/extend.texi (X86 Built-in Functions): Fix typos in
1203         SSE builtin documentation.  Document SSE2 builtins.
1204
1205 2006-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1206
1207         * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
1208         symbol in the output file for non-shared links when -nostdlib or
1209         -nodefaultlibs isn't specified.
1210
1211         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
1212         posix thread support.
1213
1214 2006-10-15  Jan Hubicka  <jh@suse.cz>
1215
1216         PR middle-end/29241
1217         * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
1218         declared always_inline even when not inlining.
1219
1220 2006-10-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
1221             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1222             Andrew Pinski  <pinskia@gmail.com>
1223
1224         PR middle-end/29111
1225         * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
1226
1227 2006-10-15  Jan Hubicka  <jh@suse.cz>
1228             Richard Guenther  <rguenther@suse.de>
1229
1230         PR middle-end/29299
1231         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
1232         process_function_and_variable_attributes on all variables, including
1233         those discovered during cgraph construction phase.
1234
1235 2006-10-15  Bernhard Fischer  <aldot@gcc.gnu.org>
1236
1237         * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
1238
1239 2006-10-14  Uros Bizjak  <uros@kss-loka.si>
1240
1241         * config/i386/athlon.md (athlon_fist): Add fisttp.
1242
1243 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
1244             Ian Lance Taylor  <ian@airs.com>
1245
1246         PR middle-end/29250
1247         * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
1248         CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
1249         recursing.
1250
1251 2006-10-14  Kazu Hirata  <kazu@codesourcery.com>
1252
1253         * config/score/score.c, config/score/score.h: Fix comment
1254         typos.
1255
1256 2006-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1257
1258         PR bootstrap/29402
1259         * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
1260         shell pipeline.
1261
1262 2006-10-13  Eric Christopher  <echristo@apple.com>
1263
1264         * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1265
1266 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
1267
1268         Revert this change:
1269         2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
1270         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
1271         alignment supported by 32-bit ELF.
1272
1273 2006-10-13  Eric Christopher  <echristo@apple.com>
1274
1275         * config/darwin.c (darwin_emit_unwind_label): Strip
1276         name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
1277
1278 2006-10-13  Richard Guenther  <rguenther@suse.de>
1279
1280         PR tree-optimization/29446
1281         * tree-vrp.c (fix_equivalence_set): Remove.
1282         (extract_range_from_assert): Do not call fix_equivalence_set.
1283         (debug_value_range): Print a newline.
1284         (compare_name_with_value): For equivalence sets with
1285         inconsistent value ranges conservatively bail out.
1286         (compare_names): Likewise.
1287
1288 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
1289
1290         * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
1291         and MPFR for gfortran.
1292
1293 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
1294
1295         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
1296         alignment supported by 32-bit ELF.
1297
1298 2006-10-13  Paolo Bonzini  <bonzini@gnu.org>
1299
1300         PR c/29092
1301
1302         * c-typeck.c (digest_init): Always allow initializing vectors
1303         that have static storage duration with compound literals.
1304         * tree.c (build_type_attribute_qual_variant): New, based on
1305         build_type_attribute_variant.
1306         (build_type_attribute_variant): Rewrite using the former.
1307         (make_vector_type): Use build_type_attribute_qual_variant to build
1308         type variants.  Use type_hash_canon on the others.
1309
1310 2006-10-13  Daniel Berlin <dberlin@dberlin.org>
1311             Ramana Radhakrishnan  <ramana.radhakrishnan@celunite.com>
1312
1313         * tree-flow-inline.h (zero_ssa_operands): Fix comment.
1314
1315 2006-10-12  Jan Hubicka  <jh@suse.cz>
1316
1317         PR c/28419
1318         * c-decl.c (c_make_fname_decl): Do not segfault in case where
1319         current_function_decl is set but current_function_scope is not.
1320
1321 2006-10-12  Jie Zhang  <jie.zhang@analog.com>
1322
1323         * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
1324         emit_insn to emit eh_return_internal instruction.
1325         (eh_return_internal): Explicitly set pc.
1326
1327 2006-10-11  Richard Guenther  <rguenther@suse.de>
1328
1329         PR tree-optimization/28230
1330         * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
1331         to the correct place.
1332
1333 2006-10-11  Richard Guenther  <rguenther@suse.de>
1334
1335         PR inline-asm/29119
1336         * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
1337         addressable.
1338
1339 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
1340
1341         * configure.ac: Added pdf to "Make-hooks"
1342         * Makefile.in: Added TEXI2PDF definition, and various pdf-file
1343         targets and *.pdf file patterns in cleanup targets.
1344         * configure: Regenerated.
1345
1346 2006-10-10  Anatoly Sokolov <aesok@post.ru>
1347
1348         * config/avr/predicates.md: New file.
1349         * config/avr/avr.md: Include it.
1350         (REG_SP): New constant.
1351         (peepholes): Use predicates.
1352         (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
1353         difficult_branch,  difficult_rvbranch, cbi, sbi, sbix_branch,
1354         sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
1355
1356 2006-10-10  Adam Nemet  <anemet@caviumnetworks.com>
1357
1358         * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
1359         avoid alias set 0.
1360
1361 2006-10-10  Jakub Jelinek  <jakub@redhat.com>
1362
1363         PR middle-end/29272
1364         * builtins.c (var_decl_component_p): New function.
1365         (fold_builtin_memset, fold_builtin_memory_op): Restrict
1366         single entry optimization to variables and components thereof.
1367
1368 2006-10-10  Richard Guenther  <rguenther@suse.de>
1369
1370         PR rtl-optimization/29323
1371         * except.c (set_nothrow_function_flags): For functions
1372         that do not bind local bail out early.
1373
1374 2006-10-10  Ben Elliston  <bje@au.ibm.com>
1375
1376         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
1377         -mdlmzb option.
1378
1379 2006-10-09  Richard Henderson  <rth@redhat.com>
1380
1381         Revert emutls patch.
1382
1383 2006-10-09  Richard Guenther  <rguenther@suse.de>
1384
1385         PR middle-end/29254
1386         * cgraphunit.c (verify_cgraph_node): Bail out on earlier
1387         errors.
1388
1389 2006-10-09  Steve Ellcey  <sje@cup.hp.com>
1390
1391         PR target/27880
1392         * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
1393         * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
1394         * configure: Regenerate.
1395         * config.in: Regenerate.
1396
1397 2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
1398
1399         * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
1400
1401 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
1402
1403         * config/mips/mips.c (mips_legitimize_tls_address): Implement
1404         all TLS models in the same way as local exec if !TARGET_ABICALLS.
1405         Remove stray newline.
1406
1407 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
1408
1409         * config/mips/mips.c (mips_classify_symbol): Do not return
1410         SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
1411         (mips_in_small_data_p): Tweak comments.
1412
1413 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
1414
1415         * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
1416
1417 2006-10-07  Kazu Hirata  <kazu@codesourcery.com>
1418
1419         * gimplify.c, sched-int.h: Fix comment typos.
1420
1421         * sched-int.h: Fix comment typos.
1422
1423 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1424
1425         * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
1426         New macros.
1427         * sched-ebb.c (begin_schedule_ready): Use them.
1428         * haifa-sched.c (schedule_insn, move_insn, try_ready,
1429         add_to_speculative_block, create_check_block_twin, speculate_insn,
1430         fix_jump_move, move_block_after_check): Ditto.
1431         * sched-rgn.c (new_ready): Ditto.
1432
1433 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1434
1435         PR rtl-optimization/29128
1436         * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
1437         * sched-ebb.c (advance_target_bb): Use it to fix condition to
1438         allow interblock movement of speculation checks.
1439
1440 2006-10-06  Zdenek Dvorak <dvorakz@suse.cz>
1441
1442         PR middle-end/29256
1443         * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
1444         casted to integer type.
1445         (get_address_cost): Decrease cost of [symbol + index] addressing modes
1446         if they are significantly more expensive than [reg + index] ones.
1447
1448 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
1449
1450         PR tree-optimization/29330
1451         * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
1452         (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
1453         on newly allocated ddrs.
1454         (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
1455         to VEC (loop_p, heap) pointer.
1456         (compute_data_dependences_for_loop): Adjust caller.
1457         (free_dependence_relations): Free DDR_LOOP_NEST.
1458
1459         * tree-loop-linear.c (linear_transform_loops): Don't forget to
1460         free DEPENDENCE_RELATIONS and DATAREFS.
1461
1462         PR target/28924
1463         * builtins.c (expand_builtin_sync_operation,
1464         expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
1465         Use convert_to_mode to handle promoted arguments.
1466
1467 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
1468
1469         * print-tree.c (print_node_brief, print_node): Print sign of Inf.
1470
1471 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
1472
1473         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
1474
1475 2006-10-05  Uros Bizjak  <uros@kss-loka.si>
1476
1477         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
1478         "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
1479         Use <modeconstraint> instead of "r" as operand 1 constraint.
1480
1481 2006-10-06  Olivier Hainque  <hainque@adacore.com>
1482
1483         * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
1484         Don't recurse on the pointed-to type.
1485         * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
1486         DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
1487         types with components of variable size.
1488
1489 2006-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
1490
1491         * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
1492
1493 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
1494
1495         PR tree-optimization/29290
1496         * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
1497         multiple exits.
1498
1499         PR target/29198
1500         * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
1501         * config/i386/predicates.md (local_symbolic_operand): Likewise.
1502
1503         PR c/29091
1504         * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
1505         the number of vector elements fill the rest with zeros.
1506
1507 2006-10-05  Richard Sandiford  <richard@codesourcery.com>
1508
1509         * config/mips/mips.c (mips_pass_by_reference): Do not return false
1510         for EABI if type is NULL.  Use a size check based on GET_MODE_SIZE
1511         instead.
1512
1513 2006-10-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1514
1515         * config/bfin/bfin.md (subsi3): Lose expander, change previously
1516         unnamed pattern into subsi3.  Use correct constraints/predicates.
1517         * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
1518         * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
1519
1520 2006-10-05  Ira Rosen  <irar@il.ibm.com>
1521
1522         * doc/loop.texi: Add data references analysis description.
1523
1524 2006-10-04  Brooks Moses  <bmoses@stanford.edu>
1525
1526         * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
1527
1528 2006-10-04  Richard Henderson  <rth@redhat.com>
1529             Jakub Jelinek  <jakub@redhat.com>
1530
1531         * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
1532         * builtin-types.def (BT_WORD): Make unsigned.
1533         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
1534         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
1535         (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
1536         * c-decl.c (grokdeclarator): Don't error if !have_tls.
1537         * c-parser.c (c_parser_omp_threadprivate): Likewise.
1538         * cgraph.c (decide_is_variable_needed): Look at force_output.
1539         Recurse for emulated tls.
1540         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
1541         checks redundant with decide_is_variable_needed.
1542         (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
1543         * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
1544         emulated tls.
1545         * expr.c (emutls_var_address): New.
1546         (expand_expr_real_1): Expand emulated tls.
1547         (expand_expr_addr_expr_1): Likewise.
1548         * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
1549         * output.h (emutls_finish): Declare.
1550         * toplev.c (compile_file): Call it.
1551         * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
1552         address before wrapping in CONST.
1553         * varasm.c (emutls_htab, emutls_object_type): New.
1554         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
1555         (get_emutls_object_name, get_emutls_object_type): New.
1556         (get_emutls_init_templ_addr, emutls_decl): New.
1557         (emutls_common_1, emutls_finish): New.
1558         (assemble_variable): When emulating tls, swap decls; generate
1559         constructor for the emutls objects.
1560         (do_assemble_alias): When emulating tls, swap decl and target name.
1561         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
1562         for emulated tls.
1563         * emutls.c: New file.
1564         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
1565         tls_object for real tls.
1566
1567 2006-10-04  Zack Weinberg  <zackw@panix.com>
1568
1569         Fix bug in constraint-check generator, reported by Rask Ingemann
1570         Lambertsen:
1571         * genpreds.c (add_constraint): Don't remove anything from the
1572         expression here.
1573         (write_tm_constrs_h): Detect whether "op" argument is used, and
1574         mark it ARG_UNUSED if it isn't.
1575         (write_insn_const_int_ok_for_constraint): Skip the part of the
1576         expression that would test whether "op" (which is not available
1577         here) is a CONST_INT.
1578
1579 2006-10-04  Ryan Mansfield  <rmansfield@qnx.com>
1580
1581         PR c++/28448
1582         * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
1583
1584 2006-10-03  Geoffrey Keating  <geoffk@apple.com>
1585
1586         * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
1587         current Leopard versions.
1588         * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
1589
1590 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
1591
1592         * doc/install.texi: Fix typos.
1593
1594 2006-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
1595
1596         * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
1597         * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
1598         * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
1599
1600 2006-10-02  Jack Howarth  <howarth@bromo.med.uc.edu>
1601
1602         * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
1603         arg to be struct mach_header_64* instead.
1604
1605 2006-10-02  Jakub Jelinek  <jakub@redhat.com>
1606
1607         PR c/29154
1608         * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
1609         side effects after the outer expression's post side effects.
1610
1611 2006-10-01  Sandra Loosemore  <sandra@codesourcery.com>
1612
1613         * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET):  Fix
1614         comments to reflect actual behavior and relationship between
1615         DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
1616
1617         * doc/c-tree.texi (Working with declarations): Fix documentation
1618         of FIELD_DECL likewise.
1619
1620 2006-10-01  Ryan Mansfield  <rmansfield@qnx.com>
1621
1622         PR c/20533
1623         * doc/extend.texi: Add used variable attribute description.
1624
1625 2006-09-30  Joseph S. Myers  <joseph@codesourcery.com>
1626
1627         PR c/24010
1628         * c.opt (Woverride-init): New.
1629         * c-opts.c (c_common_post_options): Default warn_override_init to
1630         extra_warnings.
1631         * c-typeck.c (add_pending_init, output_init_element): Warn for
1632         overriding initializers without side effects.
1633         * doc/invoke.texi (-Woverride-init): Document.
1634         (-Wextra): Update.
1635
1636 2006-09-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
1637
1638         PR rtl-optimization/28096
1639         * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
1640         assignment has already been used as a destination earlier in the block.
1641
1642 2006-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1643
1644         * builtins.c (expand_builtin_setjmp): Delete.
1645         (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
1646         <BUILT_IN_SETJMP_SETUP>: New case.
1647         <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
1648         <BUILT_IN_SETJMP_RECEIVER>: Likewise.
1649         * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
1650         (BUILT_IN_SETJMP_DISPATCHER): Likewise.
1651         (BUILT_IN_SETJMP_RECEIVER): Likewise.
1652         * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
1653         (lower_function_body): Initialize it to false.  If it is set to true
1654         at the end of the processing, emit the setjmp dispatcher.
1655         (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
1656         is __builtin_setjmp and set calls_builtin_setjmp to true as well.
1657         <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
1658         on the rhs of the assignment.
1659         (lower_builtin_setjmp): New function.
1660         * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
1661         BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
1662         * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
1663         to detect calls that can go to non-local labels.  Use specific
1664         helper to create the abnormal edges associated with them.
1665         <MODIFY_EXPR>: Likewise.
1666         (make_abnormal_goto_edges): New function extracted from...
1667         (make_goto_expr_edges): ...here.  Call it for computed gotos.
1668         (simple_goto_p): Minor tweak.
1669         (tree_can_make_abnormal_goto): New predicate.
1670         (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
1671         (tree_purge_dead_abnormal_call_edges): New function.
1672         * tree-flow.h (tree_can_make_abnormal_goto): Declare.
1673         (tree_purge_dead_abnormal_call_edges): Likewise.
1674         (make_abnormal_goto_edges): Likewise.
1675         * tree-inline.c (expand_call_inline): Simplify statement frobbing.
1676         Purge all dead abnormal edges if the call was in the last statement.
1677         * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
1678         (execute_fixup_cfg): If there are non-local labels in the function,
1679         scan the basic blocks and split them at calls that can go to non-local
1680         labels or add missing abnormal call edges.  Write down the CFG in the
1681         dump file.
1682         (pass_fixup_cfg): Remove TODO_dump_func flag.
1683         * unwind-sjlj.c: Poison setjmp.
1684         * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
1685         * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
1686         (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
1687         (DONT_USE_BUILTIN_SETJMP): Document it.
1688
1689 2006-09-28  Geoffrey Keating  <geoffk@apple.com>
1690
1691         PR target/28617
1692         * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
1693         to 1 when __ppc64__ is defined.
1694         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
1695         darwin-64.c.
1696         * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
1697
1698 2006-09-28  Steve Ellcey  <sje@cup.hp.com>
1699
1700         * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
1701         * config/ia64/unwind-hpux.c: Delete.
1702
1703 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
1704
1705         * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
1706         on the element before gimplifying it, instead of punting if it is of
1707         variable size.
1708
1709 2006-09-28  Zdenek Dvorak <dvorakz@suse.cz>
1710
1711         * doc/loop.texi: New file.
1712         * doc/gccint.texi: Reference loop.texi.
1713         * Makefile.in (loop.texi): Add.
1714
1715 2006-09-27  Geoffrey Keating  <geoffk@apple.com>
1716
1717         * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
1718         __sysctl.
1719         * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
1720         * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
1721
1722 2006-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1723
1724         * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
1725
1726 2006-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
1727
1728         * doc/install.texi: Document required versions of GMP and MPFR.
1729
1730 2006-09-27  Paul Brook  <paul@codesourcery.com>
1731
1732         PR target/29230
1733         * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
1734
1735 2006-09-27  Richard Sandiford  <richard@codesourcery.com>
1736
1737         * reload1.c (alter_reg): Require the alignment of the stack slot to
1738         be at least reg_max_ref_width bytes.
1739         (scan_paradoxical_subregs): Record the largest width in
1740         reg_max_ref_width.
1741
1742 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
1743
1744         PR middle-end/25261
1745         PR middle-end/28790
1746         * tree-nested.c (struct nesting_info): Added static_chain_added.
1747         (convert_call_expr): Set static_chain_added when adding static
1748         chain.  Handle OMP_PARALLEL and OMP_SECTION.
1749
1750 2006-09-25  Matthias Klose  <doko@debian.org>
1751
1752         * doc/invoke.texi: Add missing full stop.
1753
1754 2006-09-25  Richard Henderson  <rth@redhat.com>
1755
1756         * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
1757         before cgraph_function_flags_ready.
1758
1759 2006-09-24  Zdenek Dvorak <dvorakz@suse.cz>
1760             Adam Nemet  <anemet@caviumnetworks.com>
1761
1762         * tree-ssa-loop-ivopts.c (aff_combination_convert,
1763         determine_common_wider_type): New functions.
1764         (get_computation_aff): Use them to simplify arithmetic between
1765         UBASE and CBASE if they are shortened from the same type.
1766
1767 2006-09-24  Kazu Hirata  <kazu@codesourcery.com>
1768
1769         PR target/28911
1770         * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
1771         -2147483647 - 1 instead of 0x80000000.
1772
1773 2006-09-23  Revital1 Eres  <ERES@il.ibm.com>
1774
1775         * flags.h (HONOR_NANS): Fix typo in comment.
1776
1777 2006-09-23  Uros Bizjak <uros@kss-loka.si>
1778
1779         * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
1780
1781 2006-09-23  Jakub Jelinek  <jakub@redhat.com>
1782
1783         PR c/28706
1784         PR c/28712
1785         * tree.c (merge_attributes, attribute_list_contained): If both
1786         TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
1787         simple_cst_equal.
1788         * c-typeck.c (comptypes_internal): Don't consider aggregates
1789         in different TUs as compatible if there one set of attributes is
1790         not a subset of the other type's attributes.
1791         (composite_type): Try harder not to create a new aggregate type.
1792
1793 2006-09-22  Geoffrey Keating  <geoffk@apple.com>
1794
1795         * config/i386/driver-i386.c: Always define host_detect_local_cpu.
1796         * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
1797         or x86_64 host.  Define HAVE_LOCAL_CPU_DETECT.
1798         (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
1799         than replicating condition above.
1800         * config.host (i[34567]86-*-*): Always use driver-i386.o.
1801
1802         * config/darwin.h (LINK_SYSROOT_SPEC): New.
1803         (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
1804         the linker by default.
1805
1806 2006-09-22  Mike Stump  <mrs@apple.com>
1807
1808         * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
1809         code.
1810
1811 2006-09-22  Richard Guenther  <rguenther@suse.de>
1812
1813         PR middle-end/28964
1814         * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
1815         sort of stack variables stable.
1816
1817 2006-09-22  Peter Bergner <bergner@vnet.ibm.com>
1818
1819         PR middle-end/28690
1820         * explow.c (force_reg): Set REG_POINTER flag according to
1821         MEM_POINTER flag.
1822
1823 2006-09-22  Zdenek Dvorak <dvorakz@suse.cz>
1824
1825         PR tree-optimization/28888
1826         * tree-if-conv.c (combine_blocks): Rewritten.
1827         * tree-cfg.c (tree_verify_flow_info): Check that edges with
1828         EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
1829
1830 2006-09-22  Jakub Jelinek  <jakub@redhat.com>
1831
1832         * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
1833         needed.
1834
1835 2006-09-21  Richard Sandiford  <richard@codesourcery.com>
1836
1837         * varasm.c (copy_constant): Fix reversed gcc_assert check.
1838
1839 2006-09-21  Janis Johnson  <janis187@us.ibm.com>
1840
1841         * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
1842
1843 2006-09-21  Roger Sayle  <roger@eyesopen.com>
1844
1845         PR debug/29132
1846         * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
1847         dw_fde_current_label, to be the start of the function, i.e. the same
1848         value as dw_fde_begin.
1849
1850 2006-09-20  Richard Sandiford  <richard@codesourcery.com>
1851
1852         * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
1853         * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
1854         (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
1855         (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
1856         (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
1857         (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
1858         (abs<mode>2, neg<mode>2): Likewise.
1859         * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
1860         (*mips_abs_ps): New define_insn.
1861
1862 2006-09-20  Josh Conner  <jconner@apple.com>
1863
1864         PR middle-end/25505
1865         * calls.c (expand_call): Allow reuse of structure return stack
1866         temp.
1867
1868 2006-09-20  Paul Brook  <paul@codesourcery.com>
1869
1870         * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
1871         positive offsets.
1872
1873 2006-09-20  Janis Johnson  <janis187@us.ibm.com>
1874
1875         * doc/extend.texi (Decimal Float): Update for latest draft TR,
1876         clean up terminology.
1877
1878 2006-09-20  Steve Ellcey  <sje@cup.hp.com>
1879
1880         PR target/28574
1881         * ifcvt.c (dead_or_predicable): Don't predicate then blocks
1882         with tablejumps in them.
1883
1884 2006-09-20  Jakub Jelinek  <jakub@redhat.com>
1885
1886         PR middle-end/28046
1887         * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
1888         wrap it into TARGET_EXPR.
1889
1890 2006-09-20  Eric Christopher  <echristo@apple.com>
1891
1892         * config/i386/i386.c (x86_fisttp): Remove.
1893         * config/i386/i386.h (x86_fisttp): Ditto.
1894         (TARGET_FISTTP): Ditto.
1895
1896 2006-09-19  Eric Christopher  <echristo@apple.com>
1897
1898         * doc/tm.texi (OBJC_JBLEN): Describe.
1899         * config/i386/darwin.h (OBJC_JBLEN): Define.
1900         * config/rs6000/darwin.h: Ditto.
1901
1902 2006-09-19  Steven Bosscher  <steven@gcc.gnu.org>
1903
1904         PR rtl-optimization/21299
1905         * reload1.c (reload): Purge invalid ASMs in the final pass.
1906
1907 2006-09-19  Steve Ellcey  <sje@cup.hp.com>
1908
1909         PR  28490
1910         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
1911         pointers as legitimate constants.
1912
1913 2006-09-19  Paul Brook  <paul@codesourcery.com>
1914
1915         PR target/28516
1916         * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
1917
1918 2006-09-17  Zdenek Dvorak <dvorakz@suse.cz>
1919
1920         PR tree-optimization/28887
1921         * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
1922         component parts from the reference.
1923         (gather_memory_references_ref): Record the reference without the
1924         nonaddressable component parts.
1925
1926 2006-09-17  Steven Bosscher  <steven@gcc.gnu.org>
1927
1928         PR c/25993
1929         * c-opts.c (c_common_handle_option): Ignore the -std options
1930         if the input language is assembly.
1931
1932 2006-09-17  Ira Rosen  <irar@il.ibm.com>
1933
1934         PR tree-opt/21591
1935         * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
1936         tag first.
1937         (ptr_ptr_may_alias_p): Likewise.
1938         (record_record_differ_p): New function.
1939         (base_object_differ_p): Call record_record_differ_p.
1940
1941 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
1942
1943         PR tree-opt/29059
1944         * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
1945         away for the expr argument.
1946
1947 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
1948
1949         PR tree-opt/27742
1950         * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
1951         before using it for dumping after vectorizing loops.
1952
1953 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
1954             Jack Howarth  <howarth@bromo.med.uc.edu>
1955
1956         PR target/29030
1957         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
1958         skip on error_mark_node.
1959         (rs6000_darwin64_record_arg_recurse): Likewise.
1960
1961 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
1962
1963         * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
1964         * doc/rtl.texi: Remove related documentation.
1965
1966 2006-09-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1967
1968         * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
1969         printf.
1970
1971 2006-09-15  Jim Wilson  <wilson@specifix.com>
1972
1973         * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
1974         Handle symbol offsets same as they are handled in ia64_expand_move
1975         and move_operand.
1976
1977 2006-09-16  Andreas Tobler  <a.tobler@schweiz.org>
1978
1979         * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
1980         Add forgotten parameter to the fprintf call.
1981
1982 2006-09-15  Steve Ellcey  <sje@cup.hp.com>
1983
1984         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
1985
1986 2006-09-15  Uros Bizjak <uros@kss-loka.si>
1987
1988         * doc/contrib.texi: Add my entry.
1989
1990 2006-09-15  Nick Clifton  <nickc@redhat.com>
1991
1992         * doc/md.texi (Processor pipeline description): Fix typo in
1993         example of how to use the absence_set directive and reword the
1994         description to make it slightly easier to read.
1995
1996 2006-09-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1997
1998         * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
1999         * loop-doloop.c (doloop_optimize): Use it to limit costs of
2000         expanding the number of iterations.
2001         * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
2002
2003         * cfgrtl.c (emit_insn_at_entry): New function.
2004         * rtl.h (emit_insn_at_entry): Declare it.
2005         * integrate.c (emit_initial_value_sets): Use it.
2006
2007         * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
2008
2009         * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
2010         bad.
2011         (struct loop_work and related VEC declarations): Delete.
2012         (bfin_dump_loops): Print out new member bad.
2013         (bfin_bb_in_loop): Use plain bitmap test.  Don't recurse.
2014         (bfin_scan_loop): Don't recurse.
2015         (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
2016         loops.  No longer need to update outer loops if the current one is
2017         found bad.  Move some validitiy checks to bfin_discover_loop.
2018         (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
2019         but changed not to check for nesting.  Also changed to use the new bad
2020         flag.
2021         (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
2022         time.  Use bitmap based test to discover loop nesting.
2023
2024 2006-09-15  Kazu Hirata  <kazu@codesourcery.com>
2025
2026         * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
2027         one line.
2028
2029 2006-09-14  Richard Guenther  <rguenther@suse.de>
2030             Kazu Hirata  <kazu@codesourcery.com>
2031
2032         PR middle-end/28884.
2033         * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
2034         (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
2035         Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
2036         with TARGET_FUNCTION_VALUE.
2037
2038 2006-09-14  Anatoly Sokolov <aesok@post.ru>
2039
2040         PR target/26504
2041         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
2042
2043 2006-09-13  Aldy Hernandez  <aldyh@redhat.com>
2044
2045         * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
2046         of a RETURN_EXPR
2047
2048 2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
2049
2050         PR debug/28980
2051         * dwarf2out.c (loc_descriptor_from_tree_1): Handle
2052         FUNCTION_DECL.
2053
2054 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
2055
2056         * basic_block.h (bb_has_eh_pred): Fix comment.
2057
2058 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
2059
2060         * flow.c (calculate_global_regs_live): Invalidate eh registers
2061         on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
2062         (propagate_block): Handle eh registers as if they were set at basic
2063         block start.
2064         * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
2065         registers.
2066         * global.c (global_conflicts): Make eh registers to conflict with
2067         pseudos live at basic block begin.
2068         * basic_block.h (bb_has_eh_pred): New function.
2069
2070 2006-09-13  Richard Sandiford  <richard@codesourcery.com>
2071
2072         PR rtl-optimization/28982
2073         * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
2074         index of a PRE_MODIFY or POST_MODIFY address.
2075         * reload1.c (inc_for_reload): Use find_replacement on the original
2076         base and index registers.
2077
2078 2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>
2079
2080         * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
2081         for -Os. Update __m128 alignment requirement.
2082
2083 2006-09-13  Jan Hubicka  <jh@suse.cz>
2084
2085         * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
2086
2087 2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2088
2089         PR rtl-optimization/28243
2090         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
2091         the insn to which the note was originally attached.
2092
2093 2006-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
2094             Roger Sayle  <roger@eyesopen.com>
2095
2096         * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
2097         outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
2098         on platforms that don't use dwarf for debug info.
2099
2100 2006-09-12  Jason Merrill  <jason@redhat.com>
2101
2102         PR middle-end/28493
2103         * builtins.c (expand_builtin_setjmp_receiver): Clobber
2104         hard_frame_pointer_rtx after using it to update the frame pointer.
2105
2106 2006-09-12  Roger Sayle  <roger@eyesopen.com>
2107
2108         * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
2109         (TARGET_ASM_CLOSE_PAREN): Likewise.
2110         * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
2111         (TARGET_ASM_CLOSE_PAREN): Likewise.
2112
2113 2006-09-12  Roger Sayle  <roger@eyesopen.com>
2114
2115         PR target/22223
2116         * config/alpha/alpha.c (alpha_start_function): Don't emit stack
2117         frame information for frames larger than 512 Kbytes on Tru64 when
2118         using the native assembler.
2119
2120 2006-09-12  Roger Sayle  <roger@eyesopen.com>
2121
2122         PR middle-end/4520
2123         PR bootstrap/28784
2124         * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
2125         and symbols.  Instead use the implementation from cse.c's hash_rtx.
2126
2127 2006-09-12  Jan Hubicka  <jh@suse.cz>
2128
2129         PR rtl-optimization/28071
2130         * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
2131         (vect_transform_loop): Likewise.
2132         * tree-vectorizer.c (new_loop_vec_info): Likewise.
2133         (new_loop_vec_info): Likewise.
2134         (destroy_loop_vec_info): Likewise.
2135         * tree-dfa.c (create_var_ann): Use GCC_CNEW.
2136         (create_stmt_ann): Likewise.
2137         (create_tree_ann): Rename to ...
2138         (create_tree_common_ann): ... this one; allocate only the common part
2139         of annotations.
2140         * tree-vn.c (set_value_handle): Use get_tree_common_ann.
2141         (get_value_handle): Likewise.
2142         * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
2143         get_tree_common_ann.
2144         * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
2145         (vinfo_for_stmt): Use stmt annotations.
2146         * tree-flow.h (tree_ann_common_t): New type.
2147         (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
2148         (tree_ann, get_tree_ann, create_tree_ann): New.
2149         * tree-flow-inline.h (get_function_ann): Do more type checking.
2150         (stmt_ann): Likewise.
2151         (tree_ann): Rename to ...
2152         (tree_common_ann): ... this one; return ony common_ann
2153         (get_tree_ann): Rename to ...
2154         (tree_common_ann): This one; return only common_ann.
2155         * tree-vect-patterns.c (vect_pattern_recog_1): Update call
2156         of set_stmt_info.
2157
2158 2006-09-11  Geoffrey Keating  <geoffk@apple.com>
2159
2160         * config.gcc (i[34567]86-*-darwin*): Set with_arch and
2161         with_cpu by default.
2162
2163         * dwarf2out.c (dwarf_file_data): New.
2164         (enum dw_val_class): Add dw_val_class_file.
2165         (struct dw_val_struct): Add val_file.
2166         (file_table): Change to a hash table.
2167         (file_table_emitted): Delete.
2168         (file_table_last_lookup_index): Delete.
2169         (emitcount): Delete.
2170         (last_emitted_file): New.
2171         (lookup_filename): Change prototype to return a struct dwarf_file_data.
2172         (init_file_table): Delete.
2173         (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
2174         (AT_addr): Add comment.
2175         (add_AT_file): New.
2176         (AT_file): New.
2177         (get_AT_file): New.
2178         (print_die): Handle dw_val_class_file.
2179         (print_dwarf_line_table): Update for new file table structure.
2180         (attr_checksum): Do checksum a filename.
2181         (same_dw_val_p, same_attr_p): Do compare a filename.
2182         (size_of_die): Handle dw_val_class_file.
2183         (value_format): Likewise.
2184         (output_die): Likewise.  Also, call maybe_emit_file here.
2185         (struct file_info): Constify filenames.  Make file_idx a pointer
2186         to a struct dwarf_file_data.
2187         (struct dir_info): Constify directory names.  Remove 'used' field.
2188         (struct file_name_acquire_data): New.
2189         (file_name_acquire): New.
2190         (output_file_names): Modify to handle new file data structures.
2191         (add_src_coords_attributes): Use add_AT_file.
2192         (add_call_src_coords_attributes): Likewise.
2193         (dwarf2out_imported_module_or_decl): Likewise.
2194         (gen_subprogram_die): Modify for new file data structures.
2195         (gen_variable_die): Likewise.
2196         (file_table_eq): New.
2197         (file_table_hash): New.
2198         (file_table_last_lookup): New.
2199         (lookup_filename): Rewrite to handle new file data structures.
2200         (maybe_emit_file): Rewrite to handle new file data structures.
2201         (dwarf2out_source_line): Always call lookup_filename and
2202         maybe_emit_file.
2203         (dwarf2out_init): Create file_table here.
2204         (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
2205         (file_table_relative_p): New.
2206         (dwarf2out_finish): Change detection of relative filenames
2207         to work with new file data structures.  Move output_line_info call
2208         after debug_info output.
2209
2210 2006-09-11  H.J. Lu  <hongjiu.lu@intel.com>
2211
2212         PR target/13685
2213         PR target/27537
2214         PR target/28621
2215         * config/i386/i386.c (override_options): Always default to 16
2216         byte stack boundary.
2217
2218 2006-09-11  Alexandre Oliva  <aoliva@redhat.com>
2219
2220         PR target/28672
2221         * var-tracking.c (dump_dataflow_set): Start dumping at
2222         register zero.
2223         (clobber_variable_part): Kill only the variable part in
2224         registers holding it, leaving other variables alone.
2225
2226 2006-09-11  Josh Triplett  <josh@freedesktop.org>
2227
2228         * doc/extend.texi (Other Builtins): Actually use the macro
2229         argument in the documentation example for
2230         __builtin_types_compatible_p.
2231
2232 2006-09-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
2233
2234         PR rtl-optimization/28726
2235         * sched-deps.c (sched_analyze_reg): New function extracted from...
2236         (sched_analyze_1): ...here.  Call it to analyze references to
2237         registers.  Treat again writes to a stack register as writing to the
2238         register.
2239         (sched_analyze_2): ...and here.  Call it to analyze references to
2240         registers.  Treat again reads of a stack register as reading the
2241         register.
2242
2243 2006-09-11  Guenter Roeck  <guenter@roeck-us.net>
2244             David Edelsohn  <edelsohn@gnu.org>
2245
2246         PR target/27287
2247         * config/rs6000/spe.md (frob_df_di): Remove %H.
2248         (frob_di_df): Remove %H.  Change evmergelo to mr.
2249         (frob_di_df_2): Remove %H.  Change evldd to two loads.
2250
2251 2006-09-11  Hideki Iwamoto  <h-iwamoto@kit.hi-ho.ne.jp>
2252
2253         * doc/cpp.texi: Fix names of charset options.
2254
2255 2006-09-10  Andrew Pinski  <pinskia@physics.uc.edu>
2256
2257         PR target/29009
2258         * config/i386/i386.c (override_options): Use 128-bit
2259         stack boundary always for 64bits.
2260
2261 2006-09-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2262
2263         PR rtl-optimization/28636
2264         * combine.c (force_to_mode): Test for side-effects before
2265         substituting by zero.
2266         (simplify_shift_const): Likewise for zero or other constants.
2267
2268 2006-09-10  Steven Bosscher  <steven@gcc.gnu.org>
2269
2270         PR middle-end/26983
2271         * builtins.c (expand_builtin_setjmp): Force next_lab to be
2272         preserved.
2273
2274 2006-09-10  Richard Sandiford  <richard@codesourcery.com>
2275
2276         PR target/29006
2277         * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
2278         * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
2279         returned by mode_for_size, rather than the mode of src itself,
2280         to choose between 32-bit and 64-bit patterns.
2281         (mips_mem_fits_mode_p): New function.
2282         * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
2283         that the size of the source matches the size of the destination.
2284         (mov_<store>l, mov_<store>r): Likewise.
2285
2286 2006-09-10  Eric Christopher  <echristo@apple.com>
2287
2288         * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
2289         for literal16.
2290
2291 2006-09-09  Eric Christopher  <echristo@apple.com>
2292
2293         PR target/28995
2294         * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
2295         for literal16.
2296
2297 2006-09-09  Roger Sayle  <roger@eyesopen.com>
2298             Nicolas Setton <setton@adacore.com>
2299
2300         * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
2301
2302 2006-09-10  Andreas Schwab  <schwab@suse.de>
2303
2304         * config/m68k/m68k.md (bungt_rev): New pattern.
2305
2306 2006-09-09  Paolo Bonzini  <bonzini@gnu.org>
2307             Dale Johannesen  <dalej@apple.com>
2308
2309         PR target/26778
2310         * regclass.c (struct reg_pref): Update documentation.
2311         (regclass): Set prefclass to NO_REGS if memory is the best option.
2312         (record_reg_classes): Cope with a prefclass set to NO_REGS.
2313
2314 2006-09-08  Eric Christopher  <echristo@apple.com>
2315
2316         * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
2317         * config/t-slibgcc-darwin: Support x86_64 multilib.
2318         * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
2319         Return 1 for x86_64-darwin.
2320         * config/i386/t-darwin: Add m64 multilib.
2321         (LIB2_SIDITI_CONV_FUNCS): Use.
2322         (LIB2FUNCS_EXTRA): Ditto.
2323         * config/i386/darwin.h: Support x86_64.
2324         * config/i386/i386.c (override_options): Turn on flag_pic
2325         for x86_64-darwin. Disable flag_omit_pointer.
2326         (get_pc_thunk_name): Assert !TARGET_64BIT.
2327         (legitimate_address_p): Disable machopic addressing for
2328         x86_64.
2329         (legitimize_pic_address): Ditto.
2330         (ix86_expand_move): Ditto.
2331         (ix86_expand_call): Ditto.
2332         (machopic_output_stub): Ditto.
2333         * config/darwin.c (machopic_select_section): Support literal16.
2334         (machopic_select_rtx_section): Ditto.
2335         * config/darwin-sections.def: Ditto.
2336         * config/darwin-64.c: New.
2337
2338 2006-09-08  Joseph S. Myers  <joseph@codesourcery.com>
2339
2340         PR c/28504
2341         * c-tree.h (struct c_arg_info): Add pending_sizes.
2342         * c-parser.c (c_parser_parms_declarator,
2343         c_parser_parms_list_declarator): Initialize pending_sizes.
2344         * c-decl.c (get_parm_info): Initialize pending_sizes.
2345         (get_parm_info): Set pending_sizes.
2346         (grokdeclarator): Call put_pending_sizes for parameters for
2347         function definition only.
2348
2349 2006-09-07  Jason Merrill  <jason@redhat.com>
2350
2351         PR middle-end/27724
2352         * varasm.c (output_constant): Only strip actual no-op conversions.
2353
2354         PR target/13685
2355         * config/i386/i386.c (override_options): Use 128-bit
2356         stack boundary if -msse.
2357
2358 2006-09-07  Eric Christopher  <echristo@apple.com>
2359
2360         * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
2361         comment.
2362         * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
2363         Redefine.
2364
2365 2006-09-07  Geoffrey Keating  <geoffk@apple.com>
2366
2367         * dwarf2out.c: Remove strange characters from comment above
2368         dwarf2out_frame_debug_expr.
2369
2370 2006-09-07  Eric Christopher  <echristo@apple.com>
2371
2372         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
2373         * config/darwin.h: ... to here.
2374
2375 2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>
2376
2377         * config/i386/i386.c (x86_partial_flag_reg_stall): New.
2378
2379         * config/i386/i386.h (x86_partial_flag_reg_stall): New.
2380         (TARGET_PARTIAL_FLAG_REG_STALL): New.
2381
2382         * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
2383         TARGET_PARTIAL_FLAG_REG_STALL.
2384         (*ashldi3_cconly_rex64): Likewise.
2385         (*ashlsi3_cmp): Likewise.
2386         (*ashlsi3_cconly): Likewise.
2387         (*ashlsi3_cmp_zext): Likewise.
2388         (*ashlhi3_cmp): Likewise.
2389         (*ashlhi3_cconly): Likewise.
2390         (*ashlqi3_cmp): Likewise.
2391         (*ashlqi3_cconly): Likewise.
2392         (*ashrdi3_cmp_rex64): Likewise.
2393         (*ashrdi3_cconly_rex64): Likewise.
2394         (*ashrsi3_cmp): Likewise.
2395         (*ashrsi3_cconly): Likewise.
2396         (*ashrsi3_cmp_zext): Likewise.
2397         (*ashrhi3_cmp): Likewise.
2398         (*ashrhi3_cconly): Likewise.
2399         (*ashrqi3_cmp): Likewise.
2400         (*ashrqi3_cconly): Likewise.
2401         (*lshrdi3_cmp_rex64): Likewise.
2402         (*lshrdi3_cconly_rex64): Likewise.
2403         (*lshrsi3_cmp): Likewise.
2404         (*lshrsi3_cconly): Likewise.
2405         (*lshrsi3_cmp_zext): Likewise.
2406         (*lshrhi3_cmp): Likewise.
2407         (*lshrhi3_cconly): Likewise.
2408         (*lshrqi2_cmp): Likewise.
2409         (*lshrqi2_cconly): Likewise.
2410
2411 2006-09-07 Uros Bizjak <uros@kss-loka.si>
2412
2413         PR target/28946
2414         * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
2415         "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
2416         "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
2417         "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
2418         "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
2419         "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
2420         "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
2421         "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
2422         "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
2423         implement only CC setting effects of shift instructions.
2424
2425 2006-09-07  Martin Michlmayr  <tbm@cyrius.com>
2426
2427         * doc/contrib.texi: Add myself.
2428
2429 2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
2430
2431         PR middle-end/28862
2432         * stor-layout.c (relayout_decl): Don't zero the alignment if it
2433         was set by the user.
2434
2435 2006-09-07  Paolo Bonzini  <bonzini@gnu.org>
2436
2437         PR target/27117
2438         * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
2439         (divsi_inv_m1): Use them.
2440         (UNSPEC_DIV_INV_TABLE): New constant.
2441
2442 2006-09-06  James E Wilson  <wilson@specifix.com>
2443
2444         PR rtl-opt/27883
2445         * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
2446         then call count_or_remove_death_notes.
2447
2448 2006-09-06  Jason Merrill  <jason@redhat.com>
2449
2450         PR c++/27371
2451         * tree-inline.c (copy_result_decl_to_var): New fn.
2452         (declare_return_variable): Use it.  Call declare_inline_vars here.
2453         (expand_call_inline): Not here.
2454
2455 2006-09-06  Diego Novillo  <dnovillo@redhat.com>
2456
2457         * doc/contrib.texi: Update my entry.
2458
2459 2006-09-06  Nick Clifton  <nickc@redhat.com>
2460
2461         * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
2462
2463 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
2464
2465         PR tree-opt/28937
2466         * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
2467         (canonicalize_induction_variables): Likewise.
2468         (tree_unroll_loops_completely): Likewise.
2469         (tree_ssa_prefetch_arrays): Likewise.
2470         (remove_empty_loops): Likewise.
2471         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
2472         TODO_cleanup_cfg instead of directly calling
2473         cleanup_tree_cfg_loop.
2474         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
2475         Likewise.
2476         (tree_unroll_loops_completely): Likewise.
2477         (remove_empty_loops): Likewise.
2478         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
2479         * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
2480         of tree_ssa_unswitch_loops.
2481         (tree_ssa_loop_ivcanon): Use the return value of
2482         canonicalize_induction_variables.
2483         (tree_ssa_empty_loop): Use the return value of
2484         remove_empty_loops.
2485         (tree_complete_unroll): Use the return value of
2486         tree_unroll_loops_completely.
2487         (tree_ssa_loop_prefetch): Use the return value of
2488         tree_ssa_prefetch_arrays.
2489         * passes.c (execute_todo): Before Cleanup CFG, set
2490         updating_used_alone and after cleanup CFG, call
2491         recalculate_used_alone.
2492
2493 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
2494
2495         PR tree-opt/28952
2496         * tree-vect-transform.c (vectorizable_condition): Move the check
2497         for the type after the check for simple condition.
2498
2499 2006-09-05  J"orn Rennecke  <joern.rennecke@st.com>
2500             Kaz Kojima  <kkojima@gcc.gnu.org>
2501
2502         PR target/28764
2503         * mode-switching.c (optimize_mode_switching): Make the destination
2504         block of an abnormal edge have no anticipatable mode.  Don't
2505         insert mode switching code at the end of the source block of
2506         an abnormal edge.
2507
2508 2006-09-05  Paolo Bonzini  <bonzini@gnu.org>
2509
2510         PR rtl-optimization/26847
2511         * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
2512         (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
2513         (simplify_plus_minus): Count n_constants while filling ops.  Replace
2514         qsort with insertion sort.  Before going through the array to simplify
2515         pairs, sort it.  Delay early exit until after the first sort, exiting
2516         only if no swaps occurred.  Simplify pairs in reversed order, without
2517         special-casing the first iteration.  Pack ops after simplifying pairs.
2518
2519 2006-09-05  Anatoly Sokolov <aesok@post.ru>
2520
2521         * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
2522         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2523         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2524         (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
2525
2526 2006-09-05  Richard Guenther  <rguenther@suse.de>
2527
2528         PR tree-optimization/28900
2529         * tree-if-conv.c (find_phi_replacement_condition): Gimplify
2530         compound conditional before creating COND_EXPR condition.
2531
2532 2006-09-05  Richard Guenther  <rguenther@suse.de>
2533
2534         PR tree-optimization/28905
2535         * tree-vrp.c (fix_equivalence_set): Manually implement
2536         !value_ranges_intersect_p to also handle symbolic ranges.
2537
2538 2006-09-05  Richard Guenther  <rguenther@suse.de>
2539
2540         PR middle-end/28935
2541         * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
2542         of a COND_EXPR.
2543
2544 2006-09-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2545
2546         PR rtl-optimization/27616
2547         * cse.c (table_size): New static variable.
2548         (new_basic_block): Initialize it to 0.
2549         (remove_from_table): Decrement it.
2550         (insert): Increment it.
2551         (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
2552         (fold_rtx_mem): Enforce a cap on the recursion depth.  Call
2553         fold_rtx_mem_1 if under the cap.
2554         (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
2555         the lookup of the equivalent expression and test for equality of the
2556         first operand of the equivalent expression before in turn looking up
2557         an equivalent constant for the second operand.
2558
2559 2006-09-02  Geoffrey Keating  <geoffk@apple.com>
2560
2561         Revert this change:
2562         2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
2563         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
2564         pointer, instead of assuming it is possible to derive the
2565         correct args size from a call insn.
2566
2567 2006-09-02  Jakub Jelinek  <jakub@redhat.com>
2568
2569         PR middle-end/27567
2570         * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
2571         (fold_builtin_mempcpy): Rename to...
2572         (fold_builtin_memory_op): ... this.  Optimize one element copy
2573         into an assignment.
2574         (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
2575         functions.
2576         (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
2577         (expand_builtin_memcpy, expand_builtin_mempcpy,
2578         expand_builtin_memmove): Likewise.  Use fold_builtin_memory_op.
2579         (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
2580         BUILT_IN_BCOPY.  Use fold_builtin_memory_op for
2581         BUILT_IN_MEM{CPY,PCPY,MOVE}.
2582
2583 2006-09-01  DJ Delorie  <dj@redhat.com>
2584
2585         * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
2586         (stzx_16): Likewise.
2587         ("stzx_24_<mode>"): Likewise.
2588         ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
2589         ("cmp<mode>_op"): New.
2590         (cmp<mode>): Change to expander; just save operands.
2591         (b<code>_op): New.
2592         (b<code>): Change to expander, emit compare here.
2593         (s<code>_op): Change to use split and expander.
2594         (s<code>_24_op): Likewise.
2595         (s<code>_<mode>): New.
2596         (s<code>_<mode>_24): New.
2597         (movqicc_<code>_<mode): New.
2598         (movhicc_<code>_<mode>): New.
2599         (s<code>): New.
2600         (s<code>_24): New.
2601         * config/m32c/m32c.c (compare_op0, compare_op1): New.
2602         (m32c_pend_compare): New.
2603         (m32c_unpend_compare): New.
2604         (m32c_expand_scc): New.
2605         (m32c_expand_movcc): Emit the compare also.
2606         * config/m32c/predicates.md (mra_nopp_operand): New.
2607
2608 2006-09-01  J"orn Rennecke  <joern.rennecke@st.com>
2609         Richard Guenther  <rguenther@suse.de>
2610         Adam Nemet  <anemet@caviumnetworks.com>
2611
2612         PR middle-end/27226
2613         * builtins.c (get_pointer_alignment): Handle more forms
2614         of base addresses that can be used to derive more precise
2615         information about alignment.
2616
2617 2006-09-01  Jason Merrill  <jason@redhat.com>
2618
2619         PR c++/28899
2620         * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
2621         want_value.
2622
2623         * gimplify.c (voidify_wrapper_expr): Handle null type.
2624
2625 2006-09-01  Josh Conner  <jconner@apple.com>
2626
2627         PR c++/25505
2628         * tree-nrv.c (dest_safe_for_nrv_p): New function.
2629         (execute_return_slot_opt): Use it.
2630
2631 2006-08-31  Josh Conner  <jconner@apple.com>
2632
2633         PR c++/25505
2634         * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
2635         returning aggregates.
2636
2637 2006-08-31  Zdenek Dvorak <dvorakz@suse.cz>
2638
2639         PR tree-optimization/28839
2640         * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
2641         blocks in that phi arguments appear.
2642
2643 2006-08-31  Roger Sayle  <roger@eyesopen.com>
2644
2645         PR other/22313
2646         * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
2647         NULL, otherwise use an advance_loc4 to adjust relative to the
2648         current label.
2649         (output_cfi) <DW_CFA_set_loc>: Update the current label.
2650         (dwarf2out_switch_text_section): Reset the current label to avoid
2651         using advance_loc4 over section boundaries.
2652
2653 2006-08-31  Andreas Krebbel  <krebbel1@de.ibm.com>
2654
2655         PR target/24367
2656         * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
2657         r12 + SYMBOLIC_CONST.
2658
2659 2006-08-30  Richard Guenther  <rguenther@suse.de>
2660
2661         * Makefile.in (see.o): Add $(EXPR_H) dependency.
2662
2663 2006-08-30  Zdenek Dvorak <dvorakz@suse.cz>
2664
2665         PR rtl-optimization/27735
2666         * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
2667         Add new argument to keep track of whether an irreducible region
2668         was affected.  All callers changed.
2669         (fix_irreducible_loops): Removed.
2670         (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
2671         flags were invalidated.
2672
2673 2006-08-29  H.J. Lu  <hongjiu.lu@intel.com>
2674
2675         * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
2676         instead of SF operands.
2677         (*fop_df_comm_sse): Likewise.
2678         (*fop_df_comm_i387): Likewise.
2679         (*fop_df_1_mixed): Likewise.
2680         (*fop_df_1_sse): Likewise.
2681
2682 2006-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
2683             J"orn Rennecke  <joern.rennecke@st.com>
2684
2685         PR tree-optimization/17506
2686         * tree-ssa.c (warn_uninit): If warning about a location outside of
2687         the current function, note where the variable was declared.
2688
2689 2006-08-28  Zdenek Dvorak <dvorakz@suse.cz>
2690
2691         PR tree-optimization/28411
2692         * double-int.c (double_int_div): Use double_int_divmod.
2693         (double_int_divmod, double_int_sdivmod, double_int_udivmod,
2694         double_int_mod, double_int_smod, double_int_umod): New functions.
2695         * double-int.h (double_int_divmod, double_int_sdivmod,
2696         double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
2697         Declare.
2698         * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
2699         in double_int.
2700         (get_computation_aff, get_computation_cost_at): Handle double_int
2701         return type of constant_multiple_of.
2702
2703 2006-08-28  Kazu Hirata  <kazu@codesourcery.com>
2704
2705         PR middle-end/26632
2706         * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
2707         an implicit conversion.
2708
2709 2006-08-28  Prafulla Thakare  <prafullat@kpitcummins.com>
2710
2711         * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
2712
2713 2006-08-27  Roger Sayle  <roger@eyesopen.com>
2714
2715         * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
2716         x87 instructions.
2717
2718 2006-08-27  Kazu Hirata  <kazu@codesourcery.com>
2719
2720         * config/i386/crtfastmath.c: Fix a comment typo.
2721
2722 2006-08-26  Roger Sayle  <roger@eyesopen.com>
2723
2724         * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
2725         temporary visit flags on CASE_LABEL_EXPRs.
2726         * c-common.c (match_case_to_enum): Add function comment.  Avoid
2727         O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
2728         (c_do_switch_warnings):  Reorganize to record CASE_LOW_SEEN and
2729         CASE_HIGH_SEEN for enumerated types.  If the switch expression is
2730         a constant, only warn if that constant value isn't handled.
2731
2732 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
2733
2734         PR c++/24009
2735         * input.h (restore_input_file_stack): Declare.
2736         (INPUT_FILE_STACK_BITS): Define.
2737         * toplev.c (fs_p, input_file_stack_history,
2738         input_file_stack_restored, restore_input_file_stack): New.
2739         (push_srcloc, pop_srcloc): Check for input_file_stack_tick
2740         overflowing INPUT_FILE_STACK_BITS bits.  Save new state of stack.
2741         (pop_srcloc): Don't free old state of stack.
2742
2743 2006-08-26  David Edelsohn  <edelsohn@gnu.org>
2744
2745         PR target/27544
2746         * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
2747         (PowerPC Type Attributes): New.
2748
2749 2006-08-26  Bob Wilson  <bob.wilson@acm.org>
2750
2751         * config/xtensa/xtensa.c (function_arg_boundary): New.
2752         (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
2753         STACK_BOUNDARY.
2754         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
2755         function_arg_boundary function that limits alignment to STACK_BOUNDARY.
2756
2757 2006-08-26  Jakub Jelinek  <jakub@redhat.com>
2758
2759         PR middle-end/28683
2760         * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
2761         3 following insns.
2762
2763 2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2764
2765         * flow.c (verify_wide_reg): Use internal_error for consistency failure.
2766         (verify_local_live_at_start): Likewise.
2767
2768 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
2769
2770         PR c/27893
2771         * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
2772         omp_add_variable): Treat sizes as variable whenever not
2773         INTEGER_CST.
2774
2775 2006-08-26  Richard Guenther  <rguenther@suse.de>
2776
2777         PR middle-end/28814
2778         * fold-const.c (fold_binary): Fold temporary to correct
2779         type before constructing new comparison.
2780
2781 2006-08-25  Fariborz Jahanian  <fjahanian@apple.com>
2782
2783         PR c/28418
2784         * c-gimplify.c (gimplify_compound_literal_expr): Don't add
2785         variable again if DECL_SEEN_IN_BIND_EXPR_P.
2786
2787 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
2788
2789         PR c/28299
2790         * c-decl.c (start_function): Don't try to process prototype
2791         information from old declaration that isn't a function.
2792
2793 2006-08-25  Jan Hubicka  <jh@suse.cz>
2794
2795         PR target/28621
2796         * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
2797
2798 2006-08-25  Alan Modra  <amodra@bigpond.net.au>
2799
2800         PR target/27075
2801         * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
2802         for 8 byte objects.
2803
2804 2006-08-25  J"orn Rennecke  <joern.rennecke@st.com>
2805
2806         PR tree-optimization/16876
2807         * c-typeck.c (c_convert_parm_for_inlining): Don't take early
2808         exit if PARM doesn't match VALUE.
2809
2810 2006-08-25  Bob Wilson  <bob.wilson@acm.org>
2811
2812         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
2813         literal_prefix directive.
2814         (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
2815         * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
2816         * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
2817
2818 2006-08-25  David Edelsohn  <edelsohn@gnu.org>
2819
2820         PR target/28753
2821         * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
2822         predicate to general_operand.  Add 0->y and I->r alternatives.
2823
2824 2006-08-25  Kazu Hirata  <kazu@codesourcery.com>
2825
2826         * doc/tm.texi: Fix a typo.
2827         * predict.c: Fix comment typos.
2828
2829 2006-08-25  Nick Clifton  <nickc@redhat.com>
2830
2831         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
2832         assertions of "cpu" and "machine".
2833
2834 2006-08-24  Andrew Pinski  <pinskia@physics.uc.edu>
2835
2836         PR tree-opt/28807
2837         * tree-ssa-operands.c (access_can_touch_variable): Don't say
2838         the access through a base which has an alias set of 0 cannot
2839         touch the variable.
2840
2841 2006-08-24  Bill Wendling  <wendling@apple.com>
2842
2843         * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
2844
2845 2006-08-24  Jan Hubicka  <jh@suse.cz>
2846
2847         * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
2848
2849 2006-08-24  Jan Hubicka  <jh@suse.cz>
2850
2851         PR debug/26881
2852         * cgraph.c: Fix comments.
2853         (cgraph_varpool_mark_needed_node): Mark only variables not already
2854         output to file.
2855         * cgraphunit.c: Update comments; include gt-cgraphunit.h
2856         (cgraph_varpool_assembled_nodes_queue): New static variable.
2857         (cgraph_varpool_assemble_decl): Record output decls for debug out code.
2858         (cgraph_varpool_output_debug_info): New function.
2859         (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
2860         * Makefile.in: Add gt-cgraphunit.h
2861
2862 2006-08-24  Jan Hubicka  <jh@suse.cz>
2863
2864         * predict.c (probability_reliable_p): New predicate.
2865         (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
2866         (predict_loops): Do not predict loop exit with less than 2%
2867         probability.
2868         * basic-block.h (edge_probability_reliable_p,
2869         br_prob_note_reliable_p): Declare.
2870         * ia64.h (ia64_print_operand): Do not disable on-chip branch
2871         prediction when static predictor is not reliable.
2872         * rs6000.c (output_cbranch): Likewise.
2873
2874 2006-08-23  Stuart Hastings  <stuart@apple.com>
2875
2876         PR 28825
2877         * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
2878         ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
2879
2880 2006-08-21  Geoffrey Keating  <geoffk@apple.com>
2881
2882         PR debug/28692
2883         * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
2884         complex values, nor for generic vector values.
2885
2886 2006-08-22  Richard Guenther  <rguenther@suse.de>
2887
2888         PR middle-end/28776
2889         * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
2890         parameter.  Convert arguments to arithmetic expression to the
2891         chrecs type.
2892         (analyze_scalar_evolution_1): Adjust caller.
2893
2894 2006-08-22  Jan Hubicka  <jh@suse.cz>
2895
2896         Patch by Paolo Bonzini
2897         * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
2898         my previous patch.
2899
2900 2006-08-22  Daniel Berlin  <dberlin@dberlin.org>
2901
2902         PR tree-optimization/28003
2903         * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
2904         before grouping aliases.
2905
2906 2006-08-22  Roger Sayle  <roger@eyesopen.com>
2907
2908         * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
2909         if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
2910
2911 2006-08-21  Jason Merrill  <jason@redhat.com>
2912
2913         PR c++/27115
2914         * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
2915         wrapper.  Loop to handle nested wrappers.
2916         (gimplify_bind_expr): Remove temp parameter.
2917         (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
2918         and STATEMENT_LIST on the rhs.
2919         (gimplify_statement_list): Voidify the STATEMENT_LIST.
2920         (gimplify_expr): Pass pre_p to gimplify_statement_list.
2921         (gimplify_target_expr): Remove special BIND_EXPR handling.
2922
2923 2006-08-21  J"orn Rennecke  <joern.rennecke@st.com>
2924
2925         * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
2926         #if !__SHMEDIA__ .
2927
2928 2006-08-21  Olivier Hainque  <hainque@adacore.com>
2929
2930         * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
2931         Arrange for the temporary captures of components overlapping the lhs
2932         to happen before the lhs is possibly cleared.
2933
2934 2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>
2935
2936         * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
2937         necessary places to pass the correct "number of registers" values
2938         to _Unwind_VRS_Pop.
2939
2940 2006-08-20  Jan Hubicka  <jh@suse.cz>
2941
2942         * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
2943         (create_name_tags): Instead of quadratic checking use hashtable.
2944         * bitmap.h: Include hashtab.h.
2945         (bitmap_hash): Declare.
2946         * bitmap.c (bitmap_hash): New function.
2947
2948 2006-08-20  Jan Hubicka  <jh@suse.cz>
2949
2950         PR rtl-optimization/28071
2951         * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
2952         twice.
2953         * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
2954         * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
2955         (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
2956         cgraph_decide_inlining_incrementally): Update use of
2957         cgraph_check_inline_limits.
2958         * cgraph.c (edge_hash, edge_eq): New function.
2959         (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
2960         cgraph_edge_remove_caller, cgraph_node_remove_callees,
2961         cgraph_remove_node): Maintain call site hash.
2962         * cgraph.h (struct cgraph_node): Add call_site_hash.
2963         (cgraph_set_call_stmt): New function.
2964
2965 2006-08-20  Jan Hubicka  <jh@suse.cz>
2966
2967         PR rtl-optimization/28071
2968         * reload1.c (reg_has_output_reload): Turn into regset.
2969         (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
2970         choose_reload_regs, emit_reload_insns): Update to new
2971         reg_has_output_reload.
2972
2973 2006-08-20  Jan Hubicka  <jh@suse.cz>
2974
2975         PR middle-end/28779
2976         * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
2977         function body sizes.
2978         * cgraphunit.c (cgraph_analyze_function): Don't do so.
2979
2980 2006-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
2981
2982         PR target/28648 c:
2983         * tree.c (handle_dll_attribute): Return early if not a
2984         var or function decl.
2985
2986 2006-08-18  Joseph Myers  <joseph@codesourcery.com>
2987
2988         PR target/27565
2989         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
2990         alignment of SPE vector types.
2991
2992 2006-08-18  Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
2993
2994         * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
2995
2996 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
2997
2998         PR c/28744
2999         * cgraph.h (struct cgraph_node): Remove externally_visible
3000         bitfield.
3001         * cgraphunit.c (process_function_and_variable_attributes): Set
3002         local.externally_visible rather than externally_visible.
3003
3004         PR c/28744
3005         * c-common.c (handle_externally_visible_attribute): First look
3006         at TREE_CODE and only if it is function or var decl, check for
3007         non-public objects.  Don't warn for DECL_EXTERNAL.
3008         * cgraphunit.c (process_function_and_variable_attributes): Warn
3009         if externally_visible attribute is used on non-public object.
3010
3011 2006-08-17  Jan Hubicka  <jh@suse.cz>
3012
3013         PR tree-optimization/27865
3014         * reload1.c (forget_marked_reloads): New function.
3015         (forget_old_reloads_1): When data are passed, just mark the registers
3016         for later removal.
3017         (reload_as_needed): Use the new mechanizm.
3018
3019 2006-08-17  Alexandre Oliva  <aoliva@redhat.com>
3020
3021         PR target/28146
3022         * reload.h (reg_equiv_alt_mem_list): New declaration.
3023         * reload1.c (reg_equiv_alt_mem_list): New definition.
3024         (reload): Initialize it and release it.
3025         (delete_output_reload): Use it.
3026         * reload.c (push_reg_equiv_alt_mem): New function.
3027         (find_reloads_toplev): Call it.
3028         (find_reloads_address, find_reloads_address_1): Likewise.
3029         (find_reloads_subreg_address): Likewise.
3030
3031 2006-08-17  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3032
3033         PR rtl-optimization/28489
3034         * sched-ebb.c (begin_schedule_ready): Create basic block
3035         at the right place.
3036         (advance_target_bb): Skip empty blocks.
3037         * haifa-sched.c (bb_note): Make global.
3038         * sched-int.h (bb_note): Add prototype.
3039
3040 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
3041
3042         PR tree-optimization/27865
3043         * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
3044         for pointer types.
3045         * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
3046         fold_used_pointer, pointer_used_p): New functions.
3047         (analyze_scalar_evolution_1): Use fold_used_pointer.
3048         * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
3049         * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
3050         for pointers.
3051
3052 2006-08-17  Paolo Bonzini <bonzini@gnu.org>
3053
3054         PR c++/28573
3055         * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
3056         or the INTEGER_CST.  Fail on a CALL_EXPR.
3057         (fold_offsetof): Pass new argument to fold_offsetof_1.
3058         * c-parser.c (c_parser_postfix_expression): Don't include a NULL
3059         operand into an INDIRECT_REF.
3060         * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
3061
3062 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
3063
3064         PR gcov/profile/26570
3065         * value-prof.c (static_values): Removed.
3066         (tree_find_values_to_profile): Do not set static_values.
3067         (find_values_to_profile): Do not free static_values.
3068         * profile.c (instrument_values): Do not free the values.
3069         (branch_prob): Free the values.
3070
3071 2006-08-16  Naveen.H.S  <naveenh@kpitcummins.com>
3072
3073         * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
3074
3075 2006-08-16  Joseph S. Myers  <joseph@codesourcery.com>
3076
3077         PR c/27697
3078         * c-typeck.c (build_component_ref): Combine qualifiers of
3079         structure or union and field.
3080
3081 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
3082
3083         PR rtl-optimization/28071
3084         * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
3085         * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
3086         * tree-into-ssa.c (struct dom_dfsnum): New.
3087         (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
3088         functions.
3089         (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
3090         compute_global_livein.
3091         (prepare_block_for_update, prepare_use_sites_for): Mark the uses
3092         in phi nodes in the correct blocks.
3093
3094 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
3095
3096         PR tree-optimization/28364
3097         * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
3098         correctly.
3099         (fold_affine_expr): New function.
3100         (may_eliminate_iv): Use fold_affine_expr.
3101
3102 2006-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3103
3104         PR c/27489
3105         * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
3106         Clean up.
3107
3108 2006-08-16  Mike Stump  <mrs@apple.com>
3109
3110         * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
3111         * doc/cppopts.texi (-MD): Likewise.
3112
3113 2006-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
3114
3115         PR c/28287
3116         * c-common.c (handle_weak_attribute): Ignore and warn if
3117         not a FUNCTION_ or VAR_DECL.
3118
3119 2006-07-15  Mike Stump  <mrs@apple.com>
3120
3121         PR c/28280
3122         * c-parser.c (c_parser_typeof_specifier): Don't use
3123         c_finish_expr_stmt, open code desired semantics instead.
3124
3125 2006-08-15  Nick Clifton  <nickc@redhat.com>
3126
3127         * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
3128         fragment to tmake_file only if threads are enabled.
3129         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
3130         * config/i386/t-gthr-win32: New file. ... here.
3131
3132 2006-08-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3133
3134         PR c/28649
3135         * c-parser.c (c_parser_compound_statement_nostart): Reset
3136         parser->error after each statement.
3137
3138 2006-08-15  Jakub Jelinek  <jakub@redhat.com>
3139
3140         PR middle-end/28713
3141         * omp-low.c (lower_omp_parallel): Convert t to
3142         receiver_decl's type.
3143         (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
3144         source before comparison.
3145
3146         PR middle-end/28724
3147         * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
3148         to itype in assignment to oldival2.
3149
3150 2006-07-14  Andrew Pinski  <pinksia@physics.uc.edu>
3151
3152         PR c/27490
3153         PR c/27489
3154         * c-typeck.c (build_compound_expr): If the second expression
3155         is an error mark, then just return an error mark instead of
3156         creating a COMPOUND_EXPR.
3157
3158 2006-07-14  Mike Stump  <mrs@apple.com>
3159
3160         * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
3161
3162 2006-08-14  Kazu Hirata  <kazu@codesourcery.com>
3163
3164         * c-decl.c, var-tracking.c: Fix comment typos.
3165
3166 2006-08-14  Richard Sandiford  <richard@codesourcery.com>
3167
3168         PR rtl-optimization/28634
3169         * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
3170         for floating-point modes unless flag_unsafe_math_optimizations.
3171
3172 2006-08-13  Alexandre Oliva  <aoliva@redhat.com>
3173             Andrew Pinski  <pinskia@physics.uc.edu>
3174
3175         PR c/27184
3176         * tree.c (build_array_type): Unify array types with
3177         unspecified index_type.
3178         * c-decl.c (grokdeclarator): Make sure we do not modify a
3179         unified incomplete array type.
3180         * c-typeck.c (store_init_value): Create distinct type before
3181         filling in the index type in an initializer from a compound
3182         literal.
3183
3184         * c-decl.c (grokdeclarator): Remove code where we copy the
3185         array type over.
3186
3187 2006-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
3188
3189         * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
3190         into account for TODO_dump_cgraph.
3191         (TODO_update_ssa_no_phi): Likewise.
3192         (TODO_update_ssa_full_phi): Likewise.
3193         (TODO_update_ssa_only_virtuals): Likewise.
3194         (TODO_remove_unused_locals): Likewise.
3195         (TODO_set_props): Likewise.
3196         (TODO_update_stmt_usage): Likewise.
3197
3198 2006-08-13  Dirk Mueller  <dmueller@suse.de>
3199
3200         * c-common.c (strict_aliasing_warning): Fix formatting.
3201
3202 2006-08-13  Matthias Klose  <doko@debian.org>
3203
3204         * doc/invoke.texi: Fix spelling errors.
3205
3206 2006-08-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3207
3208         PR rtl-optimization/23454
3209         * reorg.c (relax_delay_slots): Update comment.
3210
3211 2006-08-11  Richard Guenther  <rguenther@suse.de>
3212
3213         PR middle-end/28651
3214         * simplify-rtx.c (simplify_const_relational_operation):
3215         Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
3216         codes.
3217
3218 2006-08-10  Eric Botcazou  <ebotcazou@adacore.com>
3219
3220         * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
3221         TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
3222
3223 2006-08-10  Paul Brook  <paul@codesourcery.com>
3224
3225         * final.c (final_scan_insn): Clear current_insn_predicate before
3226         outputting inline asm.
3227
3228 2006-08-10  Dorit Nuzman  <dorit@il.ibm.com>
3229
3230         PR tree-optimization/26197
3231         * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
3232         get_ref_base_and_extent and overlap_subvar to add only relevant
3233         subvars as may-aliases.
3234         (add_may_alias_for_new_tag): New function, factored out of
3235         new_type_alias.
3236         * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
3237         with additional argument.
3238         * tree-flow.h (new_type_alias): Takes additional argument.
3239
3240 2006-08-09  Nathan Sidwell  <nathan@codesourcery.com>
3241
3242         * gcov.c (no_data_file): New flag.
3243         (read_count_file): Set it if data file not present.  Assume counts
3244         zero if not found.
3245         (output_lines): Don't name the data file, if there wasn't one.
3246
3247 2006-08-09  Eric Botcazou  <ebotcazou@adacore.com>
3248
3249         * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
3250         (rs6000_generate_compare): Tweak comments.
3251         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
3252
3253 2006-08-09  Alexandre Oliva  <aoliva@redhat.com>
3254
3255         * var-tracking.c (enum micro_operation_type): Add MO_COPY.
3256         (var_debug_decl): New function.
3257         (var_reg_set): Follow debug decl link.  Add location even if
3258         reg is already known to hold some other variable.
3259         (var_mem_set): Follow debug decl link.
3260         (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
3261         decl link.  Delete other known locations of the variable part
3262         if requested.
3263         (var_reg_delete, var_mem_delete): Delete other known locations
3264         of the variable part if requested.
3265         (same_variable_part_p): New function.
3266         (add_stores): Select MO_COPY when appropriate.
3267         (vt_initialize): Handle it.
3268         (compute_bb_dataflow, emit_notes_in_bb): Likewise.  Delete
3269         known locations for MO_SET and MO_CLOBBER.
3270         (find_variable_location_part): New function.
3271         (set_variable_part, delete_variable_part): Use it.
3272         (clobber_variable_part): New function.
3273         * dwarf2out.c (dwarf2out_var_location): Do not follow debug
3274         decl link.
3275
3276 2006-08-07  Victor Kaplansky <victork@il.ibm.com>
3277
3278         PR tree-optimization/26969
3279         * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
3280         with an empty list of PHIs.
3281
3282 2006-08-06  Paolo Bonzini  <bonzini@gnu.org>
3283
3284         PR target/27827
3285
3286         * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
3287         instructions.
3288
3289 2006-08-06  Andreas Schwab  <schwab@suse.de>
3290
3291         * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
3292         string.  Whitespace and comment fixup.
3293
3294 2006-08-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3295
3296         PR c/28502
3297         * c-decl.c (validate_proto_after_old_defn): Return false on invalid
3298         argument.
3299
3300         PR c/27721
3301         * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
3302
3303         PR c/28136
3304         * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
3305
3306 2006-08-04  Jan Hubicka  <jh@suse.cz>
3307
3308         PR target/26655
3309         PR target/28270
3310         * reload.c (push_reload): Patch out the mismatching instruction;
3311         return early.
3312         (find_reload): Bail out if the instruction was patched out.
3313
3314 2006-08-04  Jan Hubicka  <jh@suse.cz>
3315
3316         PR tree-optimization/24888
3317         * tree-inline.c (expand_call_inline): Do not re-record variables.
3318         (declare_inline_vars): Add variable to unexpanded_var_list.
3319
3320 2006-08-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3321             Roger Sayle  <roger@eyesopen.com>
3322
3323         PR rtl-optimization/26244
3324         * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
3325         inner_const are negative or greater than or equal to the bitsize of
3326         MODE.  If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
3327         Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
3328         Simplify complicated if statement.  For ASHIFT and LSHIFTRT, return
3329         CONST0_RTX (mode) when the new shift count is greater than or equal to
3330         to the bitsize of the object being shifted and XEXP (y, 0) has no side
3331         effects.
3332
3333 2006-08-04  Kazu Hirata  <kazu@codesourcery.com>
3334
3335         * tree-cfg.c: Fix a comment typo.
3336
3337 2006-08-03  Mark Mitchell  <mark@codesourcery.com>
3338
3339         PR c++/28148
3340         * varasm.c (output_constant): Give the front end another chance to
3341         expand constants, after stripping NOPs.
3342
3343 2006-08-03  Jan Hubicka  <jh@suse.cz>
3344
3345         * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
3346         implementation.
3347
3348 2006-08-03  Dorit Nuzman  <dorit@il.ibm.com>
3349
3350         PR tree-optimization/27770
3351         * tree-vectorizer.h (get_vectype_for_scalar_type): Function
3352         declaration removed (moved to tree-flow.h).
3353         (vect_can_force_dr_alignment_p): Likewise.
3354         * tree-flow.h (get_vectype_for_scalar_type): New function declaration
3355         (moved from tree-vectorizer.h).
3356         (vect_can_force_dr_alignment_p): Likewise.
3357         * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
3358         from outside the vectorizer - in particular from cgraph stage.
3359         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
3360         the alignment of global arrays when -fsection-anchors is enabled.
3361         * cgraphunit.c (cgraph_increase_alignment): New function.
3362         (cgraph_optimize): Call cgraph_increase_alignment.
3363
3364 2006-08-03  David Edelsohn  <edelsohn@gnu.org>
3365
3366         PR target/27566
3367         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
3368         not reload a SPE symbol_ref into a lo_sum address.
3369
3370 2006-08-02  Daniel Jacobowitz  <dan@codesourcery.com>
3371
3372         PR debug/28063
3373         * dwarf2out.c (prune_unused_types_prune): Move call to
3374         prune_unused_types_update_strings to cover the parent DIE also.
3375
3376 2006-08-02  Jan Hubicka  <jh@suse.cz>
3377
3378         PR gcov/profile/28480
3379         * tree-cfg.c (change_bb_for_stmt): New function.
3380         (tree_merge_blocks, tree_split_blocks): Use it.
3381
3382 2006-08-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3383
3384         PR c++/28250
3385         PR c++/28257
3386         PR c++/28259
3387         PR c++/28267
3388         * toplev.c (compile_file): Return early on errorcount or sorrycount.
3389         * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
3390         (cgraph_optimize): Likewise.
3391
3392 2006-08-01  Stuart Hastings  <stuart@apple.com>
3393
3394         * rtl.h (UINTVAL) New.
3395         * config/rs6000/rs6000.c (SMALL_INT) Use it.
3396         * testsuite/gcc.dg/20060801-1.c: New.
3397
3398 2006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
3399
3400         PR debug/23336
3401         * c-typeck.c (build_external_type): Mark used enum types.
3402         * dwarf2out.c (dwarf2out_abstract_function): Save and restore
3403         cfun also.
3404         (gen_subprogram_die): Whitespace fix.
3405
3406 2006-08-01  Jan Hubicka  <jh@suse.cz>
3407
3408         * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
3409         bitmap when not needed.
3410         * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
3411         bitmaps.
3412
3413 2006-08-01  Dirk Mueller  <dmueller@suse.de>
3414
3415         * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
3416
3417 2006-07-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3418
3419         * Makefile.in: Revert part of previous patch:
3420         Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
3421         and REGS_H.
3422
3423 2006-07-30  Eric Christopher  <echristo@apple.com>
3424
3425         PR target/27543
3426         * doc/extend.texi (i386 Variable Attributes): Add anchor.
3427         (PowerPC Variable Attributes): New section.
3428
3429 2006-07-30  Atsushi Nemoto  <anemo@mba.ocn.ne.jp>
3430
3431         PR target/28126 (partial fix)
3432         * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
3433
3434 2006-07-28  Jan Hubicka  <jh@suse.cz>
3435
3436         PR rtl-optimization/28071
3437         * cfgrtl.c (rtl_delete_block): Free regsets.
3438         * flow.c (allocate_bb_life_data): Re-use regsets if available.
3439
3440 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3441
3442         * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
3443         and variables used in dependencies.
3444
3445 2006-07-27  Arjan van de Ven <arjan@linux.intel.com>
3446
3447         * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
3448         %fs for -mcmodel=kernel.
3449         (stack_tls_protect_test_di): Likewise.
3450
3451 2006-07-27  Carlos O'Donell  <carlos@codesourcery.com>
3452
3453         * Makefile.in: Use mkinstalldirs.
3454
3455 2006-07-27  H.J. Lu  <hongjiu.lu@intel.com>
3456
3457         PR driver/28437
3458         * opts-common.c (prune_options): Skip joined switches.
3459
3460 2006-07-27  Jan Hubicka  <jh@suse.cz>
3461
3462         PR rtl-optimization/28071
3463         * cselib.c (cselib_process_insn): Don't remove useless values too
3464         often for very large hashtables.
3465
3466 2006-07-27  Jan Hubicka  <jh@suse.cz>
3467
3468         PR rtl-optimization/28071
3469         * global.c (greg_obstack): New obstack.
3470         (allocate_bb_info): Use it.
3471         (free_bb_info): Likewise.
3472         (modify_reg_pav): Likewise.
3473
3474 2006-07-27  Roger Sayle  <roger@eyesopen.com>
3475
3476         * builtins.c (fold_fixed_mathfn): When long and long long are the
3477         same size, canonicalize llceil*, llfloor*, llround* and llrint*
3478         functions to their lceil*, lfloor*, lround* and lrint* forms.
3479
3480 2006-07-27  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
3481
3482         PR gcc/28508
3483         * config/m32r/m32r.md (branch_insn): Reduce pc range for short
3484         branch.
3485         (rev_branch_insn): Likewise.
3486
3487 2006-07-27  Jan Hubicka  <jh@suse.cz>
3488
3489         PR rtl-optimization/28071
3490         * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
3491         (reg_set_in_bb, max_reg_computed): New static variables.
3492         (regmove_optimize): Free the new array.
3493         (fixup_match_1): Update call of reg_is_remote_constant_p.
3494
3495 2006-07-26  Jan Hubicka  <jh@suse.cz>
3496
3497         PR tree-optimization/27882
3498         * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
3499</