OSDN Git Service

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