OSDN Git Service

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