OSDN Git Service

2006-10-13 David Edelsohn <edelsohn@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
2             Ian Lance Taylor  <ian@airs.com>
3
4         PR middle-end/29250
5         * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
6         CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
7         recursing.
8
9 2006-10-14  Kazu Hirata  <kazu@codesourcery.com>
10
11         * config/score/score.c, config/score/score.h: Fix comment
12         typos.
13
14 2006-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15
16         PR bootstrap/29402
17         * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
18         shell pipeline.
19
20 2006-10-13  Eric Christopher  <echristo@apple.com>
21
22         * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
23
24 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
25
26         Revert this change:
27         2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
28         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
29         alignment supported by 32-bit ELF.
30
31 2006-10-13  Eric Christopher  <echristo@apple.com>
32
33         * config/darwin.c (darwin_emit_unwind_label): Strip
34         name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
35
36 2006-10-13  Richard Guenther  <rguenther@suse.de>
37
38         PR tree-optimization/29446
39         * tree-vrp.c (fix_equivalence_set): Remove.
40         (extract_range_from_assert): Do not call fix_equivalence_set.
41         (debug_value_range): Print a newline.
42         (compare_name_with_value): For equivalence sets with
43         inconsistent value ranges conservatively bail out.
44         (compare_names): Likewise.
45
46 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
47
48         * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
49         and MPFR for gfortran.
50
51 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
52
53         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
54         alignment supported by 32-bit ELF.
55
56 2006-10-13  Paolo Bonzini  <bonzini@gnu.org>
57
58         PR c/29092
59
60         * c-typeck.c (digest_init): Always allow initializing vectors
61         that have static storage duration with compound literals.
62         * tree.c (build_type_attribute_qual_variant): New, based on
63         build_type_attribute_variant.
64         (build_type_attribute_variant): Rewrite using the former.
65         (make_vector_type): Use build_type_attribute_qual_variant to build
66         type variants.  Use type_hash_canon on the others.
67
68 2006-10-13  Daniel Berlin <dberlin@dberlin.org>
69             Ramana Radhakrishnan  <ramana.radhakrishnan@celunite.com>
70
71         * tree-flow-inline.h (zero_ssa_operands): Fix comment.
72
73 2006-10-12  Jan Hubicka  <jh@suse.cz>
74
75         PR c/28419
76         * c-decl.c (c_make_fname_decl): Do not segfault in case where
77         current_function_decl is set but current_function_scope is not.
78
79 2006-10-12  Jie Zhang  <jie.zhang@analog.com>
80
81         * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
82         emit_insn to emit eh_return_internal instruction.
83         (eh_return_internal): Explicitly set pc.
84
85 2006-10-11  Richard Guenther  <rguenther@suse.de>
86
87         PR tree-optimization/28230
88         * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
89         to the correct place.
90
91 2006-10-11  Richard Guenther  <rguenther@suse.de>
92
93         PR inline-asm/29119
94         * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
95         addressable.
96
97 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
98
99         * configure.ac: Added pdf to "Make-hooks"
100         * Makefile.in: Added TEXI2PDF definition, and various pdf-file
101         targets and *.pdf file patterns in cleanup targets.
102         * configure: Regenerated.
103
104 2006-10-10  Anatoly Sokolov <aesok@post.ru>
105
106         * config/avr/predicates.md: New file.
107         * config/avr/avr.md: Include it.
108         (REG_SP): New constant.
109         (peepholes): Use predicates.
110         (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
111         difficult_branch,  difficult_rvbranch, cbi, sbi, sbix_branch,
112         sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
113
114 2006-10-10  Adam Nemet  <anemet@caviumnetworks.com>
115
116         * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
117         avoid alias set 0.
118
119 2006-10-10  Jakub Jelinek  <jakub@redhat.com>
120
121         PR middle-end/29272
122         * builtins.c (var_decl_component_p): New function.
123         (fold_builtin_memset, fold_builtin_memory_op): Restrict
124         single entry optimization to variables and components thereof.
125
126 2006-10-10  Richard Guenther  <rguenther@suse.de>
127
128         PR rtl-optimization/29323
129         * except.c (set_nothrow_function_flags): For functions
130         that do not bind local bail out early.
131
132 2006-10-10  Ben Elliston  <bje@au.ibm.com>
133
134         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
135         -mdlmzb option.
136
137 2006-10-09  Richard Henderson  <rth@redhat.com>
138
139         Revert emutls patch.
140
141 2006-10-09  Richard Guenther  <rguenther@suse.de>
142
143         PR middle-end/29254
144         * cgraphunit.c (verify_cgraph_node): Bail out on earlier
145         errors.
146
147 2006-10-09  Steve Ellcey  <sje@cup.hp.com>
148
149         PR target/27880
150         * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
151         * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
152         * configure: Regenerate.
153         * config.in: Regenerate.
154
155 2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
156
157         * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
158
159 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
160
161         * config/mips/mips.c (mips_legitimize_tls_address): Implement
162         all TLS models in the same way as local exec if !TARGET_ABICALLS.
163         Remove stray newline.
164
165 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
166
167         * config/mips/mips.c (mips_classify_symbol): Do not return
168         SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
169         (mips_in_small_data_p): Tweak comments.
170
171 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
172
173         * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
174
175 2006-10-07  Kazu Hirata  <kazu@codesourcery.com>
176
177         * gimplify.c, sched-int.h: Fix comment typos.
178
179         * sched-int.h: Fix comment typos.
180
181 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
182
183         * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
184         New macros.
185         * sched-ebb.c (begin_schedule_ready): Use them.
186         * haifa-sched.c (schedule_insn, move_insn, try_ready,
187         add_to_speculative_block, create_check_block_twin, speculate_insn,
188         fix_jump_move, move_block_after_check): Ditto.
189         * sched-rgn.c (new_ready): Ditto.
190
191 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
192
193         PR rtl-optimization/29128
194         * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
195         * sched-ebb.c (advance_target_bb): Use it to fix condition to
196         allow interblock movement of speculation checks.
197
198 2006-10-06  Zdenek Dvorak <dvorakz@suse.cz>
199
200         PR middle-end/29256
201         * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
202         casted to integer type.
203         (get_address_cost): Decrease cost of [symbol + index] addressing modes
204         if they are significantly more expensive than [reg + index] ones.
205
206 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
207
208         PR tree-optimization/29330
209         * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
210         (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
211         on newly allocated ddrs.
212         (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
213         to VEC (loop_p, heap) pointer.
214         (compute_data_dependences_for_loop): Adjust caller.
215         (free_dependence_relations): Free DDR_LOOP_NEST.
216
217         * tree-loop-linear.c (linear_transform_loops): Don't forget to
218         free DEPENDENCE_RELATIONS and DATAREFS.
219
220         PR target/28924
221         * builtins.c (expand_builtin_sync_operation,
222         expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
223         Use convert_to_mode to handle promoted arguments.
224
225 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
226
227         * print-tree.c (print_node_brief, print_node): Print sign of Inf.
228
229 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
230
231         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
232
233 2006-10-05  Uros Bizjak  <uros@kss-loka.si>
234
235         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
236         "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
237         Use <modeconstraint> instead of "r" as operand 1 constraint.
238
239 2006-10-06  Olivier Hainque  <hainque@adacore.com>
240
241         * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
242         Don't recurse on the pointed-to type.
243         * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
244         DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
245         types with components of variable size.
246
247 2006-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
248
249         config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
250
251 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
252
253         PR tree-optimization/29290
254         * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
255         multiple exits.
256
257         PR target/29198
258         * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
259         * config/i386/predicates.md (local_symbolic_operand): Likewise.
260
261         PR c/29091
262         * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
263         the number of vector elements fill the rest with zeros.
264
265 2006-10-05  Richard Sandiford  <richard@codesourcery.com>
266
267         * config/mips/mips.c (mips_pass_by_reference): Do not return false
268         for EABI if type is NULL.  Use a size check based on GET_MODE_SIZE
269         instead.
270
271 2006-10-05  Bernd Schmidt  <bernd.schmidt@analog.com>
272
273         * config/bfin/bfin.md (subsi3): Lose expander, change previously
274         unnamed pattern into subsi3.  Use correct constraints/predicates.
275         * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
276         * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
277
278 2006-10-05  Ira Rosen  <irar@il.ibm.com>
279
280         * doc/loop.texi: Add data references analysis description.
281
282 2006-10-04  Brooks Moses  <bmoses@stanford.edu>
283
284         * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
285
286 2006-10-04  Richard Henderson  <rth@redhat.com>
287             Jakub Jelinek  <jakub@redhat.com>
288
289         * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
290         * builtin-types.def (BT_WORD): Make unsigned.
291         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
292         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
293         (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
294         * c-decl.c (grokdeclarator): Don't error if !have_tls.
295         * c-parser.c (c_parser_omp_threadprivate): Likewise.
296         * cgraph.c (decide_is_variable_needed): Look at force_output.
297         Recurse for emulated tls.
298         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
299         checks redundant with decide_is_variable_needed.
300         (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
301         * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
302         emulated tls.
303         * expr.c (emutls_var_address): New.
304         (expand_expr_real_1): Expand emulated tls.
305         (expand_expr_addr_expr_1): Likewise.
306         * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
307         * output.h (emutls_finish): Declare.
308         * toplev.c (compile_file): Call it.
309         * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
310         address before wrapping in CONST.
311         * varasm.c (emutls_htab, emutls_object_type): New.
312         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
313         (get_emutls_object_name, get_emutls_object_type): New.
314         (get_emutls_init_templ_addr, emutls_decl): New.
315         (emutls_common_1, emutls_finish): New.
316         (assemble_variable): When emulating tls, swap decls; generate
317         constructor for the emutls objects.
318         (do_assemble_alias): When emulating tls, swap decl and target name.
319         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
320         for emulated tls.
321         * emutls.c: New file.
322         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
323         tls_object for real tls.
324
325 2006-10-04  Zack Weinberg  <zackw@panix.com>
326
327         Fix bug in constraint-check generator, reported by Rask Ingemann
328         Lambertsen:
329         * genpreds.c (add_constraint): Don't remove anything from the
330         expression here.
331         (write_tm_constrs_h): Detect whether "op" argument is used, and
332         mark it ARG_UNUSED if it isn't.
333         (write_insn_const_int_ok_for_constraint): Skip the part of the
334         expression that would test whether "op" (which is not available
335         here) is a CONST_INT.
336
337 2006-10-04  Ryan Mansfield  <rmansfield@qnx.com>
338
339         PR c++/28448
340         * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
341
342 2006-10-03  Geoffrey Keating  <geoffk@apple.com>
343
344         * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
345         current Leopard versions.
346         * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
347
348 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
349
350         * doc/install.texi: Fix typos.
351
352 2006-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
353
354         * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
355         * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
356         * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
357
358 2006-10-02  Jack Howarth  <howarth@bromo.med.uc.edu>
359
360         * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
361         arg to be struct mach_header_64* instead.
362
363 2006-10-02  Jakub Jelinek  <jakub@redhat.com>
364
365         PR c/29154
366         * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
367         side effects after the outer expression's post side effects.
368
369 2006-10-01  Sandra Loosemore  <sandra@codesourcery.com>
370
371         * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET):  Fix
372         comments to reflect actual behavior and relationship between
373         DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
374
375         * doc/c-tree.texi (Working with declarations): Fix documentation
376         of FIELD_DECL likewise.
377
378 2006-10-01  Ryan Mansfield  <rmansfield@qnx.com>
379
380         PR c/20533
381         * doc/extend.texi: Add used variable attribute description.
382
383 2006-09-30  Joseph S. Myers  <joseph@codesourcery.com>
384
385         PR c/24010
386         * c.opt (Woverride-init): New.
387         * c-opts.c (c_common_post_options): Default warn_override_init to
388         extra_warnings.
389         * c-typeck.c (add_pending_init, output_init_element): Warn for
390         overriding initializers without side effects.
391         * doc/invoke.texi (-Woverride-init): Document.
392         (-Wextra): Update.
393
394 2006-09-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
395
396         PR rtl-optimization/28096
397         * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
398         assignment has already been used as a destination earlier in the block.
399
400 2006-09-29  Eric Botcazou  <ebotcazou@adacore.com>
401
402         * builtins.c (expand_builtin_setjmp): Delete.
403         (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
404         <BUILT_IN_SETJMP_SETUP>: New case.
405         <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
406         <BUILT_IN_SETJMP_RECEIVER>: Likewise.
407         * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
408         (BUILT_IN_SETJMP_DISPATCHER): Likewise.
409         (BUILT_IN_SETJMP_RECEIVER): Likewise.
410         * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
411         (lower_function_body): Initialize it to false.  If it is set to true
412         at the end of the processing, emit the setjmp dispatcher.
413         (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
414         is __builtin_setjmp and set calls_builtin_setjmp to true as well.
415         <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
416         on the rhs of the assignment.
417         (lower_builtin_setjmp): New function.
418         * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
419         BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
420         * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
421         to detect calls that can go to non-local labels.  Use specific
422         helper to create the abnormal edges associated with them.
423         <MODIFY_EXPR>: Likewise.
424         (make_abnormal_goto_edges): New function extracted from...
425         (make_goto_expr_edges): ...here.  Call it for computed gotos.
426         (simple_goto_p): Minor tweak.
427         (tree_can_make_abnormal_goto): New predicate.
428         (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
429         (tree_purge_dead_abnormal_call_edges): New function.
430         * tree-flow.h (tree_can_make_abnormal_goto): Declare.
431         (tree_purge_dead_abnormal_call_edges): Likewise.
432         (make_abnormal_goto_edges): Likewise.
433         * tree-inline.c (expand_call_inline): Simplify statement frobbing.
434         Purge all dead abnormal edges if the call was in the last statement.
435         * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
436         (execute_fixup_cfg): If there are non-local labels in the function,
437         scan the basic blocks and split them at calls that can go to non-local
438         labels or add missing abnormal call edges.  Write down the CFG in the
439         dump file.
440         (pass_fixup_cfg): Remove TODO_dump_func flag.
441         * unwind-sjlj.c: Poison setjmp.
442         * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
443         * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
444         (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
445         (DONT_USE_BUILTIN_SETJMP): Document it.
446
447 2006-09-28  Geoffrey Keating  <geoffk@apple.com>
448
449         PR target/28617
450         * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
451         to 1 when __ppc64__ is defined.
452         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
453         darwin-64.c.
454         * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
455
456 2006-09-28  Steve Ellcey  <sje@cup.hp.com>
457
458         * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
459         * config/ia64/unwind-hpux.c: Delete.
460
461 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
462
463         * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
464         on the element before gimplifying it, instead of punting if it is of
465         variable size.
466
467 2006-09-28  Zdenek Dvorak <dvorakz@suse.cz>
468
469         * doc/loop.texi: New file.
470         * doc/gccint.texi: Reference loop.texi.
471         * Makefile.in (loop.texi): Add.
472
473 2006-09-27  Geoffrey Keating  <geoffk@apple.com>
474
475         * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
476         __sysctl.
477         * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
478         * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
479
480 2006-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
481
482         * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
483
484 2006-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
485
486         * doc/install.texi: Document required versions of GMP and MPFR.
487
488 2006-09-27  Paul Brook  <paul@codesourcery.com>
489
490         PR target/29230
491         * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
492
493 2006-09-27  Richard Sandiford  <richard@codesourcery.com>
494
495         * reload1.c (alter_reg): Require the alignment of the stack slot to
496         be at least reg_max_ref_width bytes.
497         (scan_paradoxical_subregs): Record the largest width in
498         reg_max_ref_width.
499
500 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
501
502         PR middle-end/25261
503         PR middle-end/28790
504         * tree-nested.c (struct nesting_info): Added static_chain_added.
505         (convert_call_expr): Set static_chain_added when adding static
506         chain.  Handle OMP_PARALLEL and OMP_SECTION.
507
508 2006-09-25  Matthias Klose  <doko@debian.org>
509
510         * doc/invoke.texi: Add missing full stop.
511
512 2006-09-25  Richard Henderson  <rth@redhat.com>
513
514         * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
515         before cgraph_function_flags_ready.
516
517 2006-09-24  Zdenek Dvorak <dvorakz@suse.cz>
518             Adam Nemet  <anemet@caviumnetworks.com>
519
520         * tree-ssa-loop-ivopts.c (aff_combination_convert,
521         determine_common_wider_type): New functions.
522         (get_computation_aff): Use them to simplify arithmetic between
523         UBASE and CBASE if they are shortened from the same type.
524
525 2006-09-24  Kazu Hirata  <kazu@codesourcery.com>
526
527         PR target/28911
528         * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
529         -2147483647 - 1 instead of 0x80000000.
530
531 2006-09-23  Revital1 Eres  <ERES@il.ibm.com>
532
533         * flags.h (HONOR_NANS): Fix typo in comment.
534
535 2006-09-23  Uros Bizjak <uros@kss-loka.si>
536
537         * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
538
539 2006-09-23  Jakub Jelinek  <jakub@redhat.com>
540
541         PR c/28706
542         PR c/28712
543         * tree.c (merge_attributes, attribute_list_contained): If both
544         TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
545         simple_cst_equal.
546         * c-typeck.c (comptypes_internal): Don't consider aggregates
547         in different TUs as compatible if there one set of attributes is
548         not a subset of the other type's attributes.
549         (composite_type): Try harder not to create a new aggregate type.
550
551 2006-09-22  Geoffrey Keating  <geoffk@apple.com>
552
553         * config/i386/driver-i386.c: Always define host_detect_local_cpu.
554         * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
555         or x86_64 host.  Define HAVE_LOCAL_CPU_DETECT.
556         (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
557         than replicating condition above.
558         * config.host (i[34567]86-*-*): Always use driver-i386.o.
559
560         * config/darwin.h (LINK_SYSROOT_SPEC): New.
561         (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
562         the linker by default.
563
564 2006-09-22  Mike Stump  <mrs@apple.com>
565
566         * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
567         code.
568
569 2006-09-22  Richard Guenther  <rguenther@suse.de>
570
571         PR middle-end/28964
572         * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
573         sort of stack variables stable.
574
575 2006-09-22  Peter Bergner <bergner@vnet.ibm.com>
576
577         PR middle-end/28690
578         * explow.c (force_reg): Set REG_POINTER flag according to
579         MEM_POINTER flag.
580
581 2006-09-22  Zdenek Dvorak <dvorakz@suse.cz>
582
583         PR tree-optimization/28888
584         * tree-if-conv.c (combine_blocks): Rewritten.
585         * tree-cfg.c (tree_verify_flow_info): Check that edges with
586         EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
587
588 2006-09-22  Jakub Jelinek  <jakub@redhat.com>
589
590         * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
591         needed.
592
593 2006-09-21  Richard Sandiford  <richard@codesourcery.com>
594
595         * varasm.c (copy_constant): Fix reversed gcc_assert check.
596
597 2006-09-21  Janis Johnson  <janis187@us.ibm.com>
598
599         * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
600
601 2006-09-21  Roger Sayle  <roger@eyesopen.com>
602
603         PR debug/29132
604         * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
605         dw_fde_current_label, to be the start of the function, i.e. the same
606         value as dw_fde_begin.
607
608 2006-09-20  Richard Sandiford  <richard@codesourcery.com>
609
610         * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
611         * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
612         (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
613         (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
614         (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
615         (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
616         (abs<mode>2, neg<mode>2): Likewise.
617         * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
618         (*mips_abs_ps): New define_insn.
619
620 2006-09-20  Josh Conner  <jconner@apple.com>
621
622         PR middle-end/25505
623         * calls.c (expand_call): Allow reuse of structure return stack
624         temp.
625
626 2006-09-20  Paul Brook  <paul@codesourcery.com>
627
628         * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
629         positive offsets.
630
631 2006-09-20  Janis Johnson  <janis187@us.ibm.com>
632
633         * doc/extend.texi (Decimal Float): Update for latest draft TR,
634         clean up terminology.
635
636 2006-09-20  Steve Ellcey  <sje@cup.hp.com>
637
638         PR target/28574
639         * ifcvt.c (dead_or_predicable): Don't predicate then blocks
640         with tablejumps in them.
641
642 2006-09-20  Jakub Jelinek  <jakub@redhat.com>
643
644         PR middle-end/28046
645         * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
646         wrap it into TARGET_EXPR.
647
648 2006-09-20  Eric Christopher  <echristo@apple.com>
649
650         * config/i386/i386.c (x86_fisttp): Remove.
651         * config/i386/i386.h (x86_fisttp): Ditto.
652         (TARGET_FISTTP): Ditto.
653
654 2006-09-19  Eric Christopher  <echristo@apple.com>
655
656         * doc/tm.texi (OBJC_JBLEN): Describe.
657         * config/i386/darwin.h (OBJC_JBLEN): Define.
658         * config/rs6000/darwin.h: Ditto.
659
660 2006-09-19  Steven Bosscher  <steven@gcc.gnu.org>
661
662         PR rtl-optimization/21299
663         * reload1.c (reload): Purge invalid ASMs in the final pass.
664
665 2006-09-19  Steve Ellcey  <sje@cup.hp.com>
666
667         PR  28490
668         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
669         pointers as legitimate constants.
670
671 2006-09-19  Paul Brook  <paul@codesourcery.com>
672
673         PR target/28516
674         * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
675
676 2006-09-17  Zdenek Dvorak <dvorakz@suse.cz>
677
678         PR tree-optimization/28887
679         * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
680         component parts from the reference.
681         (gather_memory_references_ref): Record the reference without the
682         nonaddressable component parts.
683
684 2006-09-17  Steven Bosscher  <steven@gcc.gnu.org>
685
686         PR c/25993
687         * c-opts.c (c_common_handle_option): Ignore the -std options
688         if the input language is assembly.
689
690 2006-09-17  Ira Rosen  <irar@il.ibm.com>
691
692         PR tree-opt/21591
693         * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
694         tag first.
695         (ptr_ptr_may_alias_p): Likewise.
696         (record_record_differ_p): New function.
697         (base_object_differ_p): Call record_record_differ_p.
698
699 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
700
701         PR tree-opt/29059
702         * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
703         away for the expr argument.
704
705 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
706
707         PR tree-opt/27742
708         * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
709         before using it for dumping after vectorizing loops.
710
711 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
712             Jack Howarth  <howarth@bromo.med.uc.edu>
713
714         PR target/29030
715         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
716         skip on error_mark_node.
717         (rs6000_darwin64_record_arg_recurse): Likewise.
718
719 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
720
721         * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
722         * doc/rtl.texi: Remove related documentation.
723
724 2006-09-16  Bernd Schmidt  <bernd.schmidt@analog.com>
725
726         * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
727         printf.
728
729 2006-09-15  Jim Wilson  <wilson@specifix.com>
730
731         * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
732         Handle symbol offsets same as they are handled in ia64_expand_move
733         and move_operand.
734
735 2006-09-16  Andreas Tobler  <a.tobler@schweiz.org>
736
737         * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
738         Add forgotten parameter to the fprintf call.
739
740 2006-09-15  Steve Ellcey  <sje@cup.hp.com>
741
742         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
743
744 2006-09-15  Uros Bizjak <uros@kss-loka.si>
745
746         * doc/contrib.texi: Add my entry.
747
748 2006-09-15  Nick Clifton  <nickc@redhat.com>
749
750         * doc/md.texi (Processor pipeline description): Fix typo in
751         example of how to use the absence_set directive and reword the
752         description to make it slightly easier to read.
753
754 2006-09-15  Bernd Schmidt  <bernd.schmidt@analog.com>
755
756         * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
757         * loop-doloop.c (doloop_optimize): Use it to limit costs of
758         expanding the number of iterations.
759         * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
760
761         * cfgrtl.c (emit_insn_at_entry): New function.
762         * rtl.h (emit_insn_at_entry): Declare it.
763         * integrate.c (emit_initial_value_sets): Use it.
764
765         * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
766
767         * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
768         bad.
769         (struct loop_work and related VEC declarations): Delete.
770         (bfin_dump_loops): Print out new member bad.
771         (bfin_bb_in_loop): Use plain bitmap test.  Don't recurse.
772         (bfin_scan_loop): Don't recurse.
773         (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
774         loops.  No longer need to update outer loops if the current one is
775         found bad.  Move some validitiy checks to bfin_discover_loop.
776         (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
777         but changed not to check for nesting.  Also changed to use the new bad
778         flag.
779         (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
780         time.  Use bitmap based test to discover loop nesting.
781
782 2006-09-15  Kazu Hirata  <kazu@codesourcery.com>
783
784         * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
785         one line.
786
787 2006-09-14  Richard Guenther  <rguenther@suse.de>
788             Kazu Hirata  <kazu@codesourcery.com>
789
790         PR middle-end/28884.
791         * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
792         (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
793         Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
794         with TARGET_FUNCTION_VALUE.
795
796 2006-09-14  Anatoly Sokolov <aesok@post.ru>
797
798         PR target/26504
799         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
800
801 2006-09-13  Aldy Hernandez  <aldyh@redhat.com>
802
803         * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
804         of a RETURN_EXPR
805
806 2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
807
808         PR debug/28980
809         * dwarf2out.c (loc_descriptor_from_tree_1): Handle
810         FUNCTION_DECL.
811
812 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
813
814         * basic_block.h (bb_has_eh_pred): Fix comment.
815
816 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
817
818         * flow.c (calculate_global_regs_live): Invalidate eh registers
819         on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
820         (propagate_block): Handle eh registers as if they were set at basic
821         block start.
822         * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
823         registers.
824         * global.c (global_conflicts): Make eh registers to conflict with
825         pseudos live at basic block begin.
826         * basic_block.h (bb_has_eh_pred): New function.
827
828 2006-09-13  Richard Sandiford  <richard@codesourcery.com>
829
830         PR rtl-optimization/28982
831         * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
832         index of a PRE_MODIFY or POST_MODIFY address.
833         * reload1.c (inc_for_reload): Use find_replacement on the original
834         base and index registers.
835
836 2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>
837
838         * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
839         for -Os. Update __m128 alignment requirement.
840
841 2006-09-13  Jan Hubicka  <jh@suse.cz>
842
843         * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
844
845 2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
846
847         PR rtl-optimization/28243
848         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
849         the insn to which the note was originally attached.
850
851 2006-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
852             Roger Sayle  <roger@eyesopen.com>
853
854         * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
855         outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
856         on platforms that don't use dwarf for debug info.
857
858 2006-09-12  Jason Merrill  <jason@redhat.com>
859
860         PR middle-end/28493
861         * builtins.c (expand_builtin_setjmp_receiver): Clobber
862         hard_frame_pointer_rtx after using it to update the frame pointer.
863
864 2006-09-12  Roger Sayle  <roger@eyesopen.com>
865
866         * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
867         (TARGET_ASM_CLOSE_PAREN): Likewise.
868         * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
869         (TARGET_ASM_CLOSE_PAREN): Likewise.
870
871 2006-09-12  Roger Sayle  <roger@eyesopen.com>
872
873         PR target/22223
874         * config/alpha/alpha.c (alpha_start_function): Don't emit stack
875         frame information for frames larger than 512 Kbytes on Tru64 when
876         using the native assembler.
877
878 2006-09-12  Roger Sayle  <roger@eyesopen.com>
879
880         PR middle-end/4520
881         PR bootstrap/28784
882         * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
883         and symbols.  Instead use the implementation from cse.c's hash_rtx.
884
885 2006-09-12  Jan Hubicka  <jh@suse.cz>
886
887         PR rtl-optimization/28071
888         * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
889         (vect_transform_loop): Likewise.
890         * tree-vectorizer.c (new_loop_vec_info): Likewise.
891         (new_loop_vec_info): Likewise.
892         (destroy_loop_vec_info): Likewise.
893         * tree-dfa.c (create_var_ann): Use GCC_CNEW.
894         (create_stmt_ann): Likewise.
895         (create_tree_ann): Rename to ...
896         (create_tree_common_ann): ... this one; allocate only the common part
897         of annotations.
898         * tree-vn.c (set_value_handle): Use get_tree_common_ann.
899         (get_value_handle): Likewise.
900         * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
901         get_tree_common_ann.
902         * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
903         (vinfo_for_stmt): Use stmt annotations.
904         * tree-flow.h (tree_ann_common_t): New type.
905         (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
906         (tree_ann, get_tree_ann, create_tree_ann): New.
907         * tree-flow-inline.h (get_function_ann): Do more type checking.
908         (stmt_ann): Likewise.
909         (tree_ann): Rename to ...
910         (tree_common_ann): ... this one; return ony common_ann
911         (get_tree_ann): Rename to ...
912         (tree_common_ann): This one; return only common_ann.
913         * tree-vect-patterns.c (vect_pattern_recog_1): Update call
914         of set_stmt_info.
915
916 2006-09-11  Geoffrey Keating  <geoffk@apple.com>
917
918         * config.gcc (i[34567]86-*-darwin*): Set with_arch and
919         with_cpu by default.
920
921         * dwarf2out.c (dwarf_file_data): New.
922         (enum dw_val_class): Add dw_val_class_file.
923         (struct dw_val_struct): Add val_file.
924         (file_table): Change to a hash table.
925         (file_table_emitted): Delete.
926         (file_table_last_lookup_index): Delete.
927         (emitcount): Delete.
928         (last_emitted_file): New.
929         (lookup_filename): Change prototype to return a struct dwarf_file_data.
930         (init_file_table): Delete.
931         (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
932         (AT_addr): Add comment.
933         (add_AT_file): New.
934         (AT_file): New.
935         (get_AT_file): New.
936         (print_die): Handle dw_val_class_file.
937         (print_dwarf_line_table): Update for new file table structure.
938         (attr_checksum): Do checksum a filename.
939         (same_dw_val_p, same_attr_p): Do compare a filename.
940         (size_of_die): Handle dw_val_class_file.
941         (value_format): Likewise.
942         (output_die): Likewise.  Also, call maybe_emit_file here.
943         (struct file_info): Constify filenames.  Make file_idx a pointer
944         to a struct dwarf_file_data.
945         (struct dir_info): Constify directory names.  Remove 'used' field.
946         (struct file_name_acquire_data): New.
947         (file_name_acquire): New.
948         (output_file_names): Modify to handle new file data structures.
949         (add_src_coords_attributes): Use add_AT_file.
950         (add_call_src_coords_attributes): Likewise.
951         (dwarf2out_imported_module_or_decl): Likewise.
952         (gen_subprogram_die): Modify for new file data structures.
953         (gen_variable_die): Likewise.
954         (file_table_eq): New.
955         (file_table_hash): New.
956         (file_table_last_lookup): New.
957         (lookup_filename): Rewrite to handle new file data structures.
958         (maybe_emit_file): Rewrite to handle new file data structures.
959         (dwarf2out_source_line): Always call lookup_filename and
960         maybe_emit_file.
961         (dwarf2out_init): Create file_table here.
962         (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
963         (file_table_relative_p): New.
964         (dwarf2out_finish): Change detection of relative filenames
965         to work with new file data structures.  Move output_line_info call
966         after debug_info output.
967
968 2006-09-11  H.J. Lu  <hongjiu.lu@intel.com>
969
970         PR target/13685
971         PR target/27537
972         PR target/28621
973         * config/i386/i386.c (override_options): Always default to 16
974         byte stack boundary.
975
976 2006-09-11  Alexandre Oliva  <aoliva@redhat.com>
977
978         PR target/28672
979         * var-tracking.c (dump_dataflow_set): Start dumping at
980         register zero.
981         (clobber_variable_part): Kill only the variable part in
982         registers holding it, leaving other variables alone.
983
984 2006-09-11  Josh Triplett  <josh@freedesktop.org>
985
986         * doc/extend.texi (Other Builtins): Actually use the macro
987         argument in the documentation example for
988         __builtin_types_compatible_p.
989
990 2006-09-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
991
992         PR rtl-optimization/28726
993         * sched-deps.c (sched_analyze_reg): New function extracted from...
994         (sched_analyze_1): ...here.  Call it to analyze references to
995         registers.  Treat again writes to a stack register as writing to the
996         register.
997         (sched_analyze_2): ...and here.  Call it to analyze references to
998         registers.  Treat again reads of a stack register as reading the
999         register.
1000
1001 2006-09-11  Guenter Roeck  <guenter@roeck-us.net>
1002             David Edelsohn  <edelsohn@gnu.org>
1003
1004         PR target/27287
1005         * config/rs6000/spe.md (frob_df_di): Remove %H.
1006         (frob_di_df): Remove %H.  Change evmergelo to mr.
1007         (frob_di_df_2): Remove %H.  Change evldd to two loads.
1008
1009 2006-09-11  Hideki Iwamoto  <h-iwamoto@kit.hi-ho.ne.jp>
1010
1011         * doc/cpp.texi: Fix names of charset options.
1012
1013 2006-09-10  Andrew Pinski  <pinskia@physics.uc.edu>
1014
1015         PR target/29009
1016         * config/i386/i386.c (override_options): Use 128-bit
1017         stack boundary always for 64bits.
1018
1019 2006-09-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1020
1021         PR rtl-optimization/28636
1022         * combine.c (force_to_mode): Test for side-effects before
1023         substituting by zero.
1024         (simplify_shift_const): Likewise for zero or other constants.
1025
1026 2006-09-10  Steven Bosscher  <steven@gcc.gnu.org>
1027
1028         PR middle-end/26983
1029         * builtins.c (expand_builtin_setjmp): Force next_lab to be
1030         preserved.
1031
1032 2006-09-10  Richard Sandiford  <richard@codesourcery.com>
1033
1034         PR target/29006
1035         * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
1036         * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
1037         returned by mode_for_size, rather than the mode of src itself,
1038         to choose between 32-bit and 64-bit patterns.
1039         (mips_mem_fits_mode_p): New function.
1040         * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
1041         that the size of the source matches the size of the destination.
1042         (mov_<store>l, mov_<store>r): Likewise.
1043
1044 2006-09-10  Eric Christopher  <echristo@apple.com>
1045
1046         * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
1047         for literal16.
1048
1049 2006-09-09  Eric Christopher  <echristo@apple.com>
1050
1051         PR target/28995
1052         * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
1053         for literal16.
1054
1055 2006-09-09  Roger Sayle  <roger@eyesopen.com>
1056             Nicolas Setton <setton@adacore.com>
1057
1058         * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
1059
1060 2006-09-10  Andreas Schwab  <schwab@suse.de>
1061
1062         * config/m68k/m68k.md (bungt_rev): New pattern.
1063
1064 2006-09-09  Paolo Bonzini  <bonzini@gnu.org>
1065             Dale Johannesen  <dalej@apple.com>
1066
1067         PR target/26778
1068         * regclass.c (struct reg_pref): Update documentation.
1069         (regclass): Set prefclass to NO_REGS if memory is the best option.
1070         (record_reg_classes): Cope with a prefclass set to NO_REGS.
1071
1072 2006-09-08  Eric Christopher  <echristo@apple.com>
1073
1074         * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
1075         * config/t-slibgcc-darwin: Support x86_64 multilib.
1076         * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
1077         Return 1 for x86_64-darwin.
1078         * config/i386/t-darwin: Add m64 multilib.
1079         (LIB2_SIDITI_CONV_FUNCS): Use.
1080         (LIB2FUNCS_EXTRA): Ditto.
1081         * config/i386/darwin.h: Support x86_64.
1082         * config/i386/i386.c (override_options): Turn on flag_pic
1083         for x86_64-darwin. Disable flag_omit_pointer.
1084         (get_pc_thunk_name): Assert !TARGET_64BIT.
1085         (legitimate_address_p): Disable machopic addressing for
1086         x86_64.
1087         (legitimize_pic_address): Ditto.
1088         (ix86_expand_move): Ditto.
1089         (ix86_expand_call): Ditto.
1090         (machopic_output_stub): Ditto.
1091         * config/darwin.c (machopic_select_section): Support literal16.
1092         (machopic_select_rtx_section): Ditto.
1093         * config/darwin-sections.def: Ditto.
1094         * config/darwin-64.c: New.
1095
1096 2006-09-08  Joseph S. Myers  <joseph@codesourcery.com>
1097
1098         PR c/28504
1099         * c-tree.h (struct c_arg_info): Add pending_sizes.
1100         * c-parser.c (c_parser_parms_declarator,
1101         c_parser_parms_list_declarator): Initialize pending_sizes.
1102         * c-decl.c (get_parm_info): Initialize pending_sizes.
1103         (get_parm_info): Set pending_sizes.
1104         (grokdeclarator): Call put_pending_sizes for parameters for
1105         function definition only.
1106
1107 2006-09-07  Jason Merrill  <jason@redhat.com>
1108
1109         PR middle-end/27724
1110         * varasm.c (output_constant): Only strip actual no-op conversions.
1111
1112         PR target/13685
1113         * config/i386/i386.c (override_options): Use 128-bit
1114         stack boundary if -msse.
1115
1116 2006-09-07  Eric Christopher  <echristo@apple.com>
1117
1118         * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
1119         comment.
1120         * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
1121         Redefine.
1122
1123 2006-09-07  Geoffrey Keating  <geoffk@apple.com>
1124
1125         * dwarf2out.c: Remove strange characters from comment above
1126         dwarf2out_frame_debug_expr.
1127
1128 2006-09-07  Eric Christopher  <echristo@apple.com>
1129
1130         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
1131         * config/darwin.h: ... to here.
1132
1133 2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1134
1135         * config/i386/i386.c (x86_partial_flag_reg_stall): New.
1136
1137         * config/i386/i386.h (x86_partial_flag_reg_stall): New.
1138         (TARGET_PARTIAL_FLAG_REG_STALL): New.
1139
1140         * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
1141         TARGET_PARTIAL_FLAG_REG_STALL.
1142         (*ashldi3_cconly_rex64): Likewise.
1143         (*ashlsi3_cmp): Likewise.
1144         (*ashlsi3_cconly): Likewise.
1145         (*ashlsi3_cmp_zext): Likewise.
1146         (*ashlhi3_cmp): Likewise.
1147         (*ashlhi3_cconly): Likewise.
1148         (*ashlqi3_cmp): Likewise.
1149         (*ashlqi3_cconly): Likewise.
1150         (*ashrdi3_cmp_rex64): Likewise.
1151         (*ashrdi3_cconly_rex64): Likewise.
1152         (*ashrsi3_cmp): Likewise.
1153         (*ashrsi3_cconly): Likewise.
1154         (*ashrsi3_cmp_zext): Likewise.
1155         (*ashrhi3_cmp): Likewise.
1156         (*ashrhi3_cconly): Likewise.
1157         (*ashrqi3_cmp): Likewise.
1158         (*ashrqi3_cconly): Likewise.
1159         (*lshrdi3_cmp_rex64): Likewise.
1160         (*lshrdi3_cconly_rex64): Likewise.
1161         (*lshrsi3_cmp): Likewise.
1162         (*lshrsi3_cconly): Likewise.
1163         (*lshrsi3_cmp_zext): Likewise.
1164         (*lshrhi3_cmp): Likewise.
1165         (*lshrhi3_cconly): Likewise.
1166         (*lshrqi2_cmp): Likewise.
1167         (*lshrqi2_cconly): Likewise.
1168
1169 2006-09-07 Uros Bizjak <uros@kss-loka.si>
1170
1171         PR target/28946
1172         * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
1173         "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
1174         "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
1175         "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
1176         "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
1177         "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
1178         "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
1179         "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
1180         "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
1181         implement only CC setting effects of shift instructions.
1182
1183 2006-09-07  Martin Michlmayr  <tbm@cyrius.com>
1184
1185         * doc/contrib.texi: Add myself.
1186
1187 2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
1188
1189         PR middle-end/28862
1190         * stor-layout.c (relayout_decl): Don't zero the alignment if it
1191         was set by the user.
1192
1193 2006-09-07  Paolo Bonzini  <bonzini@gnu.org>
1194
1195         PR target/27117
1196         * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
1197         (divsi_inv_m1): Use them.
1198         (UNSPEC_DIV_INV_TABLE): New constant.
1199
1200 2006-09-06  James E Wilson  <wilson@specifix.com>
1201
1202         PR rtl-opt/27883
1203         * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
1204         then call count_or_remove_death_notes.
1205
1206 2006-09-06  Jason Merrill  <jason@redhat.com>
1207
1208         PR c++/27371
1209         * tree-inline.c (copy_result_decl_to_var): New fn.
1210         (declare_return_variable): Use it.  Call declare_inline_vars here.
1211         (expand_call_inline): Not here.
1212
1213 2006-09-06  Diego Novillo  <dnovillo@redhat.com>
1214
1215         * doc/contrib.texi: Update my entry.
1216
1217 2006-09-06  Nick Clifton  <nickc@redhat.com>
1218
1219         * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
1220
1221 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
1222
1223         PR tree-opt/28937
1224         * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
1225         (canonicalize_induction_variables): Likewise.
1226         (tree_unroll_loops_completely): Likewise.
1227         (tree_ssa_prefetch_arrays): Likewise.
1228         (remove_empty_loops): Likewise.
1229         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
1230         TODO_cleanup_cfg instead of directly calling
1231         cleanup_tree_cfg_loop.
1232         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
1233         Likewise.
1234         (tree_unroll_loops_completely): Likewise.
1235         (remove_empty_loops): Likewise.
1236         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
1237         * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
1238         of tree_ssa_unswitch_loops.
1239         (tree_ssa_loop_ivcanon): Use the return value of
1240         canonicalize_induction_variables.
1241         (tree_ssa_empty_loop): Use the return value of
1242         remove_empty_loops.
1243         (tree_complete_unroll): Use the return value of
1244         tree_unroll_loops_completely.
1245         (tree_ssa_loop_prefetch): Use the return value of
1246         tree_ssa_prefetch_arrays.
1247         * passes.c (execute_todo): Before Cleanup CFG, set
1248         updating_used_alone and after cleanup CFG, call
1249         recalculate_used_alone.
1250
1251 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
1252
1253         PR tree-opt/28952
1254         * tree-vect-transform.c (vectorizable_condition): Move the check
1255         for the type after the check for simple condition.
1256
1257 2006-09-05  J"orn Rennecke  <joern.rennecke@st.com>
1258             Kaz Kojima  <kkojima@gcc.gnu.org>
1259
1260         PR target/28764
1261         * mode-switching.c (optimize_mode_switching): Make the destination
1262         block of an abnormal edge have no anticipatable mode.  Don't
1263         insert mode switching code at the end of the source block of
1264         an abnormal edge.
1265
1266 2006-09-05  Paolo Bonzini  <bonzini@gnu.org>
1267
1268         PR rtl-optimization/26847
1269         * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
1270         (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
1271         (simplify_plus_minus): Count n_constants while filling ops.  Replace
1272         qsort with insertion sort.  Before going through the array to simplify
1273         pairs, sort it.  Delay early exit until after the first sort, exiting
1274         only if no swaps occurred.  Simplify pairs in reversed order, without
1275         special-casing the first iteration.  Pack ops after simplifying pairs.
1276
1277 2006-09-05  Anatoly Sokolov <aesok@post.ru>
1278
1279         * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
1280         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1281         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1282         (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
1283
1284 2006-09-05  Richard Guenther  <rguenther@suse.de>
1285
1286         PR tree-optimization/28900
1287         * tree-if-conv.c (find_phi_replacement_condition): Gimplify
1288         compound conditional before creating COND_EXPR condition.
1289
1290 2006-09-05  Richard Guenther  <rguenther@suse.de>
1291
1292         PR tree-optimization/28905
1293         * tree-vrp.c (fix_equivalence_set): Manually implement
1294         !value_ranges_intersect_p to also handle symbolic ranges.
1295
1296 2006-09-05  Richard Guenther  <rguenther@suse.de>
1297
1298         PR middle-end/28935
1299         * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
1300         of a COND_EXPR.
1301
1302 2006-09-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1303
1304         PR rtl-optimization/27616
1305         * cse.c (table_size): New static variable.
1306         (new_basic_block): Initialize it to 0.
1307         (remove_from_table): Decrement it.
1308         (insert): Increment it.
1309         (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
1310         (fold_rtx_mem): Enforce a cap on the recursion depth.  Call
1311         fold_rtx_mem_1 if under the cap.
1312         (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
1313         the lookup of the equivalent expression and test for equality of the
1314         first operand of the equivalent expression before in turn looking up
1315         an equivalent constant for the second operand.
1316
1317 2006-09-02  Geoffrey Keating  <geoffk@apple.com>
1318
1319         Revert this change:
1320         2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
1321         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
1322         pointer, instead of assuming it is possible to derive the
1323         correct args size from a call insn.
1324
1325 2006-09-02  Jakub Jelinek  <jakub@redhat.com>
1326
1327         PR middle-end/27567
1328         * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
1329         (fold_builtin_mempcpy): Rename to...
1330         (fold_builtin_memory_op): ... this.  Optimize one element copy
1331         into an assignment.
1332         (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
1333         functions.
1334         (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
1335         (expand_builtin_memcpy, expand_builtin_mempcpy,
1336         expand_builtin_memmove): Likewise.  Use fold_builtin_memory_op.
1337         (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
1338         BUILT_IN_BCOPY.  Use fold_builtin_memory_op for
1339         BUILT_IN_MEM{CPY,PCPY,MOVE}.
1340
1341 2006-09-01  DJ Delorie  <dj@redhat.com>
1342
1343         * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
1344         (stzx_16): Likewise.
1345         ("stzx_24_<mode>"): Likewise.
1346         ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
1347         ("cmp<mode>_op"): New.
1348         (cmp<mode>): Change to expander; just save operands.
1349         (b<code>_op): New.
1350         (b<code>): Change to expander, emit compare here.
1351         (s<code>_op): Change to use split and expander.
1352         (s<code>_24_op): Likewise.
1353         (s<code>_<mode>): New.
1354         (s<code>_<mode>_24): New.
1355         (movqicc_<code>_<mode): New.
1356         (movhicc_<code>_<mode>): New.
1357         (s<code>): New.
1358         (s<code>_24): New.
1359         * config/m32c/m32c.c (compare_op0, compare_op1): New.
1360         (m32c_pend_compare): New.
1361         (m32c_unpend_compare): New.
1362         (m32c_expand_scc): New.
1363         (m32c_expand_movcc): Emit the compare also.
1364         * config/m32c/predicates.md (mra_nopp_operand): New.
1365
1366 2006-09-01  J"orn Rennecke  <joern.rennecke@st.com>
1367         Richard Guenther  <rguenther@suse.de>
1368         Adam Nemet  <anemet@caviumnetworks.com>
1369
1370         PR middle-end/27226
1371         * builtins.c (get_pointer_alignment): Handle more forms
1372         of base addresses that can be used to derive more precise
1373         information about alignment.
1374
1375 2006-09-01  Jason Merrill  <jason@redhat.com>
1376
1377         PR c++/28899
1378         * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
1379         want_value.
1380
1381         * gimplify.c (voidify_wrapper_expr): Handle null type.
1382
1383 2006-09-01  Josh Conner  <jconner@apple.com>
1384
1385         PR c++/25505
1386         * tree-nrv.c (dest_safe_for_nrv_p): New function.
1387         (execute_return_slot_opt): Use it.
1388
1389 2006-08-31  Josh Conner  <jconner@apple.com>
1390
1391         PR c++/25505
1392         * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
1393         returning aggregates.
1394
1395 2006-08-31  Zdenek Dvorak <dvorakz@suse.cz>
1396
1397         PR tree-optimization/28839
1398         * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
1399         blocks in that phi arguments appear.
1400
1401 2006-08-31  Roger Sayle  <roger@eyesopen.com>
1402
1403         PR other/22313
1404         * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
1405         NULL, otherwise use an advance_loc4 to adjust relative to the
1406         current label.
1407         (output_cfi) <DW_CFA_set_loc>: Update the current label.
1408         (dwarf2out_switch_text_section): Reset the current label to avoid
1409         using advance_loc4 over section boundaries.
1410
1411 2006-08-31  Andreas Krebbel  <krebbel1@de.ibm.com>
1412
1413         PR target/24367
1414         * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
1415         r12 + SYMBOLIC_CONST.
1416
1417 2006-08-30  Richard Guenther  <rguenther@suse.de>
1418
1419         * Makefile.in (see.o): Add $(EXPR_H) dependency.
1420
1421 2006-08-30  Zdenek Dvorak <dvorakz@suse.cz>
1422
1423         PR rtl-optimization/27735
1424         * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
1425         Add new argument to keep track of whether an irreducible region
1426         was affected.  All callers changed.
1427         (fix_irreducible_loops): Removed.
1428         (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
1429         flags were invalidated.
1430
1431 2006-08-29  H.J. Lu  <hongjiu.lu@intel.com>
1432
1433         * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
1434         instead of SF operands.
1435         (*fop_df_comm_sse): Likewise.
1436         (*fop_df_comm_i387): Likewise.
1437         (*fop_df_1_mixed): Likewise.
1438         (*fop_df_1_sse): Likewise.
1439
1440 2006-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
1441             J"orn Rennecke  <joern.rennecke@st.com>
1442
1443         PR tree-optimization/17506
1444         * tree-ssa.c (warn_uninit): If warning about a location outside of
1445         the current function, note where the variable was declared.
1446
1447 2006-08-28  Zdenek Dvorak <dvorakz@suse.cz>
1448
1449         PR tree-optimization/28411
1450         * double-int.c (double_int_div): Use double_int_divmod.
1451         (double_int_divmod, double_int_sdivmod, double_int_udivmod,
1452         double_int_mod, double_int_smod, double_int_umod): New functions.
1453         * double-int.h (double_int_divmod, double_int_sdivmod,
1454         double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
1455         Declare.
1456         * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
1457         in double_int.
1458         (get_computation_aff, get_computation_cost_at): Handle double_int
1459         return type of constant_multiple_of.
1460
1461 2006-08-28  Kazu Hirata  <kazu@codesourcery.com>
1462
1463         PR middle-end/26632
1464         * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
1465         an implicit conversion.
1466
1467 2006-08-28  Prafulla Thakare  <prafullat@kpitcummins.com>
1468
1469         * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
1470
1471 2006-08-27  Roger Sayle  <roger@eyesopen.com>
1472
1473         * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
1474         x87 instructions.
1475
1476 2006-08-27  Kazu Hirata  <kazu@codesourcery.com>
1477
1478         * config/i386/crtfastmath.c: Fix a comment typo.
1479
1480 2006-08-26  Roger Sayle  <roger@eyesopen.com>
1481
1482         * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
1483         temporary visit flags on CASE_LABEL_EXPRs.
1484         * c-common.c (match_case_to_enum): Add function comment.  Avoid
1485         O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
1486         (c_do_switch_warnings):  Reorganize to record CASE_LOW_SEEN and
1487         CASE_HIGH_SEEN for enumerated types.  If the switch expression is
1488         a constant, only warn if that constant value isn't handled.
1489
1490 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
1491
1492         PR c++/24009
1493         * input.h (restore_input_file_stack): Declare.
1494         (INPUT_FILE_STACK_BITS): Define.
1495         * toplev.c (fs_p, input_file_stack_history,
1496         input_file_stack_restored, restore_input_file_stack): New.
1497         (push_srcloc, pop_srcloc): Check for input_file_stack_tick
1498         overflowing INPUT_FILE_STACK_BITS bits.  Save new state of stack.
1499         (pop_srcloc): Don't free old state of stack.
1500
1501 2006-08-26  David Edelsohn  <edelsohn@gnu.org>
1502
1503         PR target/27544
1504         * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
1505         (PowerPC Type Attributes): New.
1506
1507 2006-08-26  Bob Wilson  <bob.wilson@acm.org>
1508
1509         * config/xtensa/xtensa.c (function_arg_boundary): New.
1510         (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
1511         STACK_BOUNDARY.
1512         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
1513         function_arg_boundary function that limits alignment to STACK_BOUNDARY.
1514
1515 2006-08-26  Jakub Jelinek  <jakub@redhat.com>
1516
1517         PR middle-end/28683
1518         * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
1519         3 following insns.
1520
1521 2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1522
1523         * flow.c (verify_wide_reg): Use internal_error for consistency failure.
1524         (verify_local_live_at_start): Likewise.
1525
1526 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
1527
1528         PR c/27893
1529         * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
1530         omp_add_variable): Treat sizes as variable whenever not
1531         INTEGER_CST.
1532
1533 2006-08-26  Richard Guenther  <rguenther@suse.de>
1534
1535         PR middle-end/28814
1536         * fold-const.c (fold_binary): Fold temporary to correct
1537         type before constructing new comparison.
1538
1539 2006-08-25  Fariborz Jahanian  <fjahanian@apple.com>
1540
1541         PR c/28418
1542         * c-gimplify.c (gimplify_compound_literal_expr): Don't add
1543         variable again if DECL_SEEN_IN_BIND_EXPR_P.
1544
1545 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
1546
1547         PR c/28299
1548         * c-decl.c (start_function): Don't try to process prototype
1549         information from old declaration that isn't a function.
1550
1551 2006-08-25  Jan Hubicka  <jh@suse.cz>
1552
1553         PR target/28621
1554         * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
1555
1556 2006-08-25  Alan Modra  <amodra@bigpond.net.au>
1557
1558         PR target/27075
1559         * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
1560         for 8 byte objects.
1561
1562 2006-08-25  J"orn Rennecke  <joern.rennecke@st.com>
1563
1564         PR tree-optimization/16876
1565         * c-typeck.c (c_convert_parm_for_inlining): Don't take early
1566         exit if PARM doesn't match VALUE.
1567
1568 2006-08-25  Bob Wilson  <bob.wilson@acm.org>
1569
1570         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
1571         literal_prefix directive.
1572         (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
1573         * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
1574         * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
1575
1576 2006-08-25  David Edelsohn  <edelsohn@gnu.org>
1577
1578         PR target/28753
1579         * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
1580         predicate to general_operand.  Add 0->y and I->r alternatives.
1581
1582 2006-08-25  Kazu Hirata  <kazu@codesourcery.com>
1583
1584         * doc/tm.texi: Fix a typo.
1585         * predict.c: Fix comment typos.
1586
1587 2006-08-25  Nick Clifton  <nickc@redhat.com>
1588
1589         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1590         assertions of "cpu" and "machine".
1591
1592 2006-08-24  Andrew Pinski  <pinskia@physics.uc.edu>
1593
1594         PR tree-opt/28807
1595         * tree-ssa-operands.c (access_can_touch_variable): Don't say
1596         the access through a base which has an alias set of 0 cannot
1597         touch the variable.
1598
1599 2006-08-24  Bill Wendling  <wendling@apple.com>
1600
1601         * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
1602
1603 2006-08-24  Jan Hubicka  <jh@suse.cz>
1604
1605         * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
1606
1607 2006-08-24  Jan Hubicka  <jh@suse.cz>
1608
1609         PR debug/26881
1610         * cgraph.c: Fix comments.
1611         (cgraph_varpool_mark_needed_node): Mark only variables not already
1612         output to file.
1613         * cgraphunit.c: Update comments; include gt-cgraphunit.h
1614         (cgraph_varpool_assembled_nodes_queue): New static variable.
1615         (cgraph_varpool_assemble_decl): Record output decls for debug out code.
1616         (cgraph_varpool_output_debug_info): New function.
1617         (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
1618         * Makefile.in: Add gt-cgraphunit.h
1619
1620 2006-08-24  Jan Hubicka  <jh@suse.cz>
1621
1622         * predict.c (probability_reliable_p): New predicate.
1623         (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
1624         (predict_loops): Do not predict loop exit with less than 2%
1625         probability.
1626         * basic-block.h (edge_probability_reliable_p,
1627         br_prob_note_reliable_p): Declare.
1628         * ia64.h (ia64_print_operand): Do not disable on-chip branch
1629         prediction when static predictor is not reliable.
1630         * rs6000.c (output_cbranch): Likewise.
1631
1632 2006-08-23  Stuart Hastings  <stuart@apple.com>
1633
1634         PR 28825
1635         * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
1636         ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
1637
1638 2006-08-21  Geoffrey Keating  <geoffk@apple.com>
1639
1640         PR debug/28692
1641         * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
1642         complex values, nor for generic vector values.
1643
1644 2006-08-22  Richard Guenther  <rguenther@suse.de>
1645
1646         PR middle-end/28776
1647         * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
1648         parameter.  Convert arguments to arithmetic expression to the
1649         chrecs type.
1650         (analyze_scalar_evolution_1): Adjust caller.
1651
1652 2006-08-22  Jan Hubicka  <jh@suse.cz>
1653
1654         Patch by Paolo Bonzini
1655         * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
1656         my previous patch.
1657
1658 2006-08-22  Daniel Berlin  <dberlin@dberlin.org>
1659
1660         PR tree-optimization/28003
1661         * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
1662         before grouping aliases.
1663
1664 2006-08-22  Roger Sayle  <roger@eyesopen.com>
1665
1666         * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
1667         if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
1668
1669 2006-08-21  Jason Merrill  <jason@redhat.com>
1670
1671         PR c++/27115
1672         * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
1673         wrapper.  Loop to handle nested wrappers.
1674         (gimplify_bind_expr): Remove temp parameter.
1675         (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
1676         and STATEMENT_LIST on the rhs.
1677         (gimplify_statement_list): Voidify the STATEMENT_LIST.
1678         (gimplify_expr): Pass pre_p to gimplify_statement_list.
1679         (gimplify_target_expr): Remove special BIND_EXPR handling.
1680
1681 2006-08-21  J"orn Rennecke  <joern.rennecke@st.com>
1682
1683         * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
1684         #if !__SHMEDIA__ .
1685
1686 2006-08-21  Olivier Hainque  <hainque@adacore.com>
1687
1688         * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
1689         Arrange for the temporary captures of components overlapping the lhs
1690         to happen before the lhs is possibly cleared.
1691
1692 2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>
1693
1694         * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
1695         necessary places to pass the correct "number of registers" values
1696         to _Unwind_VRS_Pop.
1697
1698 2006-08-20  Jan Hubicka  <jh@suse.cz>
1699
1700         * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
1701         (create_name_tags): Instead of quadratic checking use hashtable.
1702         * bitmap.h: Include hashtab.h.
1703         (bitmap_hash): Declare.
1704         * bitmap.c (bitmap_hash): New function.
1705
1706 2006-08-20  Jan Hubicka  <jh@suse.cz>
1707
1708         PR rtl-optimization/28071
1709         * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
1710         twice.
1711         * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
1712         * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
1713         (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
1714         cgraph_decide_inlining_incrementally): Update use of
1715         cgraph_check_inline_limits.
1716         * cgraph.c (edge_hash, edge_eq): New function.
1717         (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
1718         cgraph_edge_remove_caller, cgraph_node_remove_callees,
1719         cgraph_remove_node): Maintain call site hash.
1720         * cgraph.h (struct cgraph_node): Add call_site_hash.
1721         (cgraph_set_call_stmt): New function.
1722
1723 2006-08-20  Jan Hubicka  <jh@suse.cz>
1724
1725         PR rtl-optimization/28071
1726         * reload1.c (reg_has_output_reload): Turn into regset.
1727         (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
1728         choose_reload_regs, emit_reload_insns): Update to new
1729         reg_has_output_reload.
1730
1731 2006-08-20  Jan Hubicka  <jh@suse.cz>
1732
1733         PR middle-end/28779
1734         * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
1735         function body sizes.
1736         * cgraphunit.c (cgraph_analyze_function): Don't do so.
1737
1738 2006-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
1739
1740         PR target/28648 c:
1741         * tree.c (handle_dll_attribute): Return early if not a
1742         var or function decl.
1743
1744 2006-08-18  Joseph Myers  <joseph@codesourcery.com>
1745
1746         PR target/27565
1747         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
1748         alignment of SPE vector types.
1749
1750 2006-08-18  Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
1751
1752         * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
1753
1754 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
1755
1756         PR c/28744
1757         * cgraph.h (struct cgraph_node): Remove externally_visible
1758         bitfield.
1759         * cgraphunit.c (process_function_and_variable_attributes): Set
1760         local.externally_visible rather than externally_visible.
1761
1762         PR c/28744
1763         * c-common.c (handle_externally_visible_attribute): First look
1764         at TREE_CODE and only if it is function or var decl, check for
1765         non-public objects.  Don't warn for DECL_EXTERNAL.
1766         * cgraphunit.c (process_function_and_variable_attributes): Warn
1767         if externally_visible attribute is used on non-public object.
1768
1769 2006-08-17  Jan Hubicka  <jh@suse.cz>
1770
1771         PR tree-optimization/27865
1772         * reload1.c (forget_marked_reloads): New function.
1773         (forget_old_reloads_1): When data are passed, just mark the registers
1774         for later removal.
1775         (reload_as_needed): Use the new mechanizm.
1776
1777 2006-08-17  Alexandre Oliva  <aoliva@redhat.com>
1778
1779         PR target/28146
1780         * reload.h (reg_equiv_alt_mem_list): New declaration.
1781         * reload1.c (reg_equiv_alt_mem_list): New definition.
1782         (reload): Initialize it and release it.
1783         (delete_output_reload): Use it.
1784         * reload.c (push_reg_equiv_alt_mem): New function.
1785         (find_reloads_toplev): Call it.
1786         (find_reloads_address, find_reloads_address_1): Likewise.
1787         (find_reloads_subreg_address): Likewise.
1788
1789 2006-08-17  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1790
1791         PR rtl-optimization/28489
1792         * sched-ebb.c (begin_schedule_ready): Create basic block
1793         at the right place.
1794         (advance_target_bb): Skip empty blocks.
1795         * haifa-sched.c (bb_note): Make global.
1796         * sched-int.h (bb_note): Add prototype.
1797
1798 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
1799
1800         PR tree-optimization/27865
1801         * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
1802         for pointer types.
1803         * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
1804         fold_used_pointer, pointer_used_p): New functions.
1805         (analyze_scalar_evolution_1): Use fold_used_pointer.
1806         * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
1807         * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
1808         for pointers.
1809
1810 2006-08-17  Paolo Bonzini <bonzini@gnu.org>
1811
1812         PR c++/28573
1813         * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
1814         or the INTEGER_CST.  Fail on a CALL_EXPR.
1815         (fold_offsetof): Pass new argument to fold_offsetof_1.
1816         * c-parser.c (c_parser_postfix_expression): Don't include a NULL
1817         operand into an INDIRECT_REF.
1818         * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
1819
1820 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
1821
1822         PR gcov/profile/26570
1823         * value-prof.c (static_values): Removed.
1824         (tree_find_values_to_profile): Do not set static_values.
1825         (find_values_to_profile): Do not free static_values.
1826         * profile.c (instrument_values): Do not free the values.
1827         (branch_prob): Free the values.
1828
1829 2006-08-16  Naveen.H.S  <naveenh@kpitcummins.com>
1830
1831         * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
1832
1833 2006-08-16  Joseph S. Myers  <joseph@codesourcery.com>
1834
1835         PR c/27697
1836         * c-typeck.c (build_component_ref): Combine qualifiers of
1837         structure or union and field.
1838
1839 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
1840
1841         PR rtl-optimization/28071
1842         * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
1843         * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
1844         * tree-into-ssa.c (struct dom_dfsnum): New.
1845         (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
1846         functions.
1847         (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
1848         compute_global_livein.
1849         (prepare_block_for_update, prepare_use_sites_for): Mark the uses
1850         in phi nodes in the correct blocks.
1851
1852 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
1853
1854         PR tree-optimization/28364
1855         * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
1856         correctly.
1857         (fold_affine_expr): New function.
1858         (may_eliminate_iv): Use fold_affine_expr.
1859
1860 2006-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1861
1862         PR c/27489
1863         * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
1864         Clean up.
1865
1866 2006-08-16  Mike Stump  <mrs@apple.com>
1867
1868         * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
1869         * doc/cppopts.texi (-MD): Likewise.
1870
1871 2006-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
1872
1873         PR c/28287
1874         * c-common.c (handle_weak_attribute): Ignore and warn if
1875         not a FUNCTION_ or VAR_DECL.
1876
1877 2006-07-15  Mike Stump  <mrs@apple.com>
1878
1879         PR c/28280
1880         * c-parser.c (c_parser_typeof_specifier): Don't use
1881         c_finish_expr_stmt, open code desired semantics instead.
1882
1883 2006-08-15  Nick Clifton  <nickc@redhat.com>
1884
1885         * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
1886         fragment to tmake_file only if threads are enabled.
1887         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
1888         * config/i386/t-gthr-win32: New file. ... here.
1889
1890 2006-08-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1891
1892         PR c/28649
1893         * c-parser.c (c_parser_compound_statement_nostart): Reset
1894         parser->error after each statement.
1895
1896 2006-08-15  Jakub Jelinek  <jakub@redhat.com>
1897
1898         PR middle-end/28713
1899         * omp-low.c (lower_omp_parallel): Convert t to
1900         receiver_decl's type.
1901         (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
1902         source before comparison.
1903
1904         PR middle-end/28724
1905         * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
1906         to itype in assignment to oldival2.
1907
1908 2006-07-14  Andrew Pinski  <pinksia@physics.uc.edu>
1909
1910         PR c/27490
1911         PR c/27489
1912         * c-typeck.c (build_compound_expr): If the second expression
1913         is an error mark, then just return an error mark instead of
1914         creating a COMPOUND_EXPR.
1915
1916 2006-07-14  Mike Stump  <mrs@apple.com>
1917
1918         * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
1919
1920 2006-08-14  Kazu Hirata  <kazu@codesourcery.com>
1921
1922         * c-decl.c, var-tracking.c: Fix comment typos.
1923
1924 2006-08-14  Richard Sandiford  <richard@codesourcery.com>
1925
1926         PR rtl-optimization/28634
1927         * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
1928         for floating-point modes unless flag_unsafe_math_optimizations.
1929
1930 2006-08-13  Alexandre Oliva  <aoliva@redhat.com>
1931             Andrew Pinski  <pinskia@physics.uc.edu>
1932
1933         PR c/27184
1934         * tree.c (build_array_type): Unify array types with
1935         unspecified index_type.
1936         * c-decl.c (grokdeclarator): Make sure we do not modify a
1937         unified incomplete array type.
1938         * c-typeck.c (store_init_value): Create distinct type before
1939         filling in the index type in an initializer from a compound
1940         literal.
1941
1942         * c-decl.c (grokdeclarator): Remove code where we copy the
1943         array type over.
1944
1945 2006-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
1946
1947         * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
1948         into account for TODO_dump_cgraph.
1949         (TODO_update_ssa_no_phi): Likewise.
1950         (TODO_update_ssa_full_phi): Likewise.
1951         (TODO_update_ssa_only_virtuals): Likewise.
1952         (TODO_remove_unused_locals): Likewise.
1953         (TODO_set_props): Likewise.
1954         (TODO_update_stmt_usage): Likewise.
1955
1956 2006-08-13  Dirk Mueller  <dmueller@suse.de>
1957
1958         * c-common.c (strict_aliasing_warning): Fix formatting.
1959
1960 2006-08-13  Matthias Klose  <doko@debian.org>
1961
1962         * doc/invoke.texi: Fix spelling errors.
1963
1964 2006-08-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
1965
1966         PR rtl-optimization/23454
1967         * reorg.c (relax_delay_slots): Update comment.
1968
1969 2006-08-11  Richard Guenther  <rguenther@suse.de>
1970
1971         PR middle-end/28651
1972         * simplify-rtx.c (simplify_const_relational_operation):
1973         Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
1974         codes.
1975
1976 2006-08-10  Eric Botcazou  <ebotcazou@adacore.com>
1977
1978         * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
1979         TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
1980
1981 2006-08-10  Paul Brook  <paul@codesourcery.com>
1982
1983         * final.c (final_scan_insn): Clear current_insn_predicate before
1984         outputting inline asm.
1985
1986 2006-08-10  Dorit Nuzman  <dorit@il.ibm.com>
1987
1988         PR tree-optimization/26197
1989         * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
1990         get_ref_base_and_extent and overlap_subvar to add only relevant
1991         subvars as may-aliases.
1992         (add_may_alias_for_new_tag): New function, factored out of
1993         new_type_alias.
1994         * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
1995         with additional argument.
1996         * tree-flow.h (new_type_alias): Takes additional argument.
1997
1998 2006-08-09  Nathan Sidwell  <nathan@codesourcery.com>
1999
2000         * gcov.c (no_data_file): New flag.
2001         (read_count_file): Set it if data file not present.  Assume counts
2002         zero if not found.
2003         (output_lines): Don't name the data file, if there wasn't one.
2004
2005 2006-08-09  Eric Botcazou  <ebotcazou@adacore.com>
2006
2007         * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
2008         (rs6000_generate_compare): Tweak comments.
2009         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
2010
2011 2006-08-09  Alexandre Oliva  <aoliva@redhat.com>
2012
2013         * var-tracking.c (enum micro_operation_type): Add MO_COPY.
2014         (var_debug_decl): New function.
2015         (var_reg_set): Follow debug decl link.  Add location even if
2016         reg is already known to hold some other variable.
2017         (var_mem_set): Follow debug decl link.
2018         (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
2019         decl link.  Delete other known locations of the variable part
2020         if requested.
2021         (var_reg_delete, var_mem_delete): Delete other known locations
2022         of the variable part if requested.
2023         (same_variable_part_p): New function.
2024         (add_stores): Select MO_COPY when appropriate.
2025         (vt_initialize): Handle it.
2026         (compute_bb_dataflow, emit_notes_in_bb): Likewise.  Delete
2027         known locations for MO_SET and MO_CLOBBER.
2028         (find_variable_location_part): New function.
2029         (set_variable_part, delete_variable_part): Use it.
2030         (clobber_variable_part): New function.
2031         * dwarf2out.c (dwarf2out_var_location): Do not follow debug
2032         decl link.
2033
2034 2006-08-07  Victor Kaplansky <victork@il.ibm.com>
2035
2036         PR tree-optimization/26969
2037         * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
2038         with an empty list of PHIs.
2039
2040 2006-08-06  Paolo Bonzini  <bonzini@gnu.org>
2041
2042         PR target/27827
2043
2044         * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
2045         instructions.
2046
2047 2006-08-06  Andreas Schwab  <schwab@suse.de>
2048
2049         * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
2050         string.  Whitespace and comment fixup.
2051
2052 2006-08-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2053
2054         PR c/28502
2055         * c-decl.c (validate_proto_after_old_defn): Return false on invalid
2056         argument.
2057
2058         PR c/27721
2059         * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
2060
2061         PR c/28136
2062         * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
2063
2064 2006-08-04  Jan Hubicka  <jh@suse.cz>
2065
2066         PR target/26655
2067         PR target/28270
2068         * reload.c (push_reload): Patch out the mismatching instruction;
2069         return early.
2070         (find_reload): Bail out if the instruction was patched out.
2071
2072 2006-08-04  Jan Hubicka  <jh@suse.cz>
2073
2074         PR tree-optimization/24888
2075         * tree-inline.c (expand_call_inline): Do not re-record variables.
2076         (declare_inline_vars): Add variable to unexpanded_var_list.
2077
2078 2006-08-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2079             Roger Sayle  <roger@eyesopen.com>
2080
2081         PR rtl-optimization/26244
2082         * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
2083         inner_const are negative or greater than or equal to the bitsize of
2084         MODE.  If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
2085         Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
2086         Simplify complicated if statement.  For ASHIFT and LSHIFTRT, return
2087         CONST0_RTX (mode) when the new shift count is greater than or equal to
2088         to the bitsize of the object being shifted and XEXP (y, 0) has no side
2089         effects.
2090
2091 2006-08-04  Kazu Hirata  <kazu@codesourcery.com>
2092
2093         * tree-cfg.c: Fix a comment typo.
2094
2095 2006-08-03  Mark Mitchell  <mark@codesourcery.com>
2096
2097         PR c++/28148
2098         * varasm.c (output_constant): Give the front end another chance to
2099         expand constants, after stripping NOPs.
2100
2101 2006-08-03  Jan Hubicka  <jh@suse.cz>
2102
2103         * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
2104         implementation.
2105
2106 2006-08-03  Dorit Nuzman  <dorit@il.ibm.com>
2107
2108         PR tree-optimization/27770
2109         * tree-vectorizer.h (get_vectype_for_scalar_type): Function
2110         declaration removed (moved to tree-flow.h).
2111         (vect_can_force_dr_alignment_p): Likewise.
2112         * tree-flow.h (get_vectype_for_scalar_type): New function declaration
2113         (moved from tree-vectorizer.h).
2114         (vect_can_force_dr_alignment_p): Likewise.
2115         * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
2116         from outside the vectorizer - in particular from cgraph stage.
2117         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
2118         the alignment of global arrays when -fsection-anchors is enabled.
2119         * cgraphunit.c (cgraph_increase_alignment): New function.
2120         (cgraph_optimize): Call cgraph_increase_alignment.
2121
2122 2006-08-03  David Edelsohn  <edelsohn@gnu.org>
2123
2124         PR target/27566
2125         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
2126         not reload a SPE symbol_ref into a lo_sum address.
2127
2128 2006-08-02  Daniel Jacobowitz  <dan@codesourcery.com>
2129
2130         PR debug/28063
2131         * dwarf2out.c (prune_unused_types_prune): Move call to
2132         prune_unused_types_update_strings to cover the parent DIE also.
2133
2134 2006-08-02  Jan Hubicka  <jh@suse.cz>
2135
2136         PR gcov/profile/28480
2137         * tree-cfg.c (change_bb_for_stmt): New function.
2138         (tree_merge_blocks, tree_split_blocks): Use it.
2139
2140 2006-08-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2141
2142         PR c++/28250
2143         PR c++/28257
2144         PR c++/28259
2145         PR c++/28267
2146         * toplev.c (compile_file): Return early on errorcount or sorrycount.
2147         * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
2148         (cgraph_optimize): Likewise.
2149
2150 2006-08-01  Stuart Hastings  <stuart@apple.com>
2151
2152         * rtl.h (UINTVAL) New.
2153         * config/rs6000/rs6000.c (SMALL_INT) Use it.
2154         * testsuite/gcc.dg/20060801-1.c: New.
2155
2156 2006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
2157
2158         PR debug/23336
2159         * c-typeck.c (build_external_type): Mark used enum types.
2160         * dwarf2out.c (dwarf2out_abstract_function): Save and restore
2161         cfun also.
2162         (gen_subprogram_die): Whitespace fix.
2163
2164 2006-08-01  Jan Hubicka  <jh@suse.cz>
2165
2166         * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
2167         bitmap when not needed.
2168         * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
2169         bitmaps.
2170
2171 2006-08-01  Dirk Mueller  <dmueller@suse.de>
2172
2173         * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
2174
2175 2006-07-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2176
2177         * Makefile.in: Revert part of previous patch:
2178         Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
2179         and REGS_H.
2180
2181 2006-07-30  Eric Christopher  <echristo@apple.com>
2182
2183         PR target/27543
2184         * doc/extend.texi (i386 Variable Attributes): Add anchor.
2185         (PowerPC Variable Attributes): New section.
2186
2187 2006-07-30  Atsushi Nemoto  <anemo@mba.ocn.ne.jp>
2188
2189         PR target/28126 (partial fix)
2190         * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
2191
2192 2006-07-28  Jan Hubicka  <jh@suse.cz>
2193
2194         PR rtl-optimization/28071
2195         * cfgrtl.c (rtl_delete_block): Free regsets.
2196         * flow.c (allocate_bb_life_data): Re-use regsets if available.
2197
2198 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2199
2200         * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
2201         and variables used in dependencies.
2202
2203 2006-07-27  Arjan van de Ven <arjan@linux.intel.com>
2204
2205         * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
2206         %fs for -mcmodel=kernel.
2207         (stack_tls_protect_test_di): Likewise.
2208
2209 2006-07-27  Carlos O'Donell  <carlos@codesourcery.com>
2210
2211         * Makefile.in: Use mkinstalldirs.
2212
2213 2006-07-27  H.J. Lu  <hongjiu.lu@intel.com>
2214
2215         PR driver/28437
2216         * opts-common.c (prune_options): Skip joined switches.
2217
2218 2006-07-27  Jan Hubicka  <jh@suse.cz>
2219
2220         PR rtl-optimization/28071
2221         * cselib.c (cselib_process_insn): Don't remove useless values too
2222         often for very large hashtables.
2223
2224 2006-07-27  Jan Hubicka  <jh@suse.cz>
2225
2226         PR rtl-optimization/28071
2227         * global.c (greg_obstack): New obstack.
2228         (allocate_bb_info): Use it.
2229         (free_bb_info): Likewise.
2230         (modify_reg_pav): Likewise.
2231
2232 2006-07-27  Roger Sayle  <roger@eyesopen.com>
2233
2234         * builtins.c (fold_fixed_mathfn): When long and long long are the
2235         same size, canonicalize llceil*, llfloor*, llround* and llrint*
2236         functions to their lceil*, lfloor*, lround* and lrint* forms.
2237
2238 2006-07-27  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2239
2240         PR gcc/28508
2241         * config/m32r/m32r.md (branch_insn): Reduce pc range for short
2242         branch.
2243         (rev_branch_insn): Likewise.
2244
2245 2006-07-27  Jan Hubicka  <jh@suse.cz>
2246
2247         PR rtl-optimization/28071
2248         * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
2249         (reg_set_in_bb, max_reg_computed): New static variables.
2250         (regmove_optimize): Free the new array.
2251         (fixup_match_1): Update call of reg_is_remote_constant_p.
2252
2253 2006-07-26  Jan Hubicka  <jh@suse.cz>
2254
2255         PR tree-optimization/27882
2256         * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
2257         and decl fields.
2258         * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
2259         next pointer
2260         (cgraph_analyze_compilation_unit): Likewise.
2261         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
2262         * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
2263         (cgraph_early_inlinine): Make order garbage collected.
2264         * Makefile.in (gt-ipa-inline): New garbagecollected file.
2265
2266 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
2267
2268         * dbxout.c (output_types_sort): Add a comment.
2269         (output_used_types): Free the VEC.
2270
2271 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
2272
2273         * function.c (reorder_fix_fragments): Delete.
2274         (reorder_blocks): Don't call it.
2275         (reorder_blocks_1): Put all subblocks under the origin block.
2276
2277 2006-07-26  Zdenek Dvorak <dvorakz@suse.cz>
2278
2279         PR rtl-optimization/27907
2280         * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
2281         FLOAT_TRUNCATE.
2282
2283 2006-07-25  Roger Sayle  <roger@eyesopen.com>
2284
2285         PR middle-end/28473
2286         * convert.c (convert_to_integer): When transforming (T)foo(x) into
2287         bar(x) check that bar's result type can represent all the values of T.
2288
2289 2006-07-25  Zdenek Dvorak <dvorakz@suse.cz>
2290
2291         * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
2292
2293 2006-07-25  Nick Clifton  <nickc@redhat.com>
2294
2295         * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
2296         size_lookup[] array.
2297         (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
2298         (ggc_pch_count_object): Likewise.
2299         (ggc_pch_alloc_object): Likewise.
2300         (ggc_pch_write_object): Likewise.
2301         (init_ggc): Do not attempt to initialize entries in the
2302         size_lookup[] array for objects whose size is greater than than
2303         the length of the array.
2304
2305 2006-07-25  Daniel Jacobowitz  <dan@codesourcery.com>
2306
2307         * dbxout.c (output_used_types_helper): Push queued types
2308         on a VEC.
2309         (output_types_sort): New.
2310         (output_used_types): Collect used types on a VEC and sort them
2311         before emission.
2312
2313 2006-07-24  Richard Guenther  <rguenther@suse.de>
2314
2315         PR middle-end/28463
2316         * cgraph.c (cgraph_remove_node): Do not check if dumps
2317         are enabled.
2318         * cgraphunit.c (cgraph_optimize): Likewise.
2319
2320 2006-07-24  Jan Hubicka  <jh@suse.cz>
2321
2322         PR rtl-optimization/28071
2323         * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
2324         * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
2325         splitting before first stmt.
2326
2327 2006-07-24  Jan Hubicka  <jh@suse.cz>
2328
2329         PR rtl-optimization/28071
2330         * ipa-inline.c (update_caller_keys): Remove edges that
2331         are no longer inline candidates.
2332
2333 2006-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
2334
2335         PR debug/27473
2336         * dbxout.c (output_used_types_helper, output_used_types): New.
2337         (dbxout_symbol): Call output_used_types.
2338
2339 2006-07-23  Jan Hubicka  <jh@suse.cz>
2340
2341         PR c/25795
2342         PR c++/27369
2343         * cgraph.c (cgraph_varpool_nodes): Export.
2344         (decide_is_variable_needed): Ignored "used" attribute in
2345         unit-at-a-time mode.
2346         * cgraph.h (cgraph_varpool_nodes): Declare.
2347         * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
2348         unit-at-a-time mode.
2349
2350 2006-07-23  Roger Sayle  <roger@eyesopen.com>
2351
2352         PR target/28247
2353         * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
2354         mutex_destroy even when !_LIBOOBJC.  Remove duplicate prototype of
2355         the __gthrw form of thr_keycreate.
2356         (__gthread_key_delete): Silence the unused argument warning.
2357
2358 2006-07-23  Steven Bosscher  <steven@gcc.gnu.org>
2359
2360         PR debug/25468
2361         * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
2362         Cache the last found '\0' marker to avoid quadratic behavior.
2363
2364 2006-07-23  Jan Hubicka  <jh@suse.cz>
2365
2366         * i386.md (subsi_3_zext): Fix output template.
2367
2368 2006-07-21  Mike Stump  <mrs@apple.com>
2369
2370         * doc/invoke.texi (C++ Dialect Options): Note that
2371         -fvisibility-inlines-hidden doesn't affect explicitly
2372         instantiationed inline methods.
2373
2374 2006-07-20  Roger Sayle  <roger@eyesopen.com>
2375
2376         * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
2377         if the target assembler is GNU binutils' gas.
2378         * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
2379         whether to pass GNU gas or native as command line options.
2380
2381 2006-07-20  Jason Merrill  <jason@redhat.com>
2382
2383         * tree.c (remove_attribute): New fn.
2384         * tree.h: Declare it.
2385
2386 2006-07-20  Paul Brook  <paul@codesourcery.com>
2387
2388         PR 27363
2389         * cse.c (cse_insn): Add destination addresses to hash table. Check if
2390         they are invalidated by this instruction.
2391
2392 2006-07-21  Danny Smith  <dannysmith@users.sourceforge.net>
2393
2394         PR target/28427
2395         * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
2396
2397 2006-07-20  Eric Christopher  <echristo@apple.com>
2398
2399         PR target/26877
2400         * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
2401
2402 2006-07-19  Eric Christopher  <echristo@apple.com>
2403
2404         * config/t-slibgcc-darwin (stmp-lipo): Remove.
2405         Rewrite dependencies for libgcc_s.1.dylib.
2406
2407 2006-07-19  Jakub Jelinek  <jakub@redhat.com>
2408
2409         * except.c (duplicate_eh_regions_1): Clear next_peer.
2410
2411 2006-07-17  Nathan Sidwell  <nathan@codesourcery.com>
2412
2413         * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
2414         -mlongcall does not guarantee all calls will be long.
2415         * doc/extend.texi (long_call/short_call): Document that longcall
2416         does not guarantee a long call will be used.
2417         (longcall/shortcall): Likewise.
2418
2419 2006-07-18  Roger Sayle  <roger@eyesopen.com>
2420
2421         PR middle-end/28283
2422         * expmed.c (expand_shift): Additionally check that the shift_cost
2423         is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
2424         before implementing a LSHIFT_EXPR as a sequence of additions.
2425         * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
2426         middle-end that DImode shifts need to be synthesized by expand.
2427
2428 2006-07-18  Diego Novillo  <dnovillo@redhat.com>
2429
2430         PR 28410
2431         * tree-ssa-operands.c (access_can_touch_variable): Update
2432         comment.
2433         Return true if ALIAS is .GLOBAL_VAR.
2434
2435 2006-07-18  David Daney  <ddaney@avtrex.com>
2436
2437         * gcc.c (display_help): Fix typo in help text.
2438
2439 2006-07-18  Olivier Hainque  <hainque@adacore.com>
2440
2441         * tree.h (categorize_ctor_elements): Adjust prototype and add
2442         descriptive comment, both in accordance with the interface change
2443         described below.
2444         * varasm.c (constructor_static_from_elts_p): New function.
2445         Whether a constructor node is a valid static constant initializer
2446         if all its elements are.
2447         (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
2448         * output.h: Declare it.
2449         * expr.c (categorize_ctor_elements_1): Return whether the constructor
2450         is a valid constant initializer instead of computing the number of
2451         non-constant elements.  Use constructor_static_from_elts_p for this
2452         purpose.  Replace the head comment with an indication that this is a
2453         helper for categorize_ctor_elements.
2454         (categorize_ctor_elements): Same interface change as for the _1
2455         helper.  Former head comment from this helper moved here, adjusted to
2456         account for the interface changes.
2457         (mostly_zeros_p): Adjust call to categorize_ctor_elements.
2458         (all_zeros_p): Likewise.
2459         * gimplify.c (gimplify_init_constructor): Decide whether we can make
2460         static versions of the constructor from the categorize_ctor_elements
2461         return value instead of the formerly computed number of non-constant
2462         elements.
2463
2464 2006-07-18  Paolo Bonzini  <bonzini@gnu.org>
2465
2466         * configure: Regenerate.
2467         * Makefile.in (build_libsubdir): New configure substitution
2468         (build_libobjdir): New variable.
2469         (BUILD_LIBIBERTY): Use it.
2470
2471 2006-07-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2472
2473         PR c/28286
2474         * c-pragma.c (handle_pragma_pack): Handle invalid constants.
2475
2476 2006-07-18  Alexandre Oliva  <aoliva@redhat.com>
2477
2478         PR c/26993
2479         * c-common.c (handle_weakref_attribute): Ignore attribute in
2480         the same conditions the alias attribute is ignored.
2481
2482 2006-07-17  Carlos O'Donell  <carlos@codesourcery.com>
2483
2484         * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
2485         (dbxout_begin_prologue): Increment scope_labelno.
2486
2487 2006-07-17  Richard Henderson  <rth@redhat.com>
2488
2489         PR 27889
2490         * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
2491         if needed.
2492
2493 2006-07-17  Roger Sayle  <roger@eyesopen.com>
2494             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2495
2496         * config/i386/gmon-sol2.c: Silence compilation warnings by partially
2497         synchronizing code with config/sparc/gmon-sol2.c.  Remove #if 0
2498         blocks.  #include "tconfig.h" and "tsystem.h" to prototype system
2499         functions such as sbrk, write, etc..  Add function prototypes.
2500         Convert function declarations from K&R to ISO C.  Cast pointers
2501         to "long" and "unsigned long" instead of "int" and "unsigned int".
2502         Convert tokens following #endif into comments.
2503
2504 2006-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
2505
2506         * invoke.texi: Remove mention of f77; Reformat table for
2507         inline parameter options correctly; mention that -malign-double
2508         is default on x86-64 targets.
2509
2510 2006-07-17  Zdenek Dvorak <dvorakz@suse.cz>
2511
2512         * tree-chrec.c (avoid_arithmetics_in_type_p): New.
2513         (convert_affine_scev, chrec_convert_aggressive): Use
2514         avoid_arithmetics_in_type_p.  Do not check for the subtypes
2515         separately.
2516
2517 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
2518
2519         PR middle-end/28403
2520         * optabs.c (expand_doubleword_shift): Wrap the call to
2521         do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
2522
2523 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
2524
2525         PR middle-end/28402
2526         * optabs.c (expand_binop): Pass next_methods rather than methods
2527         to expand_doubleword_shift.
2528
2529 2006-07-17  J"orn Rennecke  <joern.rennecke@st.com>
2530
2531         PR other/28251
2532         * tree.h (dump_addr): Declare.
2533         * print-tree.c (dump_addr): New function.
2534         (print_node_brief, print_node): Use it.
2535         * print-rtl.c (print_rtx): Likewise.
2536         * common.opt (-fdump-noaddr): New option.
2537         * doc/invoke.texi (-fdump-noaddr): Document.
2538         * loop-unroll.c (si_info_hash): Make hash independent of addresses.
2539         (ve_info_hash): Likewise.
2540
2541 2006-07-13  Andrew Haley  <aph@redhat.com>
2542
2543         PR tree-optimization/19505
2544         * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
2545         edge leaving this block, make sure that the destination of this
2546         block has only one predecessor.
2547
2548 2006-07-17  Richard Guenther  <rguenther@suse.de>
2549
2550         PR tree-optimization/28238
2551         * tree-inline.c (copy_bb): Check if we produced valid
2552         gimple copying and substituting a stmt.  If not, gimplify
2553         it.
2554
2555 2006-07-16  Eric Botcazou  <ebotcazou@adacore.com>
2556
2557         * optabs.c (maybe_encapsulate_block): New function extracted from...
2558         (emit_libcall_block): ...here.  Invoke it on the block of insns to
2559         maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
2560         (emit_no_conflict_block): Likewise.
2561
2562 2006-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
2563
2564         * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
2565
2566 2006-07-15  Roger Sayle  <roger@eyesopen.com>
2567
2568         * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
2569         a new NOP_EXPR case of the switch statement.
2570
2571 2006-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2572
2573         PR middle-end/28160
2574         * stor-layout.c (place_field): Take the bit field with
2575         an excessive size into account in the ms-bitfiled case.
2576
2577         PR middle-end/28161
2578         * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
2579         the previous bit field.
2580
2581 2006-07-14  Eliot Dresselhaus  <eliot@sonic.net>
2582
2583         PR target/27287
2584         * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
2585
2586 2006-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
2587
2588         * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
2589         signal frames correctly even when the signal was installed with
2590         sa_restorer set.
2591
2592 2006-07-14  Carlos O'Donell  <carlos@codesourcery.com>
2593
2594         * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
2595         (dbxout_function_end): Use local label LFBB. Remove hook
2596         DBX_OUTPUT_NFUN.
2597         (dbxout_source_line): Use local label LFBB.
2598         (dbxout_block): Likewise.
2599         (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
2600         (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
2601         * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
2602         and DBX_OUTPUT_NFUN.
2603
2604 2006-07-13  Janis Johnson  <janis187@us.ibm.com>
2605
2606         * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
2607
2608 2006-07-13  Jan Hubicka  <jh@suse.cz>
2609
2610         * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
2611         align_variable.
2612         * output.h (align_variable): Declare.
2613         * varasm.c (align_variable): Export.
2614         * value-prof.c (tree_value_profile_transformations): Recompute iterator
2615         when basic block changed.
2616
2617 2006-07-13  Nick Clifton  <nickc@redhat.com>
2618
2619         * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
2620         walking the LOG_LINKS chain.
2621
2622 2006-07-12  Geoffrey Keating  <geoffk@apple.com>
2623
2624         * doc/invoke.texi (C++ Dialect Options): Explain difference
2625         between -fvisibility-inlines-hidden and setting hidden
2626         visibility explicitly.
2627
2628 2006-07-12  Eric Christopher  <echristo@apple.com>
2629
2630         * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
2631         (stmp-lipo): Depend on libgcc.a.
2632
2633 2006-07-12  Kazu Hirata  <kazu@codesourcery.com>
2634
2635         * tree.c: Fix a comment typo.
2636
2637 2006-07-12  Naveen.H.S  <naveenh@kpitcummins.com>
2638
2639         * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
2640         dest.
2641         (umulhisi3_r): Likewise.
2642
2643 2006-07-12  Paolo Carlini  <pcarlini@suse.de>
2644
2645         PR libstdc++/27878
2646         * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
2647         x < 19, vs wchar_t support.
2648
2649 2006-07-12  Nick Clifton  <nickc@redhat.com>
2650
2651         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
2652         instead of -isa=sh4.
2653
2654 2006-07-12  Mike Stump  <mrs@apple.com>
2655
2656         * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
2657
2658 2006-07-10  Eric Christopher  <echristo@apple.com>
2659
2660         * config/t-slibgcc-darwin: Rewrite.
2661
2662 2006-07-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2663
2664         PR bootstrap/20437
2665         * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
2666         dependencies.
2667
2668 2006-07-08  Matthias Klose  <doko@debian.org>
2669
2670         * doc/sourcebuild.texi: Fix typo.
2671
2672 2006-07-07  Mike Stump  <mrs@apple.com>
2673
2674         * toplev.c (process_options): Don't give -ffunction-sections may
2675         affect debugging warning for Mach-O.
2676
2677 2006-07-07  James E Wilson  <wilson@specifix.com>
2678
2679         * config/mips/mips.md (cpu): Add sb1a.
2680         * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
2681         addition to sb1.  Adjust comments to clarify SB-1A differences from
2682         SB-1.
2683         (ir_sb1a_load): New.  Modify bypasses to use it.
2684         (ir_sb1a_simple_alu): Likewise.
2685         * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
2686         (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
2687         (mips_issue_rate): Add PROCESSOR_SB1A.
2688         (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
2689         * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
2690         (TARGET_SB1): Add PROCESSOR_SB1A check.
2691         (TUNE_SB1): Likewise.
2692
2693         * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
2694         * config/mips/mips.c (mips_store_data_bypass_p): New.
2695         * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
2696         store_data_bypass_p.
2697
2698 2006-07-08  Paul Brook  <paul@codesourcery.com>
2699
2700         PR target/27991
2701         * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
2702
2703 2006-07-07   Richard Guenther  <rguenther@suse.de>
2704
2705         PR middle-end/28268
2706         * tree.h (build_one_cst): Declare.
2707         * tree.c (build_one_cst): New function.
2708         * tree-ssa-math-opts.c (get_constant_one): Remove.
2709         (insert_reciprocals): Use build_one_cst.
2710         * fold-const.c (fold_plusminus_mult): Likewise.
2711
2712 2006-07-07  Roger Sayle  <roger@eyesopen.com>
2713
2714         * pointer-set.c (pointer_set_destroy): Correct whitespace.
2715         * cfgloopanal.c (dump_graph): Likewise.
2716         * dojump.c (discard_pending_stack_adjust): Likewise.
2717         * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
2718         Likewise.
2719         * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
2720         * function.c (finalize_block_changes): Likewise.
2721         * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
2722         * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
2723         * rtl.c (dump_rtx_statistics): Likewise.
2724         * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
2725         Likewise.
2726         * varray.c (dump_varray_statistics): Likewise.
2727         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
2728         decode_decimal64, encode_decimal128, decode_decimal128,
2729         decimal_real_to_decimal): Likewise.
2730
2731 2006-07-07  Richard Guenther  <rguenther@suse.de>
2732
2733         PR tree-optimization/28187
2734         * tree-vrp.c (vrp_operand_equal_p): New function.
2735         (vrp_bitmap_equal_p): Likewise.
2736         (update_value_range): Use them to compare old and new
2737         max and min values.
2738
2739 2006-07-06  Roger Sayle  <roger@eyesopen.com>
2740
2741         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
2742         a default case to switch statement to silence compiler warnings.
2743
2744 2006-07-06  Roger Sayle  <roger@eyesopen.com>
2745
2746         PR target/27968
2747         * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
2748         the configured assembler supports the x87's ffreep mnemonic.
2749         * configure: Regenerate.
2750         * config.in: Regenerate.
2751
2752         * config/i386/i386.c (output_387_ffreep): New function.
2753         (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
2754         (output_387_reg_move): Likewise.
2755
2756 2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>
2757
2758         Port to hosts whose 'sort' and 'tail' implementations
2759         treat operands with leading '+' as file names, as POSIX
2760         has required since 2001.  However, make sure the code still
2761         works on pre-POSIX hosts.
2762         * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
2763         which says you should use "tail -c +N" rather than "tail +Nc".
2764         Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
2765
2766 2006-07-06  Zdenek Dvorak <dvorakz@suse.cz>
2767
2768         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
2769         argument name.
2770
2771 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
2772
2773         PR target/28150
2774         * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
2775         PRE_{INC,DEC} of TFmode.
2776
2777 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
2778             Alan Modra  <amodra@bigpond.net.au>
2779
2780         PR target/28170
2781         * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
2782         bounds. Simplify.
2783
2784 2006-07-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2785
2786         PR target/28285
2787         * config/alpha/predicates.md (alpha_swapped_comparison_operator):
2788         Remove duplicate gtu.
2789
2790 2006-07-05  Jason Merrill  <jason@redhat.com>
2791
2792         PR c++/13983
2793         PR c++/17519
2794         * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
2795         * c-common.c (handle_packed_attribute): So don't copy it here.
2796         * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
2797
2798 2006-07-05  Mike Stump  <mrs@apple.com>
2799
2800         * doc/invoke.texi (Invoking G++): Clarify prose for g++.
2801
2802 2006-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2803
2804         PR target/26146
2805         * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
2806
2807 2006-07-05  Richard Guenther  <rguenther@suse.de>
2808
2809         PR target/28158
2810         * config/i386/i386.md (*negdf2_1): Restrict pattern to
2811         TARGET_SSE2 targets if using SSE math.
2812         (*absdf2_1): Likewise.
2813
2814 2006-07-05  Richard Guenther  <rguenther@suse.de>
2815
2816         PR tree-optimization/28162
2817         * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
2818         make sure to convert the operands to the correct type.
2819
2820 2006-07-04  Paolo Bonzini  <bonzini@gnu.org>
2821
2822         PR tree-optimization/28218
2823
2824         * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
2825         to calculate and free the dominator information.
2826
2827 2006-07-04  Peter O'Gorman  <peter@pogma.com>
2828
2829         * mklibgcc.in: chmod 644 before ranlib during install.
2830
2831 2006-07-04  Andrew Stubbs <andrew.stubbs@st.com>
2832             J"orn Rennecke <joern.rennecke@st.com>
2833
2834         * configure.ac (.eh_frame data check): Use diff -b.
2835
2836 2006-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2837
2838         PR bootstrap/18058
2839         * Makefile.in (BUILD_RTL): Add build/vec.o.
2840         (build/gencondmd.o): Filter out -fkeep-inline-functions.
2841         (build/genextract): Delete.
2842         (build/genautomata): Likewise.
2843
2844 2006-07-04  Alan Modra  <amodra@bigpond.net.au>
2845
2846         PR target/28207
2847         * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
2848         128-bit IBM long doubles for ABI_V4.
2849
2850 2006-07-03  Eric Botcazou  <ebotcazou@adacore.com>
2851
2852         * tree.c (range_in_array_bounds_p): New predicate.
2853         * tree.h (range_in_array_bounds_p): Declare it.
2854         * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
2855         return a less conservative answer.
2856         * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
2857         and flag 'is_group'.
2858         (IS_ELEMENT_FOR_GROUP): New macro.
2859         (FOR_EACH_ACTUAL_CHILD): Likewise.
2860         (next_child_for_group): New helper function.
2861         (can_completely_scalarize_p): Take into account groups.
2862         (sra_hash_tree): Handle RANGE_EXPR.
2863         (sra_elt_eq): Likewise.
2864         (lookup_element): Be prepared for handling groups.
2865         (is_valid_const_index): Delete.
2866         (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
2867         instead of is_valid_const_index.
2868         <ARRAY_RANGE_REF>: New case.
2869         (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
2870         is_valid_const_index.
2871         <ARRAY_RANGE_REF>: Do not unconditionally punt.
2872         (scan_dump): Dump info for groups too.
2873         (decide_instantiation_1): Likewise.
2874         (decide_block_copy): Assert that the element is not a group.
2875         Propagate decision to groups.
2876         (generate_one_element_ref): Handle RANGE_EXPR.
2877         (mark_no_warning): Iterate over actual childs.
2878         (generate_copy_inout): Likewise.
2879         (generate_element_copy): Likewise.
2880         (generate_element_zero): Likewise.
2881         (generate_element_init_1): Likewise.
2882         (dump_sra_elt_name): Handle RANGE_EXPR.
2883
2884 2006-07-03  Roger Sayle  <roger@eyesopen.com>
2885
2886         PR tree-optimization/26251
2887         * tree-ssa-threadupdate.c (redirection_block_p): New function.
2888         (thread_block): When optimizing for size refuse to thread jumps
2889         that would require duplication of blocks other than redirection
2890         blocks.
2891
2892 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
2893
2894         * configure.ac: Fix thinko in previous check-in.
2895         * configure: Regenerate.
2896
2897 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
2898
2899         PR other/27063
2900         * configure.ac (for lang...): Simplify nesting of conditionals.
2901         Test subdir_requires for non-enabled languages.  Move processing
2902         of lang_opt_files and lang_tree_fiels below that test.
2903         * configure: Regenerate.
2904         * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
2905
2906 2006-07-01  Martin Michlmayr  <tbm@cyrius.com>
2907
2908         * doc/gcov.texi (Invoking Gcov): Add a missing word.
2909
2910 2006-06-30  Kazu Hirata  <kazu@codesourcery.com>
2911
2912         * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
2913         comment typos.
2914
2915 2006-06-29  Jason Merrill  <jason@redhat.com>
2916
2917         PR c++/26905
2918         PR c++/26612
2919         PR c++/27000
2920         PR c++/26984
2921         PR c++/19134
2922         * tree.c (build_decl_stat): Don't hande #pragma visibility here.
2923         * c-common.c (c_determine_visibility): Handle it here.
2924         * c-decl.c (finish_decl): Call c_determine_visibility for
2925         functions, too.
2926         * flags.h (enum symbol_visibility): Sort from most to least visibility.
2927         * tree.h: Likewise.
2928         * varasm.c (default_assemble_visibility): Likewise.
2929         * c-common.c (handle_visibility_attribute): Complain about trying
2930         to give visibility to an already defined class, or trying to change
2931         declared visibility. Always attach the attribute.
2932
2933         PR c++/26905
2934         PR c++/21675
2935         PR c++/17470
2936         * attribs.c (decl_attributes): Ignore type-in-place attributes
2937         once the type has been defined.
2938
2939 2006-06-29  Roger Sayle  <roger@eyesopen.com>
2940
2941         PR middle-end/27428
2942         * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
2943         to indicate the cpplib has issued an error message for us.
2944
2945 2006-06-29  Asher Langton  <langton2@llnl.gov>
2946
2947         PR target/25765
2948         * config/i386/i386.c (ix86_output_function_epilogue): Don't
2949         insert a label at the end of an function under Mach-O.
2950
2951 2006-06-29  Eric Christopher  <echristo@apple.com>
2952             Evan Cheng  <evan.cheng@apple.com>
2953
2954         * predicates.md (vector_all_ones_operand): New.
2955         (nonimmediate_or_sse_const_operand): Ditto.
2956         * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
2957         * config/i386/i386.c (standard_sse_constant_opcode): Define.
2958         (standard_sse_mode_p): Ditto.
2959         (standard_sse_constant_p): Add case for -1 vector.
2960         (ix86_expand_vector_move): Try to use.
2961         * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
2962         Call standard_sse_constant_opcode.
2963         (*movv4sf_internal): Ditto.
2964         (*movv2df_internal): Ditto.
2965
2966 2006-06-29  Roger Sayle  <roger@eyesopen.com>
2967
2968         * genpreds.c (write_match_code_switch): Correctly use XSTR instead
2969         of XEXP to extract the operands of a MATCH_CODE rtx.
2970
2971 2006-06-28  Andrew Pinski  <pinskia@gmail.com>
2972
2973         * tree.c (tree_size): Do not waste tail padding in
2974         struct tree_string and make the size be the same as
2975         build_string will generate.
2976
2977 2006-06-28  Jason Merrill  <jason@redhat.com>
2978
2979         PR c++/27768
2980         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
2981         may_aliases already in the tag's annotations to the bitmap.
2982
2983 2006-06-28  Roger Sayle  <roger@eyesopen.com>
2984
2985         * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
2986
2987 2006-06-28  Roger Sayle  <roger@eyesopen.com>
2988
2989         * genpreds.c (generate_switch_p): New function.
2990         (add_mode_tests): Push the new mode test down inside an AND expr
2991         if this allows the switch-suitable MATCH_CODE to be near the root.
2992         (write_match_code_switch): New function to write a MATCH_CODE as
2993         a switch statement.
2994         (write_predicate_stmts): New function to write a predicate RTX
2995         expression as a sequence of statements.
2996         (write_one_predicate_function): Use write_predicate_stmts.
2997         (write_tm_constrs_h): Likewise.
2998
2999 2006-06-26  Fred Fish  <fnf@specifix.com>
3000
3001         * config/mips/t-sb1: New file.
3002         * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
3003         tmake_file list.
3004
3005 2006-06-26  DJ Delorie  <dj@redhat.com>
3006
3007         * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
3008
3009 2006-06-26  Naveen H.S  <naveenh@kpitcummins.com>
3010             Jayant Sonar  <jayants@kpitcummins.com>
3011             Jaydeep Vipradas  <jaydeepv@kpitcummins.com>
3012
3013         * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
3014         (subsi3, subsi3_1, subsi3_2): New.
3015         * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
3016         * config/m32c/mov.md (SI mov peephole): New.
3017         * config/m32c/m32.c (m32c_immd_dbl_mov): New.
3018         * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
3019
3020 2006-06-26  Olivier Hainque  <hainque@adacore.com>
3021
3022         * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
3023         a CALL_EXPR target function declaration.
3024
3025 2006-06-26  Richard Guenther  <rguenther@suse.de>
3026
3027         * tree.c (build_string): Do not waste tail padding in
3028         struct tree_string.
3029
3030 2006-06-26  Richard Guenther  <rguenther@suse.de>
3031
3032         * ggc-page.c (init_ggc): Add missing element to size_lookup
3033         table.
3034
3035         Revert
3036         2006-06-23  Richard Guenther  <rguenther@suse.de>
3037
3038         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
3039         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
3040         alignment requests instead.  Add verification code.
3041         Add struct tree_function_decl and struct tree_binfo size to
3042         extra_order_size_table.  Add missing element to size_lookup
3043         table.
3044
3045 2006-06-25  Eric Botcazou  <ebotcazou@adacore.com>
3046
3047         PR middle-end/28151
3048         * fold-const.c (const_binop): Be prepared for self returning zero.
3049         Simplify code handling complex values.
3050
3051 2006-06-24  Olivier Hainque  <hainque@adacore.com>
3052
3053         * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
3054         (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
3055         aggregate types.
3056
3057 2006-06-24  Olivier Hainque  <hainque@adacore.com>
3058
3059         * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
3060         ARRAY_REF, so have the callback called for the low bound expression.
3061
3062 2006-06-23  Janis Johnson  <janis187@us.ibm.com>
3063
3064         * tree.h (DECIMAL_FLOAT_TYPE_P): New.
3065         * c-typeck.c (c_common_type): Disallow operations on decimal float
3066         types and other float types.
3067         * convert.c (convert_to_real): Don't ignore conversions involving
3068         decimal float types.
3069
3070 2006-06-23  Olivier Hainque  <hainque@adacore.com>
3071
3072         * tree.c (max_int_size_in_bytes): New function, inspired from
3073         code in function.c:assign_temp.
3074         * tree.h (max_int_size_in_bytes): Declare.
3075         * function.c (assign_temp): Use it.
3076         * gimplify.c (create_tmp_var): Relax the assertions on the type
3077         properties, not mandating constant size any more.
3078         (force_constant_size): New static function.
3079         (gimple_add_tmp_var): Use it, forcing variable size to a
3080         constant upper bound if it is not constant on entry.
3081
3082 2006-06-23  Danny Smith   <dannysmith@users.sourceforge.net>
3083
3084         PR target/27789
3085         * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
3086         for initialization and setting of one_only flag to ...
3087         (i386_pe_encode_section_info): ...here.
3088         (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
3089         Recheck that the symbol has not been defined.
3090
3091 2006-06-23  Richard Guenther  <rguenther@suse.de>
3092
3093         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
3094         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
3095         alignment requests instead.  Add verification code.
3096         Add struct tree_function_decl and struct tree_binfo size to
3097         extra_order_size_table.  Add missing element to size_lookup
3098         table.
3099
3100 2006-06-22  Roger Sayle  <roger@eyesopen.com>
3101             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3102
3103         PR middle-end/28131
3104         * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
3105         call to lang_hooks.types.type_for_mode returned NULL_TREE.
3106
3107 2006-06-23  Ben Elliston  <bje@au.ibm.com>
3108
3109         * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
3110         negate dn -- manipulate it directly.
3111
3112 2006-06-22  Roger Sayle  <roger@eyesopen.com>
3113             Steven Bosscher  <stevenb.gcc@gmail.com>
3114
3115         PR target/27531
3116         * reload1.c (gen_reload): Call mark_jump_label on the new insns
3117         generated by gen_move_insn to add REG_LABEL notes if necessary.
3118
3119 2006-06-22  Bob Wilson  <bob.wilson@acm.org>
3120
3121         * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
3122         (leaf_entry): Remove use of MIN_ESA.
3123
3124 2006-06-22  Zdenek Dvorak <dvorakz@suse.cz>
3125
3126         PR rtl-optimization/28121
3127         * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
3128         the entry edge.
3129
3130 2006-06-21  DJ Delorie  <dj@redhat.com>
3131
3132         * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
3133         (TN-16C-A156A/E).
3134         (mulhisi3_r): Likewise.
3135
3136 2006-06-21  Richard Sandiford  <richard@codesourcery.com>
3137
3138         PR middle-end/28034
3139         * coverage.c (coverage_counter_alloc): Leave the index type
3140         unspecified.
3141         (coverage_counter_alloc): Use null arguments for operands 2 and 3
3142         of the ARRAY_REF.
3143
3144 2006-06-21  Andrew Pinski  <pinskia@physics.uc.edu>
3145
3146         * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
3147         section from the "Options for Code Generation Conventions".
3148
3149 2006-06-21  Richard Henderson  <rth@redhat.com>
3150
3151         PR target/26347
3152         PR target/27082
3153         * config/alpha/predicates.md (small_symbolic_operand): Deny weak
3154         symbols.
3155         (global_symbolic_operand): Allow weak symbols, even if local_p.
3156
3157 2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
3158
3159         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
3160         (find_interesting_uses_address): Punt if above function returns true.
3161
3162 2006-06-21  Richard Guenther  <rguenther@suse.de>
3163
3164         * configure: Regenerated.
3165
3166 2006-06-21  Joseph Myers  <joseph@codesourcery.com>
3167
3168         * config/mips/mips.c (function_arg): Where one part of a
3169         complex argument is in registers and the other part in the stack,
3170         return a REG not a PARALLEL.
3171
3172 2006-06-21  Mark Mitchell  <mark@codesourcery.com>
3173
3174         * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
3175         when cross-compiling.  Do not substitute libstdcxx_incdir.
3176         * configure: Regenerated.
3177
3178 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
3179
3180         * varasm.c (mergeable_string_section): Check for embedded NULs and
3181         NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
3182         rather than TREE_STRING_LENGTH bytes.
3183
3184 2006-06-21  Richard Guenther  <rguenther@suse.de>
3185
3186         * ggc-page.c (extra_order_size_table): Add var_ann_d,
3187         tree_ssa_name, bitmap_element and phi_node with 4 arguments
3188         sizes.
3189
3190 2006-06-21  Richrad Guenther  <rguenther@suse.de>
3191
3192         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
3193         Limit iteration over the dominators.
3194
3195 2006-06-20  Roger Sayle  <roger@eyesopen.com>
3196
3197         * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
3198         (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
3199
3200 2006-06-20  Richard Guenther  <rguenther@suse.de>
3201         Michael Matz  <matz@suse.de>
3202
3203         * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
3204         function.
3205         * alloc-pool.c (free_alloc_pool_if_empty): New function.
3206         * et-forest.h (et_free_pools): Prototype new function.
3207         * et-forest.c (et_free_tree_force): Free parent occurrence.
3208         (et_free_pools): New function.
3209         * dominance.c (free_dominance_info): Free et-forest alloc
3210         pools.
3211
3212 2006-06-20  Roger Sayle  <roger@eyesopen.com>
3213
3214         * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
3215         integer modes, attempt to directly construct an integer constant.
3216
3217         * fold-const.c (native_encode_vector): Determine the size of each
3218         element from the vector type instead of the first vector element.
3219
3220         * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
3221         if all of its elements/components are constant.
3222         (build_constructor_from_list): Likewise.
3223
3224 2006-06-20  Zdenek Dvorak <dvorakz@suse.cz>
3225
3226         PR tree-optimization/27331
3227         * tree-data-ref.c (free_data_ref): New function.
3228         (create_data_ref): Fail if the data reference has unknown access
3229         function.
3230         (free_data_refs): Use free_data_ref.
3231
3232 2006-06-19  Andrew Pinski  <pinskia@gmail.com>
3233
3234         PR middle-end/28075
3235         * tree-inline.c (setup_one_parameter): Strip useless
3236         type conversion before adding it to the IR.
3237         (declare_return_variable): Likewise.
3238
3239 2006-06-19  Martin Michlmayr  <tbm@cyrius.com>
3240
3241         PR c/27149
3242         * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
3243
3244 2006-06-19  Mike Stump  <mrs@apple.com>
3245
3246         * tree.c (variably_modified_type_p): VM arguments don't make the
3247         type a VM type.
3248
3249 2006-06-19  Richard Guenther  <rguenther@suse.de>
3250
3251         * tree-ssa-pre.c (try_combine_conversion): Strip useless
3252         type conversions after folding.
3253
3254 2006-06-19  Richard Guenther  <rguenther@suse.de>
3255
3256         * ggc-page.c (extra_order_size_tab): Add entries with
3257         size of struct function and basic_block.
3258         (size_lookup): Extend to cover sizes up to 511.
3259         (ggc_alloc_stat): Adjust user.
3260         (ggc_pch_count_object): Likewise.
3261         (ggc_pch_alloc_object): Likewise.
3262         (ggc_pch_write_object): Likewise.
3263
3264 2006-06-19  Zdenek Dvorak <dvorakz@suse.cz>
3265
3266         * tree-ssa-loop-niter.c (implies_ge_p): New function.
3267         (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
3268         correctly.
3269
3270 2006-06-19  Denis Chertykov  <denisc@overta.ru>
3271
3272         * config/avr/libgcc.S : Correct my wrong previous commit.
3273
3274 2006-06-19  Roger Sayle  <roger@eyesopen.com>
3275
3276         PR target/27861
3277         * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
3278         have stripped a SUBREG from the shift count, so we may need to
3279         convert_to_mode back to the type's mode before calling make_tree.
3280         Use new_amount instead of amount to avoid expanding a tree twice.
3281
3282 2006-06-19  Richard Guenther  <rguenther@suse.de>
3283
3284         PR middle-end/28045
3285         * fold-const.c (operand_equal_p): Check if the argument types
3286         have the same precision before stripping NOPs.
3287
3288 2006-06-19  Daniel Berlin  <dberlin@dberlin.org>
3289
3290         Fix PR tree-optimization/27341
3291         * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
3292         statement we get.
3293         * tree-complex.c (pass_lower_complex): Update SMT usage.
3294
3295 2006-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
3296
3297         * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
3298         Add a new alternative to the constraint strings. Add move of
3299         operand 1 to 3 to the splitter definition.
3300         ("doloop_si_long"): Second contraint alternative removed.
3301
3302 2006-06-08  Anatoly Sokolov <aesok@post.ru>
3303
3304         * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
3305         (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
3306         __AVR_HAVE_LPMX__.
3307         (AVR_HAVE_MOVW) Define.
3308         (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
3309         (ASM_SPEC): Add avr25.
3310         (LINK_SPEC): Add avr25.
3311         * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
3312         (base_arch_s): Add new member 'have_movw_lpmx'.
3313         (avr_arch_types): Init 'have_movw_lpmx'.
3314         (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
3315         attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
3316         attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
3317         (avr_override_options): Init 'avr_have_movw_lpmx_p'.
3318         (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
3319         AVR_HAVE_MOVW.
3320         (avr_file_start): Do not output '.arh' derective.
3321         * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
3322         (__do_copy_data): Use __AVR_HAVE_LPMX__.
3323         * config/avr/avr.md (mcu_enhanced): Delete.
3324         (mcu_have_movw): Define.
3325         (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
3326         (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
3327         * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
3328         (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
3329         attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
3330         attiny861 and at86rf401 devices.
3331
3332 2006-06-18  Jie Zhang  <jie.zhang@analog.com>
3333
3334         * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
3335         of 4096.
3336
3337 2006-06-17  Karl Berry  <karl@gnu.org>
3338
3339         * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
3340         doc/gccint.texi, doc/install.texi (@dircategory): Use
3341         "Software development" instead of "Programming", following
3342         the Free Software Directory.
3343
3344 2006-06-17  Alexandre Oliva  <aoliva@redhat.com>
3345
3346         * config/i386/i386.c (legitimate_tls_address)
3347         <TARGET_GNU2_TLS>: Add tp after DTPOFF.
3348         * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
3349         (*tls_dynamic_gnu2_combine_64): Likewise.
3350
3351 2006-06-16  Richard Guenther  <rguenther@suse.de>
3352
3353         PR middle-end/27116
3354         * fold-const.c (negate_expr_p): Do not introduce undefined
3355         overflow in negating INTEGER_CSTs.
3356         (fold_negate_expr): Rename from negate_expr.  Revert last
3357         change for folding BIT_NOT_EXPR.  Change semantics to
3358         return NULL_TREE for non-simplified negations.  Do not
3359         strip type conversions and unify type handling.
3360         (negate_expr): New function, wrap around fold_negate_expr
3361         but ensure building a tree always.  Strip type conversions
3362         here, fold to result type.
3363         (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
3364
3365 2006-06-16  Roger Sayle  <roger@eyesopen.com>
3366
3367         PR middle-end/27802
3368         * reg-stack.c (subst_stack_regs): Handle noreturn function calls
3369         that (would) return their results in stack registers.
3370
3371 2006-06-16  Michael Matz  <matz@suse.de>
3372         Richard Guenther  <rguenther@suse.de>
3373
3374         * fold-const.c (fold_truthop): Only return new tree node if
3375         we canonicalized something.
3376
3377 2006-06-16  Richard Guenther  <rguenther@suse.de>
3378
3379         * function.h (enum function_frequency): Move declaration
3380         out of struct function.
3381         (struct function): Move bool fields and the enum to the bitfield
3382         section.  Reorder elements to avoid padding.  Remove unused
3383         fields left over from the RTL inliner removal.
3384         * function.c (free_after_compilation): Do not zero removed fields.
3385         * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
3386         (ipa-type-escape.o): Likewise.
3387
3388 2006-06-16  Richard Guenther  <rguenther@suse.de>
3389
3390         * cgraph.h (struct cgraph_local_info): Turn bool elements
3391         into a bitfield.
3392         (struct cgraph_node): Likewise.
3393         (struct cgraph_varpool_node): Likewise.
3394
3395 2006-06-15  Richard Guenther  <rguenther@suse.de>
3396
3397         * fold-const.c (fold_truth_not_expr): Rename from
3398         invert_truthvalue.  Give it fold_* semantics to avoid
3399         generating garbage.
3400         (invert_truthvalue): New function.  Wrapper around
3401         fold_truth_not_expr.
3402         (optimize_minmax_comparison): Avoid creating garbage.
3403         (fold_unary): Use fold_truth_not_expr for folding
3404         TRUTH_NOT_EXPR.
3405         (fold_ternary): Replace uses of invert_truthvalue with
3406         fold_truth_not_expr where applicable.
3407         * tree.h (fold_truth_not_expr): Prototype.
3408
3409 2006-06-16  Richard Guenther  <rguenther@suse.de>
3410
3411         PR tree-optimization/27781
3412         * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
3413         * ipa-pure-const.c (target.h): Include.
3414         (analyze_function): Do not analyze functions that do not
3415         bind locally.
3416
3417 2006-06-15  Andrew MacLeod  <amacleod@redhat.com>
3418
3419         PR middle-end/27793
3420         * tree-dfa.c (referenced_vars_dup_list): Remove.
3421         (find_referenced_vars): Remove assert.
3422         (referenced_var_check_and_insert): Replace dup list with assert.
3423         * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
3424         * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
3425
3426 2006-06-15  Richard Guenther  <rguenther@suse.de>
3427
3428         * tree-ssa-structalias.c (alias_get_name): Avoid creating
3429         extra unused identifiers if not dumping.
3430         (create_variable_info_for): Likewise.
3431
3432 2006-06-15  Zdenek Dvorak <dvorakz@suse.cz>
3433
3434         * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
3435         (derive_constant_upper_bound): Derive more precise upper bound in
3436         common cases.  Return type changed to double_int.
3437         (record_estimate): Reflect the changed return type of
3438         derive_constant_upper_bound.
3439         * double-int.c (double_int_zext, double_int_sext): Fix.
3440
3441 2006-06-15  Paolo Bonzini  <bonzini@gnu.org>
3442
3443         * configure.ac (CFLAGS): Get them from the toplevel or from the
3444         configure invocation.
3445         * configure: Regenerate.
3446         * Makefile.in (CFLAGS): Substitute value provided by configure.
3447
3448 2006-06-14  Mark Mitchell  <mark@codesourcery.com>
3449
3450         PR c++/26559
3451         * c-common.h (c_finish_omp_atomic): Adjust declaration.
3452         * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
3453         rather than calling add_stmt on it.
3454         * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
3455
3456 2006-06-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3457
3458         PR middle-end/27959
3459         * reload1.c (reload): Remove registers returned by update_eliminables
3460         from used_spill_regs.
3461
3462 2006-06-13  DJ Delorie  <dj@redhat.com>
3463
3464         * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
3465
3466 2006-06-13  Carlos O'Donell  <carlos@codesourcery.com>
3467
3468         * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
3469         html__strip_dir, html__mkdir_p. Enhance install-html target.
3470         * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
3471         * configure: Regenerate.
3472
3473 2006-06-13  Fariborz Jahanian <fjahanian@apple.com>
3474
3475         * fold-const.c (fold_cond_expr_with_comparison): Check for
3476         Objective-C++ as language in deciding COND_EXPR transformation.
3477
3478 2006-06-06  J"orn Rennecke <joern.rennecke@st.com>
3479
3480         PR target/28014:
3481         * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
3482         * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
3483         * config/sh/lib1funcs.h (SL, SL1): Define.
3484         * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
3485         * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
3486         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
3487         (OBJS_Os_4_200): New variable.
3488         ($(T)libgcc-Os-4-200.a): Use it.
3489         * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
3490         when dividing 1 and/or by 0.
3491
3492 2006-06-13  Roger Sayle  <roger@eyesopen.com>
3493
3494         * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
3495         before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
3496         * configure: Regenerate.
3497
3498 2006-06-13  Jie Zhang  <jie.zhang@analog.com>
3499
3500         * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
3501         for real instruction.
3502
3503 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3504
3505         PR middle-end/26807
3506         * haifa-sched.c (check_cfg): Handle special case.
3507
3508 2006-06-13  Eric Botcazou  <ebotcazou@adacore.com>
3509
3510         PR debug/26754
3511         * gimplify.c (declare_tmp_vars): Rename into declare_vars.
3512         Add debug_info parameter.  Chain the vars to the BLOCK instead
3513         of the BIND_EXPR if debug info are requested for them.
3514         (pop_gimplify_context): Adjust for above change.
3515         (gimple_add_tmp_var): Likewise.
3516         * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
3517         Add bool parameter.
3518         * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
3519         (convert_local_reference): Likewise.
3520         (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
3521         (finalize_nesting_tree_1): Request that debug info be emitted
3522         for debug_var_chain.
3523
3524 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3525
3526         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
3527         for PR target/27863.
3528