OSDN Git Service

fixincludes:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-07-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2
3         PR bootstrap/20437
4         * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
5         dependencies.
6
7 2006-07-08  Matthias Klose  <doko@debian.org>
8
9         * doc/sourcebuild.texi: Fix typo.
10
11 2006-07-07  Mike Stump  <mrs@apple.com>
12
13         * toplev.c (process_options): Don't give -ffunction-sections may
14         affect debugging warning for Mach-O.
15
16 2006-07-07  James E Wilson  <wilson@specifix.com>
17
18         * config/mips/mips.md (cpu): Add sb1a.
19         * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
20         addition to sb1.  Adjust comments to clarify SB-1A differences from
21         SB-1.
22         (ir_sb1a_load): New.  Modify bypasses to use it.
23         (ir_sb1a_simple_alu): Likewise.
24         * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
25         (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
26         (mips_issue_rate): Add PROCESSOR_SB1A.
27         (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
28         * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
29         (TARGET_SB1): Add PROCESSOR_SB1A check.
30         (TUNE_SB1): Likewise.
31
32         * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
33         * config/mips/mips.c (mips_store_data_bypass_p): New.
34         * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
35         store_data_bypass_p.
36
37 2006-07-08  Paul Brook  <paul@codesourcery.com>
38
39         PR target/27991
40         * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
41
42 2006-07-07   Richard Guenther  <rguenther@suse.de>
43
44         PR middle-end/28268
45         * tree.h (build_one_cst): Declare.
46         * tree.c (build_one_cst): New function.
47         * tree-ssa-math-opts.c (get_constant_one): Remove.
48         (insert_reciprocals): Use build_one_cst.
49         * fold-const.c (fold_plusminus_mult): Likewise.
50
51 2006-07-07  Roger Sayle  <roger@eyesopen.com>
52
53         * pointer-set.c (pointer_set_destroy): Correct whitespace.
54         * cfgloopanal.c (dump_graph): Likewise.
55         * dojump.c (discard_pending_stack_adjust): Likewise.
56         * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
57         Likewise.
58         * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
59         * function.c (finalize_block_changes): Likewise.
60         * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
61         * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
62         * rtl.c (dump_rtx_statistics): Likewise.
63         * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars): 
64         Likewise.
65         * varray.c (dump_varray_statistics): Likewise.
66         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
67         decode_decimal64, encode_decimal128, decode_decimal128,
68         decimal_real_to_decimal): Likewise.
69
70 2006-07-07  Richard Guenther  <rguenther@suse.de>
71
72         PR tree-optimization/28187
73         * tree-vrp.c (vrp_operand_equal_p): New function.
74         (vrp_bitmap_equal_p): Likewise.
75         (update_value_range): Use them to compare old and new
76         max and min values.
77
78 2006-07-06  Roger Sayle  <roger@eyesopen.com>
79
80         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
81         a default case to switch statement to silence compiler warnings.
82
83 2006-07-06  Roger Sayle  <roger@eyesopen.com>
84
85         PR target/27968
86         * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether 
87         the configured assembler supports the x87's ffreep mnemonic.
88         * configure: Regenerate.
89         * config.in: Regenerate.
90
91         * config/i386/i386.c (output_387_ffreep): New function.
92         (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
93         (output_387_reg_move): Likewise.
94
95 2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>
96
97         Port to hosts whose 'sort' and 'tail' implementations
98         treat operands with leading '+' as file names, as POSIX
99         has required since 2001.  However, make sure the code still
100         works on pre-POSIX hosts.
101         * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
102         which says you should use "tail -c +N" rather than "tail +Nc".
103         Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
104
105 2006-07-06  Zdenek Dvorak <dvorakz@suse.cz>
106
107         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
108         argument name.
109
110 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
111
112         PR target/28150
113         * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
114         PRE_{INC,DEC} of TFmode.
115
116 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
117             Alan Modra  <amodra@bigpond.net.au>
118
119         PR target/28170
120         * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
121         bounds. Simplify.
122
123 2006-07-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
124
125         PR target/28285
126         * config/alpha/predicates.md (alpha_swapped_comparison_operator):
127         Remove duplicate gtu.
128
129 2006-07-05  Jason Merrill  <jason@redhat.com>
130
131         PR c++/13983
132         PR c++/17519
133         * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
134         * c-common.c (handle_packed_attribute): So don't copy it here.
135         * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
136
137 2006-07-05  Mike Stump  <mrs@apple.com>
138
139         * doc/invoke.texi (Invoking G++): Clarify prose for g++.
140
141 2006-07-05  H.J. Lu  <hongjiu.lu@intel.com>
142
143         PR target/26146
144         * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
145
146 2006-07-05  Richard Guenther  <rguenther@suse.de>
147
148         PR target/28158
149         * config/i386/i386.md (*negdf2_1): Restrict pattern to
150         TARGET_SSE2 targets if using SSE math.
151         (*absdf2_1): Likewise.
152
153 2006-07-05  Richard Guenther  <rguenther@suse.de>
154
155         PR tree-optimization/28162
156         * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
157         make sure to convert the operands to the correct type.
158
159 2006-07-04  Paolo Bonzini  <bonzini@gnu.org>
160
161         PR tree-optimization/28218
162
163         * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
164         to calculate and free the dominator information.
165             
166 2006-07-04  Peter O'Gorman  <peter@pogma.com>
167
168         * mklibgcc.in: chmod 644 before ranlib during install.
169
170 2006-07-04  Andrew Stubbs <andrew.stubbs@st.com>
171             J"orn Rennecke <joern.rennecke@st.com>
172
173         * configure.ac (.eh_frame data check): Use diff -b.
174
175 2006-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
176
177         PR bootstrap/18058
178         * Makefile.in (BUILD_RTL): Add build/vec.o.
179         (build/gencondmd.o): Filter out -fkeep-inline-functions.
180         (build/genextract): Delete.
181         (build/genautomata): Likewise.
182
183 2006-07-04  Alan Modra  <amodra@bigpond.net.au>
184
185         PR target/28207
186         * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
187         128-bit IBM long doubles for ABI_V4.
188
189 2006-07-03  Eric Botcazou  <ebotcazou@adacore.com>
190
191         * tree.c (range_in_array_bounds_p): New predicate.
192         * tree.h (range_in_array_bounds_p): Declare it.
193         * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
194         return a less conservative answer.
195         * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
196         and flag 'is_group'.
197         (IS_ELEMENT_FOR_GROUP): New macro.
198         (FOR_EACH_ACTUAL_CHILD): Likewise.
199         (next_child_for_group): New helper function.
200         (can_completely_scalarize_p): Take into account groups.
201         (sra_hash_tree): Handle RANGE_EXPR.
202         (sra_elt_eq): Likewise.
203         (lookup_element): Be prepared for handling groups.
204         (is_valid_const_index): Delete.
205         (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
206         instead of is_valid_const_index.
207         <ARRAY_RANGE_REF>: New case.
208         (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
209         is_valid_const_index.
210         <ARRAY_RANGE_REF>: Do not unconditionally punt.
211         (scan_dump): Dump info for groups too.
212         (decide_instantiation_1): Likewise.
213         (decide_block_copy): Assert that the element is not a group.
214         Propagate decision to groups.
215         (generate_one_element_ref): Handle RANGE_EXPR.
216         (mark_no_warning): Iterate over actual childs.
217         (generate_copy_inout): Likewise.
218         (generate_element_copy): Likewise.
219         (generate_element_zero): Likewise.
220         (generate_element_init_1): Likewise.
221         (dump_sra_elt_name): Handle RANGE_EXPR.
222
223 2006-07-03  Roger Sayle  <roger@eyesopen.com>
224
225         PR tree-optimization/26251
226         * tree-ssa-threadupdate.c (redirection_block_p): New function.
227         (thread_block): When optimizing for size refuse to thread jumps
228         that would require duplication of blocks other than redirection
229         blocks.
230
231 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
232
233         * configure.ac: Fix thinko in previous check-in.
234         * configure: Regenerate.
235
236 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
237
238         PR other/27063
239         * configure.ac (for lang...): Simplify nesting of conditionals.
240         Test subdir_requires for non-enabled languages.  Move processing
241         of lang_opt_files and lang_tree_fiels below that test.
242         * configure: Regenerate.
243         * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
244
245 2006-07-01  Martin Michlmayr  <tbm@cyrius.com>
246
247         * doc/gcov.texi (Invoking Gcov): Add a missing word.
248
249 2006-06-30  Kazu Hirata  <kazu@codesourcery.com>
250
251         * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
252         comment typos.
253
254 2006-06-29  Jason Merrill  <jason@redhat.com>
255
256         PR c++/26905
257         PR c++/26612
258         PR c++/27000
259         PR c++/26984
260         PR c++/19134
261         * tree.c (build_decl_stat): Don't hande #pragma visibility here.
262         * c-common.c (c_determine_visibility): Handle it here.
263         * c-decl.c (finish_decl): Call c_determine_visibility for 
264         functions, too.
265         * flags.h (enum symbol_visibility): Sort from most to least visibility.
266         * tree.h: Likewise.
267         * varasm.c (default_assemble_visibility): Likewise.
268         * c-common.c (handle_visibility_attribute): Complain about trying
269         to give visibility to an already defined class, or trying to change
270         declared visibility. Always attach the attribute.
271
272         PR c++/26905
273         PR c++/21675
274         PR c++/17470
275         * attribs.c (decl_attributes): Ignore type-in-place attributes
276         once the type has been defined.
277
278 2006-06-29  Roger Sayle  <roger@eyesopen.com>
279
280         PR middle-end/27428
281         * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
282         to indicate the cpplib has issued an error message for us.
283
284 2006-06-29  Asher Langton  <langton2@llnl.gov>
285
286         PR target/25765
287         * config/i386/i386.c (ix86_output_function_epilogue): Don't
288         insert a label at the end of an function under Mach-O.
289         
290 2006-06-29  Eric Christopher  <echristo@apple.com>
291             Evan Cheng  <evan.cheng@apple.com>
292
293         * predicates.md (vector_all_ones_operand): New.
294         (nonimmediate_or_sse_const_operand): Ditto.
295         * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
296         * config/i386/i386.c (standard_sse_constant_opcode): Define.
297         (standard_sse_mode_p): Ditto.
298         (standard_sse_constant_p): Add case for -1 vector.
299         (ix86_expand_vector_move): Try to use.
300         * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
301         Call standard_sse_constant_opcode.
302         (*movv4sf_internal): Ditto.
303         (*movv2df_internal): Ditto.
304
305 2006-06-29  Roger Sayle  <roger@eyesopen.com>
306
307         * genpreds.c (write_match_code_switch): Correctly use XSTR instead
308         of XEXP to extract the operands of a MATCH_CODE rtx.
309
310 2006-06-28  Andrew Pinski  <pinskia@gmail.com>
311
312         * tree.c (tree_size): Do not waste tail padding in
313         struct tree_string and make the size be the same as
314         build_string will generate.
315
316 2006-06-28  Jason Merrill  <jason@redhat.com>
317
318         PR c++/27768
319         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
320         may_aliases already in the tag's annotations to the bitmap.
321
322 2006-06-28  Roger Sayle  <roger@eyesopen.com>
323
324         * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
325
326 2006-06-28  Roger Sayle  <roger@eyesopen.com>
327
328         * genpreds.c (generate_switch_p): New function.
329         (add_mode_tests): Push the new mode test down inside an AND expr
330         if this allows the switch-suitable MATCH_CODE to be near the root.
331         (write_match_code_switch): New function to write a MATCH_CODE as
332         a switch statement.
333         (write_predicate_stmts): New function to write a predicate RTX
334         expression as a sequence of statements.
335         (write_one_predicate_function): Use write_predicate_stmts.
336         (write_tm_constrs_h): Likewise.
337
338 2006-06-26  Fred Fish  <fnf@specifix.com>
339
340         * config/mips/t-sb1: New file.
341         * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
342         tmake_file list.
343
344 2006-06-26  DJ Delorie  <dj@redhat.com>
345
346         * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
347
348 2006-06-26  Naveen H.S  <naveenh@kpitcummins.com>
349             Jayant Sonar  <jayants@kpitcummins.com>
350             Jaydeep Vipradas  <jaydeepv@kpitcummins.com>
351
352         * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
353         (subsi3, subsi3_1, subsi3_2): New.
354         * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
355         * config/m32c/mov.md (SI mov peephole): New.
356         * config/m32c/m32.c (m32c_immd_dbl_mov): New.
357         * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
358
359 2006-06-26  Olivier Hainque  <hainque@adacore.com>
360
361         * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
362         a CALL_EXPR target function declaration.
363
364 2006-06-26  Richard Guenther  <rguenther@suse.de>
365
366         * tree.c (build_string): Do not waste tail padding in
367         struct tree_string.
368
369 2006-06-26  Richard Guenther  <rguenther@suse.de>
370
371         * ggc-page.c (init_ggc): Add missing element to size_lookup
372         table.
373
374         Revert
375         2006-06-23  Richard Guenther  <rguenther@suse.de>
376
377         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
378         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
379         alignment requests instead.  Add verification code.
380         Add struct tree_function_decl and struct tree_binfo size to
381         extra_order_size_table.  Add missing element to size_lookup
382         table.
383
384 2006-06-25  Eric Botcazou  <ebotcazou@adacore.com>
385
386         PR middle-end/28151
387         * fold-const.c (const_binop): Be prepared for self returning zero.
388         Simplify code handling complex values.
389
390 2006-06-24  Olivier Hainque  <hainque@adacore.com>
391
392         * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
393         (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
394         aggregate types.
395
396 2006-06-24  Olivier Hainque  <hainque@adacore.com>
397
398         * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
399         ARRAY_REF, so have the callback called for the low bound expression.
400
401 2006-06-23  Janis Johnson  <janis187@us.ibm.com>
402
403         * tree.h (DECIMAL_FLOAT_TYPE_P): New.
404         * c-typeck.c (c_common_type): Disallow operations on decimal float
405         types and other float types.
406         * convert.c (convert_to_real): Don't ignore conversions involving
407         decimal float types.
408
409 2006-06-23  Olivier Hainque  <hainque@adacore.com>
410
411         * tree.c (max_int_size_in_bytes): New function, inspired from
412         code in function.c:assign_temp.
413         * tree.h (max_int_size_in_bytes): Declare.
414         * function.c (assign_temp): Use it.
415         * gimplify.c (create_tmp_var): Relax the assertions on the type
416         properties, not mandating constant size any more.
417         (force_constant_size): New static function.
418         (gimple_add_tmp_var): Use it, forcing variable size to a
419         constant upper bound if it is not constant on entry.
420
421 2006-06-23  Danny Smith   <dannysmith@users.sourceforge.net>
422
423         PR target/27789
424         * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
425         for initialization and setting of one_only flag to ...
426         (i386_pe_encode_section_info): ...here.
427         (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
428         Recheck that the symbol has not been defined.
429
430 2006-06-23  Richard Guenther  <rguenther@suse.de>
431
432         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
433         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
434         alignment requests instead.  Add verification code.
435         Add struct tree_function_decl and struct tree_binfo size to
436         extra_order_size_table.  Add missing element to size_lookup
437         table.
438
439 2006-06-22  Roger Sayle  <roger@eyesopen.com>
440             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
441
442         PR middle-end/28131
443         * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
444         call to lang_hooks.types.type_for_mode returned NULL_TREE.
445
446 2006-06-23  Ben Elliston  <bje@au.ibm.com>
447
448         * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
449         negate dn -- manipulate it directly.
450
451 2006-06-22  Roger Sayle  <roger@eyesopen.com>
452             Steven Bosscher  <stevenb.gcc@gmail.com>
453
454         PR target/27531
455         * reload1.c (gen_reload): Call mark_jump_label on the new insns
456         generated by gen_move_insn to add REG_LABEL notes if necessary.
457
458 2006-06-22  Bob Wilson  <bob.wilson@acm.org>
459
460         * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
461         (leaf_entry): Remove use of MIN_ESA.
462
463 2006-06-22  Zdenek Dvorak <dvorakz@suse.cz>
464
465         PR rtl-optimization/28121
466         * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
467         the entry edge.
468
469 2006-06-21  DJ Delorie  <dj@redhat.com>
470
471         * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
472         (TN-16C-A156A/E).
473         (mulhisi3_r): Likewise.
474
475 2006-06-21  Richard Sandiford  <richard@codesourcery.com>
476
477         PR middle-end/28034
478         * coverage.c (coverage_counter_alloc): Leave the index type
479         unspecified.
480         (coverage_counter_alloc): Use null arguments for operands 2 and 3
481         of the ARRAY_REF.
482
483 2006-06-21  Andrew Pinski  <pinskia@physics.uc.edu>
484
485         * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
486         section from the "Options for Code Generation Conventions".
487
488 2006-06-21  Richard Henderson  <rth@redhat.com>
489
490         PR target/26347
491         PR target/27082
492         * config/alpha/predicates.md (small_symbolic_operand): Deny weak
493         symbols.
494         (global_symbolic_operand): Allow weak symbols, even if local_p.
495
496 2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
497
498         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
499         (find_interesting_uses_address): Punt if above function returns true.
500
501 2006-06-21  Richard Guenther  <rguenther@suse.de>
502
503         * configure: Regenerated.
504
505 2006-06-21  Joseph Myers  <joseph@codesourcery.com>
506
507         * config/mips/mips.c (function_arg): Where one part of a
508         complex argument is in registers and the other part in the stack,
509         return a REG not a PARALLEL.
510
511 2006-06-21  Mark Mitchell  <mark@codesourcery.com>
512
513         * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
514         when cross-compiling.  Do not substitute libstdcxx_incdir.
515         * configure: Regenerated.
516
517 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
518
519         * varasm.c (mergeable_string_section): Check for embedded NULs and
520         NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
521         rather than TREE_STRING_LENGTH bytes.
522
523 2006-06-21  Richard Guenther  <rguenther@suse.de>
524
525         * ggc-page.c (extra_order_size_table): Add var_ann_d,
526         tree_ssa_name, bitmap_element and phi_node with 4 arguments
527         sizes.
528
529 2006-06-21  Richrad Guenther  <rguenther@suse.de>
530
531         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
532         Limit iteration over the dominators.
533
534 2006-06-20  Roger Sayle  <roger@eyesopen.com>
535
536         * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
537         (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
538
539 2006-06-20  Richard Guenther  <rguenther@suse.de>
540         Michael Matz  <matz@suse.de>
541
542         * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
543         function.
544         * alloc-pool.c (free_alloc_pool_if_empty): New function.
545         * et-forest.h (et_free_pools): Prototype new function.
546         * et-forest.c (et_free_tree_force): Free parent occurrence.
547         (et_free_pools): New function.
548         * dominance.c (free_dominance_info): Free et-forest alloc
549         pools.
550
551 2006-06-20  Roger Sayle  <roger@eyesopen.com>
552
553         * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
554         integer modes, attempt to directly construct an integer constant.
555
556         * fold-const.c (native_encode_vector): Determine the size of each
557         element from the vector type instead of the first vector element.
558
559         * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
560         if all of its elements/components are constant.
561         (build_constructor_from_list): Likewise.
562
563 2006-06-20  Zdenek Dvorak <dvorakz@suse.cz>
564
565         PR tree-optimization/27331
566         * tree-data-ref.c (free_data_ref): New function.
567         (create_data_ref): Fail if the data reference has unknown access
568         function.
569         (free_data_refs): Use free_data_ref.
570
571 2006-06-19  Andrew Pinski  <pinskia@gmail.com>
572
573         PR middle-end/28075
574         * tree-inline.c (setup_one_parameter): Strip useless
575         type conversion before adding it to the IR.
576         (declare_return_variable): Likewise.
577
578 2006-06-19  Martin Michlmayr  <tbm@cyrius.com>
579
580         PR c/27149
581         * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
582
583 2006-06-19  Mike Stump  <mrs@apple.com>
584
585         * tree.c (variably_modified_type_p): VM arguments don't make the
586         type a VM type.
587
588 2006-06-19  Richard Guenther  <rguenther@suse.de>
589
590         * tree-ssa-pre.c (try_combine_conversion): Strip useless
591         type conversions after folding.
592
593 2006-06-19  Richard Guenther  <rguenther@suse.de>
594
595         * ggc-page.c (extra_order_size_tab): Add entries with
596         size of struct function and basic_block.
597         (size_lookup): Extend to cover sizes up to 511.
598         (ggc_alloc_stat): Adjust user.
599         (ggc_pch_count_object): Likewise.
600         (ggc_pch_alloc_object): Likewise.
601         (ggc_pch_write_object): Likewise.
602
603 2006-06-19  Zdenek Dvorak <dvorakz@suse.cz>
604
605         * tree-ssa-loop-niter.c (implies_ge_p): New function.
606         (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
607         correctly.
608
609 2006-06-19  Denis Chertykov  <denisc@overta.ru>
610
611         * config/avr/libgcc.S : Correct my wrong previous commit.
612
613 2006-06-19  Roger Sayle  <roger@eyesopen.com>
614
615         PR target/27861
616         * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
617         have stripped a SUBREG from the shift count, so we may need to
618         convert_to_mode back to the type's mode before calling make_tree.
619         Use new_amount instead of amount to avoid expanding a tree twice.
620
621 2006-06-19  Richard Guenther  <rguenther@suse.de>
622
623         PR middle-end/28045
624         * fold-const.c (operand_equal_p): Check if the argument types
625         have the same precision before stripping NOPs.
626
627 2006-06-19  Daniel Berlin  <dberlin@dberlin.org>
628
629         Fix PR tree-optimization/27341
630         * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
631         statement we get.
632         * tree-complex.c (pass_lower_complex): Update SMT usage.
633
634 2006-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
635
636         * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
637         Add a new alternative to the constraint strings. Add move of
638         operand 1 to 3 to the splitter definition.
639         ("doloop_si_long"): Second contraint alternative removed.
640
641 2006-06-08  Anatoly Sokolov <aesok@post.ru>
642
643         * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
644         (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
645         __AVR_HAVE_LPMX__.
646         (AVR_HAVE_MOVW) Define.
647         (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
648         (ASM_SPEC): Add avr25.
649         (LINK_SPEC): Add avr25.
650         * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
651         (base_arch_s): Add new member 'have_movw_lpmx'.
652         (avr_arch_types): Init 'have_movw_lpmx'.
653         (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
654         attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
655         attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
656         (avr_override_options): Init 'avr_have_movw_lpmx_p'.
657         (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
658         AVR_HAVE_MOVW.
659         (avr_file_start): Do not output '.arh' derective.
660         * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
661         (__do_copy_data): Use __AVR_HAVE_LPMX__.
662         * config/avr/avr.md (mcu_enhanced): Delete.
663         (mcu_have_movw): Define.
664         (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
665         (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
666         * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
667         (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
668         attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
669         attiny861 and at86rf401 devices.
670
671 2006-06-18  Jie Zhang  <jie.zhang@analog.com>
672
673         * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
674         of 4096.
675
676 2006-06-17  Karl Berry  <karl@gnu.org>
677
678         * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
679         doc/gccint.texi, doc/install.texi (@dircategory): Use
680         "Software development" instead of "Programming", following
681         the Free Software Directory.
682
683 2006-06-17  Alexandre Oliva  <aoliva@redhat.com>
684
685         * config/i386/i386.c (legitimate_tls_address)
686         <TARGET_GNU2_TLS>: Add tp after DTPOFF.
687         * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
688         (*tls_dynamic_gnu2_combine_64): Likewise.
689
690 2006-06-16  Richard Guenther  <rguenther@suse.de>
691
692         PR middle-end/27116
693         * fold-const.c (negate_expr_p): Do not introduce undefined
694         overflow in negating INTEGER_CSTs.
695         (fold_negate_expr): Rename from negate_expr.  Revert last
696         change for folding BIT_NOT_EXPR.  Change semantics to
697         return NULL_TREE for non-simplified negations.  Do not
698         strip type conversions and unify type handling.
699         (negate_expr): New function, wrap around fold_negate_expr
700         but ensure building a tree always.  Strip type conversions
701         here, fold to result type.
702         (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
703
704 2006-06-16  Roger Sayle  <roger@eyesopen.com>
705
706         PR middle-end/27802
707         * reg-stack.c (subst_stack_regs): Handle noreturn function calls
708         that (would) return their results in stack registers.
709
710 2006-06-16  Michael Matz  <matz@suse.de>
711         Richard Guenther  <rguenther@suse.de>
712
713         * fold-const.c (fold_truthop): Only return new tree node if
714         we canonicalized something.
715
716 2006-06-16  Richard Guenther  <rguenther@suse.de>
717
718         * function.h (enum function_frequency): Move declaration
719         out of struct function.
720         (struct function): Move bool fields and the enum to the bitfield
721         section.  Reorder elements to avoid padding.  Remove unused
722         fields left over from the RTL inliner removal.
723         * function.c (free_after_compilation): Do not zero removed fields.
724         * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
725         (ipa-type-escape.o): Likewise.
726
727 2006-06-16  Richard Guenther  <rguenther@suse.de>
728
729         * cgraph.h (struct cgraph_local_info): Turn bool elements
730         into a bitfield.
731         (struct cgraph_node): Likewise.
732         (struct cgraph_varpool_node): Likewise.
733
734 2006-06-15  Richard Guenther  <rguenther@suse.de>
735
736         * fold-const.c (fold_truth_not_expr): Rename from
737         invert_truthvalue.  Give it fold_* semantics to avoid
738         generating garbage.
739         (invert_truthvalue): New function.  Wrapper around
740         fold_truth_not_expr.
741         (optimize_minmax_comparison): Avoid creating garbage.
742         (fold_unary): Use fold_truth_not_expr for folding
743         TRUTH_NOT_EXPR.
744         (fold_ternary): Replace uses of invert_truthvalue with
745         fold_truth_not_expr where applicable.
746         * tree.h (fold_truth_not_expr): Prototype.
747
748 2006-06-16  Richard Guenther  <rguenther@suse.de>
749
750         PR tree-optimization/27781
751         * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
752         * ipa-pure-const.c (target.h): Include.
753         (analyze_function): Do not analyze functions that do not
754         bind locally.
755
756 2006-06-15  Andrew MacLeod  <amacleod@redhat.com>
757
758         PR middle-end/27793
759         * tree-dfa.c (referenced_vars_dup_list): Remove.
760         (find_referenced_vars): Remove assert.
761         (referenced_var_check_and_insert): Replace dup list with assert.
762         * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
763         * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
764
765 2006-06-15  Richard Guenther  <rguenther@suse.de>
766
767         * tree-ssa-structalias.c (alias_get_name): Avoid creating
768         extra unused identifiers if not dumping.
769         (create_variable_info_for): Likewise.
770
771 2006-06-15  Zdenek Dvorak <dvorakz@suse.cz>
772
773         * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
774         (derive_constant_upper_bound): Derive more precise upper bound in
775         common cases.  Return type changed to double_int.
776         (record_estimate): Reflect the changed return type of
777         derive_constant_upper_bound.
778         * double-int.c (double_int_zext, double_int_sext): Fix.
779
780 2006-06-15  Paolo Bonzini  <bonzini@gnu.org>
781
782         * configure.ac (CFLAGS): Get them from the toplevel or from the
783         configure invocation.
784         * configure: Regenerate.
785         * Makefile.in (CFLAGS): Substitute value provided by configure.
786
787 2006-06-14  Mark Mitchell  <mark@codesourcery.com>
788
789         PR c++/26559
790         * c-common.h (c_finish_omp_atomic): Adjust declaration.
791         * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
792         rather than calling add_stmt on it.
793         * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
794
795 2006-06-14  Andreas Krebbel  <krebbel1@de.ibm.com>
796
797         PR middle-end/27959
798         * reload1.c (reload): Remove registers returned by update_eliminables
799         from used_spill_regs.
800
801 2006-06-13  DJ Delorie  <dj@redhat.com>
802
803         * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
804
805 2006-06-13  Carlos O'Donell  <carlos@codesourcery.com>
806
807         * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
808         html__strip_dir, html__mkdir_p. Enhance install-html target.
809         * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
810         * configure: Regenerate.
811
812 2006-06-13  Fariborz Jahanian <fjahanian@apple.com>
813
814         * fold-const.c (fold_cond_expr_with_comparison): Check for
815         Objective-C++ as language in deciding COND_EXPR transformation.
816
817 2006-06-06  J"orn Rennecke <joern.rennecke@st.com>
818
819         PR target/28014:
820         * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
821         * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
822         * config/sh/lib1funcs.h (SL, SL1): Define.
823         * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
824         * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
825         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
826         (OBJS_Os_4_200): New variable.
827         ($(T)libgcc-Os-4-200.a): Use it.
828         * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
829         when dividing 1 and/or by 0.
830
831 2006-06-13  Roger Sayle  <roger@eyesopen.com>
832
833         * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
834         before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
835         * configure: Regenerate.
836
837 2006-06-13  Jie Zhang  <jie.zhang@analog.com>
838
839         * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
840         for real instruction.
841
842 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
843
844         PR middle-end/26807
845         * haifa-sched.c (check_cfg): Handle special case.
846
847 2006-06-13  Eric Botcazou  <ebotcazou@adacore.com>
848
849         PR debug/26754
850         * gimplify.c (declare_tmp_vars): Rename into declare_vars.
851         Add debug_info parameter.  Chain the vars to the BLOCK instead
852         of the BIND_EXPR if debug info are requested for them.
853         (pop_gimplify_context): Adjust for above change.
854         (gimple_add_tmp_var): Likewise.
855         * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
856         Add bool parameter.
857         * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
858         (convert_local_reference): Likewise.
859         (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
860         (finalize_nesting_tree_1): Request that debug info be emitted
861         for debug_var_chain.
862
863 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
864
865         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
866         for PR target/27863.
867
868 2006-06-13  Richard Guenther  <rguenther@suse.de>
869
870         PR middle-end/27536
871         * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
872
873 2006-06-13  Richard Guenther  <rguenther@suse.de>
874
875         PR tree-optimization/27830
876         * tree-inline.c (copy_body_r): For copying the operand
877         of an ADDR_EXPR make sure to fold &* afterwards.
878
879 2006-06-12  Eric Botcazou  <ebotcazou@adacore.com>
880
881         * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
882         lvalues in the fb_none case with side-effects.
883
884 2006-06-12  Kazu Hirata  <kazu@codesourcery.com>
885
886         * tree-flow.h: Remove the prototype for
887         compute_phi_arg_on_exit.
888         * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
889         protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
890         Remove.
891
892 2006-06-12  Mark Shinwell  <shinwell@codesourcery.com>
893
894         * builtins.c (expand_builtin_return_addr): Only use
895         frame_pointer_rtx when count == 0 and we are expanding
896         __builtin_return_address.
897
898 2006-06-12  Fred Fish  <fnf@specifix.com>
899
900         * config/mips/mips.c (mips_file_start): Create special section
901         ".gcc_compiled_longXX" for o64 ABI as well as EABI.
902
903 2006-06-11  Eric Christopher  <echristo@apple.com>
904
905         PR middle-end/27948
906         * stor-layout.c (place_field): Remove check for
907         remaining_in_alignment when aligning at the end of a run.
908
909 2006-06-11  Eric Christopher  <echristo@apple.com>
910
911         PR 27542
912         * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
913         pragma.
914
915 2006-06-11  Roger Sayle  <roger@eyesopen.com>
916
917         PR target/27858
918         Revert incorrect fix for PR target/27158
919         2006-05-08  Roger Sayle  <roger@eyesopen.com>
920         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
921         of a reg_equiv_constant if the result is a legitimate constant.
922
923 2006-06-11  Roger Sayle  <roger@eyesopen.com>
924
925         PR target/27158
926         * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
927         extract a CONST_VECTOR element and interpret it as an integer.
928         (vspltis_constant): Use const_vector_elt_as_int instead of the
929         macro CONST_VECTOR_ELT in order to handle FP vector modes.
930         * config/rs6000/predicates.md (easy_vector_const): Consider
931         floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
932
933 2006-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
934
935         PR middle-end/27942
936         * stor-layout.c (update_alignment_for_field): Don't add extra
937         alignment for packed non-bitfield fields in ms_bitfield_layout_p
938         code.
939
940 2006-06-09  Ralf Corsepius  <ralf.corsepius@rtems.org>
941
942         * config/mips/t-rtems: Add EL/EB multilib variants.
943
944 2006-06-09  Mike Stump  <mrs@apple.com>
945
946         * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
947
948 2006-06-09  David Daney  <ddaney@avtrex.com>
949
950         * doc/install.texi: Add binutils version recommendation for mips-*-*.
951
952 2006-06-09  Andreas Krebbel  <krebbel1@de.ibm.com>
953
954         * reload.c (find_reloads): Unset force_reload for 'X' constraint.
955
956 2006-06-09  Richard Guenther  <rguenther@suse.de>
957
958         PR tree-optimization/26998
959         * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
960         of signed types, only TYPE_MIN_VALUE is special, but for both,
961         minimum and maximum value.  Likewise VR_ANTI_RANGE is special
962         in this case, as is -fwrapv.
963
964 2006-06-08  Mike Stump  <mrs@apple.com>
965
966         PR target/26427
967         * config/darwin.c (darwin_asm_output_anchor): Disable
968         -fsection-anchors on darwin for now.
969         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
970         * rs6000/rs6000.c (optimization_options): Likewise.
971
972 2006-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
973
974         PR target/27421
975         * config/i386/i386.c (classify_argument): Skip fields with invalid
976         types in unions.
977
978 2006-06-08  Steven Bosscher  <steven@gcc.gnu.org>
979
980         * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
981         (cse_insn): Likewise for the stack_pointer_rtx.
982
983 2006-06-08  Roger Sayle  <roger@eyesopen.com>
984
985         * tree-ssa-dom.c (record_conditions): Only record "unordered"
986         conditions from floating point comparisons.
987
988 2006-06-08  Paolo Bonzini  <bonzini@gnu.org>
989
990         PR middle-end/27733
991         * expmed.c (struct alg_hash_entry): Fix type of field T
992         to match synth_mult argument.
993         (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
994
995 2006-06-08  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
996
997         PR target/27863
998         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
999         block boundaries.
1000
1001 2006-06-08  Richard Guenther  <rguenther@suse.de>
1002
1003         PR middle-end/27116
1004         * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
1005         only, if overflow is defined and not trapping.
1006         (negate_expr): Likewise.
1007
1008 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
1009
1010         PR tree-optimization/27872
1011         * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
1012         flag on the new exit edge of the unrolled loop.
1013
1014 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
1015
1016         PR rtl-optimization/26449
1017         * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
1018
1019 2006-06-07  Andrew MacLeod  <amacleod@redhat.com>
1020
1021         PR middle-end/27793
1022         * tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate
1023         referenced_variables with matching DECL_UID's.
1024         (find_referenced_vars): Make sure duplicate list is empty to start.
1025         (referenced_var_p): Remove.
1026         (referenced_var_check_and_insert): Renamed from referenced_var_insert.
1027         Check if var is in the list, and add if needed.  Update the duplicate
1028         list if a different var is in the list with the same DECL_UID.
1029         (add_referenced_var): Call routine to check and insert.
1030         * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
1031         * tree-flow.h (referenced_vars_dup_list): External declaration.
1032
1033 2006-06-07  Fred Fish  <fnf@specifix.com>
1034
1035         * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
1036         into single entry.
1037
1038 2006-06-07  Paolo Bonzini  <bonzini@gnu.org>
1039
1040         PR target/27390
1041         * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
1042         the imaginary and real parts of a clobbered register.
1043         Emit insn to set the imaginary part.
1044
1045 2006-06-06  Peter Lemieszewski  <lemie@us.ibm.com>
1046
1047         * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
1048         in lieu of unwind-dw2-fde.c.
1049
1050 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1051
1052         * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
1053
1054 2006-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
1055
1056         PR target/27842
1057         * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
1058         ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
1059         ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
1060         V4SImode temporaries and operations instead.
1061
1062 2006-06-06  Joseph S. Myers  <joseph@codesourcery.com>
1063
1064         * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
1065         dp-bit.c.
1066
1067 2006-06-06  Mike Stump  <mrs@apple.com>
1068
1069         * Makefile.in: Rename to htmldir to build_htmldir to avoid
1070         installing during build.
1071
1072 2006-06-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1073
1074         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
1075         value to 0.
1076         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
1077         * config/ia64/ia64.c (params.h): New header.
1078         (ia64_optimization_options): New function to adjust parameters.
1079         * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
1080         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
1081         * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
1082
1083 2006-06-05  Kazu Hirata  <kazu@codesourcery.com>
1084
1085         * stor-layout.c (debug_rli): Fix a typo in a debug message.
1086
1087 2006-06-05  Steve Ellcey  <sje@cup.hp.com>
1088
1089         PR target/27051
1090         * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
1091
1092 2006-06-05  Dorit Nuzman  <dorit@il.ibm.com>
1093             Victor Kaplansky  <victork@il.ibm.com>
1094
1095         PR tree-optimization/26360
1096         * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
1097         stmts.
1098
1099 2006-06-04  Roger Sayle  <roger@eyesopen.com>
1100             Andrew Pinski  <pinskia@physics.uc.edu>
1101
1102         PR middle-end/27382
1103         * c-common.c (c_common_truthvalue_conversion): Explicitly check
1104         for LABEL_DECL before calling DECL_WEAK.
1105
1106         PR c/27150
1107         * c-typeck.c (build_binary_op): Likewise, explicitly check for
1108         LABEL_DECL and PARM_DECL.
1109
1110 2006-06-05  Joseph S. Myers  <joseph@codesourcery.com>
1111
1112         PR c/25161
1113         PR c/27020
1114         * c-decl.c (grokdeclarator): Disallow variably modified types at
1115         file scope.  Avoid marking shared array type of constant size as
1116         VLA.
1117
1118 2006-06-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1119
1120         PR c++/27601
1121         * c-common.c (fold_offsetof_1): Handle static members.
1122
1123 2006-06-04 Eric Christopher <echristo@apple.com>
1124
1125         * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
1126         (debug_rli): Output value for remaining_in_alignment.
1127         (update_alignment_for_field): Unconditionalize
1128         ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
1129         extra alignment code.
1130         (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
1131         ms_bitfield_layout_p code. Rewrite handling of structure fields.
1132         * tree.h (record_layout_info_s): Remove prev_packed.
1133         * doc/extend.texi (ms_struct): Add documentation of format.
1134
1135 2006-06-04  Mark Shinwell  <shinwell@codesourcery.com>
1136
1137         * tree.h: Declare folding_initializer.
1138         * builtins.c (fold_builtin_constant_p): Give definite answer
1139         if folding inside an initializer.
1140         * fold-const.c: Define folding_initializer.
1141         (START_FOLD_INIT): Save and then set folding_initializer.
1142         (END_FOLD_INIT): Restore folding_initializer.
1143
1144 2006-06-04  Richard Guenther  <rguenther@suse.de>
1145
1146         PR tree-optimization/27039
1147         * fold-const.c (fold_comparison): Handle pointer comparison
1148         again for all comparison codes.  Compare offsets in signed
1149         size type.
1150         (fold_binary): Move code from here.
1151
1152 2006-06-03  Roger Sayle  <roger@eyesopen.com>
1153
1154         PR target/26223
1155         * config/i386/i386.c (construct_container): Split static issued_error
1156         flag into issued_sse_arg_error, issued_sse_ret_error and
1157         issued_x87_ret_error.  Issue a daignostic if the x86-64 ABI
1158         requires the use of x87 registers and the user explicitly
1159         specified the -mno-80387 command line option.
1160
1161 2006-06-02  Geoffrey Keating  <geoffk@apple.com>
1162
1163         * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
1164         HAVE_DECL_SIGALTSTACK.
1165         (MC_FLD): New.
1166         (segv_handler): Use MC_FLD.
1167         * configure.ac: Check for a sigaltstack declaration.
1168         Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
1169         * configure: Regenerate.
1170         * config.in: Regenerate.
1171
1172 2006-06-03  J"orn Rennecke <joern.rennecke@st.com>
1173
1174         PR other/27850
1175         * Makefile.in (stmp-fixinc): Fix typo.
1176
1177 2006-06-02  Roger Sayle  <roger@eyesopen.com>
1178
1179         * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
1180         are type correct.  Clean-up.
1181         <REALPART_EXPR>: Likewise.  Optimize creal(~z) as creal(z).
1182         <IMAGPART_EXPR>: Likewise.  Optimize cimag(~z) as -cimag(z).
1183
1184 2006-06-01  DJ Delorie  <dj@redhat.com>
1185
1186         * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
1187         shift, as we've disabled the "switch" insn that needs it.
1188
1189 2006-06-01  Per Bothner  <bothner@bothner.com>
1190
1191         Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
1192         * c-opts.c (finish_options): Use internal line 0 for <command-line>.
1193         * c-ppoutput.c (cb_define): Don't increment line 0.
1194
1195 2006-06-01  Pete Steinmetz  <steinmtz@us.ibm.com>
1196
1197         * doc/invoke.texi: Add cpu_type power6.
1198         * config.gcc: Add cpu_type power6.
1199         * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
1200         to power5+ with Altivec.
1201         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
1202         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
1203
1204 2006-05-30  Anatoly Sokolov <aesok@post.ru>
1205
1206         * config/avr/avr.h (SET_ASM_OP): Define.
1207
1208 2006-06-01  Kazu Hirata  <kazu@codesourcery.com>
1209
1210         * config/bfin/bfin.c: Fix comment typos.
1211
1212 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
1213
1214         PR 25453
1215         * doc/install.texi: Document --enable-bootstrap and
1216         --disable-bootstrap.
1217
1218 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
1219
1220         * doc/install.texi: Document that InfoZIP can replace jar.
1221
1222 2006-05-31  Roger Sayle  <roger@eyesopen.com>
1223
1224         * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
1225         isn't available, directly generate the simpler x87 patterns without
1226         the (use (const_int 0)).
1227         * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
1228         implementation isn't available.
1229         (*negdf2_1): Likewise.
1230         (*negxf2_1): XF mode negation is always done using the x87.
1231         (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
1232
1233 2006-05-31  Roger Sayle  <roger@eyesopen.com>
1234
1235         * builtins.c (fold_builtin_cabs): Delete prototype.  Require an
1236         additional FNDECL argument.  Optimize cabs(-z) and cabs(~z) as
1237         cabs(z).
1238         (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
1239
1240 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
1241
1242         * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
1243         * config/bfin/bfin.c (basic-block.h): Include.
1244         (struct machine_function): New.
1245         (bfin_init_machine_status): New.
1246         (override_options): Initialize init_machine_status.
1247         (bfin_hardware_loop): New.
1248         (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
1249         (DEF_VEC_P (loop_info)): New.
1250         (DEF_VEC_ALLOC_P (loop_info,heap)): New.
1251         (struct loop_info): New.
1252         (loop_info): New typedef.
1253         (struct loop_work): New.
1254         (loop_work): New typedef.
1255         (DEF_VEC_O (loop_work)): New.
1256         (DEF_VEC_ALLOC_O (loop_work,heap)): New.
1257         (bfin_dump_loops): New.
1258         (bfin_bb_in_loop): New.
1259         (bfin_scan_loop): New.
1260         (bfin_optimize_loop): New.
1261         (bfin_reorg_loops): New.
1262         (bfin_reorg): Use bfin_reorg_loops.
1263         * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
1264         loop registers.
1265         (I_REGNO_P): Simplify.
1266         (DP_REGNO_P, DPREG_P): New macros.
1267         (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
1268         REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
1269         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
1270         Add LT_REGS, LC_REGS, LB_REGS.
1271         (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
1272         'l' for LB_REGS.
1273         (REGNO_REG_CLASS): Deal with loop registers.
1274         * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
1275         letters.
1276         (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
1277         New constants for loop registers.
1278         (UNSPEC_LSETUP_END): New.
1279         (seq_insns): New define_attr. Set it for appropriate insns.
1280         (movsi_insn): Add alternatives for move from/to
1281         loop count registers.
1282         (doloop_end): New define_expand.
1283         (loop_end): New define_insn.
1284         (define_split for bad doloop_end): New.
1285         (lsetup_with_autoinit): New define_insn.
1286         (lsetup_without_autoinit): New define_insn.
1287         (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
1288         * config/bfin/predicates.md (lc_register_operand): New.
1289         (lt_register_operand): New.
1290         (lb_register_operand): New.
1291         (nondp_register_operand): New.
1292         (nondp_reg_or_memory_operand): New.
1293         * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
1294
1295 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
1296
1297         * config/bfin/bfin.c (bfin_delegitimize_address): New.
1298         (TARGET_DELEGITIMIZE_ADDRESS): Define.
1299
1300 2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
1301
1302         * Makefile.in (CATALOGS): Add po/ prefix.
1303         * configure: Regenerated.
1304
1305 2006-05-31  Richard Earnshaw  <richard.earnshaw@arm.com>
1306
1307         PR target/27829
1308         * arm.c (arm_print_operand case 'S'): Validate that the operand is
1309         a shift operand before calling shift_op.  Avoid redundant call of
1310         shift_op.
1311
1312 2006-05-30  Naveen.H.S  <naveenh@kpitcummins.com>
1313             DJ Delorie  <dj@redhat.com>
1314
1315         * config/m32c/m32c.c (m32c_expand_insv): Check that the value
1316         we're inserting is a singlt-bit constant.
1317
1318 2006-05-30  Roger Sayle  <roger@eyesopen.com>
1319
1320         * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
1321         width to HOST_WIDE_INT to avoid comparison warnings on some targets.
1322
1323 2006-05-30  Roger Sayle  <roger@eyesopen.com>
1324
1325         PR tree-optimization/23452
1326         * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
1327         to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
1328         (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
1329         complex values and with -ffast-math for FP complex values.
1330
1331 2006-05-30  Kazu Hirata  <kazu@codesourcery.com>
1332
1333         * c-common.h: Remove the prototype for yyparse.
1334         * rtl.h: Remove the prototype for init_loop.
1335
1336 2006-05-30  Andreas Krebbel  <krebbel1@de.ibm.com>
1337
1338         * cse.c (validate_canon_reg, cse_insn): Don't change insns without
1339         calling recog.
1340
1341 2006-05-30  Roger Sayle  <roger@eyesopen.com>
1342
1343         * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
1344         and rotate cases.
1345         <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
1346         log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
1347
1348 2006-05-30  Dirk Mueller  <dmueller@suse.de>
1349
1350         PR c/27273
1351         * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
1352         for CONSTANT_CLASS_P expresisons.
1353
1354 2006-05-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1355
1356         PR c/27718
1357         * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
1358
1359 2006-05-30  Zdenek Dvorak <dvorakz@suse.cz>
1360
1361         PR tree-optimization/27779
1362         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
1363         initial_condition instead of CHREC_LEFT.
1364
1365 2006-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1366
1367         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
1368         * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
1369         Make prototypes ISO C90.
1370
1371 2006-05-30  Mircea Namolaru  <namolaru@il.ibm.com>
1372             Leehod Baruch    <leehod.baruch@weizmann.ac.il>
1373
1374         * see.c (see_analyze_one_def): Correct check.
1375         (see_get_extension_data): Check if extension is parallel.
1376         (see_get_extension_reg): Likewise.
1377
1378 2006-05-30  Uros Bizjak  <uros@kss-loka.si>
1379
1380         PR target/27790
1381         * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
1382         into register for (code == GTU).
1383
1384 2006-05-29  Roger Sayle  <roger@eyesopen.com>
1385
1386         PR tree-optimization/24964
1387         * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
1388         <MULT>: Minor clean-up.  Don't convert x*-1.0 into -x if we honor
1389         signaling NaNs.  Optimize -x*-x as x*x for all float modes, and
1390         abs(x)*abs(x) as x*x for scalar floating point modes.
1391
1392 2006-05-29  Sebastian Pop  <pop@cri.ensmp.fr>
1393
1394         PR middle-end/27745
1395         * lambda-code.c (perfect_nestify): Don't copy statements
1396         in the inner loop: move them to the inner loop header.
1397
1398 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
1399
1400         PR 26237
1401         * c-tree.texi: Document OpenMP directives and clauses.
1402
1403 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
1404
1405         * varasm.c (globalize_decl): Fix indentation.
1406
1407 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
1408
1409         PR 26242
1410         * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
1411         pass_fre, pass_store_ccp, pass_copy_prop,
1412         pass_store_copy_prop, pass_merge_phi, pass_nrv,
1413         pass_return_slot, pass_object_size, pass_lim,
1414         pass_linear_transform, pass_empty_loop, pass_complete_unroll,
1415         pass_loop_prefetch and pass_stdarg.
1416
1417 2005-05-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1418
1419         * config/bfin/bfin.opt (mfdpic): New option.
1420         * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
1421         (EXTRA_MULTILIB_PARTS): Likewise.
1422         (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
1423         (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
1424         multilib.
1425         * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
1426         (CRT_CALL_STATIC_FUNCTION): New.
1427         * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
1428         -shared.
1429         (CRT_CALL_STATIC_FUNCTION): New.
1430         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Handle
1431         FD-PIC moves.
1432         (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
1433         (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
1434         (initialize_trampoline): Changed to handle FD-PIC code generation.
1435         (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
1436         (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
1437         (override_options): Disallow -mid-shared-library -mfdpic combination.
1438         Can't do unaligned ops if FD-PIC.
1439         Turn off flag_pic if trying to generate non-id-shared-library
1440         non-fdpic code, since it's not supported.
1441         (bfin_assemble_integer): New function.
1442         (TARGET_ASM_INTEGER): Define.
1443         * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
1444         __BFIN_FDPIC__.
1445         * config/bfin/crtn.s: Restore them.
1446         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
1447         if TARGET_FDPIC.
1448         (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
1449         LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
1450         (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
1451         (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
1452         (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
1453         call-used.
1454         (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
1455         FDPIC_REGS and FDPIC_FPTR_REGS.
1456         (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
1457         * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
1458         UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
1459         (load_funcdescsi): New pattern.
1460         (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
1461         sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
1462         call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
1463
1464 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
1465
1466         * gcse.c, rtlanal.c: Remove obsolete comments associated with
1467         loop.c.
1468
1469         * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
1470
1471         * tree-flow.h: Remove the prototype for add_type_alias.
1472         * tree-ssa-alias.c (add_type_alias): Remove.
1473
1474 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
1475
1476         * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
1477         config/fr30/fr30.md, config/i386/i386-interix.h,
1478         config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
1479         config/sh/superh64.h, config/v850/v850.c, df-core.c,
1480         df-problems.c, df.h, except.c, final.c, haifa-sched.c,
1481         lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
1482         reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
1483         tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
1484         Follow spelling conventions.
1485         * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
1486         Follow spelling conventions.
1487
1488 2006-05-27  Richard Guenther  <rguenther@suse.de>
1489
1490         PR middle-end/27773
1491         * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
1492         to produce a constant of value 1 of generic type.
1493
1494 2006-05-27  Dirk Mueller  <dmueller@suse.de>
1495
1496         * cgraphunit.c (decide_is_function_needed): Fix wrong
1497         PR reference.
1498
1499 2006-05-26  Ulrich Weigand  <uweigand@de.ibm.com>
1500
1501         PR rtl-optimization/27661
1502         * reload.c (find_reloads): When reloading a VOIDmode constant
1503         as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
1504         use Pmode as mode of the reload register.
1505
1506 2006-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1507
1508         * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
1509         is enabled at -O and above.
1510
1511 2006-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1512
1513         PR target/27571
1514         * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
1515         table data.
1516
1517 2006-05-25  Mark Mitchell  <mark@codesourcery.com>
1518
1519         PR c++/20103
1520         * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
1521         for anonymous variables explicitly declared by front ends.
1522
1523 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1524
1525         * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
1526         (struct alias_info): Add new field ref_all_symbol_mem_tag.
1527         * tree-ssa-alias.c (compute_may_aliases): If the program contains
1528         ref-all pointers, run a finalization pass for them.
1529         (compute_flow_insensitive_aliasing): Skip ref-all pointers.
1530         (finalize_ref_all_pointers): New function.
1531         (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
1532         regular pointer type to a ref-all pointer type.
1533         (get_tmt_for): Return the special memory tag for ref-all pointers.
1534
1535 2006-05-25  Richard Guenther  <rguenther@suse.de>
1536
1537         PR middle-end/27743
1538         * fold-const.c (fold_binary): Do not look at the stripped
1539         op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
1540
1541 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1542
1543         * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
1544         for LT and GT if the computed range is effectively empty.
1545
1546 2006-05-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1547
1548         PR target/27627
1549         * pa/pa-modes.def: Use mips_single_format, mips_double_format and
1550         mips_quad_format formats instead of ieee_single_format,
1551         ieee_double_format and ieee_quad_format formats, respectively.
1552
1553 2006-05-24  Zdenek Dvorak <dvorakz@suse.cz>
1554
1555         PR tree-optimization/27639
1556         PR tree-optimization/26719
1557         * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
1558         call to scev_probably_wraps_p.
1559         * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
1560         used_in_pointer_arithmetic_p, convert_step): Removed.
1561         (nowrap_type_p): New function.
1562         (scev_probably_wraps_p): Rewritten.
1563         * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
1564         chrec_convert if chrec_convert_aggressive might have been used.
1565         * tree-chrec.c (convert_affine_scev, chrec_convert_1,
1566         scev_direction): New functions.
1567         (chrec_convert): Changed to a wrapper over chrec_convert_1.
1568         * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
1569         instead of convert_step.
1570         * tree-flow.h (scev_probably_wraps_p): Declaration changed.
1571         (convert_step): Declaration removed.
1572         (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
1573
1574 2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>
1575
1576         * df-core.c: Added to header comments.
1577         * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
1578         df_ur_bb_info, df_urec_bb_info): Added comments.
1579         * df-problems (df_ref_bitmap, ru, rd, lr, ur,
1580         urec, ri problems): Fixed header comments.
1581         (df_ru_transfer_function): Fixed in-out set dyslexia when copying
1582         code from df_rd_transfer_function.
1583
1584 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
1585
1586         * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
1587         (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
1588         MIN_UNITS_PER_WORD to set the default.  Also use it in the guard.
1589
1590 2006-05-23  Joseph Myers  <joseph@codesourcery.com>
1591
1592         * expr.c (undefined_operand_subword_p): New.
1593         (emit_move_multi_word): Do not generate move from undefined bits
1594         of a paradoxical subreg.
1595
1596 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
1597
1598         PR rtl-optimization/27736
1599         * combine.c (replaced_rhs_value): New variable.
1600         (combine_instructions): Set it.
1601         (distribute_notes): When distributing a note in replaced_rhs_insn,
1602         check whether the value was used in replaced_rhs_value.
1603
1604 2006-05-23  Andrew MacLeod  <amacleod@redhat.com>
1605
1606         PR c++/26757
1607         * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
1608         add_referenced_var instead of add_referenced_tmp_var.
1609         * tree-complex.c (create_one_component_var): Use add_referenced_var.
1610         * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
1611         add_referenced_var.
1612         * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
1613         tree_optimize_tail_calls_1): Use add_referenced_var.
1614         * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
1615         * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
1616         Use add_referenced_var.
1617         * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
1618         * gimplify.c (force_gimple_operand): Use add_referenced_var.
1619         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
1620         Use add_referenced_var.
1621         * tree-dfa.c (struct walk_state): Remove.
1622         (find_referenced_vars): Remove walk state and vars_found hash table.
1623         (make_rename_temp): Use add_referenced_var.
1624         (find_vars_r): Pass less parameters to add_referenced_var.
1625         (referenced_var_p): New.  Is var in referenced_var hash table.
1626         (referenced_var_insert): Assert var isn't already in hash table.
1627         (add_referenced_var): Don't need walk_state parameter.  Add var if it
1628         isn't already in the hash table.
1629         (add_referenced_tmp_var): Remove.
1630         (find_new_referenced_vars_1): Use add_referenced_var.
1631         * tree-ssa-pre.c (create_expression_by_pieces,
1632         insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
1633         Use add_referenced_var.
1634         * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
1635         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
1636         lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
1637         add_referenced_var.
1638         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
1639         vect_create_data_ref_ptr, vect_create_destination_var,
1640         vect_init_vector, vect_build_loop_niters,
1641         vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
1642         vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
1643         Use add_referenced_var.
1644         * tree-outof-ssa.c (create_temp): Use add_referenced_var.
1645         * tree-flow.h (add_referenced_tmp_var): Remove prototype
1646         (add_referenced_var): Add prototype.
1647         * tree-ssa-structalias.c (get_constraint_for,
1648         intra_create_variable_infos): Use add_referenced_var.
1649
1650 2006-05-23  Alexandre Oliva  <aoliva@redhat.com>
1651
1652         * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
1653         big-endian paradoxical subregs.
1654         * var-tracking.c (struct micro_operation_def): Document that,
1655         for modify micro operations, insn is the subsequent instruction.
1656         (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
1657         (var_reg_set, var_mem_set): ... new functions.
1658         (add_stores): Record subsequent insn.
1659         (compute_bb_dataflow): Use new functions for MO_USE.
1660         (emit_notes_in_bb): Use new functions for MO_USE.  Emit use
1661         notes after the insn, and modify notes before the insn known
1662         to be the subsequent one.
1663         (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
1664
1665 2006-05-23  Kazu Hirata  <kazu@codesourcery.com>
1666
1667         PR target/27696
1668         * config/i386/i386.c (ix86_expand_builtin): Use
1669         gen_sse3_monitor64 for TARGET_64BIT.
1670
1671 2006-05-22  Kenneth Zadeck <zadeck@naturalbridge.com>
1672
1673         PR rtl-optimization/26375
1674         PR rtl-optimization/26855
1675         * df-problems (df_ru_bb_local_compute_process_def): Removed update
1676         to gen set.
1677         (df_ru_bb_local_compute): Reversed statements and removed bogus
1678         comment explaining why they should be in wrong order.
1679         (df_ru_dump, df_rd_dump): Enhanced debug info.
1680         * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
1681         debug info.
1682         * ddg.c (add_deps_for_def): Converted use of reaching defs to
1683         reaching uses and fixed space problem.
1684
1685 2006-05-23  Jan Hubicka  <jh@suse.cz>
1686
1687         * cgraphunit.c (decide_is_function_needed): Also nested functions
1688         and functions declared inline can be optimized out at -O0.
1689
1690 2006-05-22  Gerald Pfeifer  <gerald@pfeifer.com>
1691
1692         * doc/install.texi (Configuration): Remove reference to CrossGCC
1693         FAQ which was gone.
1694         (Building): Ditto.
1695
1696 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
1697
1698         PR target/27266
1699         * config/i386/i386.c (ix86_expand_branch): Jump to simple if
1700         ix86_compare_emitted is non-NULL.
1701
1702 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1703
1704         PR c++/27451
1705         * stmt.c (expand_asm_operands): Skip asm statement with erroneous
1706         clobbers.
1707
1708 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
1709
1710         PR rtl-optimization/25514
1711         * combine.c (replaced_rhs_insn): New variable.
1712         (combine_instructions): Set replaced_rhs_insn when trying to replace
1713         a SET_SRC with a REG_EQUAL note.
1714         (distribute_notes): Use replaced_rhs_insn when determining the live
1715         range of a REG_DEAD register.
1716
1717 2006-18-05  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
1718             Anatoly Sokolov <aesok@post.ru>
1719
1720         * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
1721         attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
1722         attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
1723         atmega164p, atmega324p, atmega644p, atmega644, atmega329,
1724         atmega3290, atmega649, atmega6490, atmega406, atmega640,
1725         atmega1280, atmega1281, at90can32, at90can64, at90usb646,
1726         at90usb647, at90usb1286 and at90usb1287 devices.
1727         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1728         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1729
1730 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
1731
1732         * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
1733
1734 2006-05-22  Richard Guenther  <rguenther@suse.de>
1735
1736         Revert
1737         2006-01-31  Richard Guenther  <rguenther@suse.de>
1738         Paolo Bonzini  <bonzini@gnu.org>
1739
1740         * doc/install.texi (--disable-libgcc-math): Document.
1741
1742 2006-05-22  Richard Guenther  <rguenther@suse.de>
1743
1744         Revert
1745         2006-01-31  Richard Guenther  <rguenther@suse.de>
1746
1747         * doc/invoke.texi (-msselibm): Document.
1748         * target.h (expand_library_builtin): New target hook.
1749         * builtins.c (expand_builtin): Use expand_library_builtin.
1750         (default_expand_library_builtin): New function.
1751         * gcc.c (LINK_GCC_MATH_SPEC): Define.
1752         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
1753         (link_gcc_math_spec): Declare.
1754         (static_specs): Add link_gcc_math_spec.
1755         * expr.h (default_expand_library_builtin): Declare.
1756         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
1757         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
1758         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
1759         * config/i386/i386.opt (msselibm): New target option.
1760         * config/i386/i386.c (ix86_builtin_function_variants): New array.
1761         (ix86_init_sse_abi_builtins): New function.
1762         (ix86_expand_library_builtin): Likewise.
1763         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
1764         (override_options): Handle error conditions wrt -msselibm.
1765         (ix86_builtins): Add function codes for SSE2 ABI builtins.
1766         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
1767         * doc/extend.texi (__builtin_sse2_*): Document new target specific
1768         builtins.
1769
1770 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1771
1772         PR c/27420
1773         * c-common.c (self_promoting_args_p): Skip erroneous args.
1774
1775         PR c/26818
1776         * c-decl.c (finish_struct): Skip erroneous fields.
1777
1778 2006-05-22  Nick Clifton  <nickc@redhat.com>
1779
1780         * config/cris/cris.opt (march): Remove VarExists attribute.
1781         (max-stackframe=): Likewise.
1782
1783 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
1784
1785         * doc/rtl.texi: Fix a typo.
1786         * see.c: Fix comment typos.
1787
1788         * tree-ssa-structalias.h (alias_info): Remove num_references.
1789
1790 2006-05-21  Mike Stump  <mrs@apple.com>
1791
1792         * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
1793         (BAD2): Add.
1794         (darwin_pragma_options): Use BAD instead.
1795         (darwin_pragma_unused): Likewise.
1796         (darwin_pragma_ms_struct): Likewise.
1797
1798 2006-05-21  David Edelsohn  <edelsohn@gnu.org>
1799
1800         * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
1801
1802 2006-05-21  Kazu Hirata  <kazu@codesourcery.com>
1803
1804         PR rtl-optimization/27671
1805         * simplify-rtx.c (simplify_relational_operation_1): Fix
1806         simplifications of (eq/ne (xor x y) y) and
1807         (eq/ne (xor x y) x).
1808
1809         PR tree-optimization/26622.
1810         * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
1811         on arg1.
1812
1813 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
1814
1815         * tree-cfg.c: Prune whitespace.
1816         (debug_tree_cfg): Point to correct header containing the
1817         TDF_* defines.
1818
1819 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
1820
1821         PR middle-end/25776
1822         * cgraphunit.c (verify_cgraph_node): Typo in error message.
1823
1824 2006-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
1825
1826         PR middle-end/25776
1827         * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
1828         or sorry count is non zero.
1829
1830 2006-05-20  Andreas Schwab  <schwab@suse.de>
1831
1832         * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
1833
1834 2006-05-19  Daniel Berlin  <dberlin@dberlin.org>
1835             Kenneth Zadeck <zadeck@naturalbridge.com>
1836
1837         PR rtl-optimization/26855
1838
1839         * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
1840         multiword refs.
1841         (df_scan_alloc): Added code to properly handle multiword hard
1842         registers and add all_blocks parameter.
1843         (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
1844         code to properly handle multiword hard registers.
1845         (df_rescan_blocks): Added code to remove deleted blocks from
1846         bitmap.
1847         (df_ref_create_structure, df_ref_record): Added code to properly
1848         handle subregs.
1849         (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
1850         and set DF_REF_PARTIAL.
1851         (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
1852         (df_uses_record): Added DF_REF_PARTIAL for subreg.
1853         (df_scan_add_problem): Added flags parameter.
1854         (df_ref_create_structure): Changed switching structure.
1855         (df_bb_refs_record): Fixed case where duplicate artificial refs
1856         were created.  Changed location of flags.
1857         (df_record_entry_block_defs): Added code to make stack pointer
1858         live in entry block.  Refined cases where frame pointer is needed.
1859         Changed location of flags.
1860         (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
1861         (df_set_state): Removed function.
1862         (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
1863         df_insn_create_insn_record, df_insn_refs_delete,
1864         df_ref_create_structure): Formatting changes.
1865         * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
1866         df_delete_basic_block): New function.
1867         (df_init): Changed location of flags.
1868         (df_add_problem): Added flags parameter and the way flags are
1869         processed.
1870         (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
1871         debug_df_chain): Improved debugging output.
1872         (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
1873         (df_refs_chain_dump): Removed df parameter.
1874         (df_iterative_dataflow): Added consistency check.
1875         (df_prune_to_subcfg): Made public.
1876         (df_analyze_problem): Added blocks_to_init parameter and made
1877         public.
1878         (df_ref_record, df_bb_refs_record, df_mark_reg,
1879          df_record_exit_block_uses): Whitespace changes.
1880         (df_dump): Whitespace changes.
1881         * df.h: Some reordering to remove forward references.
1882         (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
1883         DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
1884         (df_ref_flags.DF_REF_CLOBBER): Deleted field.
1885         (dataflow.flags): New field.
1886         (df.flag): Deleted field.
1887         (df_alloc_function): Added additional bitmap parameter.
1888         (df_dependent_problem_function): New type.
1889         (df_problem.changeable_flags): New field.
1890         (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
1891         DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
1892         (df_mw_hardreg): New struct.
1893         (DF_INSN_UID_MWS): New macro.
1894         (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
1895         parameter.
1896         (df_add_problem, df_ru_add_problem, df_rd_add_problem,
1897         df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
1898         df_ri_add_problem, df_scan_add_problem): Added flags parameter.
1899         (df_set_state): Removed function.
1900         (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
1901         * df-problems.c (df_chain_dump): Removed df parameter.
1902         (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
1903         df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
1904         parameter.
1905         (df_ru_alloc, df_rd_alloc): Now resets all blocks.
1906         (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
1907         df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
1908         Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
1909         DF_REF_MUST_CLOBBER cases.
1910         (df_ru_bb_local_compute_process_def,
1911         df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
1912         df_lr_bb_local_compute, df_ur_bb_local_compute,
1913         df_chain_create_bb): Made subreg aware.
1914         (df_ru_bb_local_compute, df_rd_bb_local_compute,
1915         df_lr_bb_local_compute, df_lr_bb_local_compute,
1916         df_chain_create_bb): Cleanup to use proper macros.
1917         (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
1918         code to fixup bitvectors.
1919         (df_ri_alloc): Cleared lifetime.
1920         (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
1921         df_create_unused_note): New function.
1922         (df_ri_bb_compute, df_ri_compute): Added code to create/update
1923         REG_DEAD and REG_UNUSED notes as well as register information.
1924         (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
1925         df_chains_dump): Fixed crash if problem was never run.
1926         (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
1927         df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
1928         df_ri_add_problem): Processes flags in uniform manner.
1929         (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
1930         df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
1931         df_rd_dump, df_urec_free_bb_info): Formatting changes.
1932         (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
1933         df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
1934         df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
1935         df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
1936         df_ur_dump, df_urec_free_bb_info, df_urec_dump,
1937         df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
1938         * modulo-sched.c (sms_schedule): Added flag parameter to calls.
1939         * see.c (see_initialize_data): Ditto.
1940         * final.c (rest_of_clean_state) Added regstack_completed.
1941         * rtl.h (regstack_completed): Ditto.
1942         * reg-stack.c (regstack_completed): Ditto.
1943
1944 2006-05-19  Mike Stump  <mrs@apple.com>
1945
1946         * c-tree.h (default_conversion): Remove.
1947         * c-common.h (default_conversion): Add.
1948
1949 2006-05-19  Zdenek Dvorak <dvorakz@suse.cz>
1950
1951         * tree-vrp.c (valid_value_p): New function.
1952         (adjust_range_with_scev): Fail if the value of bound is not
1953         simple.
1954
1955 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
1956
1957         * config/mips/linux-unwind.h: Include <asm/unistd.h>
1958         (mips_fallback_frame_state): Use syscall numbers to determine
1959         the appropriate li instruction for the current ABI.  Only use
1960         __NR_sigreturn for o32.
1961
1962 2006-05-19  Nicolas Setton  <setton@adacore.com>
1963
1964         * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
1965         * langhooks.c (lhd_dwarf_name): New function.
1966         * langhooks-def.h (lhd_dwarf_name): Declare.
1967         (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
1968         * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
1969         * ada/misc.c (gnat_dwarf_name): New function.
1970         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
1971
1972 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
1973
1974         * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
1975         libgcc2.h.
1976         (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
1977         MIN_UNITS_PER_WORD logic from libgcc2.h.  Do nothing if
1978         LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
1979         * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
1980         Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
1981         determine the size of Wtype, etc.
1982         * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
1983         (swfloatfuncs): New variable.
1984         (dwfloatfuncs): Likewise.
1985         (lib2funcs): Remove floating-point conversion functions from
1986         initial assignment.  Use LIB2_SIDITI_CONV_FUNCS to determine
1987         the set of conversion routines needed.  Allow entries to specify
1988         an object name, filename and word size.  Update users accordingly.
1989         * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
1990         * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
1991
1992         Revert:
1993
1994         2006-02-08  Roger Sayle  <roger@eyesopen.com>
1995
1996         PR target/22209
1997         * config/fixtfdi.c: New libgcc source file.
1998         * config/fixunstfdi.c: New source file.
1999         * config/floatditf.c: New source file.
2000         * config/floatunditf.c: New souce file.
2001         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
2002         files above instead of config/mips/_tilib.c.
2003         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
2004
2005 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2006
2007         * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
2008         * pa/pa-hpux11.h (LIB_SPEC): Update comment.
2009
2010 2006-05-18  Mike Stump  <mrs@apple.com>
2011
2012         Fix up vla, vm and [*] sematics.
2013
2014         PR c/18740
2015         PR c/7948
2016         PR c/25802
2017         PR c/27673
2018         * c-tree.h (struct c_arg_info): Add had_vla_unspec.
2019         (c_vla_unspec_p): Add.
2020         (c_vla_type_p): Add.
2021         * c-decl.c (struct c_scope): Add had_vla_unspec.
2022         (build_array_declarator): Add support for [*].
2023         (grokdeclarator): Likewise.
2024         (grokparms): Likewise.
2025         (get_parm_info): Likewise.
2026         * c-objc-common.c (c_vla_unspec_p): Likewise.
2027         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
2028         * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
2029         typeof when argument is a variably modified type not inside sizeof or alignof.
2030         (c_parser_direct_declarator_inner): Propagate errors.
2031         (c_parser_sizeof_expression): Add support for [*].
2032         (c_parser_parms_declarator): Initialize had_vla_unspec.
2033         (c_parser_parms_list_declarator): Likewise.
2034         * c-typeck.c (c_vla_type_p): Add.
2035         (composite_type): Add support for vla compositing.
2036         (comptypes_internal): Add support for vla compatibility.
2037         (c_expr_sizeof_expr): Evaluate vla arguments.
2038         * tree.c (variably_modified_type_p): Update comment for [*].
2039
2040 2006-05-18  Michael Matz  <matz@suse.de>
2041
2042         PR target/27599
2043         * config.host: Make assignments to host_xmake_file cumulative.
2044         * config.host (*-darwin*): Test $host, not $target.
2045
2046 2006-05-12  Stuart Hastings  <stuart@apple.com>
2047
2048         * config/i386/i386.opt (-mstackrealign): New flag.
2049         * config/i386/i386.c (force_align_arg_pointer): New attribute.
2050         (ix86_handle_cconv_attribute): Emit error when
2051         force_align_arg_pointer attribute collides with too many regparms.
2052         (ix86_function_regparm): Limit regparms when used with
2053         force_align_arg_pointer attribute.  (ix86_internal_arg_pointer):
2054         Support stack-realigning prologue in non-main functions.  Emit
2055         warning for nested functions under -mstackrealign, emit error for
2056         nested functions with force_align_arg_pointer attribute.
2057         * doc/extend.texi (force_align_arg_pointer): Document it.
2058         * doc/invoke.texi (-mstackrealign): Document it.
2059
2060 2006-05-17  Kazu Hirata  <kazu@codesourcery.com>
2061
2062         PR rtl-optimization/27477
2063         * combine.c (try_combine): Don't split a parallel consisting
2064         of two sets into two individual sets if both sets reference
2065         cc0.
2066
2067 2006-05-17  H.J. Lu  <hongjiu.lu@intel.com>
2068
2069         * config/arm/arm.opt (target_fpe_name): Remove VarExists.
2070         * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
2071
2072         * doc/options.texi (VarExists): Updated.
2073
2074 2006-05-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2075
2076         * unwind-dw2.c: Add declarations for uw_update_context and
2077         uw_frame_state_for.
2078         * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
2079         detected, advance frame state and context once to skip over stub.
2080
2081 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
2082
2083         PR middle-end/20256
2084         PR middle-end/26435
2085         * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
2086         Call rewrite_into_loop_closed_ssa only when something changed.
2087         * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
2088         * lambda-code.c (can_convert_to_perfect_nest): Declared.
2089         (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
2090         Test for perfect_nest_p here.  Fix formating.
2091         (replace_uses_equiv_to_x_with_y): Fix formating.
2092         (stmt_uses_op): Removed.
2093         (can_convert_to_perfect_nest): Removed loopivs parameter.
2094         Complete the test by checking the scalar dependences.
2095         (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
2096         Fix formating.
2097
2098 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
2099
2100         PR bootstrap/22541
2101         From Dan Kegel <dank@kegel.com>:
2102         * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
2103
2104 2006-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2105
2106         * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
2107         if the element type is variably modified without recursing.
2108
2109 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
2110
2111         PR middle-end/27332
2112         * tree-loop-linear.c (try_interchange_loops): Test for
2113         no data dependences.
2114
2115 2006-05-17  Zdenek Dvorak <dvorakz@suse.cz>
2116
2117         PR tree-optimization/27548
2118         * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
2119         range of ssa names that appear on abnormal edges.
2120         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
2121         * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
2122
2123 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
2124
2125         PR middle-end/27620
2126         * expr.c (safe_from_p): Handle CONSTRUCTOR again.
2127
2128 2006-05-17  Jakub Jelinek  <jakub@redhat.com>
2129
2130         PR middle-end/27415
2131         * tree.h (OMP_PARALLEL_COMBINED): Define.
2132         * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
2133         (new_omp_context): Add is_combined_parallel argument.
2134         (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
2135         new_omp_context caller.
2136         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
2137         Adjust gimplify_scan_omp_clauses callers.
2138         (omp_is_private): Issue errors if iteration variable is firstprivate
2139         or reduction in the current context.
2140         * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
2141         on combined parallel workshare constructs.
2142
2143 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
2144
2145         * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
2146         (gcc-options.o): New rule.
2147
2148         * optc-gen.awk: Protect variables for gcc-options.o with
2149         #ifdef GCC_DRIVER/#endif.
2150
2151 2006-05-16  Daniel Berlin <dberlin@dberlin.org>
2152
2153         Fix PR tree-optimization/27373
2154         * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
2155          (forward_propagate_addr_expr): Update call.
2156
2157 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
2158
2159         * doc/options.texi: Move the Negative option.
2160
2161 2006-05-16  Richard Guenther  <rguenther@suse.de>
2162
2163         PR tree-optimization/22303
2164         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
2165         from STRING_CSTs.
2166         (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
2167         ccp_fold did not simplify the statement.
2168
2169 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
2170
2171         PR driver/26885
2172         * Makefile.in (GCC_OBJS): New.
2173         (OBJS-common): Add opts-common.o.
2174         (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
2175         (cpp$(exeext)): Likewise.
2176         (gcc.o): Also depend on opts.h.
2177         (opts-common.o): New.
2178
2179         * common.opt (gcoff): Add Negative(gdwarf-2).
2180         (gdwarf-2): Add Negative(gstabs).
2181         (gstabs): Add Negative(gstabs+).
2182         (gstabs+): Add Negative(gvms).
2183         (gvms): Add Negative(gxcoff).
2184         (gxcoff): Add Negative(gxcoff+).
2185         (gxcoff+): Add Negative(gcoff).
2186         * config/i386/i386.opt (m32): Add Negative(m64).
2187         (m64): Add Negative(m32).
2188
2189         * doc/options.texi: Document the Negative option.
2190
2191         * gcc.c: Include "opts.h".
2192         (main): Call prune_options after expandargv.
2193
2194         * optc-gen.awk: Generate common declarations for all flag
2195         variables in options.c. Output the neg_index field.
2196
2197         * opts.c (find_opt): Moved to ...
2198         * opts-common.c: Here. New file.
2199
2200         * opts.h (cl_option): Add a neg_index field.
2201         (find_opt): New.
2202         (prune_options): Likewise.
2203
2204 2006-05-16  Jakub Jelinek  <jakub@redhat.com>
2205
2206         PR middle-end/27573
2207         * omp-low.c (expand_omp_parallel): Don't assert
2208         .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
2209         instead search for it.
2210
2211         PR c/27499
2212         * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
2213         is signed.
2214
2215 2006-05-16  Andreas Schwab  <schwab@suse.de>
2216
2217         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
2218         defmac.
2219
2220 2006-05-15  Roger Sayle  <roger@eyesopen.com>
2221
2222         PR target/26600
2223         * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
2224         integer constants other than zero are only legitimate on TARGET_64BIT.
2225         <CONST_VECTOR> Only zero vectors are legitimate.
2226         (ix86_cannot_force_const_mem): Integral and vector constants can
2227         always be put in the constant pool.
2228
2229 2006-05-16  DJ Delorie  <dj@redhat.com>
2230
2231         * crtstuff.c (__dso_handle): Set section from
2232         TARGET_LBIGCC_SDATA_SECTION if defined.
2233         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
2234         * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
2235
2236 2006-05-16  Danny Smith  <dannysmith@users.sourceforge.net>
2237
2238         PR target/27599
2239         * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
2240         host_xmake_file.
2241
2242 2006-05-16  Ben Elliston  <bje@au.ibm.com>
2243
2244         * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
2245
2246 2006-05-15  Per Bothner  <per@bothner.com>
2247
2248         * tree.c: (last_annotated_node): Use source_locus typedef.
2249         This permits bootstrapping with --enable-mapped-location.
2250
2251 2006-05-15  Zdenek Dvorak <dvorakz@suse.cz>
2252
2253         PR tree-optimization/26830
2254         * tree-into-ssa.c (struct ssa_name_info): Add age field.
2255         (info_for_ssa_name, current_info_for_ssa_name_age,
2256         blocks_to_update): New variables.
2257         (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
2258         (clear_ssa_name_info, initialize_flags_in_bb,
2259         mark_block_for_update): New functions.
2260         (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
2261         (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
2262         prepare_def_site_for): Use mark_block_for_update.
2263         (mark_def_interesting): Assert that the processed block is marked in
2264         blocks_to_update.  Do not take blocks argument.
2265         (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
2266         argument.
2267         (rewrite_update_init_block, rewrite_update_stmt): Only process
2268         blocks with statements to rewrite.
2269         (delete_update_ssa): Do not clear SSA_NAME_AUX.
2270         (update_ssa): Initialize and free blocks_to_update.  Do not
2271         clear flags on statements.  Do not use blocks bitmap.
2272         * tree.h (SSA_NAME_AUX): Removed.
2273         (struct tree_ssa_name): Removed aux field.
2274         * print-tree.c (print_node): Do not print SSA_NAME_AUX.
2275
2276 2006-05-15  Richard Guenther  <rguenther@suse.de>
2277
2278         PR tree-optimization/27603
2279         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
2280         Do computations in original type.
2281
2282 2006-05-15  Mircea Namolaru  <namolaru@il.ibm.com>
2283
2284         * see.c: Code style changes such as redundant paranthesis,
2285         redundant intialization of local variables etc.
2286         (see_main): Declared now as static.
2287         * doc/invoke.texi: Update that -fsee is not enabled by
2288         default at -O3.
2289
2290 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
2291
2292         * omp-low.c (check_omp_nesting_restrictions): New function.
2293         (scan_omp_1): Call it.
2294
2295         PR middle-end/27416
2296         * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
2297         construct, return *VAR.
2298
2299 2006-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
2300
2301         PR rtl-optimization/27406
2302         * bt-load.c (migrate_btr_def): Skip the block having abnormal
2303         edges.
2304
2305 2006-05-14  Roger Sayle  <roger@eyesopen.com>
2306
2307         PR rtl-optimization/27538
2308         * combine.c (expand_compound_operation): Call gen_lowpart
2309         before calling simplify_shift_const.
2310
2311 2006-05-14  Roger Sayle  <roger@eyesopen.com>
2312
2313         PR rtl-optimization/22563
2314         * expmed.c (store_fixed_bit_field): When using AND and IOR to store
2315         a fixed width bitfield, always force the intermediates into psuedos.
2316
2317 2006-05-14  Bernhard Fischer  <aldot@gcc.gnu.org>
2318
2319         PR 27501
2320         * mkconfig.sh: Use operator = instead of == for test.
2321
2322 2006-05-13  Nick Clifton  <nickc@redhat.com>
2323
2324         * dwarf2out.c (dbx_reg_number): Check return value from
2325         LEAF_REG_REMAP and only use it if it is valid.
2326         (multiple_reg_loc_descriptor): Likewise.
2327
2328 2006-05-13  Richard Guenther  <rguenther@suse.de>
2329
2330         * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
2331         host_xmake_file.
2332
2333 2006-05-13  Steven Bosscher  <stevenb.gcc@gmail.com>
2334
2335         * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
2336         information attached to non-INSNs such as NOTEs.
2337         (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
2338
2339 2006-05-12  Andreas Krebbel  <krebbel1@de.ibm.com>
2340
2341         * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
2342         On contraint.
2343         * config/s390/s390.md: Adjust comment describing On constraint.
2344
2345 2006-05-11  Jan Hubicka  <jh@suse.cz>
2346
2347         * cgraphunit.c (decide_is_function_needed): Don't force always_inline
2348         to be output at -O0.
2349
2350 2006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2351
2352         PR middle-end/27384
2353         * fold-const.c (size_binop): Move sanity check for arguments to
2354         the beginning of the function.
2355
2356         PR middle-end/27488
2357         * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
2358         expression.
2359
2360 2006-05-11  Richard Guenther  <rguenther@suse.de>
2361
2362         PR middle-end/27529
2363         * fold-const.c (fold_unary): Handle intermediate conversion
2364         to a pointer type like intermediate conversion to an integer
2365         type in folding of (T1)(T2)var to var.
2366         Match the code to the comment in the final conversion for
2367         (T1)(T2)var to (T1)var regarding to type precision.  Rather
2368         than disallow T1 being of pointer type, assert that both T1
2369         and var are of pointer type or not.  Make sure not to fall
2370         over the frontends lazyness wrt array to pointer decay though.
2371
2372 2006-05-10  Richard Earnshaw  <rearnsha@arm.com>
2373
2374         * arm.c (arm_struct_value_rtx): Delete.
2375         (TARGET_STRUCT_VALUE_RTX): Use the default definition.
2376         (arm_init_cumulative_args): Always initialize nregs to zero.
2377
2378 2006-05-10  Richard Guenther  <rguenther@suse.de>
2379
2380         PR tree-optimization/27532
2381         * tree-object-size.c (plus_expr_object_size): Fix typo.
2382
2383 2006-05-10  Kazu Hirata  <kazu@codesourcery.com>
2384
2385         PR target/24949
2386         * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
2387         ashrdi_const, ashrdi3): Use a scratch register.
2388
2389 2006-05-10  Richard Guenther  <rguenther@suse.de>
2390
2391         PR tree-optimization/27302
2392         * fold-const.c (operand_equal_p): For two comparisons,
2393         try comparison of one comparison code swapped if that yields
2394         the same code.
2395
2396 2006-05-10  Ben Elliston  <bje@au.ibm.com>
2397
2398         * tree-pretty-print.c (pretty_print_string): No need to handle
2399         '\0' as a special character.
2400
2401         * tree.h: Include "hashtab.h".
2402         (iterative_hash_expr): Use hashval_t in its prototype.
2403         * Makefile.in (TREE_H): Add $(HASHTAB_H).
2404
2405 2006-05-09  Steve Ellcey  <sje@cup.hp.com>
2406
2407         PR bootstrap/26872
2408         * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
2409         (hppa*64*-*-hpux11*): Ditto.
2410         (hppa[12]*-*-hpux11*): Ditto.
2411
2412 2006-05-09  David Edelsohn  <edelsohn@gnu.org>
2413
2414         PR target/26545
2415         * config/rs6000/aix41.h (TARGET_64BIT): Define.
2416
2417 2006-05-09  Michael Matz  <matz@suse.de>
2418
2419         * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
2420         host_extra_gcc_objs and host_xmake_file.
2421         (<*-*-linux*>): Don't overwrite host_xmake_file.
2422         * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
2423         * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
2424         (host_detect_local_cpu): Declare.
2425         (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
2426         * config/i386/i386.c (override_options): Handle -mtune=native
2427         as -mtune=generic.
2428         * config/i386/x-i386: New file.
2429         * config/i386/driver-i386.c: New file.
2430         * doc/invoke.texi (<i386 and x86-64 Options>): Describe
2431         cpu-type "native".
2432
2433 2006-05-09  Dirk Mueller  <dmueller@suse.de>
2434         Richard Guenther  <rguenther@suse.de>
2435
2436         PR middle-end/27498
2437         * fold-const.c (fold_read_from_constant_string): Relax check
2438         for matching types to matching modes.
2439
2440 2006-05-09  Zdenek Dvorak <dvorakz@suse.cz>
2441
2442         PR rtl-optimization/27335
2443         * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
2444         loops.
2445
2446 2006-05-08  Chao-ying Fu  <fu@mips.com>
2447             Richard Sandiford  <richard@codesourcery.com>
2448
2449         * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
2450         (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
2451         * config/mips/mips.md (UNSPEC_SCC): New constant.
2452         * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
2453         * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
2454         (mips_emit_compare): Use it.
2455         (mips_expand_vcondv2sf): New function.
2456
2457 2006-05-08  Daniel Berlin  <dberlin@dberlin.org>
2458
2459         Fix PR tree-optimization/27093
2460         * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
2461         renaming when they become not-used_alone.
2462
2463 2006-05-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2464
2465         * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
2466         relocation and relocation stubs.
2467
2468 2006-05-08  Eric Christopher  <echristo@apple.com>
2469
2470         * unwind-dw2-fde-darwin.c (examine_objects): Only check data
2471         section for ppc.
2472
2473 2006-05-08  Jan Hubicka  <jh@suse.cz>
2474
2475         PR middle-end/24561
2476         * cgraphunit.c (decide_is_function_needed): When not optimizing even
2477         unused static functions are needed.
2478
2479 2006-05-08  Roger Sayle  <roger@eyesopen.com>
2480
2481         PR target/27158
2482         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
2483         of a reg_equiv_constant if the result is a legitimate constant.
2484
2485 2006-05-08  Uros Bizjak  <uros@kss-loka.si>
2486
2487         PR target/27277
2488         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
2489         standard 80387 constants, raise the cost to prevent
2490         compress_float_constant() to generate load from memory.
2491
2492 2006-05-08  Kazu Hirata  <kazu@codesourcery.com>
2493
2494         * config/arm/constraints.md (c): Fix a typo.
2495
2496         * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
2497         typos.
2498
2499 2006-05-07  H.J. Lu  <hongjiu.lu@intel.com>
2500
2501         PR target/24879
2502         * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
2503         inline function.
2504         (_mm_mwait): Likewise.
2505
2506         * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
2507         "mwait".
2508         (sse3_monitor): Make it 32bit only.
2509         (sse3_monitor64): New. 64bit monitor.
2510
2511 2006-05-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2512
2513         PR target/27421
2514         * config/i386/i386.c (classify_argument): Skip fields with invalid
2515         types.
2516
2517 2006-05-07  Richard Guenther  <rguenther@suse.de>
2518
2519         PR tree-optimization/27409
2520         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2521         Do not try to find zero-sized subvars.
2522
2523 2006-05-07  Richard Guenther  <rguenther@suse.de>
2524
2525         PR tree-optimization/27136
2526         * tree-ssa-loop-niter.c (get_val_for): Correct function
2527         comment, assert requirements.
2528         (loop_niter_by_eval): Stop processing if the iterated
2529         value did not simplify.
2530
2531 2006-05-07  Mircea Namolaru  <namolaru@il.ibm.com>
2532
2533         * opts.c (flag_see): remove its setting at -O3.
2534
2535 2006-05-07  Richard Earnshaw  <rearnsha@arm.com>
2536
2537         * genpeep.c (main): Make insn-peep.c depend on flags.h.
2538         * arm/constraints.md: New file.
2539         * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
2540         (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
2541         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
2542         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
2543         (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
2544         (EXTRA_MEMORY_CONSTRAINT): Likewise.
2545         * arm.md: Include constraints.md.
2546         (thumb_movsi_insn): Use satisfies_constraint_J.
2547         (movhi, movqi): Use satisfies_constraint_I.
2548
2549 2006-04-29 Anatoly Sokolov <aesok@post.ru>
2550
2551         * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
2552         for atmeg a645 device.
2553
2554 2006-05-06   Richard Guenther  <rguenther@suse.de>
2555
2556         PR tree-optimization/27151
2557         * tree-vect-transform.c (vectorizable_condition): Punt on
2558         values that have a different type than the condition.
2559
2560 2006-05-03  Aldy Hernandez  <aldyh@redhat.com>
2561
2562         PR/21391
2563         * c-parser.c (c_parser_cast_expression): Only insert casts into
2564         hash table if pointer.
2565         * function.c (used_types_insert_helper): Rename from
2566         used_types_insert.
2567         (used_types_insert): Call used_types_insert_helper.
2568         * function.h (used_types_insert): Accept only one argument.
2569
2570 2006-05-05  David Edelsohn  <edesohn@gnu.org>
2571
2572         * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
2573         scratch with output modifier.
2574
2575 2006-05-04  David Edelsohn  <edelsohn@gnu.org>
2576
2577         PR target/26481
2578         * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
2579         with output modifier.
2580
2581 2006-05-04  Richard Sandiford  <richard@codesourcery.com>
2582
2583         PR target/26765
2584         * config/mips/mips.c (mips_symbolic_address_p): Return true
2585         for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
2586         SYMBOL_GOTTPREL, and SYMBOL_TLS.
2587
2588 2006-05-04  Richard Guenther  <rguenther@suse.de>
2589
2590         PR tree-optimization/14287
2591         PR tree-optimization/14844
2592         PR tree-optimization/19792
2593         PR tree-optimization/21608
2594         PR tree-optimization/27090
2595         * tree-ssa-pre.c (try_combine_conversion): New function.
2596         (compute_avail): After constructing the value-handle
2597         expression, use try_combine_conversion to combine NOP_EXPRs
2598         with previous value-handle expressions and use the result if it
2599         is available.
2600
2601 2006-05-04  Joseph S. Myers  <joseph@codesourcery.com>
2602
2603         * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
2604
2605 2006-05-04  Jan Hubicka  <jh@suse.cz>
2606
2607         PR middle-end/25962
2608         * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
2609
2610 2006-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
2611
2612         * config/bfin/predicates.md (const01_rtx): Tell generator programs
2613         that this only matches CONST_INTs.  All users changed to VOIDmode
2614         operands.
2615
2616         * config/bfin/bfin.c: Include "optabs.h".
2617         (bfin_rtx_costs): Some costs for vector operations, to allow combine
2618         to do more work.
2619         (enum bfin_builtins): Add a number of fractional and vector builtins.
2620         (bfin_init_builtins): Likewise.
2621         (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
2622         (safe_vector_operand, bfin_expand_binop_builtin,
2623         bfin_expand_unop_builtin): New functions.
2624         (bfin_expand_builtin): Handle the new builtins.
2625         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2626         __ADSPBLACKFIN__.
2627
2628 2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
2629
2630         * see.c: New file.
2631         * Makefile.in (OBJS-common): Add see.o.
2632         (see.o): Add dependencies.
2633         * common.opt (fsee): New flag for the see optimization was added.
2634         * opts.c (flag_see): Initialized.
2635         * passes.c (init_optimization_passes, pass_see): New pass.
2636         * rtl.h (see_main): Declaration as extern.
2637         * timevar.def (TV_SEE): New.
2638         * tree-pass.h (pass_see): Declaration as extern.
2639         * invoke.texi (-fsee): Document.
2640         * recog.c (validate_simplify_insn): New function.
2641         * recog.h (validate_simplify_insn): Declaration as extern.
2642         * df-problems.c (df_chain_dump): Check for NULL.
2643
2644 2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
2645             Daniel Berlin  <dberlin@dberlin.org>
2646
2647         * cfgrtl.c (insert_insn_bb_end_new): New function.
2648         * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
2649
2650 2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
2651
2652         * df.h (struct web_entry): Moved from web.c.
2653         (union_defs): Declaration as extern.
2654         (unionfind_root): Likewise.
2655         (unionfind_union): Likewise.
2656         * web.c (struct web_entry): Moved to df.h.
2657         (unionfind_root): Remove static declaration.
2658         (unionfind_union): Likewise.
2659         (union_defs): Likewise and generalize to use callback function.
2660         (web_main): Update arguments for union_defs function call.
2661
2662 2006-05-04  Richard Guenther  <rguenther@suse.de>
2663
2664         PR tree-optimization/26447
2665         * tree-ssa-pre.c (realify_fake_stores): For necessary loads
2666         produce SSA_NAME copies before the store stmt to avoid
2667         breaking exception handling.
2668
2669 2006-05-04  Jakub Jelinek  <jakub@redhat.com>
2670
2671         PR middle-end/27388
2672         * gimplify.c (omp_is_private): If var is shared in some outer context,
2673         return false instead of true.  Stop searching on parallel context
2674         boundary.
2675
2676 2006-05-03  Alexandre Oliva  <aoliva@redhat.com>
2677
2678         PR java/8260
2679         * coverage.c: Use get_gcov_unsigned_t() instead of
2680         unsigned_type_node all over.
2681
2682 2006-05-02  Andrew MacLeod  <amacleod@redhat.com>
2683
2684         PR tree-optimization/27381
2685         * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
2686         maintain the same immediate_use links.
2687         * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
2688         node rather than segfaulting.
2689
2690 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
2691
2692         PR fortran/27395
2693         * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
2694         rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
2695         bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
2696
2697 2006-05-02  Daniel Berlin  <dberlin@dberlin.org>
2698
2699         Fix PR tree-optimization/26626
2700         * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
2701         always.
2702         * tree-ssa-operands.c (access_can_touch_variable): Allow
2703         typecasting through union pointers.
2704
2705 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
2706
2707         PR c++/26943
2708         * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
2709         (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
2710         to find if var will be a global variable even in the nested context.
2711         (omp_copy_decl): Only check for global variable at the end, it might
2712         be overridden in outer contexts.
2713         (scan_sharing_clauses): For global variables don't create a field.
2714         (lower_rec_input_clauses): Do nothing for global shared variables.
2715         Emit a barrier at the end of ILIST if there were any decls in both
2716         firstprivate and lastprivate clauses.
2717         (lower_send_clauses): Do nothing for global variables except for
2718         COPYIN.
2719
2720 2006-05-02  Zdenek Dvorak <dvorakz@suse.cz>
2721
2722         * tree.c (unsigned_type_for, signed_type_for): Make sure a type
2723         of the correct signedness is returned.
2724
2725 2006-05-02  Jeff Law  <law@redhat.com>
2726
2727         PR tree-optimization/27364
2728         * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
2729         multiply expressions.
2730
2731 2006-05-02  Tom Tromey  <tromey@redhat.com>
2732
2733         * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
2734
2735 2006-05-02  Kazu Hirata  <kazu@codesourcery.com>
2736
2737         PR target/27387
2738         * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
2739         -mthumb -fPIC are used.
2740
2741 2006-05-02  Stanislaw Skowronek  <skylark@linux-mips.org>
2742             Joshua Kinard  <kumba@gentoo.org>
2743
2744         PR target/25871
2745         * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
2746         with 64-bit pointers.
2747
2748 2006-05-02  Paul Brook  <paul@codesourcery.com>
2749
2750         * config/arm/arm.c (add_minipool_forward_ref): Check if insn
2751         and pool overlap.
2752         (create_fix_barrier): Check that a suitable barrier location is
2753         found.
2754         (arm_reorg): Include ftmp->address in allowable range of addresses.
2755
2756 2006-05-02  David Billinghurst <David.Billinghurst@riotinto.com>
2757
2758         PR ada/27366
2759         * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
2760         on Cygwin.
2761
2762 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
2763
2764         PR middle-end/27337
2765         * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
2766         around RESULT_DECL for result passed by reference.
2767         (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
2768         * omp-low.c (use_pointer_for_field): Don't look at
2769         DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
2770         (scan_omp_1): Call remap_decl on RESULT_DECLs.
2771         (lower_rec_input_clauses): Don't allocate VLA memory for the second
2772         time or var for passing by reference for
2773         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
2774         TREE_ADDRESSABLE variables when passing by reference.
2775
2776         * omp-low.c (dump_omp_region): Fix output formatting.
2777
2778         PR middle-end/27328
2779         * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
2780         (expand_omp_parallel): Likewise.
2781         * tree-cfg.c (move_sese_region_to_fn): Likewise.
2782
2783         PR middle-end/27325
2784         * omp-low.c (lower_omp_sections): Call maybe_catch_exception
2785         on statement list containing also constructors and destructors.
2786         (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
2787
2788         PR middle-end/27310
2789         * except.c (duplicate_eh_regions): Fix clearing of
2790         cfun->eh->region_array entries.
2791
2792 2006-05-01  DJ Delorie  <dj@redhat.com>
2793
2794         * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
2795         build!=host.
2796         (gcc_cv_objdump): Likewise.
2797         * configure: Regenerated.
2798
2799 2006-05-01  Kazu Hirata  <kazu@codesourcery.com>
2800
2801         PR target/27374
2802         * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
2803         templates for case 3 and 4.
2804
2805 2006-05-01  DJ Delorie  <dj@redhat.com>
2806
2807         * vec.c: Include bconfig.h when appropriate.
2808         * Makefile.in (build/vec.o): Adjust dependencies.
2809         * mkconfig.sh: Make sure config.h isn't used for build machine
2810         compiles.
2811
2812 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
2813
2814         * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
2815         variables.
2816         (mark_phi_for_rewrite): New function.
2817         (insert_phi_nodes_for, mark_use_interesting): Call
2818         mark_phi_for_rewrite.
2819         (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
2820         (update_ssa): Initialize and free phis_to_rewrite.
2821
2822 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
2823
2824         PR rtl-optimization/27291
2825         * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
2826         folded to a constant.
2827
2828 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
2829
2830         PR tree-optimization/27283
2831         * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
2832         not whole # of iteration descriptions.
2833         (niter_for_exit): Return just # of iterations.  Fail if # of iterations
2834         uses abnormal ssa name.
2835         (niter_for_single_dom_exit): Ditto.
2836         (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
2837         return just the number of iterations.
2838
2839 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
2840
2841         PR tree-optimization/27144
2842         * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
2843         (record_estimate): Only record constant upper bound.
2844         (infer_loop_bounds_from_undefined): Call
2845         compute_estimated_nb_iterations just once.
2846         (proved_non_wrapping_p): Renamed to ...
2847         (n_of_executions_at_most): ... this.  Expect bound to be a constant.
2848         (convert_step_widening, scev_probably_wraps_p): Call
2849         n_of_executions_at_most instead of proved_non_wrapping_p.
2850         (substitute_in_loop_info): Do not replace values in bounds.
2851         * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
2852         comments.
2853
2854 2006-05-01  Richard Henderson  <rth@redhat.com>
2855
2856         PR c/27358
2857         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
2858         c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
2859         CPP_PRAGMA.
2860
2861 2006-05-01  Roger Sayle  <roger@eyesopen.com>
2862
2863         * c-typeck.c (parser_build_binary_op): Don't call the function
2864         unsigned_conversion_warning to spot operand/result type overflow.
2865         (build_binary_op): Instead, call convert_and_check instead of
2866         convert to report the problem when the operands are promoted.
2867         * c-common.c (unsigned_conversion_warning): Make static.
2868         * c-common.h (unsigned_conversion_warning): Delete prototype.
2869
2870 2006-05-01  Richard Guenther  <rguenther@suse.de>
2871
2872         PR tree-optimization/26726
2873         * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
2874         problem ...
2875         (find_interesting_uses_address): ... we work around here
2876         by folding INDIRECT_REFs in the substituted base.
2877
2878 2006-05-01  Diego Novillo  <dnovillo@redhat.com>
2879
2880         * omp-low.c (dump_omp_region): Add newlines.
2881
2882 2006-04-30  Roger Sayle  <roger@eyesopen.com>
2883
2884         * common.opt (Woverflow): New command line option.
2885         * c-common.c (constant_expression_warning): Check warn_overflow.
2886         (overflow_waring): Pass OPT_Woverflow to warning.
2887         (unsigned_conversion_warning): Likewise.
2888         (convert_and_check): Likewise.
2889         * doc/invoke.texi: Document new command line option.
2890
2891 2006-04-30  David Edelsohn  <edelsohn@gnu.org>
2892
2893         * config/rs6000/rs6000.c (rs6000_override_options): Enable
2894         TARGET_NO_FP_IN_TOC for section anchors.
2895         (optimization_options): Enable section anchors for all
2896         non-"Objective" languages.
2897
2898 2006-04-28  Eric Christopher  <echristo@apple.com>
2899
2900         * config/darwin-c.c (darwin_ms_struct): Move this
2901         (darwin_set_default_type_attributes): and this...
2902         * config/darwin.c: ... here.
2903         * config/darwin.h (darwin_ms_struct): Declare.
2904
2905 2006-04-28  Andrew MacLeod  <amacleod@redhat.com>
2906
2907         * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
2908
2909 2006-04-28  Roger Sayle  <roger@eyesopen.com>
2910
2911         PR c/25309
2912         * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
2913         (push_array_bounds): Delete prototype.  Change BOUNDS argument to
2914         an unsigned HOST_WIDE_INT.
2915         (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
2916         array index.
2917         (really_start_incremental_init): No need to call convert because
2918         bitsize_zero_node is already of type bitsizetype.
2919         (push_init_level): Extract the value of constructor_index as an
2920         unsigned HOST_WIDE_INT quantity, using tree_low_cst.
2921         (process_init_element): Likewise.
2922
2923 2006-04-28  Joseph S. Myers  <joseph@codesourcery.com>
2924
2925         * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
2926         value before passing to make_relative_prefix.
2927
2928 2006-04-28  Alan Modra  <amodra@bigpond.net.au>
2929
2930         PR middle-end/27260
2931         * builtins.c (expand_builtin_memset): Expand val in original mode.
2932
2933 2006-04-27  Eric Christopher  <echristo@apple.com>
2934
2935         * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
2936         with #ifndef/#endif.
2937         * config/darwin-c.c (darwin_ms_struct): New.
2938         (darwin_pragma_ms_struct): Ditto.
2939         (darwin_set_default_type_attributes): Ditto.
2940         * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
2941         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
2942         Register ms_struct pragma.
2943         * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
2944         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
2945         * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
2946         darwin_set_default_type_attributes if TARGET_MACHO.
2947
2948 2006-04-27  Andrew MacLeod  <amacleod@redhat.com>
2949
2950         PR tree-optimization/26854
2951         * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
2952         * doc/tree-ssa.texi: Update immuse iterator documentation.
2953         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
2954         * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
2955         * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
2956         first_safe_imm_use, next_safe_imm_use): Remove.
2957         (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
2958         (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
2959         (move_use_after_head): New.  Helper function to sort immuses in a stmt.
2960         (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
2961         (first_imm_use_stmt): New.  Get first stmt in an immuse list.
2962         (next_imm_use_stmt): New.  Get next stmt in an immuse list.
2963         (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
2964         (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
2965         (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
2966         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
2967         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
2968         (perfect_nestify): Use new iterator.
2969         * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
2970         iterator.
2971         * tree-flow.h (struct immediate_use_iterator_d): Add comments.
2972         (next_imm_name): New field in struct immediate_use_iterator_d.
2973         (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
2974         (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
2975         FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
2976         * tree-cfg.c (replace_uses_by): Use new iterator.
2977         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
2978         * tree-ssa-operands.c (correct_use_link): Remove.
2979         (finalize_ssa_use_ops): No longer call correct_use_link.
2980
2981 2006-04-27  Stuart Hastings  <stuart@apple.com>
2982
2983         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
2984         * config/t-darwin (crt3.o): Use it.
2985         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
2986         'pmode', use Pmode instead of SImode for SYMBOL_REF.
2987         * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
2988         call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
2989         call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
2990         support.
2991
2992 2006-04-27  Roger Sayle  <roger@eyesopen.com>
2993
2994         * expmed.c (store_fixed_bit_field): If we're not optimizing for
2995         size, force the intermediate into a new pseudo rather instead of
2996         performing both a bitwise AND and a bitwise IOR in memory.
2997
2998 2006-04-27  Richard Guenther  <rguenther@suse.de>
2999
3000         PR rtl-optimization/26685
3001         * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
3002         this one "max-flow-memory-locations".
3003
3004 2006-04-27  Richard Guenther  <rguenther@suse.de>
3005
3006         PR tree-optimization/25148
3007         * tree-vrp.c (compare_values): Remove code dealing with
3008         comparisons against type min/max value.  Honour overflow
3009         and negative constants in code dealing with comparisons
3010         of plus and minus expressions.
3011         (value_inside_range): Use fold_binary with LE_EXPR and
3012         GE_EXPR rather than compare_values.
3013
3014 2006-04-27  Dirk Mueller  <dmueller@suse.de>
3015
3016         * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
3017         prototype for SSE.
3018
3019 2006-04-26  Kenneth Zadeck <zadeck@naturalbridge.com>
3020
3021         * basic-block.h (safe_insert_insn_on_edge): Removed.
3022         * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
3023
3024 2006-04-26  David Edelsohn  <edelsohn@gnu.org>
3025             Paolo Bonzini  <bonzini@gnu.org>
3026
3027         PR middle-end/27282
3028         * combine.c (simplify_and_const_int_1): Use gen_int_mode.
3029         (simplify_and_const_int): Same.
3030
3031 2006-04-26  Aldy Hernandez  <aldyh@redhat.com>
3032
3033         * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
3034
3035 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
3036
3037         PR c/26171
3038         * cgraph.c (cgraph_varpool_finalize_decl): Don't call
3039         cgraph_varpool_assemble_pending_decls if -fopenmp, unless
3040         cgraph_global_info_ready.
3041
3042         PR middle-end/26913
3043         * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
3044
3045         PR c/25996
3046         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
3047         either decl or init is error_mark_node.
3048
3049         PR middle-end/25989
3050         * tree-flow.h (struct omp_region): Add sched_kind.
3051         * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
3052         instead of extracting omp for data.
3053         (expand_omp_for): Save extracted sched_kind.
3054
3055 2006-04-25  Roger Sayle  <roger@eyesopen.com>
3056
3057         * expmed.c (store_bit_field): Also check whether the bitsize is
3058         valid for the machine's "insv" instruction before moving the
3059         target into a pseudo for use with the insv.
3060         * config/i386/predicates.md (const8_operand): New predicate.
3061         * config/i386/i386.md (extv, extzv, insv): Use the new
3062         const8_operand predicate where appropriate.
3063
3064 2006-04-25  DJ Delorie  <dj@redhat.com>
3065
3066         * doc/install.texi (Specific): Clarify that this is not a list of
3067         supported hosts or targets.
3068
3069 2006-04-25  Richard Sandiford  <richard@codesourcery.com>
3070
3071         PR rtl-optimization/26725
3072         * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
3073         block's BB_DIRTY flag.
3074
3075 2006-04-25  Geoffrey Keating  <geoffk@apple.com>
3076
3077         * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
3078         are no branches.
3079
3080         * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
3081         to print an integer.
3082
3083 2006-04-25  David Edelsohn  <edelsohn@gnu.org>
3084
3085         * varasm.c (align_variable): New function.
3086         (get_block_for_decl): Apply align_variable to DECL before
3087         calculating section information.
3088         (assemble_variable): Split out alignment computation.
3089
3090 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
3091
3092         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
3093         machines.
3094
3095 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
3096
3097         * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
3098         MODE_PARTIAL_INT mode.
3099         * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
3100         * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
3101         for CONST_INTs.
3102         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
3103         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
3104         V2PDImode.
3105         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
3106         New predicates.
3107         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
3108         New constants.
3109         (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
3110         MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
3111         MACFLAG_IH): Likewise.
3112         (movstricthi_1): Renamed from "*movstricthi".
3113         (load_accumulator, load_accumulator_pair, movsi_insv, insv,
3114         ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
3115         abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
3116         movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
3117         movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
3118         movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
3119         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
3120         sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
3121         addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
3122         mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
3123         ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
3124         flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
3125         flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
3126         flag_macv2hi_parts, flag_macv2hi_parts_acconly,
3127         flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
3128
3129         * doc/rtl.texi (ss_ashift): Improve wording.
3130
3131 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
3132
3133         * dwarf2out.c (verify_marks_clear): New.
3134         (prune_unused_types): Call verify_marks_clear initially, not
3135         prune_unmark_dies.
3136
3137 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3138
3139         * rtl.def (SS_ASHIFT, SS_NEG): New codes.
3140         * doc/rtl.texi: Document them.
3141         * simplify-rtx.c (simplify_unary_operation,
3142         simplify_binary_operation_1): Don't abort when we see them.
3143
3144 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
3145
3146         Revert:
3147         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
3148         * configure.ac: Completely disregard languages that are not
3149         enabled.
3150         * configure: Regenerated.
3151
3152 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
3153         Richard Guenther  <rguenther@suse.de>
3154
3155         PR tree-optimization/27236
3156         * tree-inline.c (copy_body_r): Make sure to copy
3157         TREE_THIS_VOLATILE flag.
3158
3159 2006-04-24  Richard Guenther  <rguenther@suse.de>
3160
3161         PR middle-end/26869
3162         * tree-complex.c (update_parameter_components): Don't handle
3163         unused parameters which have no default def.
3164
3165 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
3166         Richard Guenther  <rguenther@suse.de>
3167
3168         PR tree-optimization/27218
3169         * tree-inline.c (expand_call_inline): Strip useless type
3170         conversions for the return slot address.
3171
3172 2006-04-24  Richard Guenther  <rguenther@suse.de>
3173
3174         * cfgloop.h (struct loops): Remove unused field array.  Reorder
3175         state after num.
3176         (LOOP_PREFETCH): Remove.
3177
3178 2006-04-24  Richard Guenther  <rguenther@suse.de>
3179
3180         PR tree-optimization/22525
3181         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
3182         variable, adjust types of generated expressions.
3183
3184 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
3185
3186         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
3187         (tree-vect-patterns.o): Likewise.
3188         (jump.o): Likewise.
3189         (cselib.o): Likewise.
3190         (loop-doloop.o): Likewise.
3191         (regclass.o): Likewise.
3192         (reload1.o): Likewise.
3193         (explow.o): Replace target.h with $(TARGET_H).
3194         (ipa-prop.o): Likewise.
3195         (ipa-cp.o): Likewise.
3196         (ipa-inline.o): Likewise.
3197         (reorg.o): Likewise.
3198         (reg-stack.o): Likewise.
3199
3200 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
3201
3202         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
3203
3204 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
3205
3206         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
3207
3208         * configure.ac: Completely disregard languages that are not
3209         enabled.
3210         * configure: Regenerated.
3211
3212         PR c++/26534
3213         * c-common.h (c_build_bitfield_integer_type): Declare.
3214         * c-decl.c (c_build_bitfield_integer_type): Move to ...
3215         * c-common.c (c_build_bitfield_integer_type): ... here.
3216
3217 2006-04-23  Roger Sayle  <roger@eyesopen.com>
3218
3219         PR target/21283
3220         * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
3221         a SImode SUBREG of a floating point register after no_new_pseudos.
3222
3223 2006-04-23  Roger Sayle  <roger@eyesopen.com>
3224
3225         * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
3226         identify potentially eliminable registers to additionally catch
3227         VIRTUAL_INCOMING_ARGS_REGNUM.
3228         (addsi3): Update the conditions on when to use addsi_small_int.
3229
3230 2006-04-23  Roger Sayle  <roger@eyesopen.com>
3231
3232         PR target/16641
3233         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
3234         STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
3235         rtx to stack_pointer_rtx or frame_pointer_rtx directly.
3236
3237 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
3238
3239         * fold-const.c (range_predecessor): Use operand_equal_p
3240         as the predicate for equality.
3241         (range_successor): Likewise.
3242
3243 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
3244
3245         Revert:
3246         * config/soft-fp/op-common.h: Fix a typo.
3247
3248 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
3249
3250         PR libmudflap/26864
3251         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
3252         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
3253
3254 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
3255
3256         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
3257         Fix comment typos.
3258         * doc/tm.texi: Fix a typo.
3259
3260 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
3261
3262         * dwarf2out.c (struct die_struct): Document that die_sib makes
3263         a circular linked list.
3264         (FOR_EACH_CHILD): New.
3265         (reverse_die_lists): Delete.
3266         (reverse_all_dies): Delete.
3267         (add_dwarf_attr): Correct documentation.
3268         (remove_child_with_prev): New.
3269         (remove_child_TAG): Update for change to die_struct, use
3270         remove_child_with_prev.
3271         (add_child_die): Update for change to die_struct.
3272         (splice_child_die): Use remove_child_with_prev and add_child_die.
3273         (print_die): Use FOR_EACH_CHILD.
3274         (die_checksum): Likewise.
3275         (assign_symbol_names): Likewise.
3276         (output_location_lists): Likewise.
3277         (build_abbrev_table): Likewise.
3278         (calc_die_sizes): Likewise.
3279         (mark_dies): Likewise.
3280         (unmark_dies): Likewise.
3281         (unmark_all_dies): Likewise.
3282         (output_die): Likewise.
3283         (prune_unused_types_mark): Likewise.
3284         (prune_unused_types_walk): Likewise.
3285         (same_die_p): Update for change to die_struct.
3286         (break_out_includes): Likewise.
3287         (prune_unused_types_prune): Likewise.
3288         (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
3289         (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
3290         it's already clear.
3291         (dwarf2out_finish): Don't call reverse_all_dies.
3292
3293 2006-04-21  Eric Christopher  <echristo@apple.com>
3294
3295         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
3296         in comments and function names.
3297
3298 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3299
3300         PR c/25875
3301         * c-typeck.c (digest_init): Robustify.
3302
3303         * c-typeck.c (pop_init_level): Simplify.
3304
3305 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
3306
3307         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
3308
3309 2006-04-21  Paul Brook  <paul@codesourcery.com>
3310
3311         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
3312         hardware floating point.
3313
3314 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
3315
3316         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
3317         NON_FLOAT_REGS.
3318
3319 2006-04-21  Nick Clifton  <nickc@redhat.com>
3320
3321         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
3322         OPT_EXTRA_PARTS.
3323
3324 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
3325
3326         PR target/27230
3327         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
3328         C++ lang type in traceback table for Objective-C++.
3329
3330         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
3331
3332 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
3333
3334         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
3335
3336 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3337
3338         PR mudflap/26789
3339         * tree-mudflap.c (mudflap_finish_file): Skip function when there
3340         were errors.  Remove check for erroneous objects.
3341
3342 2006-04-20  Jeff Law  <law@redhat.com>
3343
3344         PR tree-optimization/26854
3345         * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
3346         checking for zero or one use.
3347         * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
3348         * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
3349         * tree-ssa-reassoc.c (negate_value): Similarly.
3350         (reassociate_bb): Similarly.
3351
3352 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
3353
3354         * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
3355         TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
3356         than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
3357
3358 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
3359
3360         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
3361         fp regs if the last fp arg doesn't fit in regs.
3362
3363 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3364
3365         PR target/27182
3366         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
3367         that the last insn has the REG_INC note.
3368
3369 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
3370             Nathan Sidwell  <nathan@codesourcery.com>
3371
3372         PR c/26774
3373         * stor-layout.c (update_alignment_for_field): Do not align
3374         ERROR_MARK nodes.
3375         (place_union_field): Place union field at the start of the union.
3376         (place_field): Move ERROR_MARK check later, and use the current
3377         allocation position to maintain monotonicity.
3378
3379 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
3380
3381         * dominance.c: Include timevar.h.
3382         (calculate_dominance_info): Use TV_DOMINANCE.
3383         * timevar.def (TV_DOMINANCE): New timevar.
3384         * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
3385
3386 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
3387
3388         PR rtl-optimization/14261
3389         * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
3390         move would be an INSV insn.
3391         (noce_process_if_block): Don't optimize if the destination is a
3392         ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
3393
3394 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
3395
3396         * config/s390/s390.md: Add comments with the instructions emitted
3397         by an insn pattern if macros are used.
3398
3399 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
3400
3401         PR rtl-optimization/26026
3402         * fold-const.c (fold_binary): Optimize div and mod where the divisor
3403         is a known power of two shifted left a variable amount.
3404
3405 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
3406
3407         * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
3408         to hash table twice when the debug_str section has SECTION_MERGE.
3409
3410 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
3411
3412         * config/soft-fp: New directory.  From glibc.
3413         * config/soft-fp/t-softfp: New.
3414         * config/soft-fp/README: New.
3415         * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
3416         * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
3417         (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
3418         (LIBGCC_DEPS): Add $(SFP_MACHINE).
3419         * config.gcc: Use rs6000/t-fprules-fpbit or
3420         rs6000/t-fprules-softfp and soft-fp/t-softfp together with
3421         rs6000/t-fprules.
3422         * config/rs6000/sfp-machine.h: New.  Based on glibc.
3423         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
3424         New.
3425         * config/rs6000/t-fprules: Remove fp-bit rules.
3426         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
3427         * config/rs6000/t-linux64: Likewise.  Remove duplicates from
3428         LIB2FUNCS_EXTRA.  Remove fp-bit rules.
3429         (softfp_wrap_start, softfp_wrap_end): New.
3430
3431 2006-04-18  DJ Delorie  <dj@redhat.com>
3432
3433         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
3434
3435 2006-04-18  Devang Patel  <dpatel@apple.com>
3436
3437         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
3438
3439 2006-04-18  Nick Clifton  <nickc@redhat.com>
3440
3441         * config/sh/t-symbian: Add rule to build sh-c.o
3442         * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
3443         of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
3444         (sh_symbian_encode_section_info): Likewise.
3445
3446 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
3447
3448         * builtins.c (expand_builtin_strcmp): Cover label definition of
3449         do_libcall with HAVE_cmpstrnsi.
3450
3451 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
3452
3453         * function.c (temp_slots_at_level, max_slot_level): Use VEC
3454         instead of VARRAY.
3455         * function.h (temp_slot_p): New.
3456         (function): Change the type of x_used_temp_slots to
3457         VEC(temp_slot_p,gc) *.
3458
3459 2006-04-18  Nick Clifton  <nickc@redhat.com>
3460
3461         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
3462         flag_strength_reduce.
3463
3464         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
3465
3466 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
3467
3468         PR target/27117
3469
3470         Partial revert of revision 112637
3471         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
3472                     Dale Johannesen  <dalej@apple.com>
3473
3474         PR target/19653
3475         * regclass.c (struct reg_pref): Update documentation.
3476         (regclass): Set prefclass to NO_REGS if memory is the best option.
3477         (record_reg_classes): Cope with a prefclass set to NO_REGS.
3478
3479 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
3480
3481         PR tree-optimization/26821
3482         * tree-ssa-math-opts.c (get_constant_one): New.
3483         (insert_reciprocals): Use it.
3484
3485 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
3486
3487         * dwarf2out.c (free_AT): Delete.
3488         (remove_AT): Update string ref counts.
3489         (remove_child_TAG): Don't call free_die.
3490         (free_die): Delete.
3491         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
3492         or DW_TAG_GNU_EINCL.
3493         (prune_unused_types_walk_attribs): Reset string refcounts.
3494         (prune_unused_types_update_strings): New.
3495         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
3496         call free_die.