OSDN Git Service

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