OSDN Git Service

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