OSDN Git Service

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