OSDN Git Service

2006-07-18 Paolo Bonzini <bonzini@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-07-18  Paolo Bonzini  <bonzini@gnu.org>
2
3         * configure: Regenerate.
4         * Makefile.in (build_libsubdir): New configure substitution
5         (build_libobjdir): New variable.
6         (BUILD_LIBIBERTY): Use it.
7
8 2006-07-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9
10         PR c/28286
11         * c-pragma.c (handle_pragma_pack): Handle invalid constants.
12
13 2006-07-18  Alexandre Oliva  <aoliva@redhat.com>
14
15         PR c/26993
16         * c-common.c (handle_weakref_attribute): Ignore attribute in
17         the same conditions the alias attribute is ignored.
18
19 2006-07-17  Carlos O'Donell  <carlos@codesourcery.com>
20
21         * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
22         (dbxout_begin_prologue): Increment scope_labelno.
23
24 2006-07-17  Richard Henderson  <rth@redhat.com>
25
26         PR 27889
27         * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
28         if needed.
29
30 2006-07-17  Roger Sayle  <roger@eyesopen.com>
31             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32
33         * config/i386/gmon-sol2.c: Silence compilation warnings by partially
34         synchronizing code with config/sparc/gmon-sol2.c.  Remove #if 0
35         blocks.  #include "tconfig.h" and "tsystem.h" to prototype system
36         functions such as sbrk, write, etc..  Add function prototypes.
37         Convert function declarations from K&R to ISO C.  Cast pointers
38         to "long" and "unsigned long" instead of "int" and "unsigned int".
39         Convert tokens following #endif into comments.
40
41 2006-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
42
43         * invoke.texi: Remove mention of f77; Reformat table for
44         inline parameter options correctly; mention that -malign-double
45         is default on x86-64 targets.
46
47 2006-07-17  Zdenek Dvorak <dvorakz@suse.cz>
48
49         * tree-chrec.c (avoid_arithmetics_in_type_p): New.
50         (convert_affine_scev, chrec_convert_aggressive): Use
51         avoid_arithmetics_in_type_p.  Do not check for the subtypes
52         separately.
53
54 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
55
56         PR middle-end/28403
57         * optabs.c (expand_doubleword_shift): Wrap the call to
58         do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
59
60 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
61
62         PR middle-end/28402
63         * optabs.c (expand_binop): Pass next_methods rather than methods
64         to expand_doubleword_shift.
65
66 2006-07-17  J"orn Rennecke  <joern.rennecke@st.com>
67
68         PR other/28251
69         * tree.h (dump_addr): Declare.
70         * print-tree.c (dump_addr): New function.
71         (print_node_brief, print_node): Use it.
72         * print-rtl.c (print_rtx): Likewise.
73         * common.opt (-fdump-noaddr): New option.
74         * doc/invoke.texi (-fdump-noaddr): Document.
75         * loop-unroll.c (si_info_hash): Make hash independent of addresses.
76         (ve_info_hash): Likewise.
77
78 2006-07-13  Andrew Haley  <aph@redhat.com>
79
80         PR tree-optimization/19505
81         * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
82         edge leaving this block, make sure that the destination of this
83         block has only one predecessor.
84
85 2006-07-17  Richard Guenther  <rguenther@suse.de>
86
87         PR tree-optimization/28238
88         * tree-inline.c (copy_bb): Check if we produced valid
89         gimple copying and substituting a stmt.  If not, gimplify
90         it.
91
92 2006-07-16  Eric Botcazou  <ebotcazou@adacore.com>
93
94         * optabs.c (maybe_encapsulate_block): New function extracted from...
95         (emit_libcall_block): ...here.  Invoke it on the block of insns to
96         maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
97         (emit_no_conflict_block): Likewise.
98
99 2006-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
100
101         * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
102
103 2006-07-15  Roger Sayle  <roger@eyesopen.com>
104
105         * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
106         a new NOP_EXPR case of the switch statement.
107
108 2006-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
109
110         PR middle-end/28160
111         * stor-layout.c (place_field): Take the bit field with
112         an excessive size into account in the ms-bitfiled case.
113
114         PR middle-end/28161
115         * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
116         the previous bit field.
117
118 2006-07-14  Eliot Dresselhaus  <eliot@sonic.net>
119
120         PR target/27287
121         * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
122
123 2006-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
124
125         * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
126         signal frames correctly even when the signal was installed with
127         sa_restorer set.
128
129 2006-07-14  Carlos O'Donell  <carlos@codesourcery.com>
130
131         * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
132         (dbxout_function_end): Use local label LFBB. Remove hook 
133         DBX_OUTPUT_NFUN.
134         (dbxout_source_line): Use local label LFBB.
135         (dbxout_block): Likewise.
136         (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
137         (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
138         * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
139         and DBX_OUTPUT_NFUN.
140
141 2006-07-13  Janis Johnson  <janis187@us.ibm.com>
142
143         * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
144
145 2006-07-13  Jan Hubicka  <jh@suse.cz>
146
147         * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
148         align_variable.
149         * output.h (align_variable): Declare.
150         * varasm.c (align_variable): Export.
151         * value-prof.c (tree_value_profile_transformations): Recompute iterator
152         when basic block changed.
153
154 2006-07-13  Nick Clifton  <nickc@redhat.com>
155
156         * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
157         walking the LOG_LINKS chain.
158   
159 2006-07-12  Geoffrey Keating  <geoffk@apple.com>
160
161         * doc/invoke.texi (C++ Dialect Options): Explain difference
162         between -fvisibility-inlines-hidden and setting hidden
163         visibility explicitly.
164
165 2006-07-12  Eric Christopher  <echristo@apple.com>
166
167         * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
168         (stmp-lipo): Depend on libgcc.a.
169
170 2006-07-12  Kazu Hirata  <kazu@codesourcery.com>
171
172         * tree.c: Fix a comment typo.
173
174 2006-07-12  Naveen.H.S  <naveenh@kpitcummins.com>
175
176         * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
177         dest.
178         (umulhisi3_r): Likewise.
179
180 2006-07-12  Paolo Carlini  <pcarlini@suse.de>
181
182         PR libstdc++/27878
183         * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
184         x < 19, vs wchar_t support.
185
186 2006-07-12  Nick Clifton  <nickc@redhat.com>
187
188         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
189         instead of -isa=sh4.
190
191 2006-07-12  Mike Stump  <mrs@apple.com>
192
193         * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
194
195 2006-07-10  Eric Christopher  <echristo@apple.com>
196
197         * config/t-slibgcc-darwin: Rewrite.
198
199 2006-07-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
200
201         PR bootstrap/20437
202         * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
203         dependencies.
204
205 2006-07-08  Matthias Klose  <doko@debian.org>
206
207         * doc/sourcebuild.texi: Fix typo.
208
209 2006-07-07  Mike Stump  <mrs@apple.com>
210
211         * toplev.c (process_options): Don't give -ffunction-sections may
212         affect debugging warning for Mach-O.
213
214 2006-07-07  James E Wilson  <wilson@specifix.com>
215
216         * config/mips/mips.md (cpu): Add sb1a.
217         * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
218         addition to sb1.  Adjust comments to clarify SB-1A differences from
219         SB-1.
220         (ir_sb1a_load): New.  Modify bypasses to use it.
221         (ir_sb1a_simple_alu): Likewise.
222         * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
223         (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
224         (mips_issue_rate): Add PROCESSOR_SB1A.
225         (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
226         * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
227         (TARGET_SB1): Add PROCESSOR_SB1A check.
228         (TUNE_SB1): Likewise.
229
230         * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
231         * config/mips/mips.c (mips_store_data_bypass_p): New.
232         * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
233         store_data_bypass_p.
234
235 2006-07-08  Paul Brook  <paul@codesourcery.com>
236
237         PR target/27991
238         * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
239
240 2006-07-07   Richard Guenther  <rguenther@suse.de>
241
242         PR middle-end/28268
243         * tree.h (build_one_cst): Declare.
244         * tree.c (build_one_cst): New function.
245         * tree-ssa-math-opts.c (get_constant_one): Remove.
246         (insert_reciprocals): Use build_one_cst.
247         * fold-const.c (fold_plusminus_mult): Likewise.
248
249 2006-07-07  Roger Sayle  <roger@eyesopen.com>
250
251         * pointer-set.c (pointer_set_destroy): Correct whitespace.
252         * cfgloopanal.c (dump_graph): Likewise.
253         * dojump.c (discard_pending_stack_adjust): Likewise.
254         * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
255         Likewise.
256         * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
257         * function.c (finalize_block_changes): Likewise.
258         * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
259         * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
260         * rtl.c (dump_rtx_statistics): Likewise.
261         * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
262         Likewise.
263         * varray.c (dump_varray_statistics): Likewise.
264         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
265         decode_decimal64, encode_decimal128, decode_decimal128,
266         decimal_real_to_decimal): Likewise.
267
268 2006-07-07  Richard Guenther  <rguenther@suse.de>
269
270         PR tree-optimization/28187
271         * tree-vrp.c (vrp_operand_equal_p): New function.
272         (vrp_bitmap_equal_p): Likewise.
273         (update_value_range): Use them to compare old and new
274         max and min values.
275
276 2006-07-06  Roger Sayle  <roger@eyesopen.com>
277
278         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
279         a default case to switch statement to silence compiler warnings.
280
281 2006-07-06  Roger Sayle  <roger@eyesopen.com>
282
283         PR target/27968
284         * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
285         the configured assembler supports the x87's ffreep mnemonic.
286         * configure: Regenerate.
287         * config.in: Regenerate.
288
289         * config/i386/i386.c (output_387_ffreep): New function.
290         (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
291         (output_387_reg_move): Likewise.
292
293 2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>
294
295         Port to hosts whose 'sort' and 'tail' implementations
296         treat operands with leading '+' as file names, as POSIX
297         has required since 2001.  However, make sure the code still
298         works on pre-POSIX hosts.
299         * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
300         which says you should use "tail -c +N" rather than "tail +Nc".
301         Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
302
303 2006-07-06  Zdenek Dvorak <dvorakz@suse.cz>
304
305         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
306         argument name.
307
308 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
309
310         PR target/28150
311         * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
312         PRE_{INC,DEC} of TFmode.
313
314 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
315             Alan Modra  <amodra@bigpond.net.au>
316
317         PR target/28170
318         * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
319         bounds. Simplify.
320
321 2006-07-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
322
323         PR target/28285
324         * config/alpha/predicates.md (alpha_swapped_comparison_operator):
325         Remove duplicate gtu.
326
327 2006-07-05  Jason Merrill  <jason@redhat.com>
328
329         PR c++/13983
330         PR c++/17519
331         * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
332         * c-common.c (handle_packed_attribute): So don't copy it here.
333         * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
334
335 2006-07-05  Mike Stump  <mrs@apple.com>
336
337         * doc/invoke.texi (Invoking G++): Clarify prose for g++.
338
339 2006-07-05  H.J. Lu  <hongjiu.lu@intel.com>
340
341         PR target/26146
342         * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
343
344 2006-07-05  Richard Guenther  <rguenther@suse.de>
345
346         PR target/28158
347         * config/i386/i386.md (*negdf2_1): Restrict pattern to
348         TARGET_SSE2 targets if using SSE math.
349         (*absdf2_1): Likewise.
350
351 2006-07-05  Richard Guenther  <rguenther@suse.de>
352
353         PR tree-optimization/28162
354         * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
355         make sure to convert the operands to the correct type.
356
357 2006-07-04  Paolo Bonzini  <bonzini@gnu.org>
358
359         PR tree-optimization/28218
360
361         * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
362         to calculate and free the dominator information.
363
364 2006-07-04  Peter O'Gorman  <peter@pogma.com>
365
366         * mklibgcc.in: chmod 644 before ranlib during install.
367
368 2006-07-04  Andrew Stubbs <andrew.stubbs@st.com>
369             J"orn Rennecke <joern.rennecke@st.com>
370
371         * configure.ac (.eh_frame data check): Use diff -b.
372
373 2006-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
374
375         PR bootstrap/18058
376         * Makefile.in (BUILD_RTL): Add build/vec.o.
377         (build/gencondmd.o): Filter out -fkeep-inline-functions.
378         (build/genextract): Delete.
379         (build/genautomata): Likewise.
380
381 2006-07-04  Alan Modra  <amodra@bigpond.net.au>
382
383         PR target/28207
384         * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
385         128-bit IBM long doubles for ABI_V4.
386
387 2006-07-03  Eric Botcazou  <ebotcazou@adacore.com>
388
389         * tree.c (range_in_array_bounds_p): New predicate.
390         * tree.h (range_in_array_bounds_p): Declare it.
391         * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
392         return a less conservative answer.
393         * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
394         and flag 'is_group'.
395         (IS_ELEMENT_FOR_GROUP): New macro.
396         (FOR_EACH_ACTUAL_CHILD): Likewise.
397         (next_child_for_group): New helper function.
398         (can_completely_scalarize_p): Take into account groups.
399         (sra_hash_tree): Handle RANGE_EXPR.
400         (sra_elt_eq): Likewise.
401         (lookup_element): Be prepared for handling groups.
402         (is_valid_const_index): Delete.
403         (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
404         instead of is_valid_const_index.
405         <ARRAY_RANGE_REF>: New case.
406         (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
407         is_valid_const_index.
408         <ARRAY_RANGE_REF>: Do not unconditionally punt.
409         (scan_dump): Dump info for groups too.
410         (decide_instantiation_1): Likewise.
411         (decide_block_copy): Assert that the element is not a group.
412         Propagate decision to groups.
413         (generate_one_element_ref): Handle RANGE_EXPR.
414         (mark_no_warning): Iterate over actual childs.
415         (generate_copy_inout): Likewise.
416         (generate_element_copy): Likewise.
417         (generate_element_zero): Likewise.
418         (generate_element_init_1): Likewise.
419         (dump_sra_elt_name): Handle RANGE_EXPR.
420
421 2006-07-03  Roger Sayle  <roger@eyesopen.com>
422
423         PR tree-optimization/26251
424         * tree-ssa-threadupdate.c (redirection_block_p): New function.
425         (thread_block): When optimizing for size refuse to thread jumps
426         that would require duplication of blocks other than redirection
427         blocks.
428
429 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
430
431         * configure.ac: Fix thinko in previous check-in.
432         * configure: Regenerate.
433
434 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
435
436         PR other/27063
437         * configure.ac (for lang...): Simplify nesting of conditionals.
438         Test subdir_requires for non-enabled languages.  Move processing
439         of lang_opt_files and lang_tree_fiels below that test.
440         * configure: Regenerate.
441         * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
442
443 2006-07-01  Martin Michlmayr  <tbm@cyrius.com>
444
445         * doc/gcov.texi (Invoking Gcov): Add a missing word.
446
447 2006-06-30  Kazu Hirata  <kazu@codesourcery.com>
448
449         * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
450         comment typos.
451
452 2006-06-29  Jason Merrill  <jason@redhat.com>
453
454         PR c++/26905
455         PR c++/26612
456         PR c++/27000
457         PR c++/26984
458         PR c++/19134
459         * tree.c (build_decl_stat): Don't hande #pragma visibility here.
460         * c-common.c (c_determine_visibility): Handle it here.
461         * c-decl.c (finish_decl): Call c_determine_visibility for
462         functions, too.
463         * flags.h (enum symbol_visibility): Sort from most to least visibility.
464         * tree.h: Likewise.
465         * varasm.c (default_assemble_visibility): Likewise.
466         * c-common.c (handle_visibility_attribute): Complain about trying
467         to give visibility to an already defined class, or trying to change
468         declared visibility. Always attach the attribute.
469
470         PR c++/26905
471         PR c++/21675
472         PR c++/17470
473         * attribs.c (decl_attributes): Ignore type-in-place attributes
474         once the type has been defined.
475
476 2006-06-29  Roger Sayle  <roger@eyesopen.com>
477
478         PR middle-end/27428
479         * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
480         to indicate the cpplib has issued an error message for us.
481
482 2006-06-29  Asher Langton  <langton2@llnl.gov>
483
484         PR target/25765
485         * config/i386/i386.c (ix86_output_function_epilogue): Don't
486         insert a label at the end of an function under Mach-O.
487
488 2006-06-29  Eric Christopher  <echristo@apple.com>
489             Evan Cheng  <evan.cheng@apple.com>
490
491         * predicates.md (vector_all_ones_operand): New.
492         (nonimmediate_or_sse_const_operand): Ditto.
493         * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
494         * config/i386/i386.c (standard_sse_constant_opcode): Define.
495         (standard_sse_mode_p): Ditto.
496         (standard_sse_constant_p): Add case for -1 vector.
497         (ix86_expand_vector_move): Try to use.
498         * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
499         Call standard_sse_constant_opcode.
500         (*movv4sf_internal): Ditto.
501         (*movv2df_internal): Ditto.
502
503 2006-06-29  Roger Sayle  <roger@eyesopen.com>
504
505         * genpreds.c (write_match_code_switch): Correctly use XSTR instead
506         of XEXP to extract the operands of a MATCH_CODE rtx.
507
508 2006-06-28  Andrew Pinski  <pinskia@gmail.com>
509
510         * tree.c (tree_size): Do not waste tail padding in
511         struct tree_string and make the size be the same as
512         build_string will generate.
513
514 2006-06-28  Jason Merrill  <jason@redhat.com>
515
516         PR c++/27768
517         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
518         may_aliases already in the tag's annotations to the bitmap.
519
520 2006-06-28  Roger Sayle  <roger@eyesopen.com>
521
522         * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
523
524 2006-06-28  Roger Sayle  <roger@eyesopen.com>
525
526         * genpreds.c (generate_switch_p): New function.
527         (add_mode_tests): Push the new mode test down inside an AND expr
528         if this allows the switch-suitable MATCH_CODE to be near the root.
529         (write_match_code_switch): New function to write a MATCH_CODE as
530         a switch statement.
531         (write_predicate_stmts): New function to write a predicate RTX
532         expression as a sequence of statements.
533         (write_one_predicate_function): Use write_predicate_stmts.
534         (write_tm_constrs_h): Likewise.
535
536 2006-06-26  Fred Fish  <fnf@specifix.com>
537
538         * config/mips/t-sb1: New file.
539         * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
540         tmake_file list.
541
542 2006-06-26  DJ Delorie  <dj@redhat.com>
543
544         * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
545
546 2006-06-26  Naveen H.S  <naveenh@kpitcummins.com>
547             Jayant Sonar  <jayants@kpitcummins.com>
548             Jaydeep Vipradas  <jaydeepv@kpitcummins.com>
549
550         * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
551         (subsi3, subsi3_1, subsi3_2): New.
552         * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
553         * config/m32c/mov.md (SI mov peephole): New.
554         * config/m32c/m32.c (m32c_immd_dbl_mov): New.
555         * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
556
557 2006-06-26  Olivier Hainque  <hainque@adacore.com>
558
559         * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
560         a CALL_EXPR target function declaration.
561
562 2006-06-26  Richard Guenther  <rguenther@suse.de>
563
564         * tree.c (build_string): Do not waste tail padding in
565         struct tree_string.
566
567 2006-06-26  Richard Guenther  <rguenther@suse.de>
568
569         * ggc-page.c (init_ggc): Add missing element to size_lookup
570         table.
571
572         Revert
573         2006-06-23  Richard Guenther  <rguenther@suse.de>
574
575         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
576         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
577         alignment requests instead.  Add verification code.
578         Add struct tree_function_decl and struct tree_binfo size to
579         extra_order_size_table.  Add missing element to size_lookup
580         table.
581
582 2006-06-25  Eric Botcazou  <ebotcazou@adacore.com>
583
584         PR middle-end/28151
585         * fold-const.c (const_binop): Be prepared for self returning zero.
586         Simplify code handling complex values.
587
588 2006-06-24  Olivier Hainque  <hainque@adacore.com>
589
590         * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
591         (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
592         aggregate types.
593
594 2006-06-24  Olivier Hainque  <hainque@adacore.com>
595
596         * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
597         ARRAY_REF, so have the callback called for the low bound expression.
598
599 2006-06-23  Janis Johnson  <janis187@us.ibm.com>
600
601         * tree.h (DECIMAL_FLOAT_TYPE_P): New.
602         * c-typeck.c (c_common_type): Disallow operations on decimal float
603         types and other float types.
604         * convert.c (convert_to_real): Don't ignore conversions involving
605         decimal float types.
606
607 2006-06-23  Olivier Hainque  <hainque@adacore.com>
608
609         * tree.c (max_int_size_in_bytes): New function, inspired from
610         code in function.c:assign_temp.
611         * tree.h (max_int_size_in_bytes): Declare.
612         * function.c (assign_temp): Use it.
613         * gimplify.c (create_tmp_var): Relax the assertions on the type
614         properties, not mandating constant size any more.
615         (force_constant_size): New static function.
616         (gimple_add_tmp_var): Use it, forcing variable size to a
617         constant upper bound if it is not constant on entry.
618
619 2006-06-23  Danny Smith   <dannysmith@users.sourceforge.net>
620
621         PR target/27789
622         * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
623         for initialization and setting of one_only flag to ...
624         (i386_pe_encode_section_info): ...here.
625         (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
626         Recheck that the symbol has not been defined.
627
628 2006-06-23  Richard Guenther  <rguenther@suse.de>
629
630         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
631         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
632         alignment requests instead.  Add verification code.
633         Add struct tree_function_decl and struct tree_binfo size to
634         extra_order_size_table.  Add missing element to size_lookup
635         table.
636
637 2006-06-22  Roger Sayle  <roger@eyesopen.com>
638             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
639
640         PR middle-end/28131
641         * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
642         call to lang_hooks.types.type_for_mode returned NULL_TREE.
643
644 2006-06-23  Ben Elliston  <bje@au.ibm.com>
645
646         * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
647         negate dn -- manipulate it directly.
648
649 2006-06-22  Roger Sayle  <roger@eyesopen.com>
650             Steven Bosscher  <stevenb.gcc@gmail.com>
651
652         PR target/27531
653         * reload1.c (gen_reload): Call mark_jump_label on the new insns
654         generated by gen_move_insn to add REG_LABEL notes if necessary.
655
656 2006-06-22  Bob Wilson  <bob.wilson@acm.org>
657
658         * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
659         (leaf_entry): Remove use of MIN_ESA.
660
661 2006-06-22  Zdenek Dvorak <dvorakz@suse.cz>
662
663         PR rtl-optimization/28121
664         * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
665         the entry edge.
666
667 2006-06-21  DJ Delorie  <dj@redhat.com>
668
669         * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
670         (TN-16C-A156A/E).
671         (mulhisi3_r): Likewise.
672
673 2006-06-21  Richard Sandiford  <richard@codesourcery.com>
674
675         PR middle-end/28034
676         * coverage.c (coverage_counter_alloc): Leave the index type
677         unspecified.
678         (coverage_counter_alloc): Use null arguments for operands 2 and 3
679         of the ARRAY_REF.
680
681 2006-06-21  Andrew Pinski  <pinskia@physics.uc.edu>
682
683         * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
684         section from the "Options for Code Generation Conventions".
685
686 2006-06-21  Richard Henderson  <rth@redhat.com>
687
688         PR target/26347
689         PR target/27082
690         * config/alpha/predicates.md (small_symbolic_operand): Deny weak
691         symbols.
692         (global_symbolic_operand): Allow weak symbols, even if local_p.
693
694 2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
695
696         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
697         (find_interesting_uses_address): Punt if above function returns true.
698
699 2006-06-21  Richard Guenther  <rguenther@suse.de>
700
701         * configure: Regenerated.
702
703 2006-06-21  Joseph Myers  <joseph@codesourcery.com>
704
705         * config/mips/mips.c (function_arg): Where one part of a
706         complex argument is in registers and the other part in the stack,
707         return a REG not a PARALLEL.
708
709 2006-06-21  Mark Mitchell  <mark@codesourcery.com>
710
711         * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
712         when cross-compiling.  Do not substitute libstdcxx_incdir.
713         * configure: Regenerated.
714
715 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
716
717         * varasm.c (mergeable_string_section): Check for embedded NULs and
718         NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
719         rather than TREE_STRING_LENGTH bytes.
720
721 2006-06-21  Richard Guenther  <rguenther@suse.de>
722
723         * ggc-page.c (extra_order_size_table): Add var_ann_d,
724         tree_ssa_name, bitmap_element and phi_node with 4 arguments
725         sizes.
726
727 2006-06-21  Richrad Guenther  <rguenther@suse.de>
728
729         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
730         Limit iteration over the dominators.
731
732 2006-06-20  Roger Sayle  <roger@eyesopen.com>
733
734         * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
735         (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
736
737 2006-06-20  Richard Guenther  <rguenther@suse.de>
738         Michael Matz  <matz@suse.de>
739
740         * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
741         function.
742         * alloc-pool.c (free_alloc_pool_if_empty): New function.
743         * et-forest.h (et_free_pools): Prototype new function.
744         * et-forest.c (et_free_tree_force): Free parent occurrence.
745         (et_free_pools): New function.
746         * dominance.c (free_dominance_info): Free et-forest alloc
747         pools.
748
749 2006-06-20  Roger Sayle  <roger@eyesopen.com>
750
751         * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
752         integer modes, attempt to directly construct an integer constant.
753
754         * fold-const.c (native_encode_vector): Determine the size of each
755         element from the vector type instead of the first vector element.
756
757         * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
758         if all of its elements/components are constant.
759         (build_constructor_from_list): Likewise.
760
761 2006-06-20  Zdenek Dvorak <dvorakz@suse.cz>
762
763         PR tree-optimization/27331
764         * tree-data-ref.c (free_data_ref): New function.
765         (create_data_ref): Fail if the data reference has unknown access
766         function.
767         (free_data_refs): Use free_data_ref.
768
769 2006-06-19  Andrew Pinski  <pinskia@gmail.com>
770
771         PR middle-end/28075
772         * tree-inline.c (setup_one_parameter): Strip useless
773         type conversion before adding it to the IR.
774         (declare_return_variable): Likewise.
775
776 2006-06-19  Martin Michlmayr  <tbm@cyrius.com>
777
778         PR c/27149
779         * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
780
781 2006-06-19  Mike Stump  <mrs@apple.com>
782
783         * tree.c (variably_modified_type_p): VM arguments don't make the
784         type a VM type.
785
786 2006-06-19  Richard Guenther  <rguenther@suse.de>
787
788         * tree-ssa-pre.c (try_combine_conversion): Strip useless
789         type conversions after folding.
790
791 2006-06-19  Richard Guenther  <rguenther@suse.de>
792
793         * ggc-page.c (extra_order_size_tab): Add entries with
794         size of struct function and basic_block.
795         (size_lookup): Extend to cover sizes up to 511.
796         (ggc_alloc_stat): Adjust user.
797         (ggc_pch_count_object): Likewise.
798         (ggc_pch_alloc_object): Likewise.
799         (ggc_pch_write_object): Likewise.
800
801 2006-06-19  Zdenek Dvorak <dvorakz@suse.cz>
802
803         * tree-ssa-loop-niter.c (implies_ge_p): New function.
804         (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
805         correctly.
806
807 2006-06-19  Denis Chertykov  <denisc@overta.ru>
808
809         * config/avr/libgcc.S : Correct my wrong previous commit.
810
811 2006-06-19  Roger Sayle  <roger@eyesopen.com>
812
813         PR target/27861
814         * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
815         have stripped a SUBREG from the shift count, so we may need to
816         convert_to_mode back to the type's mode before calling make_tree.
817         Use new_amount instead of amount to avoid expanding a tree twice.
818
819 2006-06-19  Richard Guenther  <rguenther@suse.de>
820
821         PR middle-end/28045
822         * fold-const.c (operand_equal_p): Check if the argument types
823         have the same precision before stripping NOPs.
824
825 2006-06-19  Daniel Berlin  <dberlin@dberlin.org>
826
827         Fix PR tree-optimization/27341
828         * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
829         statement we get.
830         * tree-complex.c (pass_lower_complex): Update SMT usage.
831
832 2006-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
833
834         * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
835         Add a new alternative to the constraint strings. Add move of
836         operand 1 to 3 to the splitter definition.
837         ("doloop_si_long"): Second contraint alternative removed.
838
839 2006-06-08  Anatoly Sokolov <aesok@post.ru>
840
841         * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
842         (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
843         __AVR_HAVE_LPMX__.
844         (AVR_HAVE_MOVW) Define.
845         (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
846         (ASM_SPEC): Add avr25.
847         (LINK_SPEC): Add avr25.
848         * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
849         (base_arch_s): Add new member 'have_movw_lpmx'.
850         (avr_arch_types): Init 'have_movw_lpmx'.
851         (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
852         attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
853         attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
854         (avr_override_options): Init 'avr_have_movw_lpmx_p'.
855         (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
856         AVR_HAVE_MOVW.
857         (avr_file_start): Do not output '.arh' derective.
858         * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
859         (__do_copy_data): Use __AVR_HAVE_LPMX__.
860         * config/avr/avr.md (mcu_enhanced): Delete.
861         (mcu_have_movw): Define.
862         (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
863         (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
864         * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
865         (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
866         attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
867         attiny861 and at86rf401 devices.
868
869 2006-06-18  Jie Zhang  <jie.zhang@analog.com>
870
871         * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
872         of 4096.
873
874 2006-06-17  Karl Berry  <karl@gnu.org>
875
876         * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
877         doc/gccint.texi, doc/install.texi (@dircategory): Use
878         "Software development" instead of "Programming", following
879         the Free Software Directory.
880
881 2006-06-17  Alexandre Oliva  <aoliva@redhat.com>
882
883         * config/i386/i386.c (legitimate_tls_address)
884         <TARGET_GNU2_TLS>: Add tp after DTPOFF.
885         * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
886         (*tls_dynamic_gnu2_combine_64): Likewise.
887
888 2006-06-16  Richard Guenther  <rguenther@suse.de>
889
890         PR middle-end/27116
891         * fold-const.c (negate_expr_p): Do not introduce undefined
892         overflow in negating INTEGER_CSTs.
893         (fold_negate_expr): Rename from negate_expr.  Revert last
894         change for folding BIT_NOT_EXPR.  Change semantics to
895         return NULL_TREE for non-simplified negations.  Do not
896         strip type conversions and unify type handling.
897         (negate_expr): New function, wrap around fold_negate_expr
898         but ensure building a tree always.  Strip type conversions
899         here, fold to result type.
900         (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
901
902 2006-06-16  Roger Sayle  <roger@eyesopen.com>
903
904         PR middle-end/27802
905         * reg-stack.c (subst_stack_regs): Handle noreturn function calls
906         that (would) return their results in stack registers.
907
908 2006-06-16  Michael Matz  <matz@suse.de>
909         Richard Guenther  <rguenther@suse.de>
910
911         * fold-const.c (fold_truthop): Only return new tree node if
912         we canonicalized something.
913
914 2006-06-16  Richard Guenther  <rguenther@suse.de>
915
916         * function.h (enum function_frequency): Move declaration
917         out of struct function.
918         (struct function): Move bool fields and the enum to the bitfield
919         section.  Reorder elements to avoid padding.  Remove unused
920         fields left over from the RTL inliner removal.
921         * function.c (free_after_compilation): Do not zero removed fields.
922         * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
923         (ipa-type-escape.o): Likewise.
924
925 2006-06-16  Richard Guenther  <rguenther@suse.de>
926
927         * cgraph.h (struct cgraph_local_info): Turn bool elements
928         into a bitfield.
929         (struct cgraph_node): Likewise.
930         (struct cgraph_varpool_node): Likewise.
931
932 2006-06-15  Richard Guenther  <rguenther@suse.de>
933
934         * fold-const.c (fold_truth_not_expr): Rename from
935         invert_truthvalue.  Give it fold_* semantics to avoid
936         generating garbage.
937         (invert_truthvalue): New function.  Wrapper around
938         fold_truth_not_expr.
939         (optimize_minmax_comparison): Avoid creating garbage.
940         (fold_unary): Use fold_truth_not_expr for folding
941         TRUTH_NOT_EXPR.
942         (fold_ternary): Replace uses of invert_truthvalue with
943         fold_truth_not_expr where applicable.
944         * tree.h (fold_truth_not_expr): Prototype.
945
946 2006-06-16  Richard Guenther  <rguenther@suse.de>
947
948         PR tree-optimization/27781
949         * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
950         * ipa-pure-const.c (target.h): Include.
951         (analyze_function): Do not analyze functions that do not
952         bind locally.
953
954 2006-06-15  Andrew MacLeod  <amacleod@redhat.com>
955
956         PR middle-end/27793
957         * tree-dfa.c (referenced_vars_dup_list): Remove.
958         (find_referenced_vars): Remove assert.
959         (referenced_var_check_and_insert): Replace dup list with assert.
960         * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
961         * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
962
963 2006-06-15  Richard Guenther  <rguenther@suse.de>
964
965         * tree-ssa-structalias.c (alias_get_name): Avoid creating
966         extra unused identifiers if not dumping.
967         (create_variable_info_for): Likewise.
968
969 2006-06-15  Zdenek Dvorak <dvorakz@suse.cz>
970
971         * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
972         (derive_constant_upper_bound): Derive more precise upper bound in
973         common cases.  Return type changed to double_int.
974         (record_estimate): Reflect the changed return type of
975         derive_constant_upper_bound.
976         * double-int.c (double_int_zext, double_int_sext): Fix.
977
978 2006-06-15  Paolo Bonzini  <bonzini@gnu.org>
979
980         * configure.ac (CFLAGS): Get them from the toplevel or from the
981         configure invocation.
982         * configure: Regenerate.
983         * Makefile.in (CFLAGS): Substitute value provided by configure.
984
985 2006-06-14  Mark Mitchell  <mark@codesourcery.com>
986
987         PR c++/26559
988         * c-common.h (c_finish_omp_atomic): Adjust declaration.
989         * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
990         rather than calling add_stmt on it.
991         * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
992
993 2006-06-14  Andreas Krebbel  <krebbel1@de.ibm.com>
994
995         PR middle-end/27959
996         * reload1.c (reload): Remove registers returned by update_eliminables
997         from used_spill_regs.
998
999 2006-06-13  DJ Delorie  <dj@redhat.com>
1000
1001         * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
1002
1003 2006-06-13  Carlos O'Donell  <carlos@codesourcery.com>
1004
1005         * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
1006         html__strip_dir, html__mkdir_p. Enhance install-html target.
1007         * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
1008         * configure: Regenerate.
1009
1010 2006-06-13  Fariborz Jahanian <fjahanian@apple.com>
1011
1012         * fold-const.c (fold_cond_expr_with_comparison): Check for
1013         Objective-C++ as language in deciding COND_EXPR transformation.
1014
1015 2006-06-06  J"orn Rennecke <joern.rennecke@st.com>
1016
1017         PR target/28014:
1018         * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
1019         * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
1020         * config/sh/lib1funcs.h (SL, SL1): Define.
1021         * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
1022         * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
1023         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
1024         (OBJS_Os_4_200): New variable.
1025         ($(T)libgcc-Os-4-200.a): Use it.
1026         * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
1027         when dividing 1 and/or by 0.
1028
1029 2006-06-13  Roger Sayle  <roger@eyesopen.com>
1030
1031         * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
1032         before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
1033         * configure: Regenerate.
1034
1035 2006-06-13  Jie Zhang  <jie.zhang@analog.com>
1036
1037         * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
1038         for real instruction.
1039
1040 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1041
1042         PR middle-end/26807
1043         * haifa-sched.c (check_cfg): Handle special case.
1044
1045 2006-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1046
1047         PR debug/26754
1048         * gimplify.c (declare_tmp_vars): Rename into declare_vars.
1049         Add debug_info parameter.  Chain the vars to the BLOCK instead
1050         of the BIND_EXPR if debug info are requested for them.
1051         (pop_gimplify_context): Adjust for above change.
1052         (gimple_add_tmp_var): Likewise.
1053         * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
1054         Add bool parameter.
1055         * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
1056         (convert_local_reference): Likewise.
1057         (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
1058         (finalize_nesting_tree_1): Request that debug info be emitted
1059         for debug_var_chain.
1060
1061 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1062
1063         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
1064         for PR target/27863.
1065
1066 2006-06-13  Richard Guenther  <rguenther@suse.de>
1067
1068         PR middle-end/27536
1069         * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
1070
1071 2006-06-13  Richard Guenther  <rguenther@suse.de>
1072
1073         PR tree-optimization/27830
1074         * tree-inline.c (copy_body_r): For copying the operand
1075         of an ADDR_EXPR make sure to fold &* afterwards.
1076
1077 2006-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1078
1079         * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
1080         lvalues in the fb_none case with side-effects.
1081
1082 2006-06-12  Kazu Hirata  <kazu@codesourcery.com>
1083
1084         * tree-flow.h: Remove the prototype for
1085         compute_phi_arg_on_exit.
1086         * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
1087         protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
1088         Remove.
1089
1090 2006-06-12  Mark Shinwell  <shinwell@codesourcery.com>
1091
1092         * builtins.c (expand_builtin_return_addr): Only use
1093         frame_pointer_rtx when count == 0 and we are expanding
1094         __builtin_return_address.
1095
1096 2006-06-12  Fred Fish  <fnf@specifix.com>
1097
1098         * config/mips/mips.c (mips_file_start): Create special section
1099         ".gcc_compiled_longXX" for o64 ABI as well as EABI.
1100
1101 2006-06-11  Eric Christopher  <echristo@apple.com>
1102
1103         PR middle-end/27948
1104         * stor-layout.c (place_field): Remove check for
1105         remaining_in_alignment when aligning at the end of a run.
1106
1107 2006-06-11  Eric Christopher  <echristo@apple.com>
1108
1109         PR 27542
1110         * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
1111         pragma.
1112
1113 2006-06-11  Roger Sayle  <roger@eyesopen.com>
1114
1115         PR target/27858
1116         Revert incorrect fix for PR target/27158
1117         2006-05-08  Roger Sayle  <roger@eyesopen.com>
1118         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
1119         of a reg_equiv_constant if the result is a legitimate constant.
1120
1121 2006-06-11  Roger Sayle  <roger@eyesopen.com>
1122
1123         PR target/27158
1124         * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
1125         extract a CONST_VECTOR element and interpret it as an integer.
1126         (vspltis_constant): Use const_vector_elt_as_int instead of the
1127         macro CONST_VECTOR_ELT in order to handle FP vector modes.
1128         * config/rs6000/predicates.md (easy_vector_const): Consider
1129         floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
1130
1131 2006-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1132
1133         PR middle-end/27942
1134         * stor-layout.c (update_alignment_for_field): Don't add extra
1135         alignment for packed non-bitfield fields in ms_bitfield_layout_p
1136         code.
1137
1138 2006-06-09  Ralf Corsepius  <ralf.corsepius@rtems.org>
1139
1140         * config/mips/t-rtems: Add EL/EB multilib variants.
1141
1142 2006-06-09  Mike Stump  <mrs@apple.com>
1143
1144         * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
1145
1146 2006-06-09  David Daney  <ddaney@avtrex.com>
1147
1148         * doc/install.texi: Add binutils version recommendation for mips-*-*.
1149
1150 2006-06-09  Andreas Krebbel  <krebbel1@de.ibm.com>
1151
1152         * reload.c (find_reloads): Unset force_reload for 'X' constraint.
1153
1154 2006-06-09  Richard Guenther  <rguenther@suse.de>
1155
1156         PR tree-optimization/26998
1157         * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
1158         of signed types, only TYPE_MIN_VALUE is special, but for both,
1159         minimum and maximum value.  Likewise VR_ANTI_RANGE is special
1160         in this case, as is -fwrapv.
1161
1162 2006-06-08  Mike Stump  <mrs@apple.com>
1163
1164         PR target/26427
1165         * config/darwin.c (darwin_asm_output_anchor): Disable
1166         -fsection-anchors on darwin for now.
1167         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
1168         * rs6000/rs6000.c (optimization_options): Likewise.
1169
1170 2006-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1171
1172         PR target/27421
1173         * config/i386/i386.c (classify_argument): Skip fields with invalid
1174         types in unions.
1175
1176 2006-06-08  Steven Bosscher  <steven@gcc.gnu.org>
1177
1178         * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
1179         (cse_insn): Likewise for the stack_pointer_rtx.
1180
1181 2006-06-08  Roger Sayle  <roger@eyesopen.com>
1182
1183         * tree-ssa-dom.c (record_conditions): Only record "unordered"
1184         conditions from floating point comparisons.
1185
1186 2006-06-08  Paolo Bonzini  <bonzini@gnu.org>
1187
1188         PR middle-end/27733
1189         * expmed.c (struct alg_hash_entry): Fix type of field T
1190         to match synth_mult argument.
1191         (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
1192
1193 2006-06-08  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1194
1195         PR target/27863
1196         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
1197         block boundaries.
1198
1199 2006-06-08  Richard Guenther  <rguenther@suse.de>
1200
1201         PR middle-end/27116
1202         * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
1203         only, if overflow is defined and not trapping.
1204         (negate_expr): Likewise.
1205
1206 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
1207
1208         PR tree-optimization/27872
1209         * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
1210         flag on the new exit edge of the unrolled loop.
1211
1212 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
1213
1214         PR rtl-optimization/26449
1215         * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
1216
1217 2006-06-07  Andrew MacLeod  <amacleod@redhat.com>
1218
1219         PR middle-end/27793
1220         * tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate
1221         referenced_variables with matching DECL_UID's.
1222         (find_referenced_vars): Make sure duplicate list is empty to start.
1223         (referenced_var_p): Remove.
1224         (referenced_var_check_and_insert): Renamed from referenced_var_insert.
1225         Check if var is in the list, and add if needed.  Update the duplicate
1226         list if a different var is in the list with the same DECL_UID.
1227         (add_referenced_var): Call routine to check and insert.
1228         * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
1229         * tree-flow.h (referenced_vars_dup_list): External declaration.
1230
1231 2006-06-07  Fred Fish  <fnf@specifix.com>
1232
1233         * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
1234         into single entry.
1235
1236 2006-06-07  Paolo Bonzini  <bonzini@gnu.org>
1237
1238         PR target/27390
1239         * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
1240         the imaginary and real parts of a clobbered register.
1241         Emit insn to set the imaginary part.
1242
1243 2006-06-06  Peter Lemieszewski  <lemie@us.ibm.com>
1244
1245         * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
1246         in lieu of unwind-dw2-fde.c.
1247
1248 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1249
1250         * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
1251
1252 2006-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
1253
1254         PR target/27842
1255         * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
1256         ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
1257         ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
1258         V4SImode temporaries and operations instead.
1259
1260 2006-06-06  Joseph S. Myers  <joseph@codesourcery.com>
1261
1262         * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
1263         dp-bit.c.
1264
1265 2006-06-06  Mike Stump  <mrs@apple.com>
1266
1267         * Makefile.in: Rename to htmldir to build_htmldir to avoid
1268         installing during build.
1269
1270 2006-06-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1271
1272         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
1273         value to 0.
1274         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
1275         * config/ia64/ia64.c (params.h): New header.
1276         (ia64_optimization_options): New function to adjust parameters.
1277         * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
1278         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
1279         * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
1280
1281 2006-06-05  Kazu Hirata  <kazu@codesourcery.com>
1282
1283         * stor-layout.c (debug_rli): Fix a typo in a debug message.
1284
1285 2006-06-05  Steve Ellcey  <sje@cup.hp.com>
1286
1287         PR target/27051
1288         * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
1289
1290 2006-06-05  Dorit Nuzman  <dorit@il.ibm.com>
1291             Victor Kaplansky  <victork@il.ibm.com>
1292
1293         PR tree-optimization/26360
1294         * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
1295         stmts.
1296
1297 2006-06-04  Roger Sayle  <roger@eyesopen.com>
1298             Andrew Pinski  <pinskia@physics.uc.edu>
1299
1300         PR middle-end/27382
1301         * c-common.c (c_common_truthvalue_conversion): Explicitly check
1302         for LABEL_DECL before calling DECL_WEAK.
1303
1304         PR c/27150
1305         * c-typeck.c (build_binary_op): Likewise, explicitly check for
1306         LABEL_DECL and PARM_DECL.
1307
1308 2006-06-05  Joseph S. Myers  <joseph@codesourcery.com>
1309
1310         PR c/25161
1311         PR c/27020
1312         * c-decl.c (grokdeclarator): Disallow variably modified types at
1313         file scope.  Avoid marking shared array type of constant size as
1314         VLA.
1315
1316 2006-06-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1317
1318         PR c++/27601
1319         * c-common.c (fold_offsetof_1): Handle static members.
1320
1321 2006-06-04 Eric Christopher <echristo@apple.com>
1322
1323         * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
1324         (debug_rli): Output value for remaining_in_alignment.
1325         (update_alignment_for_field): Unconditionalize
1326         ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
1327         extra alignment code.
1328         (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
1329         ms_bitfield_layout_p code. Rewrite handling of structure fields.
1330         * tree.h (record_layout_info_s): Remove prev_packed.
1331         * doc/extend.texi (ms_struct): Add documentation of format.
1332
1333 2006-06-04  Mark Shinwell  <shinwell@codesourcery.com>
1334
1335         * tree.h: Declare folding_initializer.
1336         * builtins.c (fold_builtin_constant_p): Give definite answer
1337         if folding inside an initializer.
1338         * fold-const.c: Define folding_initializer.
1339         (START_FOLD_INIT): Save and then set folding_initializer.
1340         (END_FOLD_INIT): Restore folding_initializer.
1341
1342 2006-06-04  Richard Guenther  <rguenther@suse.de>
1343
1344         PR tree-optimization/27039
1345         * fold-const.c (fold_comparison): Handle pointer comparison
1346         again for all comparison codes.  Compare offsets in signed
1347         size type.
1348         (fold_binary): Move code from here.
1349
1350 2006-06-03  Roger Sayle  <roger@eyesopen.com>
1351
1352         PR target/26223
1353         * config/i386/i386.c (construct_container): Split static issued_error
1354         flag into issued_sse_arg_error, issued_sse_ret_error and
1355         issued_x87_ret_error.  Issue a daignostic if the x86-64 ABI
1356         requires the use of x87 registers and the user explicitly
1357         specified the -mno-80387 command line option.
1358
1359 2006-06-02  Geoffrey Keating  <geoffk@apple.com>
1360
1361         * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
1362         HAVE_DECL_SIGALTSTACK.
1363         (MC_FLD): New.
1364         (segv_handler): Use MC_FLD.
1365         * configure.ac: Check for a sigaltstack declaration.
1366         Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
1367         * configure: Regenerate.
1368         * config.in: Regenerate.
1369
1370 2006-06-03  J"orn Rennecke <joern.rennecke@st.com>
1371
1372         PR other/27850
1373         * Makefile.in (stmp-fixinc): Fix typo.
1374
1375 2006-06-02  Roger Sayle  <roger@eyesopen.com>
1376
1377         * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
1378         are type correct.  Clean-up.
1379         <REALPART_EXPR>: Likewise.  Optimize creal(~z) as creal(z).
1380         <IMAGPART_EXPR>: Likewise.  Optimize cimag(~z) as -cimag(z).
1381
1382 2006-06-01  DJ Delorie  <dj@redhat.com>
1383
1384         * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
1385         shift, as we've disabled the "switch" insn that needs it.
1386
1387 2006-06-01  Per Bothner  <bothner@bothner.com>
1388
1389         Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
1390         * c-opts.c (finish_options): Use internal line 0 for <command-line>.
1391         * c-ppoutput.c (cb_define): Don't increment line 0.
1392
1393 2006-06-01  Pete Steinmetz  <steinmtz@us.ibm.com>
1394
1395         * doc/invoke.texi: Add cpu_type power6.
1396         * config.gcc: Add cpu_type power6.
1397         * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
1398         to power5+ with Altivec.
1399         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
1400         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
1401
1402 2006-05-30  Anatoly Sokolov <aesok@post.ru>
1403
1404         * config/avr/avr.h (SET_ASM_OP): Define.
1405
1406 2006-06-01  Kazu Hirata  <kazu@codesourcery.com>
1407
1408         * config/bfin/bfin.c: Fix comment typos.
1409
1410 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
1411
1412         PR 25453
1413         * doc/install.texi: Document --enable-bootstrap and
1414         --disable-bootstrap.
1415
1416 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
1417
1418         * doc/install.texi: Document that InfoZIP can replace jar.
1419
1420 2006-05-31  Roger Sayle  <roger@eyesopen.com>
1421
1422         * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
1423         isn't available, directly generate the simpler x87 patterns without
1424         the (use (const_int 0)).
1425         * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
1426         implementation isn't available.
1427         (*negdf2_1): Likewise.
1428         (*negxf2_1): XF mode negation is always done using the x87.
1429         (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
1430
1431 2006-05-31  Roger Sayle  <roger@eyesopen.com>
1432
1433         * builtins.c (fold_builtin_cabs): Delete prototype.  Require an
1434         additional FNDECL argument.  Optimize cabs(-z) and cabs(~z) as
1435         cabs(z).
1436         (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
1437
1438 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
1439
1440         * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
1441         * config/bfin/bfin.c (basic-block.h): Include.
1442         (struct machine_function): New.
1443         (bfin_init_machine_status): New.
1444         (override_options): Initialize init_machine_status.
1445         (bfin_hardware_loop): New.
1446         (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
1447         (DEF_VEC_P (loop_info)): New.
1448         (DEF_VEC_ALLOC_P (loop_info,heap)): New.
1449         (struct loop_info): New.
1450         (loop_info): New typedef.
1451         (struct loop_work): New.
1452         (loop_work): New typedef.
1453         (DEF_VEC_O (loop_work)): New.
1454         (DEF_VEC_ALLOC_O (loop_work,heap)): New.
1455         (bfin_dump_loops): New.
1456         (bfin_bb_in_loop): New.
1457         (bfin_scan_loop): New.
1458         (bfin_optimize_loop): New.
1459         (bfin_reorg_loops): New.
1460         (bfin_reorg): Use bfin_reorg_loops.
1461         * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
1462         loop registers.
1463         (I_REGNO_P): Simplify.
1464         (DP_REGNO_P, DPREG_P): New macros.
1465         (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
1466         REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
1467         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
1468         Add LT_REGS, LC_REGS, LB_REGS.
1469         (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
1470         'l' for LB_REGS.
1471         (REGNO_REG_CLASS): Deal with loop registers.
1472         * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
1473         letters.
1474         (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
1475         New constants for loop registers.
1476         (UNSPEC_LSETUP_END): New.
1477         (seq_insns): New define_attr. Set it for appropriate insns.
1478         (movsi_insn): Add alternatives for move from/to
1479         loop count registers.
1480         (doloop_end): New define_expand.
1481         (loop_end): New define_insn.
1482         (define_split for bad doloop_end): New.
1483         (lsetup_with_autoinit): New define_insn.
1484         (lsetup_without_autoinit): New define_insn.
1485         (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
1486         * config/bfin/predicates.md (lc_register_operand): New.
1487         (lt_register_operand): New.
1488         (lb_register_operand): New.
1489         (nondp_register_operand): New.
1490         (nondp_reg_or_memory_operand): New.
1491         * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
1492
1493 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
1494
1495         * config/bfin/bfin.c (bfin_delegitimize_address): New.
1496         (TARGET_DELEGITIMIZE_ADDRESS): Define.
1497
1498 2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
1499
1500         * Makefile.in (CATALOGS): Add po/ prefix.
1501         * configure: Regenerated.
1502
1503 2006-05-31  Richard Earnshaw  <richard.earnshaw@arm.com>
1504
1505         PR target/27829
1506         * arm.c (arm_print_operand case 'S'): Validate that the operand is
1507         a shift operand before calling shift_op.  Avoid redundant call of
1508         shift_op.
1509
1510 2006-05-30  Naveen.H.S  <naveenh@kpitcummins.com>
1511             DJ Delorie  <dj@redhat.com>
1512
1513         * config/m32c/m32c.c (m32c_expand_insv): Check that the value
1514         we're inserting is a singlt-bit constant.
1515
1516 2006-05-30  Roger Sayle  <roger@eyesopen.com>
1517
1518         * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
1519         width to HOST_WIDE_INT to avoid comparison warnings on some targets.
1520
1521 2006-05-30  Roger Sayle  <roger@eyesopen.com>
1522
1523         PR tree-optimization/23452
1524         * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
1525         to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
1526         (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
1527         complex values and with -ffast-math for FP complex values.
1528
1529 2006-05-30  Kazu Hirata  <kazu@codesourcery.com>
1530
1531         * c-common.h: Remove the prototype for yyparse.
1532         * rtl.h: Remove the prototype for init_loop.
1533
1534 2006-05-30  Andreas Krebbel  <krebbel1@de.ibm.com>
1535
1536         * cse.c (validate_canon_reg, cse_insn): Don't change insns without
1537         calling recog.
1538
1539 2006-05-30  Roger Sayle  <roger@eyesopen.com>
1540
1541         * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
1542         and rotate cases.
1543         <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
1544         log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
1545
1546 2006-05-30  Dirk Mueller  <dmueller@suse.de>
1547
1548         PR c/27273
1549         * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
1550         for CONSTANT_CLASS_P expresisons.
1551
1552 2006-05-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1553
1554         PR c/27718
1555         * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
1556
1557 2006-05-30  Zdenek Dvorak <dvorakz@suse.cz>
1558
1559         PR tree-optimization/27779
1560         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
1561         initial_condition instead of CHREC_LEFT.
1562
1563 2006-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1564
1565         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
1566         * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
1567         Make prototypes ISO C90.
1568
1569 2006-05-30  Mircea Namolaru  <namolaru@il.ibm.com>
1570             Leehod Baruch    <leehod.baruch@weizmann.ac.il>
1571
1572         * see.c (see_analyze_one_def): Correct check.
1573         (see_get_extension_data): Check if extension is parallel.
1574         (see_get_extension_reg): Likewise.
1575
1576 2006-05-30  Uros Bizjak  <uros@kss-loka.si>
1577
1578         PR target/27790
1579         * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
1580         into register for (code == GTU).
1581
1582 2006-05-29  Roger Sayle  <roger@eyesopen.com>
1583
1584         PR tree-optimization/24964
1585         * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
1586         <MULT>: Minor clean-up.  Don't convert x*-1.0 into -x if we honor
1587         signaling NaNs.  Optimize -x*-x as x*x for all float modes, and
1588         abs(x)*abs(x) as x*x for scalar floating point modes.
1589
1590 2006-05-29  Sebastian Pop  <pop@cri.ensmp.fr>
1591
1592         PR middle-end/27745
1593         * lambda-code.c (perfect_nestify): Don't copy statements
1594         in the inner loop: move them to the inner loop header.
1595
1596 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
1597
1598         PR 26237
1599         * c-tree.texi: Document OpenMP directives and clauses.
1600
1601 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
1602
1603         * varasm.c (globalize_decl): Fix indentation.
1604
1605 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
1606
1607         PR 26242
1608         * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
1609         pass_fre, pass_store_ccp, pass_copy_prop,
1610         pass_store_copy_prop, pass_merge_phi, pass_nrv,
1611         pass_return_slot, pass_object_size, pass_lim,
1612         pass_linear_transform, pass_empty_loop, pass_complete_unroll,
1613         pass_loop_prefetch and pass_stdarg.
1614
1615 2005-05-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1616
1617         * config/bfin/bfin.opt (mfdpic): New option.
1618         * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
1619         (EXTRA_MULTILIB_PARTS): Likewise.
1620         (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
1621         (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
1622         multilib.
1623         * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
1624         (CRT_CALL_STATIC_FUNCTION): New.
1625         * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
1626         -shared.
1627         (CRT_CALL_STATIC_FUNCTION): New.
1628         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Handle
1629         FD-PIC moves.
1630         (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
1631         (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
1632         (initialize_trampoline): Changed to handle FD-PIC code generation.
1633         (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
1634         (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
1635         (override_options): Disallow -mid-shared-library -mfdpic combination.
1636         Can't do unaligned ops if FD-PIC.
1637         Turn off flag_pic if trying to generate non-id-shared-library
1638         non-fdpic code, since it's not supported.
1639         (bfin_assemble_integer): New function.
1640         (TARGET_ASM_INTEGER): Define.
1641         * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
1642         __BFIN_FDPIC__.
1643         * config/bfin/crtn.s: Restore them.
1644         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
1645         if TARGET_FDPIC.
1646         (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
1647         LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
1648         (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
1649         (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
1650         (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
1651         call-used.
1652         (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
1653         FDPIC_REGS and FDPIC_FPTR_REGS.
1654         (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
1655         * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
1656         UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
1657         (load_funcdescsi): New pattern.
1658         (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
1659         sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
1660         call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
1661
1662 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
1663
1664         * gcse.c, rtlanal.c: Remove obsolete comments associated with
1665         loop.c.
1666
1667         * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
1668
1669         * tree-flow.h: Remove the prototype for add_type_alias.
1670         * tree-ssa-alias.c (add_type_alias): Remove.
1671
1672 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
1673
1674         * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
1675         config/fr30/fr30.md, config/i386/i386-interix.h,
1676         config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
1677         config/sh/superh64.h, config/v850/v850.c, df-core.c,
1678         df-problems.c, df.h, except.c, final.c, haifa-sched.c,
1679         lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
1680         reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
1681         tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
1682         Follow spelling conventions.
1683         * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
1684         Follow spelling conventions.
1685
1686 2006-05-27  Richard Guenther  <rguenther@suse.de>
1687
1688         PR middle-end/27773
1689         * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
1690         to produce a constant of value 1 of generic type.
1691
1692 2006-05-27  Dirk Mueller  <dmueller@suse.de>
1693
1694         * cgraphunit.c (decide_is_function_needed): Fix wrong
1695         PR reference.
1696
1697 2006-05-26  Ulrich Weigand  <uweigand@de.ibm.com>
1698
1699         PR rtl-optimization/27661
1700         * reload.c (find_reloads): When reloading a VOIDmode constant
1701         as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
1702         use Pmode as mode of the reload register.
1703
1704 2006-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1705
1706         * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
1707         is enabled at -O and above.
1708
1709 2006-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1710
1711         PR target/27571
1712         * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
1713         table data.
1714
1715 2006-05-25  Mark Mitchell  <mark@codesourcery.com>
1716
1717         PR c++/20103
1718         * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
1719         for anonymous variables explicitly declared by front ends.
1720
1721 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1722
1723         * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
1724         (struct alias_info): Add new field ref_all_symbol_mem_tag.
1725         * tree-ssa-alias.c (compute_may_aliases): If the program contains
1726         ref-all pointers, run a finalization pass for them.
1727         (compute_flow_insensitive_aliasing): Skip ref-all pointers.
1728         (finalize_ref_all_pointers): New function.
1729         (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
1730         regular pointer type to a ref-all pointer type.
1731         (get_tmt_for): Return the special memory tag for ref-all pointers.
1732
1733 2006-05-25  Richard Guenther  <rguenther@suse.de>
1734
1735         PR middle-end/27743
1736         * fold-const.c (fold_binary): Do not look at the stripped
1737         op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
1738
1739 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1740
1741         * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
1742         for LT and GT if the computed range is effectively empty.
1743
1744 2006-05-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1745
1746         PR target/27627
1747         * pa/pa-modes.def: Use mips_single_format, mips_double_format and
1748         mips_quad_format formats instead of ieee_single_format,
1749         ieee_double_format and ieee_quad_format formats, respectively.
1750
1751 2006-05-24  Zdenek Dvorak <dvorakz@suse.cz>
1752
1753         PR tree-optimization/27639
1754         PR tree-optimization/26719
1755         * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
1756         call to scev_probably_wraps_p.
1757         * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
1758         used_in_pointer_arithmetic_p, convert_step): Removed.
1759         (nowrap_type_p): New function.
1760         (scev_probably_wraps_p): Rewritten.
1761         * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
1762         chrec_convert if chrec_convert_aggressive might have been used.
1763         * tree-chrec.c (convert_affine_scev, chrec_convert_1,
1764         scev_direction): New functions.
1765         (chrec_convert): Changed to a wrapper over chrec_convert_1.
1766         * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
1767         instead of convert_step.
1768         * tree-flow.h (scev_probably_wraps_p): Declaration changed.
1769         (convert_step): Declaration removed.
1770         (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
1771
1772 2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>
1773
1774         * df-core.c: Added to header comments.
1775         * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
1776         df_ur_bb_info, df_urec_bb_info): Added comments.
1777         * df-problems (df_ref_bitmap, ru, rd, lr, ur,
1778         urec, ri problems): Fixed header comments.
1779         (df_ru_transfer_function): Fixed in-out set dyslexia when copying
1780         code from df_rd_transfer_function.
1781
1782 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
1783
1784         * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
1785         (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
1786         MIN_UNITS_PER_WORD to set the default.  Also use it in the guard.
1787
1788 2006-05-23  Joseph Myers  <joseph@codesourcery.com>
1789
1790         * expr.c (undefined_operand_subword_p): New.
1791         (emit_move_multi_word): Do not generate move from undefined bits
1792         of a paradoxical subreg.
1793
1794 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
1795
1796         PR rtl-optimization/27736
1797         * combine.c (replaced_rhs_value): New variable.
1798         (combine_instructions): Set it.
1799         (distribute_notes): When distributing a note in replaced_rhs_insn,
1800         check whether the value was used in replaced_rhs_value.
1801
1802 2006-05-23  Andrew MacLeod  <amacleod@redhat.com>
1803
1804         PR c++/26757
1805         * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
1806         add_referenced_var instead of add_referenced_tmp_var.
1807         * tree-complex.c (create_one_component_var): Use add_referenced_var.
1808         * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
1809         add_referenced_var.
1810         * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
1811         tree_optimize_tail_calls_1): Use add_referenced_var.
1812         * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
1813         * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
1814         Use add_referenced_var.
1815         * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
1816         * gimplify.c (force_gimple_operand): Use add_referenced_var.
1817         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
1818         Use add_referenced_var.
1819         * tree-dfa.c (struct walk_state): Remove.
1820         (find_referenced_vars): Remove walk state and vars_found hash table.
1821         (make_rename_temp): Use add_referenced_var.
1822         (find_vars_r): Pass less parameters to add_referenced_var.
1823         (referenced_var_p): New.  Is var in referenced_var hash table.
1824         (referenced_var_insert): Assert var isn't already in hash table.
1825         (add_referenced_var): Don't need walk_state parameter.  Add var if it
1826         isn't already in the hash table.
1827         (add_referenced_tmp_var): Remove.
1828         (find_new_referenced_vars_1): Use add_referenced_var.
1829         * tree-ssa-pre.c (create_expression_by_pieces,
1830         insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
1831         Use add_referenced_var.
1832         * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
1833         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
1834         lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
1835         add_referenced_var.
1836         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
1837         vect_create_data_ref_ptr, vect_create_destination_var,
1838         vect_init_vector, vect_build_loop_niters,
1839         vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
1840         vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
1841         Use add_referenced_var.
1842         * tree-outof-ssa.c (create_temp): Use add_referenced_var.
1843         * tree-flow.h (add_referenced_tmp_var): Remove prototype
1844         (add_referenced_var): Add prototype.
1845         * tree-ssa-structalias.c (get_constraint_for,
1846         intra_create_variable_infos): Use add_referenced_var.
1847
1848 2006-05-23  Alexandre Oliva  <aoliva@redhat.com>
1849
1850         * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
1851         big-endian paradoxical subregs.
1852         * var-tracking.c (struct micro_operation_def): Document that,
1853         for modify micro operations, insn is the subsequent instruction.
1854         (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
1855         (var_reg_set, var_mem_set): ... new functions.
1856         (add_stores): Record subsequent insn.
1857         (compute_bb_dataflow): Use new functions for MO_USE.
1858         (emit_notes_in_bb): Use new functions for MO_USE.  Emit use
1859         notes after the insn, and modify notes before the insn known
1860         to be the subsequent one.
1861         (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
1862
1863 2006-05-23  Kazu Hirata  <kazu@codesourcery.com>
1864
1865         PR target/27696
1866         * config/i386/i386.c (ix86_expand_builtin): Use
1867         gen_sse3_monitor64 for TARGET_64BIT.
1868
1869 2006-05-22  Kenneth Zadeck <zadeck@naturalbridge.com>
1870
1871         PR rtl-optimization/26375
1872         PR rtl-optimization/26855
1873         * df-problems (df_ru_bb_local_compute_process_def): Removed update
1874         to gen set.
1875         (df_ru_bb_local_compute): Reversed statements and removed bogus
1876         comment explaining why they should be in wrong order.
1877         (df_ru_dump, df_rd_dump): Enhanced debug info.
1878         * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
1879         debug info.
1880         * ddg.c (add_deps_for_def): Converted use of reaching defs to
1881         reaching uses and fixed space problem.
1882
1883 2006-05-23  Jan Hubicka  <jh@suse.cz>
1884
1885         * cgraphunit.c (decide_is_function_needed): Also nested functions
1886         and functions declared inline can be optimized out at -O0.
1887
1888 2006-05-22  Gerald Pfeifer  <gerald@pfeifer.com>
1889
1890         * doc/install.texi (Configuration): Remove reference to CrossGCC
1891         FAQ which was gone.
1892         (Building): Ditto.
1893
1894 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
1895
1896         PR target/27266
1897         * config/i386/i386.c (ix86_expand_branch): Jump to simple if
1898         ix86_compare_emitted is non-NULL.
1899
1900 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1901
1902         PR c++/27451
1903         * stmt.c (expand_asm_operands): Skip asm statement with erroneous
1904         clobbers.
1905
1906 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
1907
1908         PR rtl-optimization/25514
1909         * combine.c (replaced_rhs_insn): New variable.
1910         (combine_instructions): Set replaced_rhs_insn when trying to replace
1911         a SET_SRC with a REG_EQUAL note.
1912         (distribute_notes): Use replaced_rhs_insn when determining the live
1913         range of a REG_DEAD register.
1914
1915 2006-18-05  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
1916             Anatoly Sokolov <aesok@post.ru>
1917
1918         * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
1919         attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
1920         attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
1921         atmega164p, atmega324p, atmega644p, atmega644, atmega329,
1922         atmega3290, atmega649, atmega6490, atmega406, atmega640,
1923         atmega1280, atmega1281, at90can32, at90can64, at90usb646,
1924         at90usb647, at90usb1286 and at90usb1287 devices.
1925         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1926         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1927
1928 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
1929
1930         * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
1931
1932 2006-05-22  Richard Guenther  <rguenther@suse.de>
1933
1934         Revert
1935         2006-01-31  Richard Guenther  <rguenther@suse.de>
1936         Paolo Bonzini  <bonzini@gnu.org>
1937
1938         * doc/install.texi (--disable-libgcc-math): Document.
1939
1940 2006-05-22  Richard Guenther  <rguenther@suse.de>
1941
1942         Revert
1943         2006-01-31  Richard Guenther  <rguenther@suse.de>
1944
1945         * doc/invoke.texi (-msselibm): Document.
1946         * target.h (expand_library_builtin): New target hook.
1947         * builtins.c (expand_builtin): Use expand_library_builtin.
1948         (default_expand_library_builtin): New function.
1949         * gcc.c (LINK_GCC_MATH_SPEC): Define.
1950         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
1951         (link_gcc_math_spec): Declare.
1952         (static_specs): Add link_gcc_math_spec.
1953         * expr.h (default_expand_library_builtin): Declare.
1954         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
1955         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
1956         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
1957         * config/i386/i386.opt (msselibm): New target option.
1958         * config/i386/i386.c (ix86_builtin_function_variants): New array.
1959         (ix86_init_sse_abi_builtins): New function.
1960         (ix86_expand_library_builtin): Likewise.
1961         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
1962         (override_options): Handle error conditions wrt -msselibm.
1963         (ix86_builtins): Add function codes for SSE2 ABI builtins.
1964         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
1965         * doc/extend.texi (__builtin_sse2_*): Document new target specific
1966         builtins.
1967
1968 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1969
1970         PR c/27420
1971         * c-common.c (self_promoting_args_p): Skip erroneous args.
1972
1973         PR c/26818
1974         * c-decl.c (finish_struct): Skip erroneous fields.
1975
1976 2006-05-22  Nick Clifton  <nickc@redhat.com>
1977
1978         * config/cris/cris.opt (march): Remove VarExists attribute.
1979         (max-stackframe=): Likewise.
1980
1981 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
1982
1983         * doc/rtl.texi: Fix a typo.
1984         * see.c: Fix comment typos.
1985
1986         * tree-ssa-structalias.h (alias_info): Remove num_references.
1987
1988 2006-05-21  Mike Stump  <mrs@apple.com>
1989
1990         * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
1991         (BAD2): Add.
1992         (darwin_pragma_options): Use BAD instead.
1993         (darwin_pragma_unused): Likewise.
1994         (darwin_pragma_ms_struct): Likewise.
1995
1996 2006-05-21  David Edelsohn  <edelsohn@gnu.org>
1997
1998         * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
1999
2000 2006-05-21  Kazu Hirata  <kazu@codesourcery.com>
2001
2002         PR rtl-optimization/27671
2003         * simplify-rtx.c (simplify_relational_operation_1): Fix
2004         simplifications of (eq/ne (xor x y) y) and
2005         (eq/ne (xor x y) x).
2006
2007         PR tree-optimization/26622.
2008         * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
2009         on arg1.
2010
2011 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
2012
2013         * tree-cfg.c: Prune whitespace.
2014         (debug_tree_cfg): Point to correct header containing the
2015         TDF_* defines.
2016
2017 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
2018
2019         PR middle-end/25776
2020         * cgraphunit.c (verify_cgraph_node): Typo in error message.
2021
2022 2006-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2023
2024         PR middle-end/25776
2025         * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
2026         or sorry count is non zero.
2027
2028 2006-05-20  Andreas Schwab  <schwab@suse.de>
2029
2030         * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
2031
2032 2006-05-19  Daniel Berlin  <dberlin@dberlin.org>
2033             Kenneth Zadeck <zadeck@naturalbridge.com>
2034
2035         PR rtl-optimization/26855
2036
2037         * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
2038         multiword refs.
2039         (df_scan_alloc): Added code to properly handle multiword hard
2040         registers and add all_blocks parameter.
2041         (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
2042         code to properly handle multiword hard registers.
2043         (df_rescan_blocks): Added code to remove deleted blocks from
2044         bitmap.
2045         (df_ref_create_structure, df_ref_record): Added code to properly
2046         handle subregs.
2047         (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
2048         and set DF_REF_PARTIAL.
2049         (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
2050         (df_uses_record): Added DF_REF_PARTIAL for subreg.
2051         (df_scan_add_problem): Added flags parameter.
2052         (df_ref_create_structure): Changed switching structure.
2053         (df_bb_refs_record): Fixed case where duplicate artificial refs
2054         were created.  Changed location of flags.
2055         (df_record_entry_block_defs): Added code to make stack pointer
2056         live in entry block.  Refined cases where frame pointer is needed.
2057         Changed location of flags.
2058         (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
2059         (df_set_state): Removed function.
2060         (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
2061         df_insn_create_insn_record, df_insn_refs_delete,
2062         df_ref_create_structure): Formatting changes.
2063         * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
2064         df_delete_basic_block): New function.
2065         (df_init): Changed location of flags.
2066         (df_add_problem): Added flags parameter and the way flags are
2067         processed.
2068         (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
2069         debug_df_chain): Improved debugging output.
2070         (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
2071         (df_refs_chain_dump): Removed df parameter.
2072         (df_iterative_dataflow): Added consistency check.
2073         (df_prune_to_subcfg): Made public.
2074         (df_analyze_problem): Added blocks_to_init parameter and made
2075         public.
2076         (df_ref_record, df_bb_refs_record, df_mark_reg,
2077          df_record_exit_block_uses): Whitespace changes.
2078         (df_dump): Whitespace changes.
2079         * df.h: Some reordering to remove forward references.
2080         (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
2081         DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
2082         (df_ref_flags.DF_REF_CLOBBER): Deleted field.
2083         (dataflow.flags): New field.
2084         (df.flag): Deleted field.
2085         (df_alloc_function): Added additional bitmap parameter.
2086         (df_dependent_problem_function): New type.
2087         (df_problem.changeable_flags): New field.
2088         (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
2089         DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
2090         (df_mw_hardreg): New struct.
2091         (DF_INSN_UID_MWS): New macro.
2092         (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
2093         parameter.
2094         (df_add_problem, df_ru_add_problem, df_rd_add_problem,
2095         df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
2096         df_ri_add_problem, df_scan_add_problem): Added flags parameter.
2097         (df_set_state): Removed function.
2098         (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
2099         * df-problems.c (df_chain_dump): Removed df parameter.
2100         (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
2101         df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
2102         parameter.
2103         (df_ru_alloc, df_rd_alloc): Now resets all blocks.
2104         (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
2105         df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
2106         Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
2107         DF_REF_MUST_CLOBBER cases.
2108         (df_ru_bb_local_compute_process_def,
2109         df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
2110         df_lr_bb_local_compute, df_ur_bb_local_compute,
2111         df_chain_create_bb): Made subreg aware.
2112         (df_ru_bb_local_compute, df_rd_bb_local_compute,
2113         df_lr_bb_local_compute, df_lr_bb_local_compute,
2114         df_chain_create_bb): Cleanup to use proper macros.
2115         (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
2116         code to fixup bitvectors.
2117         (df_ri_alloc): Cleared lifetime.
2118         (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
2119         df_create_unused_note): New function.
2120         (df_ri_bb_compute, df_ri_compute): Added code to create/update
2121         REG_DEAD and REG_UNUSED notes as well as register information.
2122         (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
2123         df_chains_dump): Fixed crash if problem was never run.
2124         (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
2125         df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
2126         df_ri_add_problem): Processes flags in uniform manner.
2127         (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
2128         df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
2129         df_rd_dump, df_urec_free_bb_info): Formatting changes.
2130         (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
2131         df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
2132         df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
2133         df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
2134         df_ur_dump, df_urec_free_bb_info, df_urec_dump,
2135         df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
2136         * modulo-sched.c (sms_schedule): Added flag parameter to calls.
2137         * see.c (see_initialize_data): Ditto.
2138         * final.c (rest_of_clean_state) Added regstack_completed.
2139         * rtl.h (regstack_completed): Ditto.
2140         * reg-stack.c (regstack_completed): Ditto.
2141
2142 2006-05-19  Mike Stump  <mrs@apple.com>
2143
2144         * c-tree.h (default_conversion): Remove.
2145         * c-common.h (default_conversion): Add.
2146
2147 2006-05-19  Zdenek Dvorak <dvorakz@suse.cz>
2148
2149         * tree-vrp.c (valid_value_p): New function.
2150         (adjust_range_with_scev): Fail if the value of bound is not
2151         simple.
2152
2153 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
2154
2155         * config/mips/linux-unwind.h: Include <asm/unistd.h>
2156         (mips_fallback_frame_state): Use syscall numbers to determine
2157         the appropriate li instruction for the current ABI.  Only use
2158         __NR_sigreturn for o32.
2159
2160 2006-05-19  Nicolas Setton  <setton@adacore.com>
2161
2162         * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
2163         * langhooks.c (lhd_dwarf_name): New function.
2164         * langhooks-def.h (lhd_dwarf_name): Declare.
2165         (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
2166         * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
2167         * ada/misc.c (gnat_dwarf_name): New function.
2168         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
2169
2170 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
2171
2172         * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
2173         libgcc2.h.
2174         (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
2175         MIN_UNITS_PER_WORD logic from libgcc2.h.  Do nothing if
2176         LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
2177         * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
2178         Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
2179         determine the size of Wtype, etc.
2180         * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
2181         (swfloatfuncs): New variable.
2182         (dwfloatfuncs): Likewise.
2183         (lib2funcs): Remove floating-point conversion functions from
2184         initial assignment.  Use LIB2_SIDITI_CONV_FUNCS to determine
2185         the set of conversion routines needed.  Allow entries to specify
2186         an object name, filename and word size.  Update users accordingly.
2187         * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
2188         * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
2189
2190         Revert:
2191
2192         2006-02-08  Roger Sayle  <roger@eyesopen.com>
2193
2194         PR target/22209
2195         * config/fixtfdi.c: New libgcc source file.
2196         * config/fixunstfdi.c: New source file.
2197         * config/floatditf.c: New source file.
2198         * config/floatunditf.c: New souce file.
2199         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
2200         files above instead of config/mips/_tilib.c.
2201         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
2202
2203 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2204
2205         * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
2206         * pa/pa-hpux11.h (LIB_SPEC): Update comment.
2207
2208 2006-05-18  Mike Stump  <mrs@apple.com>
2209
2210         Fix up vla, vm and [*] sematics.
2211
2212         PR c/18740
2213         PR c/7948
2214         PR c/25802
2215         PR c/27673
2216         * c-tree.h (struct c_arg_info): Add had_vla_unspec.
2217         (c_vla_unspec_p): Add.
2218         (c_vla_type_p): Add.
2219         * c-decl.c (struct c_scope): Add had_vla_unspec.
2220         (build_array_declarator): Add support for [*].
2221         (grokdeclarator): Likewise.
2222         (grokparms): Likewise.
2223         (get_parm_info): Likewise.
2224         * c-objc-common.c (c_vla_unspec_p): Likewise.
2225         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
2226         * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
2227         typeof when argument is a variably modified type not inside sizeof or alignof.
2228         (c_parser_direct_declarator_inner): Propagate errors.
2229         (c_parser_sizeof_expression): Add support for [*].
2230         (c_parser_parms_declarator): Initialize had_vla_unspec.
2231         (c_parser_parms_list_declarator): Likewise.
2232         * c-typeck.c (c_vla_type_p): Add.
2233         (composite_type): Add support for vla compositing.
2234         (comptypes_internal): Add support for vla compatibility.
2235         (c_expr_sizeof_expr): Evaluate vla arguments.
2236         * tree.c (variably_modified_type_p): Update comment for [*].
2237
2238 2006-05-18  Michael Matz  <matz@suse.de>
2239
2240         PR target/27599
2241         * config.host: Make assignments to host_xmake_file cumulative.
2242         * config.host (*-darwin*): Test $host, not $target.
2243
2244 2006-05-12  Stuart Hastings  <stuart@apple.com>
2245
2246         * config/i386/i386.opt (-mstackrealign): New flag.
2247         * config/i386/i386.c (force_align_arg_pointer): New attribute.
2248         (ix86_handle_cconv_attribute): Emit error when
2249         force_align_arg_pointer attribute collides with too many regparms.
2250         (ix86_function_regparm): Limit regparms when used with
2251         force_align_arg_pointer attribute.  (ix86_internal_arg_pointer):
2252         Support stack-realigning prologue in non-main functions.  Emit
2253         warning for nested functions under -mstackrealign, emit error for
2254         nested functions with force_align_arg_pointer attribute.
2255         * doc/extend.texi (force_align_arg_pointer): Document it.
2256         * doc/invoke.texi (-mstackrealign): Document it.
2257
2258 2006-05-17  Kazu Hirata  <kazu@codesourcery.com>
2259
2260         PR rtl-optimization/27477
2261         * combine.c (try_combine): Don't split a parallel consisting
2262         of two sets into two individual sets if both sets reference
2263         cc0.
2264
2265 2006-05-17  H.J. Lu  <hongjiu.lu@intel.com>
2266
2267         * config/arm/arm.opt (target_fpe_name): Remove VarExists.
2268         * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
2269
2270         * doc/options.texi (VarExists): Updated.
2271
2272 2006-05-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2273
2274         * unwind-dw2.c: Add declarations for uw_update_context and
2275         uw_frame_state_for.
2276         * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
2277         detected, advance frame state and context once to skip over stub.
2278
2279 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
2280
2281         PR middle-end/20256
2282         PR middle-end/26435
2283         * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
2284         Call rewrite_into_loop_closed_ssa only when something changed.
2285         * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
2286         * lambda-code.c (can_convert_to_perfect_nest): Declared.
2287         (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
2288         Test for perfect_nest_p here.  Fix formating.
2289         (replace_uses_equiv_to_x_with_y): Fix formating.
2290         (stmt_uses_op): Removed.
2291         (can_convert_to_perfect_nest): Removed loopivs parameter.
2292         Complete the test by checking the scalar dependences.
2293         (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
2294         Fix formating.
2295
2296 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
2297
2298         PR bootstrap/22541
2299         From Dan Kegel <dank@kegel.com>:
2300         * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
2301
2302 2006-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2303
2304         * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
2305         if the element type is variably modified without recursing.
2306
2307 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
2308
2309         PR middle-end/27332
2310         * tree-loop-linear.c (try_interchange_loops): Test for
2311         no data dependences.
2312
2313 2006-05-17  Zdenek Dvorak <dvorakz@suse.cz>
2314
2315         PR tree-optimization/27548
2316         * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
2317         range of ssa names that appear on abnormal edges.
2318         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
2319         * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
2320
2321 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
2322
2323         PR middle-end/27620
2324         * expr.c (safe_from_p): Handle CONSTRUCTOR again.
2325
2326 2006-05-17  Jakub Jelinek  <jakub@redhat.com>
2327
2328         PR middle-end/27415
2329         * tree.h (OMP_PARALLEL_COMBINED): Define.
2330         * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
2331         (new_omp_context): Add is_combined_parallel argument.
2332         (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
2333         new_omp_context caller.
2334         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
2335         Adjust gimplify_scan_omp_clauses callers.
2336         (omp_is_private): Issue errors if iteration variable is firstprivate
2337         or reduction in the current context.
2338         * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
2339         on combined parallel workshare constructs.
2340
2341 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
2342
2343         * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
2344         (gcc-options.o): New rule.
2345
2346         * optc-gen.awk: Protect variables for gcc-options.o with
2347         #ifdef GCC_DRIVER/#endif.
2348
2349 2006-05-16  Daniel Berlin <dberlin@dberlin.org>
2350
2351         Fix PR tree-optimization/27373
2352         * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
2353          (forward_propagate_addr_expr): Update call.
2354
2355 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
2356
2357         * doc/options.texi: Move the Negative option.
2358
2359 2006-05-16  Richard Guenther  <rguenther@suse.de>
2360
2361         PR tree-optimization/22303
2362         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
2363         from STRING_CSTs.
2364         (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
2365         ccp_fold did not simplify the statement.
2366
2367 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
2368
2369         PR driver/26885
2370         * Makefile.in (GCC_OBJS): New.
2371         (OBJS-common): Add opts-common.o.
2372         (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
2373         (cpp$(exeext)): Likewise.
2374         (gcc.o): Also depend on opts.h.
2375         (opts-common.o): New.
2376
2377         * common.opt (gcoff): Add Negative(gdwarf-2).
2378         (gdwarf-2): Add Negative(gstabs).
2379         (gstabs): Add Negative(gstabs+).
2380         (gstabs+): Add Negative(gvms).
2381         (gvms): Add Negative(gxcoff).
2382         (gxcoff): Add Negative(gxcoff+).
2383         (gxcoff+): Add Negative(gcoff).
2384         * config/i386/i386.opt (m32): Add Negative(m64).
2385         (m64): Add Negative(m32).
2386
2387         * doc/options.texi: Document the Negative option.
2388
2389         * gcc.c: Include "opts.h".
2390         (main): Call prune_options after expandargv.
2391
2392         * optc-gen.awk: Generate common declarations for all flag
2393         variables in options.c. Output the neg_index field.
2394
2395         * opts.c (find_opt): Moved to ...
2396         * opts-common.c: Here. New file.
2397
2398         * opts.h (cl_option): Add a neg_index field.
2399         (find_opt): New.
2400         (prune_options): Likewise.
2401
2402 2006-05-16  Jakub Jelinek  <jakub@redhat.com>
2403
2404         PR middle-end/27573
2405         * omp-low.c (expand_omp_parallel): Don't assert
2406         .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
2407         instead search for it.
2408
2409         PR c/27499
2410         * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
2411         is signed.
2412
2413 2006-05-16  Andreas Schwab  <schwab@suse.de>
2414
2415         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
2416         defmac.
2417
2418 2006-05-15  Roger Sayle  <roger@eyesopen.com>
2419
2420         PR target/26600
2421         * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
2422         integer constants other than zero are only legitimate on TARGET_64BIT.
2423         <CONST_VECTOR> Only zero vectors are legitimate.
2424         (ix86_cannot_force_const_mem): Integral and vector constants can
2425         always be put in the constant pool.
2426
2427 2006-05-16  DJ Delorie  <dj@redhat.com>
2428
2429         * crtstuff.c (__dso_handle): Set section from
2430         TARGET_LBIGCC_SDATA_SECTION if defined.
2431         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
2432         * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
2433
2434 2006-05-16  Danny Smith  <dannysmith@users.sourceforge.net>
2435
2436         PR target/27599
2437         * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
2438         host_xmake_file.
2439
2440 2006-05-16  Ben Elliston  <bje@au.ibm.com>
2441
2442         * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
2443
2444 2006-05-15  Per Bothner  <per@bothner.com>
2445
2446         * tree.c: (last_annotated_node): Use source_locus typedef.
2447         This permits bootstrapping with --enable-mapped-location.
2448
2449 2006-05-15  Zdenek Dvorak <dvorakz@suse.cz>
2450
2451         PR tree-optimization/26830
2452         * tree-into-ssa.c (struct ssa_name_info): Add age field.
2453         (info_for_ssa_name, current_info_for_ssa_name_age,
2454         blocks_to_update): New variables.
2455         (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
2456         (clear_ssa_name_info, initialize_flags_in_bb,
2457         mark_block_for_update): New functions.
2458         (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
2459         (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
2460         prepare_def_site_for): Use mark_block_for_update.
2461         (mark_def_interesting): Assert that the processed block is marked in
2462         blocks_to_update.  Do not take blocks argument.
2463         (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
2464         argument.
2465         (rewrite_update_init_block, rewrite_update_stmt): Only process
2466         blocks with statements to rewrite.
2467         (delete_update_ssa): Do not clear SSA_NAME_AUX.
2468         (update_ssa): Initialize and free blocks_to_update.  Do not
2469         clear flags on statements.  Do not use blocks bitmap.
2470         * tree.h (SSA_NAME_AUX): Removed.
2471         (struct tree_ssa_name): Removed aux field.
2472         * print-tree.c (print_node): Do not print SSA_NAME_AUX.
2473
2474 2006-05-15  Richard Guenther  <rguenther@suse.de>
2475
2476         PR tree-optimization/27603
2477         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
2478         Do computations in original type.
2479
2480 2006-05-15  Mircea Namolaru  <namolaru@il.ibm.com>
2481
2482         * see.c: Code style changes such as redundant paranthesis,
2483         redundant intialization of local variables etc.
2484         (see_main): Declared now as static.
2485         * doc/invoke.texi: Update that -fsee is not enabled by
2486         default at -O3.
2487
2488 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
2489
2490         * omp-low.c (check_omp_nesting_restrictions): New function.
2491         (scan_omp_1): Call it.
2492
2493         PR middle-end/27416
2494         * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
2495         construct, return *VAR.
2496
2497 2006-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
2498
2499         PR rtl-optimization/27406
2500         * bt-load.c (migrate_btr_def): Skip the block having abnormal
2501         edges.
2502
2503 2006-05-14  Roger Sayle  <roger@eyesopen.com>
2504
2505         PR rtl-optimization/27538
2506         * combine.c (expand_compound_operation): Call gen_lowpart
2507         before calling simplify_shift_const.
2508
2509 2006-05-14  Roger Sayle  <roger@eyesopen.com>
2510
2511         PR rtl-optimization/22563
2512         * expmed.c (store_fixed_bit_field): When using AND and IOR to store
2513         a fixed width bitfield, always force the intermediates into psuedos.
2514
2515 2006-05-14  Bernhard Fischer  <aldot@gcc.gnu.org>
2516
2517         PR 27501
2518         * mkconfig.sh: Use operator = instead of == for test.
2519
2520 2006-05-13  Nick Clifton  <nickc@redhat.com>
2521
2522         * dwarf2out.c (dbx_reg_number): Check return value from
2523         LEAF_REG_REMAP and only use it if it is valid.
2524         (multiple_reg_loc_descriptor): Likewise.
2525
2526 2006-05-13  Richard Guenther  <rguenther@suse.de>
2527
2528         * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
2529         host_xmake_file.
2530
2531 2006-05-13  Steven Bosscher  <stevenb.gcc@gmail.com>
2532
2533         * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
2534         information attached to non-INSNs such as NOTEs.
2535         (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
2536
2537 2006-05-12  Andreas Krebbel  <krebbel1@de.ibm.com>
2538
2539         * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
2540         On contraint.
2541         * config/s390/s390.md: Adjust comment describing On constraint.
2542
2543 2006-05-11  Jan Hubicka  <jh@suse.cz>
2544
2545         * cgraphunit.c (decide_is_function_needed): Don't force always_inline
2546         to be output at -O0.
2547
2548 2006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2549
2550         PR middle-end/27384
2551         * fold-const.c (size_binop): Move sanity check for arguments to
2552         the beginning of the function.
2553
2554         PR middle-end/27488
2555         * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
2556         expression.
2557
2558 2006-05-11  Richard Guenther  <rguenther@suse.de>
2559
2560         PR middle-end/27529
2561         * fold-const.c (fold_unary): Handle intermediate conversion
2562         to a pointer type like intermediate conversion to an integer
2563         type in folding of (T1)(T2)var to var.
2564         Match the code to the comment in the final conversion for
2565         (T1)(T2)var to (T1)var regarding to type precision.  Rather
2566         than disallow T1 being of pointer type, assert that both T1
2567         and var are of pointer type or not.  Make sure not to fall
2568         over the frontends lazyness wrt array to pointer decay though.
2569
2570 2006-05-10  Richard Earnshaw  <rearnsha@arm.com>
2571
2572         * arm.c (arm_struct_value_rtx): Delete.
2573         (TARGET_STRUCT_VALUE_RTX): Use the default definition.
2574         (arm_init_cumulative_args): Always initialize nregs to zero.
2575
2576 2006-05-10  Richard Guenther  <rguenther@suse.de>
2577
2578         PR tree-optimization/27532
2579         * tree-object-size.c (plus_expr_object_size): Fix typo.
2580
2581 2006-05-10  Kazu Hirata  <kazu@codesourcery.com>
2582
2583         PR target/24949
2584         * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
2585         ashrdi_const, ashrdi3): Use a scratch register.
2586
2587 2006-05-10  Richard Guenther  <rguenther@suse.de>
2588
2589         PR tree-optimization/27302
2590         * fold-const.c (operand_equal_p): For two comparisons,
2591         try comparison of one comparison code swapped if that yields
2592         the same code.
2593
2594 2006-05-10  Ben Elliston  <bje@au.ibm.com>
2595
2596         * tree-pretty-print.c (pretty_print_string): No need to handle
2597         '\0' as a special character.
2598
2599         * tree.h: Include "hashtab.h".
2600         (iterative_hash_expr): Use hashval_t in its prototype.
2601         * Makefile.in (TREE_H): Add $(HASHTAB_H).
2602
2603 2006-05-09  Steve Ellcey  <sje@cup.hp.com>
2604
2605         PR bootstrap/26872
2606         * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
2607         (hppa*64*-*-hpux11*): Ditto.
2608         (hppa[12]*-*-hpux11*): Ditto.
2609
2610 2006-05-09  David Edelsohn  <edelsohn@gnu.org>
2611
2612         PR target/26545
2613         * config/rs6000/aix41.h (TARGET_64BIT): Define.
2614
2615 2006-05-09  Michael Matz  <matz@suse.de>
2616
2617         * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
2618         host_extra_gcc_objs and host_xmake_file.
2619         (<*-*-linux*>): Don't overwrite host_xmake_file.
2620         * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
2621         * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
2622         (host_detect_local_cpu): Declare.
2623         (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
2624         * config/i386/i386.c (override_options): Handle -mtune=native
2625         as -mtune=generic.
2626         * config/i386/x-i386: New file.
2627         * config/i386/driver-i386.c: New file.
2628         * doc/invoke.texi (<i386 and x86-64 Options>): Describe
2629         cpu-type "native".
2630
2631 2006-05-09  Dirk Mueller  <dmueller@suse.de>
2632         Richard Guenther  <rguenther@suse.de>
2633
2634         PR middle-end/27498
2635         * fold-const.c (fold_read_from_constant_string): Relax check
2636         for matching types to matching modes.
2637
2638 2006-05-09  Zdenek Dvorak <dvorakz@suse.cz>
2639
2640         PR rtl-optimization/27335
2641         * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
2642         loops.
2643
2644 2006-05-08  Chao-ying Fu  <fu@mips.com>
2645             Richard Sandiford  <richard@codesourcery.com>
2646
2647         * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
2648         (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
2649         * config/mips/mips.md (UNSPEC_SCC): New constant.
2650         * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
2651         * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
2652         (mips_emit_compare): Use it.
2653         (mips_expand_vcondv2sf): New function.
2654
2655 2006-05-08  Daniel Berlin  <dberlin@dberlin.org>
2656
2657         Fix PR tree-optimization/27093
2658         * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
2659         renaming when they become not-used_alone.
2660
2661 2006-05-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2662
2663         * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
2664         relocation and relocation stubs.
2665
2666 2006-05-08  Eric Christopher  <echristo@apple.com>
2667
2668         * unwind-dw2-fde-darwin.c (examine_objects): Only check data
2669         section for ppc.
2670
2671 2006-05-08  Jan Hubicka  <jh@suse.cz>
2672
2673         PR middle-end/24561
2674         * cgraphunit.c (decide_is_function_needed): When not optimizing even
2675         unused static functions are needed.
2676
2677 2006-05-08  Roger Sayle  <roger@eyesopen.com>
2678
2679         PR target/27158
2680         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
2681         of a reg_equiv_constant if the result is a legitimate constant.
2682
2683 2006-05-08  Uros Bizjak  <uros@kss-loka.si>
2684
2685         PR target/27277
2686         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
2687         standard 80387 constants, raise the cost to prevent
2688         compress_float_constant() to generate load from memory.
2689
2690 2006-05-08  Kazu Hirata  <kazu@codesourcery.com>
2691
2692         * config/arm/constraints.md (c): Fix a typo.
2693
2694         * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
2695         typos.
2696
2697 2006-05-07  H.J. Lu  <hongjiu.lu@intel.com>
2698
2699         PR target/24879
2700         * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
2701         inline function.
2702         (_mm_mwait): Likewise.
2703
2704         * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
2705         "mwait".
2706         (sse3_monitor): Make it 32bit only.
2707         (sse3_monitor64): New. 64bit monitor.
2708
2709 2006-05-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2710
2711         PR target/27421
2712         * config/i386/i386.c (classify_argument): Skip fields with invalid
2713         types.
2714
2715 2006-05-07  Richard Guenther  <rguenther@suse.de>
2716
2717         PR tree-optimization/27409
2718         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2719         Do not try to find zero-sized subvars.
2720
2721 2006-05-07  Richard Guenther  <rguenther@suse.de>
2722
2723         PR tree-optimization/27136
2724         * tree-ssa-loop-niter.c (get_val_for): Correct function
2725         comment, assert requirements.
2726         (loop_niter_by_eval): Stop processing if the iterated
2727         value did not simplify.
2728
2729 2006-05-07  Mircea Namolaru  <namolaru@il.ibm.com>
2730
2731         * opts.c (flag_see): remove its setting at -O3.
2732
2733 2006-05-07  Richard Earnshaw  <rearnsha@arm.com>
2734
2735         * genpeep.c (main): Make insn-peep.c depend on flags.h.
2736         * arm/constraints.md: New file.
2737         * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
2738         (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
2739         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
2740         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
2741         (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
2742         (EXTRA_MEMORY_CONSTRAINT): Likewise.
2743         * arm.md: Include constraints.md.
2744         (thumb_movsi_insn): Use satisfies_constraint_J.
2745         (movhi, movqi): Use satisfies_constraint_I.
2746
2747 2006-04-29 Anatoly Sokolov <aesok@post.ru>
2748
2749         * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
2750         for atmeg a645 device.
2751
2752 2006-05-06   Richard Guenther  <rguenther@suse.de>
2753
2754         PR tree-optimization/27151
2755         * tree-vect-transform.c (vectorizable_condition): Punt on
2756         values that have a different type than the condition.
2757
2758 2006-05-03  Aldy Hernandez  <aldyh@redhat.com>
2759
2760         PR/21391
2761         * c-parser.c (c_parser_cast_expression): Only insert casts into
2762         hash table if pointer.
2763         * function.c (used_types_insert_helper): Rename from
2764         used_types_insert.
2765         (used_types_insert): Call used_types_insert_helper.
2766         * function.h (used_types_insert): Accept only one argument.
2767
2768 2006-05-05  David Edelsohn  <edesohn@gnu.org>
2769
2770         * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
2771         scratch with output modifier.
2772
2773 2006-05-04  David Edelsohn  <edelsohn@gnu.org>
2774
2775         PR target/26481
2776         * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
2777         with output modifier.
2778
2779 2006-05-04  Richard Sandiford  <richard@codesourcery.com>
2780
2781         PR target/26765
2782         * config/mips/mips.c (mips_symbolic_address_p): Return true
2783         for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
2784         SYMBOL_GOTTPREL, and SYMBOL_TLS.
2785
2786 2006-05-04  Richard Guenther  <rguenther@suse.de>
2787
2788         PR tree-optimization/14287
2789         PR tree-optimization/14844
2790         PR tree-optimization/19792
2791         PR tree-optimization/21608
2792         PR tree-optimization/27090
2793         * tree-ssa-pre.c (try_combine_conversion): New function.
2794         (compute_avail): After constructing the value-handle
2795         expression, use try_combine_conversion to combine NOP_EXPRs
2796         with previous value-handle expressions and use the result if it
2797         is available.
2798
2799 2006-05-04  Joseph S. Myers  <joseph@codesourcery.com>
2800
2801         * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
2802
2803 2006-05-04  Jan Hubicka  <jh@suse.cz>
2804
2805         PR middle-end/25962
2806         * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
2807
2808 2006-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
2809
2810         * config/bfin/predicates.md (const01_rtx): Tell generator programs
2811         that this only matches CONST_INTs.  All users changed to VOIDmode
2812         operands.
2813
2814         * config/bfin/bfin.c: Include "optabs.h".
2815         (bfin_rtx_costs): Some costs for vector operations, to allow combine
2816         to do more work.
2817         (enum bfin_builtins): Add a number of fractional and vector builtins.
2818         (bfin_init_builtins): Likewise.
2819         (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
2820         (safe_vector_operand, bfin_expand_binop_builtin,
2821         bfin_expand_unop_builtin): New functions.
2822         (bfin_expand_builtin): Handle the new builtins.
2823         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2824         __ADSPBLACKFIN__.
2825
2826 2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
2827
2828         * see.c: New file.
2829         * Makefile.in (OBJS-common): Add see.o.
2830         (see.o): Add dependencies.
2831         * common.opt (fsee): New flag for the see optimization was added.
2832         * opts.c (flag_see): Initialized.
2833         * passes.c (init_optimization_passes, pass_see): New pass.
2834         * rtl.h (see_main): Declaration as extern.
2835         * timevar.def (TV_SEE): New.
2836         * tree-pass.h (pass_see): Declaration as extern.
2837         * invoke.texi (-fsee): Document.
2838         * recog.c (validate_simplify_insn): New function.
2839         * recog.h (validate_simplify_insn): Declaration as extern.
2840         * df-problems.c (df_chain_dump): Check for NULL.
2841
2842 2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
2843             Daniel Berlin  <dberlin@dberlin.org>
2844
2845         * cfgrtl.c (insert_insn_bb_end_new): New function.
2846         * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
2847
2848 2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
2849
2850         * df.h (struct web_entry): Moved from web.c.
2851         (union_defs): Declaration as extern.
2852         (unionfind_root): Likewise.
2853         (unionfind_union): Likewise.
2854         * web.c (struct web_entry): Moved to df.h.
2855         (unionfind_root): Remove static declaration.
2856         (unionfind_union): Likewise.
2857         (union_defs): Likewise and generalize to use callback function.
2858         (web_main): Update arguments for union_defs function call.
2859
2860 2006-05-04  Richard Guenther  <rguenther@suse.de>
2861
2862         PR tree-optimization/26447
2863         * tree-ssa-pre.c (realify_fake_stores): For necessary loads
2864         produce SSA_NAME copies before the store stmt to avoid
2865         breaking exception handling.
2866
2867 2006-05-04  Jakub Jelinek  <jakub@redhat.com>
2868
2869         PR middle-end/27388
2870         * gimplify.c (omp_is_private): If var is shared in some outer context,
2871         return false instead of true.  Stop searching on parallel context
2872         boundary.
2873
2874 2006-05-03  Alexandre Oliva  <aoliva@redhat.com>
2875
2876         PR java/8260
2877         * coverage.c: Use get_gcov_unsigned_t() instead of
2878         unsigned_type_node all over.
2879
2880 2006-05-02  Andrew MacLeod  <amacleod@redhat.com>
2881
2882         PR tree-optimization/27381
2883         * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
2884         maintain the same immediate_use links.
2885         * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
2886         node rather than segfaulting.
2887
2888 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
2889
2890         PR fortran/27395
2891         * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
2892         rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
2893         bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
2894
2895 2006-05-02  Daniel Berlin  <dberlin@dberlin.org>
2896
2897         Fix PR tree-optimization/26626
2898         * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
2899         always.
2900         * tree-ssa-operands.c (access_can_touch_variable): Allow
2901         typecasting through union pointers.
2902
2903 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
2904
2905         PR c++/26943
2906         * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
2907         (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
2908         to find if var will be a global variable even in the nested context.
2909         (omp_copy_decl): Only check for global variable at the end, it might
2910         be overridden in outer contexts.
2911         (scan_sharing_clauses): For global variables don't create a field.
2912         (lower_rec_input_clauses): Do nothing for global shared variables.
2913         Emit a barrier at the end of ILIST if there were any decls in both
2914         firstprivate and lastprivate clauses.
2915         (lower_send_clauses): Do nothing for global variables except for
2916         COPYIN.
2917
2918 2006-05-02  Zdenek Dvorak <dvorakz@suse.cz>
2919
2920         * tree.c (unsigned_type_for, signed_type_for): Make sure a type
2921         of the correct signedness is returned.
2922
2923 2006-05-02  Jeff Law  <law@redhat.com>
2924
2925         PR tree-optimization/27364
2926         * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
2927         multiply expressions.
2928
2929 2006-05-02  Tom Tromey  <tromey@redhat.com>
2930
2931         * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
2932
2933 2006-05-02  Kazu Hirata  <kazu@codesourcery.com>
2934
2935         PR target/27387
2936         * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
2937         -mthumb -fPIC are used.
2938
2939 2006-05-02  Stanislaw Skowronek  <skylark@linux-mips.org>
2940             Joshua Kinard  <kumba@gentoo.org>
2941
2942         PR target/25871
2943         * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
2944         with 64-bit pointers.
2945
2946 2006-05-02  Paul Brook  <paul@codesourcery.com>
2947
2948         * config/arm/arm.c (add_minipool_forward_ref): Check if insn
2949         and pool overlap.
2950         (create_fix_barrier): Check that a suitable barrier location is
2951         found.
2952         (arm_reorg): Include ftmp->address in allowable range of addresses.
2953
2954 2006-05-02  David Billinghurst <David.Billinghurst@riotinto.com>
2955
2956         PR ada/27366
2957         * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
2958         on Cygwin.
2959
2960 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
2961
2962         PR middle-end/27337
2963         * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
2964         around RESULT_DECL for result passed by reference.
2965         (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
2966         * omp-low.c (use_pointer_for_field): Don't look at
2967         DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
2968         (scan_omp_1): Call remap_decl on RESULT_DECLs.
2969         (lower_rec_input_clauses): Don't allocate VLA memory for the second
2970         time or var for passing by reference for
2971         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
2972         TREE_ADDRESSABLE variables when passing by reference.
2973
2974         * omp-low.c (dump_omp_region): Fix output formatting.
2975
2976         PR middle-end/27328
2977         * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
2978         (expand_omp_parallel): Likewise.
2979         * tree-cfg.c (move_sese_region_to_fn): Likewise.
2980
2981         PR middle-end/27325
2982         * omp-low.c (lower_omp_sections): Call maybe_catch_exception
2983         on statement list containing also constructors and destructors.
2984         (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
2985
2986         PR middle-end/27310
2987         * except.c (duplicate_eh_regions): Fix clearing of
2988         cfun->eh->region_array entries.
2989
2990 2006-05-01  DJ Delorie  <dj@redhat.com>
2991
2992         * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
2993         build!=host.
2994         (gcc_cv_objdump): Likewise.
2995         * configure: Regenerated.
2996
2997 2006-05-01  Kazu Hirata  <kazu@codesourcery.com>
2998
2999         PR target/27374
3000         * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
3001         templates for case 3 and 4.
3002
3003 2006-05-01  DJ Delorie  <dj@redhat.com>
3004
3005         * vec.c: Include bconfig.h when appropriate.
3006         * Makefile.in (build/vec.o): Adjust dependencies.
3007         * mkconfig.sh: Make sure config.h isn't used for build machine
3008         compiles.
3009
3010 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
3011
3012         * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
3013         variables.
3014         (mark_phi_for_rewrite): New function.
3015         (insert_phi_nodes_for, mark_use_interesting): Call
3016         mark_phi_for_rewrite.
3017         (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
3018         (update_ssa): Initialize and free phis_to_rewrite.
3019
3020 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
3021
3022         PR rtl-optimization/27291
3023         * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
3024         folded to a constant.
3025
3026 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
3027
3028         PR tree-optimization/27283
3029         * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
3030         not whole # of iteration descriptions.
3031         (niter_for_exit): Return just # of iterations.  Fail if # of iterations
3032         uses abnormal ssa name.
3033         (niter_for_single_dom_exit): Ditto.
3034         (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
3035         return just the number of iterations.
3036
3037 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
3038
3039         PR tree-optimization/27144
3040         * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
3041         (record_estimate): Only record constant upper bound.
3042         (infer_loop_bounds_from_undefined): Call
3043         compute_estimated_nb_iterations just once.
3044         (proved_non_wrapping_p): Renamed to ...
3045         (n_of_executions_at_most): ... this.  Expect bound to be a constant.
3046         (convert_step_widening, scev_probably_wraps_p): Call
3047         n_of_executions_at_most instead of proved_non_wrapping_p.
3048         (substitute_in_loop_info): Do not replace values in bounds.
3049         * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
3050         comments.
3051
3052 2006-05-01  Richard Henderson  <rth@redhat.com>
3053
3054         PR c/27358
3055         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
3056         c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
3057         CPP_PRAGMA.
3058
3059 2006-05-01  Roger Sayle  <roger@eyesopen.com>
3060
3061         * c-typeck.c (parser_build_binary_op): Don't call the function
3062         unsigned_conversion_warning to spot operand/result type overflow.
3063         (build_binary_op): Instead, call convert_and_check instead of
3064         convert to report the problem when the operands are promoted.
3065         * c-common.c (unsigned_conversion_warning): Make static.
3066         * c-common.h (unsigned_conversion_warning): Delete prototype.
3067
3068 2006-05-01  Richard Guenther  <rguenther@suse.de>
3069
3070         PR tree-optimization/26726
3071         * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
3072         problem ...
3073         (find_interesting_uses_address): ... we work around here
3074         by folding INDIRECT_REFs in the substituted base.
3075
3076 2006-05-01  Diego Novillo  <dnovillo@redhat.com>
3077
3078         * omp-low.c (dump_omp_region): Add newlines.
3079
3080 2006-04-30  Roger Sayle  <roger@eyesopen.com>
3081
3082         * common.opt (Woverflow): New command line option.
3083         * c-common.c (constant_expression_warning): Check warn_overflow.
3084         (overflow_waring): Pass OPT_Woverflow to warning.
3085         (unsigned_conversion_warning): Likewise.
3086         (convert_and_check): Likewise.
3087         * doc/invoke.texi: Document new command line option.
3088
3089 2006-04-30  David Edelsohn  <edelsohn@gnu.org>
3090
3091         * config/rs6000/rs6000.c (rs6000_override_options): Enable
3092         TARGET_NO_FP_IN_TOC for section anchors.
3093         (optimization_options): Enable section anchors for all
3094         non-"Objective" languages.
3095
3096 2006-04-28  Eric Christopher  <echristo@apple.com>
3097
3098         * config/darwin-c.c (darwin_ms_struct): Move this
3099         (darwin_set_default_type_attributes): and this...
3100         * config/darwin.c: ... here.
3101         * config/darwin.h (darwin_ms_struct): Declare.
3102
3103 2006-04-28  Andrew MacLeod  <amacleod@redhat.com>
3104
3105         * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
3106
3107 2006-04-28  Roger Sayle  <roger@eyesopen.com>
3108
3109         PR c/25309
3110         * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
3111         (push_array_bounds): Delete prototype.  Change BOUNDS argument to
3112         an unsigned HOST_WIDE_INT.
3113         (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
3114         array index.
3115         (really_start_incremental_init): No need to call convert because
3116         bitsize_zero_node is already of type bitsizetype.
3117         (push_init_level): Extract the value of constructor_index as an
3118         unsigned HOST_WIDE_INT quantity, using tree_low_cst.
3119         (process_init_element): Likewise.
3120
3121 2006-04-28  Joseph S. Myers  <joseph@codesourcery.com>
3122
3123         * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
3124         value before passing to make_relative_prefix.
3125
3126 2006-04-28  Alan Modra  <amodra@bigpond.net.au>
3127
3128         PR middle-end/27260
3129         * builtins.c (expand_builtin_memset): Expand val in original mode.
3130
3131 2006-04-27  Eric Christopher  <echristo@apple.com>
3132
3133         * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
3134         with #ifndef/#endif.
3135         * config/darwin-c.c (darwin_ms_struct): New.
3136         (darwin_pragma_ms_struct): Ditto.
3137         (darwin_set_default_type_attributes): Ditto.
3138         * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
3139         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
3140         Register ms_struct pragma.
3141         * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
3142         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
3143         * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
3144         darwin_set_default_type_attributes if TARGET_MACHO.
3145
3146 2006-04-27  Andrew MacLeod  <amacleod@redhat.com>
3147
3148         PR tree-optimization/26854
3149         * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
3150         * doc/tree-ssa.texi: Update immuse iterator documentation.
3151         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
3152         * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
3153         * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
3154         first_safe_imm_use, next_safe_imm_use): Remove.
3155         (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
3156         (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
3157         (move_use_after_head): New.  Helper function to sort immuses in a stmt.
3158         (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
3159         (first_imm_use_stmt): New.  Get first stmt in an immuse list.
3160         (next_imm_use_stmt): New.  Get next stmt in an immuse list.
3161         (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
3162         (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
3163         (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
3164         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
3165         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
3166         (perfect_nestify): Use new iterator.
3167         * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
3168         iterator.
3169         * tree-flow.h (struct immediate_use_iterator_d): Add comments.
3170         (next_imm_name): New field in struct immediate_use_iterator_d.
3171         (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
3172         (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
3173         FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
3174         * tree-cfg.c (replace_uses_by): Use new iterator.
3175         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
3176         * tree-ssa-operands.c (correct_use_link): Remove.
3177         (finalize_ssa_use_ops): No longer call correct_use_link.
3178
3179 2006-04-27  Stuart Hastings  <stuart@apple.com>
3180
3181         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
3182         * config/t-darwin (crt3.o): Use it.
3183         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
3184         'pmode', use Pmode instead of SImode for SYMBOL_REF.
3185         * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
3186         call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
3187         call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
3188         support.
3189
3190 2006-04-27  Roger Sayle  <roger@eyesopen.com>
3191
3192         * expmed.c (store_fixed_bit_field): If we're not optimizing for
3193         size, force the intermediate into a new pseudo rather instead of
3194         performing both a bitwise AND and a bitwise IOR in memory.
3195
3196 2006-04-27  Richard Guenther  <rguenther@suse.de>
3197
3198         PR rtl-optimization/26685
3199         * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
3200         this one "max-flow-memory-locations".
3201
3202 2006-04-27  Richard Guenther  <rguenther@suse.de>
3203
3204         PR tree-optimization/25148
3205         * tree-vrp.c (compare_values): Remove code dealing with
3206         comparisons against type min/max value.  Honour overflow
3207         and negative constants in code dealing with comparisons
3208         of plus and minus expressions.
3209         (value_inside_range): Use fold_binary with LE_EXPR and
3210         GE_EXPR rather than compare_values.
3211
3212 2006-04-27  Dirk Mueller  <dmueller@suse.de>
3213
3214         * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
3215         prototype for SSE.
3216
3217 2006-04-26  Kenneth Zadeck <zadeck@naturalbridge.com>
3218
3219         * basic-block.h (safe_insert_insn_on_edge): Removed.
3220         * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
3221
3222 2006-04-26  David Edelsohn  <edelsohn@gnu.org>
3223             Paolo Bonzini  <bonzini@gnu.org>
3224
3225         PR middle-end/27282
3226         * combine.c (simplify_and_const_int_1): Use gen_int_mode.
3227         (simplify_and_const_int): Same.
3228
3229 2006-04-26  Aldy Hernandez  <aldyh@redhat.com>
3230
3231         * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
3232
3233 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
3234
3235         PR c/26171
3236         * cgraph.c (cgraph_varpool_finalize_decl): Don't call
3237         cgraph_varpool_assemble_pending_decls if -fopenmp, unless
3238         cgraph_global_info_ready.
3239
3240         PR middle-end/26913
3241         * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
3242
3243         PR c/25996
3244         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
3245         either decl or init is error_mark_node.
3246
3247         PR middle-end/25989
3248         * tree-flow.h (struct omp_region): Add sched_kind.
3249         * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
3250         instead of extracting omp for data.
3251         (expand_omp_for): Save extracted sched_kind.
3252
3253 2006-04-25  Roger Sayle  <roger@eyesopen.com>
3254
3255         * expmed.c (store_bit_field): Also check whether the bitsize is
3256         valid for the machine's "insv" instruction before moving the
3257         target into a pseudo for use with the insv.
3258         * config/i386/predicates.md (const8_operand): New predicate.
3259         * config/i386/i386.md (extv, extzv, insv): Use the new
3260         const8_operand predicate where appropriate.
3261
3262 2006-04-25  DJ Delorie  <dj@redhat.com>
3263
3264         * doc/install.texi (Specific): Clarify that this is not a list of
3265         supported hosts or targets.
3266
3267 2006-04-25  Richard Sandiford  <richard@codesourcery.com>
3268
3269         PR rtl-optimization/26725
3270         * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
3271         block's BB_DIRTY flag.
3272
3273 2006-04-25  Geoffrey Keating  <geoffk@apple.com>
3274
3275         * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
3276         are no branches.
3277
3278         * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
3279         to print an integer.
3280
3281 2006-04-25  David Edelsohn  <edelsohn@gnu.org>
3282
3283         * varasm.c (align_variable): New function.
3284         (get_block_for_decl): Apply align_variable to DECL before
3285         calculating section information.
3286         (assemble_variable): Split out alignment computation.
3287
3288 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
3289
3290         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
3291         machines.
3292
3293 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
3294
3295         * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
3296         MODE_PARTIAL_INT mode.
3297         * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
3298         * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
3299         for CONST_INTs.
3300         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
3301         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
3302         V2PDImode.
3303         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
3304         New predicates.
3305         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
3306         New constants.
3307         (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
3308         MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
3309         MACFLAG_IH): Likewise.
3310         (movstricthi_1): Renamed from "*movstricthi".
3311         (load_accumulator, load_accumulator_pair, movsi_insv, insv,
3312         ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
3313         abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
3314         movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
3315         movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
3316         movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
3317         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
3318         sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
3319         addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
3320         mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
3321         ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
3322         flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
3323         flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
3324         flag_macv2hi_parts, flag_macv2hi_parts_acconly,
3325         flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
3326
3327         * doc/rtl.texi (ss_ashift): Improve wording.
3328
3329 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
3330
3331         * dwarf2out.c (verify_marks_clear): New.
3332         (prune_unused_types): Call verify_marks_clear initially, not
3333         prune_unmark_dies.
3334
3335 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3336
3337         * rtl.def (SS_ASHIFT, SS_NEG): New codes.
3338         * doc/rtl.texi: Document them.
3339         * simplify-rtx.c (simplify_unary_operation,
3340         simplify_binary_operation_1): Don't abort when we see them.
3341
3342 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
3343
3344         Revert:
3345         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
3346         * configure.ac: Completely disregard languages that are not
3347         enabled.
3348         * configure: Regenerated.
3349
3350 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
3351         Richard Guenther  <rguenther@suse.de>
3352
3353         PR tree-optimization/27236
3354         * tree-inline.c (copy_body_r): Make sure to copy
3355         TREE_THIS_VOLATILE flag.
3356
3357 2006-04-24  Richard Guenther  <rguenther@suse.de>
3358
3359         PR middle-end/26869
3360         * tree-complex.c (update_parameter_components): Don't handle
3361         unused parameters which have no default def.
3362
3363 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
3364         Richard Guenther  <rguenther@suse.de>
3365
3366         PR tree-optimization/27218
3367         * tree-inline.c (expand_call_inline): Strip useless type
3368         conversions for the return slot address.
3369
3370 2006-04-24  Richard Guenther  <rguenther@suse.de>
3371
3372         * cfgloop.h (struct loops): Remove unused field array.  Reorder
3373         state after num.
3374         (LOOP_PREFETCH): Remove.
3375
3376 2006-04-24  Richard Guenther  <rguenther@suse.de>
3377
3378         PR tree-optimization/22525
3379         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
3380         variable, adjust types of generated expressions.
3381
3382 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
3383
3384         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
3385         (tree-vect-patterns.o): Likewise.
3386         (jump.o): Likewise.
3387         (cselib.o): Likewise.
3388         (loop-doloop.o): Likewise.
3389         (regclass.o): Likewise.
3390         (reload1.o): Likewise.
3391         (explow.o): Replace target.h with $(TARGET_H).
3392         (ipa-prop.o): Likewise.
3393         (ipa-cp.o): Likewise.
3394         (ipa-inline.o): Likewise.
3395         (reorg.o): Likewise.
3396         (reg-stack.o): Likewise.
3397
3398 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
3399
3400         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
3401
3402 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
3403
3404         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
3405
3406         * configure.ac: Completely disregard languages that are not
3407         enabled.
3408         * configure: Regenerated.
3409
3410         PR c++/26534
3411         * c-common.h (c_build_bitfield_integer_type): Declare.
3412         * c-decl.c (c_build_bitfield_integer_type): Move to ...
3413         * c-common.c (c_build_bitfield_integer_type): ... here.
3414
3415 2006-04-23  Roger Sayle  <roger@eyesopen.com>
3416
3417         PR target/21283
3418         * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
3419         a SImode SUBREG of a floating point register after no_new_pseudos.
3420
3421 2006-04-23  Roger Sayle  <roger@eyesopen.com>
3422
3423         * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
3424         identify potentially eliminable registers to additionally catch
3425         VIRTUAL_INCOMING_ARGS_REGNUM.
3426         (addsi3): Update the conditions on when to use addsi_small_int.
3427
3428 2006-04-23  Roger Sayle  <roger@eyesopen.com>
3429
3430         PR target/16641
3431         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
3432         STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
3433         rtx to stack_pointer_rtx or frame_pointer_rtx directly.
3434
3435 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
3436
3437         * fold-const.c (range_predecessor): Use operand_equal_p
3438         as the predicate for equality.
3439         (range_successor): Likewise.
3440
3441 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
3442
3443         Revert:
3444         * config/soft-fp/op-common.h: Fix a typo.
3445
3446 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
3447
3448         PR libmudflap/26864
3449         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
3450         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
3451
3452 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
3453
3454         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
3455         Fix comment typos.
3456         * doc/tm.texi: Fix a typo.
3457
3458 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
3459
3460         * dwarf2out.c (struct die_struct): Document that die_sib makes
3461         a circular linked list.
3462         (FOR_EACH_CHILD): New.
3463         (reverse_die_lists): Delete.
3464         (reverse_all_dies): Delete.
3465         (add_dwarf_attr): Correct documentation.
3466         (remove_child_with_prev): New.
3467         (remove_child_TAG): Update for change to die_struct, use
3468         remove_child_with_prev.
3469         (add_child_die): Update for change to die_struct.
3470         (splice_child_die): Use remove_child_with_prev and add_child_die.
3471         (print_die): Use FOR_EACH_CHILD.
3472         (die_checksum): Likewise.
3473         (assign_symbol_names): Likewise.
3474         (output_location_lists): Likewise.
3475         (build_abbrev_table): Likewise.
3476         (calc_die_sizes): Likewise.
3477         (mark_dies): Likewise.
3478         (unmark_dies): Likewise.
3479         (unmark_all_dies): Likewise.
3480         (output_die): Likewise.
3481         (prune_unused_types_mark): Likewise.
3482         (prune_unused_types_walk): Likewise.
3483         (same_die_p): Update for change to die_struct.
3484         (break_out_includes): Likewise.
3485         (prune_unused_types_prune): Likewise.
3486         (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
3487         (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
3488         it's already clear.
3489         (dwarf2out_finish): Don't call reverse_all_dies.
3490
3491 2006-04-21  Eric Christopher  <echristo@apple.com>
3492
3493         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
3494         in comments and function names.
3495
3496 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3497
3498         PR c/25875
3499         * c-typeck.c (digest_init): Robustify.
3500
3501         * c-typeck.c (pop_init_level): Simplify.
3502
3503 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
3504
3505         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
3506
3507 2006-04-21  Paul Brook  <paul@codesourcery.com>
3508
3509         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
3510         hardware floating point.
3511
3512 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
3513
3514         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
3515         NON_FLOAT_REGS.
3516
3517 2006-04-21  Nick Clifton  <nickc@redhat.com>
3518
3519         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
3520         OPT_EXTRA_PARTS.
3521
3522 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
3523
3524         PR target/27230
3525         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
3526         C++ lang type in traceback table for Objective-C++.
3527
3528         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
3529
3530 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
3531
3532         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
3533
3534 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3535
3536         PR mudflap/26789
3537         * tree-mudflap.c (mudflap_finish_file): Skip function when there
3538         were errors.  Remove check for erroneous objects.
3539
3540 2006-04-20  Jeff Law  <law@redhat.com>
3541
3542         PR tree-optimization/26854
3543         * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
3544         checking for zero or one use.
3545         * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
3546         * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
3547         * tree-ssa-reassoc.c (negate_value): Similarly.
3548         (reassociate_bb): Similarly.
3549
3550 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
3551
3552         * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
3553         TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
3554         than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
3555
3556 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
3557
3558         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
3559         fp regs if the last fp arg doesn't fit in regs.
3560
3561 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3562
3563         PR target/27182
3564         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
3565         that the last insn has the REG_INC note.
3566
3567 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
3568             Nathan Sidwell  <nathan@codesourcery.com>
3569
3570         PR c/26774
3571         * stor-layout.c (update_alignment_for_field): Do not align
3572         ERROR_MARK nodes.
3573         (place_union_field): Place union field at the start of the union.
3574         (place_field): Move ERROR_MARK check later, and use the current
3575         allocation position to maintain monotonicity.
3576
3577 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
3578
3579         * dominance.c: Include timevar.h.
3580         (calculate_dominance_info): Use TV_DOMINANCE.
3581         * timevar.def (TV_DOMINANCE): New timevar.
3582         * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
3583
3584 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
3585
3586         PR rtl-optimization/14261
3587         * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
3588         move would be an INSV insn.
3589         (noce_process_if_block): Don't optimize if the destination is a
3590         ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
3591
3592 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
3593
3594         * config/s390/s390.md: Add comments with the instructions emitted
3595         by an insn pattern if macros are used.
3596
3597 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
3598
3599         PR rtl-optimization/26026
3600         * fold-const.c (fold_binary): Optimize div and mod where the divisor
3601         is a known power of two shifted left a variable amount.
3602
3603 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
3604
3605         * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
3606         to hash table twice when the debug_str section has SECTION_MERGE.
3607
3608 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
3609
3610         * config/soft-fp: New directory.  From glibc.
3611         * config/soft-fp/t-softfp: New.
3612         * config/soft-fp/README: New.
3613         * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
3614         * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
3615         (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
3616         (LIBGCC_DEPS): Add $(SFP_MACHINE).
3617         * config.gcc: Use rs6000/t-fprules-fpbit or
3618         rs6000/t-fprules-softfp and soft-fp/t-softfp together with
3619         rs6000/t-fprules.
3620         * config/rs6000/sfp-machine.h: New.  Based on glibc.
3621         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
3622         New.
3623         * config/rs6000/t-fprules: Remove fp-bit rules.
3624         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
3625         * config/rs6000/t-linux64: Likewise.  Remove duplicates from
3626         LIB2FUNCS_EXTRA.  Remove fp-bit rules.
3627         (softfp_wrap_start, softfp_wrap_end): New.
3628
3629 2006-04-18  DJ Delorie  <dj@redhat.com>
3630
3631         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
3632
3633 2006-04-18  Devang Patel  <dpatel@apple.com>
3634
3635         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
3636
3637 2006-04-18  Nick Clifton  <nickc@redhat.com>
3638
3639         * config/sh/t-symbian: Add rule to build sh-c.o
3640         * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
3641         of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
3642         (sh_symbian_encode_section_info): Likewise.
3643
3644 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
3645
3646         * builtins.c (expand_builtin_strcmp): Cover label definition of
3647         do_libcall with HAVE_cmpstrnsi.
3648
3649 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
3650
3651         * function.c (temp_slots_at_level, max_slot_level): Use VEC
3652         instead of VARRAY.
3653         * function.h (temp_slot_p): New.
3654         (function): Change the type of x_used_temp_slots to
3655         VEC(temp_slot_p,gc) *.
3656
3657 2006-04-18  Nick Clifton  <nickc@redhat.com>
3658
3659         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
3660         flag_strength_reduce.
3661
3662         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
3663
3664 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
3665
3666         PR target/27117
3667
3668         Partial revert of revision 112637
3669         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
3670                     Dale Johannesen  <dalej@apple.com>
3671
3672         PR target/19653
3673         * regclass.c (struct reg_pref): Update documentation.
3674         (regclass): Set prefclass to NO_REGS if memory is the best option.
3675         (record_reg_classes): Cope with a prefclass set to NO_REGS.
3676
3677 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
3678
3679         PR tree-optimization/26821
3680         * tree-ssa-math-opts.c (get_constant_one): New.
3681         (insert_reciprocals): Use it.
3682
3683 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
3684
3685         * dwarf2out.c (free_AT): Delete.
3686         (remove_AT): Update string ref counts.
3687         (remove_child_TAG): Don't call free_die.
3688         (free_die): Delete.
3689         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
3690         or DW_TAG_GNU_EINCL.
3691         (prune_unused_types_walk_attribs): Reset string refcounts.
3692         (prune_unused_types_update_strings): New.
3693         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
3694         call free_die.  Do call prune_unused_types_update_strings.
3695         (prune_unused_types): Empty debug_str_hash.
3696
3697 2006-04-17  Roger Sayle  <roger@eyesopen.com>
3698
3699         * expr.c (expand_assignment): Optimize away no-op moves where the
3700         source and destination are equal and have no side-effects.
3701
3702 2006-04-17  Richard Guenther  <rguenther@suse.de>
3703
3704         PR target/26826
3705         * reload.c (push_reload): Guard calls to get_secondary_mem
3706         for memory subregs.
3707
3708 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
3709
3710         * alias.c (reg_base_value, old_reg_base_value): Change the
3711         type to VEC(rtx,gc) *.
3712         (REG_BASE_VALUE, find_base_value, record_set,
3713         init_alias_analysis): Use VEC instead of VARRAY.
3714
3715         * alias.c (alias_sets): Change the type to
3716         VEC(alias_set_entry,gc) *.
3717         (get_alias_set_entry, new_alias_set, record_alias_subset): Use
3718         VEC instead of VARRAY.
3719         (last_alias_set): Remove.
3720
3721         * cgraph.h (cgraph_edge_p): New.
3722         Update the prototype of cgraph_function_versioning.
3723         * cgraphunit.c (cgraph_copy_node_for_versioning,
3724         cgraph_function_versioning): Use VEC instead of VARRAY.
3725         * ipa-cp.c (ipcp_insert_stage): Likewise.
3726
3727 2006-04-16  Roger Sayle  <roger@eyesopen.com>
3728
3729         PR target/26961
3730         * fold-const.c (fold_ternary): When converting "A ? B : C" into either
3731         "A op B" or "A op C", we may need to convert A to the type of B and C.
3732
3733 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
3734
3735         * target.h (struct gcc_target): Add mode_rep_extended.
3736         * rtlanal.c (num_sign_bit_copies_in_rep): New global.
3737         (init_num_sign_bit_copies_in_rep): Initialize it using
3738         mode_rep_extended.
3739         (truncate_to_mode): Use it.
3740         (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
3741         * targhooks.h (default_mode_rep_extended): Declare it.
3742         * targhooks.c (default_mode_rep_extended): Define it.
3743         * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
3744         default_mode_rep_extended.
3745         (TARGET_INITIALIZER): Include it.
3746         * doc/tm.texi (Misc): Document it.
3747         * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
3748         (mips_truncated_to_mode): New function.
3749
3750 2006-04-16  Roger Sayle  <roger@eyesopen.com>
3751
3752         PR middle-end/25474
3753         * expr.c (compress_float_constant): Copy the narrow constant into
3754         a new pseudo before extending it to its final width.
3755
3756 2006-04-16  Roger Sayle  <roger@eyesopen.com>
3757             Andrew Pinski  <pinskia@gcc.gnu.org>
3758             Dale Johannesen  <dalej@apple.com>
3759
3760         PR target/24076
3761         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
3762         special case code to implement V8HImode and V16QImode with SSE2.
3763
3764 2006-04-15  Roger Sayle  <roger@eyesopen.com>
3765
3766         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
3767         trees are constructed with a suitable tree type.
3768
3769 2006-04-15  Roger Sayle  <roger@eyesopen.com>
3770
3771         * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
3772         (integer_onep): Likewise.
3773         (integer_all_onesp): Likewise.
3774         (integer_pow2p): Likewise.
3775         (integer_nonzerop): Likewise.
3776         (real_zerop): Likewise.
3777         (real_onep): Likewise.
3778         (real_twop): Likewise.
3779         (real_minus_onep): Likewise.
3780         (int_size_in_bytes): Likewise.
3781         (host_integerp): Likewise.
3782
3783 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
3784
3785         * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
3786         jump.c, mips-tfile.c, omp-low.c, sched-int.h,
3787         tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
3788
3789         * tree-ssa-structalias.h (alias_info): Remove num_references.
3790
3791 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3792
3793         * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
3794         (output_bvb patterns): Likewise.
3795         * pa.c (output_bb): Use 'bb' insn for long branch case.
3796         (output_bvb): Likewise use '{bvb|bb}' for long branch case.
3797         (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
3798         1.  Correct length operand for alternatives 1 and 2.
3799         (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
3800         1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
3801
3802 2006-04-14  Roger Sayle  <roger@eyesopen.com>
3803
3804         * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
3805         is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
3806         were accidentally reverted by r112959.
3807
3808 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
3809
3810         PR middle-end/26823
3811         * except.h (eh_region_outermost): New prototype.
3812         * except.c (eh_region_outermost): New function.
3813         * tree-cfg.c (find_outermost_region_in_block): Use it.
3814
3815 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
3816
3817         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
3818         of VARRAY.
3819         * reload1.c (reg_equiv_memory_loc_varray): Rename to
3820         reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
3821         (init_reload, reload): Use VEC instead of VARRAY.
3822         * reload.h: Update the prototype for
3823         reg_equiv_memory_loc_varray.
3824
3825 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
3826             Eric Botcazou  <ebotcazou@libertysurf.fr>
3827
3828         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
3829         register save area.
3830
3831 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
3832
3833         PR middle-end/27134
3834         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
3835         to expand fallback builtin function call.
3836
3837 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
3838
3839         PR middle-end/27095
3840         * builtins.c: (expand_builtin_memset): Stabilize args before expansion
3841         and emit libcall here in case the builtin fails.
3842         (expand_builtin_strcmp): Always emit the libcall here on failure.
3843
3844 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
3845
3846         * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
3847         * flow.c (reg_n_info): Change the type to
3848         VEC(reg_info_p,heap) *.
3849         * regclass.c (allocate_reg_info, free_reg_info): Use VEC
3850         instead of VARRAY.
3851         * regs.h (reg_info_p): New.
3852         (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
3853         REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
3854         REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
3855         instead of VARRAY.
3856
3857 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
3858
3859         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
3860         defaulting to 100.
3861         * params.h (MAX_SCHED_READY_INSNS): New macro.
3862         * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
3863         past MAX_SCHED_READY_INSNS during the first scheduling pass.
3864         (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
3865         the ready list for 1 cycle during the first scheduling pass.
3866         * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
3867
3868 2006-04-13  Richard Henderson  <rth@redhat.com>
3869
3870         PR libgomp/26651
3871         * gimple-low.c (lower_omp_directive): Remove dead code.
3872         (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
3873         * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
3874         * omp-low.c (struct omp_region): Move to tree-flow.h.
3875         (root_omp_region): Export.
3876         (omp_regions, lookup_omp_region): Remove.
3877         (determine_parallel_type): Update for struct omp_region changes.
3878         (dump_omp_region): Dump regions with block numbers.
3879         (new_omp_region): Take type and block instead of stmt; malloc
3880         instead of ggc.
3881         (free_omp_region_1, free_omp_regions): New.
3882         (expand_parallel_call): Take entry_stmt as argument; update for
3883         changes to omp_region.
3884         (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
3885         (remove_exit_barriers): New.
3886         (expand_omp_parallel): Update for struct omp_region changes.
3887         (expand_omp_synch): Likewise.
3888         (expand_omp): Likewise.
3889         (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
3890         (expand_omp_for_static_chunk): Likewise.
3891         (expand_omp_for): Likewise.
3892         (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
3893         (expand_omp_sections): Similarly, with GOMP_sections_end.
3894         (expand_omp_single): New.
3895         (build_omp_regions_1): Update for OMP_CONTINUE.
3896         (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
3897         (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
3898         OMP_SECTIONS_SECTIONS.
3899         (lower_omp_single_simple): Don't emit barrier here.
3900         (lower_omp_single_copy): Likewise.
3901         (lower_omp_single): Fix bindings, and lower to straightline now.
3902         (lower_omp_master, lower_omp_ordered): Likewise.
3903         (lower_omp_critical): Likewise.
3904         (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
3905         * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
3906         omp edges, free it afterward.
3907         (make_omp_sections_edges): Remove.
3908         (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
3909         (move_stmt_r): Handle OMP_CONTINUE.
3910         * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
3911         statement pointers to basic blocks.  Add type member.
3912         (root_omp_region, new_omp_region, free_omp_regions): Declare.
3913         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
3914         * tree-inline.c (estimate_num_insns_1): Likewise.
3915         * tree-pretty-print.c (dump_generic_node): Likewise.
3916         * tree-ssa-operands.c (get_expr_operands): Likewise.
3917         * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
3918         (OMP_RETURN): Rename from OMP_RETURN_EXPR.
3919         (OMP_CONTINUE): New.
3920         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
3921         (OMP_SECTIONS_SECTIONS): Remove.
3922         (OMP_SECTION_LAST): New.
3923         (OMP_RETURN_NOWAIT): New.
3924
3925 2006-04-13  Roger Sayle  <roger@eyesopen.com>
3926
3927         * fold-const.c (native_encode_vector, native_interpret_real):
3928         Correct obvious mistakes in the previous check-in.
3929
3930 2006-04-13  Roger Sayle  <roger@eyesopen.com>
3931
3932         * fold-const.c (native_encode_expr): New function to encode
3933         the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
3934         or VECTOR_CST into a specified buffer.
3935         (native_encode_int): New function.
3936         (native_encode_real): New function.
3937         (native_encode_complex): New function.
3938         (native_encode_vector): New function.
3939         (native_interpret_expr): Inverse of native_encode_expr to convert
3940         a target representation into an INTEGER_CST, REAL_CST etc...
3941         (native_interpret_int): New function.
3942         (native_interpret_real): New function.
3943         (native_interpret_complex): New function.
3944         (native_interpret_vector): New function.
3945         (fold_view_convert_expr): New function to constant fold/evaluate
3946         a VIEW_CONVERT_EXPR of a suitable constant expression.
3947         (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
3948         Change call of build1 to fold_build1 when constructing a
3949         VIEW_CONVERT_EXPR.
3950
3951 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
3952             Ulrich Weigand  <uweigand@de.ibm.com>
3953
3954         PR target/27006
3955         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
3956         to be even.
3957
3958 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
3959
3960         PR target/26459
3961         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
3962         optimize to lo_sum for DFmode if !TARGET_FPRS.
3963
3964 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
3965
3966         * tree-ssa-alias.c (set_initial_properties, init_alias_info,
3967         delete_alias_info, compute_flow_sensitive_aliasing,
3968         group_aliases): Use VEC instead of VARRAY.
3969         * tree-ssa-structalias.c (update_alias_info): Likewise.
3970         * tree-ssa-structalias.h (alias_info): Change the type of
3971         processed_ptrs to VEC(tree,heap) *.
3972
3973 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
3974
3975         PR target/27060
3976         * config/sh/lib1funcs.h: New file, broken out of:
3977         * config/sh/lib1funcs.asm.
3978         * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
3979         New macros.
3980         * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
3981         * config/sh/lib1funcs-Os-4-200.asm: New file.
3982         * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
3983         * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
3984         (EXTRA_MULTILIB_PARTS): Include it.
3985         ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
3986         ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
3987         * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
3988         * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
3989         TARGET_SH2.
3990
3991 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
3992
3993         * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
3994         * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
3995         tpa_compact, root_var_init, type_var_init): Use VEC instead of
3996         VARRAY.
3997         * tree-ssa-live.h: Include vecprim.h.
3998         (tree_partition_associator_d): Change the type of
3999         first_partition to VEC(int,heap) *.
4000         (tpa_first_partition): Use VEC instead of VARRAY.
4001
4002         * Makefile.in (GTFILES): Move functions.h after tree.h.
4003         * function.c (reset_block_changes, record_block_change,
4004         check_block_change, free_block_changes): Use VEC instead of
4005         VARRAY.
4006         * function.h (function): Change the type of
4007         ib_boundaries_block to VEC(tree,gc) *.
4008         * tree-inline.c (copy_cfg_body): Initialize
4009         ib_boundaries_block to NULL instead of (varray_type) 0.
4010
4011 2006-04-12  Roger Sayle  <roger@eyesopen.com>
4012
4013         * expr.c (emit_group_store): Correct operand order in call to
4014         subreg_lowpart_offset.  Always create paradoxical SUBREGs with
4015         a SUBREG_BYTE of zero.
4016
4017 2006-04-12  Richard Guenther  <rguenther@suse.de>
4018
4019         * profile.c (compute_branch_probabilities): Remove code
4020         encapsulated in !ir_type (), which are remanents of the
4021         removed RTL profiling code.
4022         * rtl-profile.c: Remove.
4023
4024 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
4025
4026         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
4027         magic NULL_RTX comment.
4028         (function_arg): Store entire fp arg to mem if any part should go
4029         on stack.
4030         (rs6000_arg_partial_bytes): Adjust for above change.
4031
4032 2006-04-11  Roger Sayle  <roger@eyesopen.com>
4033
4034         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
4035         if it hasn't been initialized by dwarf2out_init.
4036
4037 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
4038
4039         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
4040         symbolic constants in branch patterns.
4041
4042 2006-04-11  Roger Sayle  <roger@eyesopen.com>
4043
4044         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
4045
4046 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
4047
4048         PR rtl-optimization/27073
4049         * gcse.c (try_replace_reg): Revert last change.  Continue to search
4050         for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
4051         on the former.
4052
4053 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
4054
4055         * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
4056         aggregate types other than record and union types.
4057         (function_arg): Likewise.
4058         (function_arg_pass_by_reference): In 64-bit mode, return 0 for
4059         small arrays.
4060         (function_value): In 64-bit mode, return objects that require it
4061         in FP registers.
4062
4063 2006-04-11  Roger Sayle  <roger@eyesopen.com>
4064
4065         * dwarf2out.c (premark_used_types): Remove problematic prototype.
4066
4067 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
4068
4069         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
4070
4071 2006-04-03  Jeff Law  <law@redhat.com>
4072
4073         PR/27087
4074         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
4075         alias information too.
4076
4077 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
4078
4079         * Makefile.in (gcc-cross): Add $(exeext) to target name.
4080
4081 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>
4082
4083         PR/21391
4084         * dwarf2out.c (struct die_struct): Add die_perennial_p field.
4085         (premark_used_types_helper): New.
4086         (premark_used_types): New.
4087         (gen_subprogram_die): Call premark_used_types.
4088         (prune_unused_types_walk): Do not prune perennial dies.
4089         * function.c (used_types_insert): New.
4090         * function.h (struct function): Add used_types_hash field.
4091         (used_types_insert): Add prototype.
4092         * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
4093         * c-parser.c (c_parser_cast_expression): Save casted types in used
4094         types hash table.
4095
4096 2006-04-11  Mark Mitchell  <mark@codesourcery.com>
4097
4098         PR target/26459
4099         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
4100         rs6000_explicit_options.float_gprs.
4101
4102 2006-04-10  Roger Sayle  <roger@eyesopen.com>
4103
4104         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
4105         from ix86_expand_vector_init_low_nonzero.  Take an additional
4106         one_var argument indicating which element is non-zero.  Support
4107         one_var != 0 for V4SFmode and V4SImode by permuting the result.
4108         (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
4109         with one_var instead of ix86_expand_vector_init_low_nonzero.
4110
4111 2006-04-10  Kazu Hirata  <kazu@codesourcery.com>
4112
4113         * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
4114         tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
4115         global.o, cfglayout.o, lambda-code.o, reg-stack.o,
4116         build/genextract.o): Depend on vecprim.h.
4117         * cfglayout.c, df-problems.c, function.c, genextract.c,
4118         global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
4119         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
4120         vecprim.h.
4121         * vecprim.h: New.
4122
4123 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
4124
4125         * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
4126         Declare VECs of this type.
4127         (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
4128         (remove_children): Delete.
4129         (add_dwarf_attr): Use VEC routines.
4130         (add_AT_flag): Update for changes to add_dwarf_attr.
4131         (add_AT_int): Likewise.
4132         (add_AT_unsigned): Likewise.
4133         (add_AT_long_long): Likewise.
4134         (add_AT_vec): Likewise.
4135         (add_AT_string): Likewise.
4136         (add_AT_die_ref): Likewise.
4137         (add_AT_fde_ref): Likewise.
4138         (add_AT_loc): Likewise.
4139         (add_AT_loc_list): Likewise.
4140         (add_AT_addr): Likewise.
4141         (add_AT_lbl_id): Likewise.
4142         (add_AT_lineptr): Likewise.
4143         (add_AT_macptr): Likewise.
4144         (add_AT_offset): Likewise.
4145         (add_AT_range_list): Likewise.
4146         (get_AT): Use VEC_iterate.
4147         (remove_AT): Use VEC_ordered_remove.
4148         (free_die): Fold remove_children into here; have it use VEC_iterate.
4149         (print_die): Use VEC_iterate on attrs.
4150         (reverse_die_lists): Don't reverse attr lists.
4151         (die_checksum): Use VEC_iterate on attrs.
4152         (same_die_p): Likewise.
4153         (output_location_lists): Likewise.
4154         (build_abbrev_table): Likewise.
4155         (size_of_die): Likewise.
4156         (unmark_all_dies): Likewise.
4157         (output_abbrev_section): Likewise.
4158         (output_die): Likewise.
4159         (prune_unused_types_walk_attribs): Likewise.
4160
4161 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
4162
4163         * doc/install.texi (*-*-solaris2*): Point to the configure page.
4164
4165 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
4166
4167         PR debug/27057
4168         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
4169
4170 2006-04-09  Roger Sayle  <roger@eyesopen.com>
4171
4172         * expr.c (store_constructor): Don't bother clearing target if
4173         we're about to assign a vector to it using vec_init_optab.
4174
4175 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
4176
4177         * tree-ssa-alias.c (lhs_may_store_to): New function.
4178         (recalculate_used_alone): Handle LHS of calls.
4179
4180 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4181
4182         PR target/27034
4183         PR target/26508
4184         * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
4185         * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
4186         (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
4187         (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
4188         (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
4189         (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
4190         section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
4191         stubs.  Add ".align 8" directives before all ".dword" directives.
4192         (GTHREAD_USE_WEAK): Revise comment.
4193         (TARGET_ATTRIBUTE_WEAK): Define.
4194         * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
4195         dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
4196         * stublib.c: New file.
4197
4198         PR target/26743
4199         PR target/11254
4200         PR target/10274
4201         * pa.md (cbranch patterns): Revise arguments used in calls to
4202         output_cbranch, output_bb and output_bvd.  Add long branch length
4203         attributes.
4204         (fbranch patterns): Handle long branches.
4205         (jump): Revise length check.  Revise arguments for output_lbranch call.
4206         Add long branch length attributes.
4207         (decrement_and_branch_until_zero): Add long branch length attributes.
4208         (output_movb, output_parallel_addb and output_parallel_movb patterns):
4209         Likewise.  Revise arguments for output_parallel_addb and
4210         output_parallel_movb calls.
4211         * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
4212         output_parallel_movb and output_parallel_addb): Update prototypes.
4213         * pa.c (output_cbranch): Revise arguments.  Correct handling of
4214         nullification in long branches.
4215         (output_lbranch): Add new argument to control extraction of delay
4216         instruction.
4217         (output_bb): Handle long branches.
4218         (output_bvb, output_dbra, output_movb, output_parallel_movb,
4219         output_parallel_addb): Likewise.
4220
4221 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
4222
4223         PR rtl-optimization/27073
4224         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
4225         not REG_EQUIVs.
4226
4227 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
4228
4229         * tree.h (tree_memory_tag): Add old_used_alone.
4230         (SMT_OLD_USED_ALONE): New macro.
4231         * tree-ssa-alias.c (recalculate_used_alone): Stop
4232         marking things for renaming unnecessarily.
4233
4234 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
4235
4236         * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
4237         config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
4238         config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
4239         haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
4240         sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
4241         tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
4242         tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
4243         spelling convensions.
4244         * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
4245         doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
4246         typos.  Follow spelling conventions.
4247
4248 2006-04-07  DJ Delorie  <dj@redhat.com>
4249
4250         * config/m32c/m32c.c (m32c_function_arg): Structures are always
4251         passed on the stack.
4252         (m32c_init_cumulative_args): When a function returns a structure,
4253         always pass the pointer to that return area on the stack.
4254         (m32c_function_arg_advance): Don't increment the parameter number
4255         if we're processing the returned structure pointer.
4256         (pushm_info): Reverse order of registers.
4257
4258 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
4259
4260         * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
4261         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
4262         number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
4263         estimate_numbers_of_iterations_loop): Use build_int_cst instead of
4264         build_int_cst_type.
4265         * tree-chrec.c (chrec_fold_multiply_poly_poly,
4266         chrec_fold_multiply): Same.
4267         * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
4268         force_expr_to_var_cost): Same.
4269         * tree-mudflap.c (mf_xform_derefs_1): Same.
4270         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
4271
4272 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
4273
4274         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
4275         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
4276         insn.
4277
4278 2006-04-07  Jan Hubicka  <jh@suse.cz>
4279
4280         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
4281
4282 2006-04-07  Richard Guenther  <rguenther@suse.de>
4283
4284         PR tree-optimization/26135
4285         * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
4286         loads for store copy-prop.
4287         (copy_prop_visit_stmt): Likewise.
4288
4289 2006-04-05  Robert Millan  <robertmh@gnu.org>
4290
4291         * config/i386/linux.h: Add a comment to mark macros that are
4292         being overriden in config/k*bsd-gnu.h.
4293         * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
4294         DYNAMIC_LINKER.
4295         * config/knetbsd-gnu.h: Ditto.
4296
4297 2006-04-06  Jan Hubicka  <jh@suse.cz>
4298
4299         PR profile/20815
4300         PR profile/26399
4301         * coverage.c (coverage_checksum_string): Reorganize loop to not read
4302         after buffer.
4303
4304 2006-04-06  Mike Stump  <mrs@apple.com>
4305
4306         * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
4307         for HAVE_nonlocal_goto to be consistent.
4308         (expand_builtin_nonlocal_goto): Likewise.
4309         (expand_builtin_strcmp): Use #ifdef instead of #if
4310         for HAVE_cmpstrnsi to be consistent.
4311
4312 2006-04-05  DJ Delorie  <dj@redhat.com>
4313
4314         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
4315         vs m32c.
4316
4317 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
4318
4319         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
4320         got-relative addressing for anything but SImode.
4321
4322         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
4323         even if the calling function doesn't modify them.
4324
4325 2006-04-05  Richard Guenther  <rguenther@suse.de>
4326
4327         PR tree-optimization/26919
4328         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
4329         to cgraph_estimate_size_after_inlining.
4330
4331 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
4332
4333         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
4334
4335 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
4336
4337         PR tree-optimization/26996
4338         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
4339         VECTOR_TYPE variables.
4340
4341 2006-04-05  Richard Guenther  <rguenther@suse.de>
4342
4343         PR tree-optimization/26763
4344         * fold-const.c (fold_comparison): Move folding of
4345         PTR + CST CMP PTR + CST ...
4346         (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
4347
4348 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
4349
4350         * doc/install.texi (Prerequisites): Refine some wording on
4351         bootstrapping and ksh.
4352         Move the version numbers of DejaGnu here from the testing section
4353         and fix casing of names.
4354         Fix markup and clarify wording for autogen requirements.
4355         Refer to GCJ instead of just java.
4356         Refer to SVN instead of CVS.
4357         Describe diffutils as useful instead of necessary.
4358         (Downloading the source): Refer to SVN instead of CVS.
4359         Adjust a link to our web site accordingly.
4360         (Configuration): Fix casing of Bison.
4361         (Building): Refer to SVN instead of CVS.
4362         Fix a sentence on the use of Bison and remove duplicate (and
4363         incorrect) version number of Bison requirement.
4364         Remove one redundant list of packages needed for building.
4365         (Specific): Avoid reference to CVS.
4366
4367 2006-04-04  Eric Christopher  <echristo@apple.com>
4368
4369         * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
4370         (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
4371         (rs6000_handle_struct_attribute): New.
4372         (rs6000_ms_bitfield_layout_p): Ditto.
4373
4374 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
4375
4376         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
4377         NULL for dso parameter to atexit_common.
4378
4379 2006-04-04  Eric Christopher  <echristo@apple.com>
4380
4381         * config/i386/i386.c (machopic_output_stub): Output \t
4382         between instructions and operands.
4383
4384 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
4385
4386         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
4387         satisfies_constraint_[IL] to explicit tests on value.
4388
4389 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
4390
4391         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
4392         set_nb_iterations_in_loop): Use build_int_cst instead of
4393         build_int_cst_type.
4394         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
4395         build_int_cst instead of convert.
4396
4397 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
4398
4399         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
4400         new value 2 for incoming.
4401         * function.c (expand_function_start): Call struct_value_rtx
4402         with incoming as 2.
4403         * config/sparc/sparc.md: Comment updated_return.
4404         * config/sparc/sparc.opt: Add -mstd-struct-return option.
4405         * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
4406         struct return if sparc_std_struct_return and incoming is 2.
4407         (print_operand): Do not adjust return if
4408         sparc_std_struct_return.
4409
4410 2006-04-04  Roger Sayle  <roger@eyesopen.com>
4411
4412         * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
4413         convert in the middle-end.
4414         * expr.c (store_expr, store_constructor, get_inner_reference,
4415         expand_expr_real_1, string_constant, try_casesi, try_tablejump):
4416         Likewise.
4417         * tree.c (build_range_type): Likewise.
4418
4419 2006-04-04  Tom Tromey  <tromey@redhat.com>
4420
4421         * doc/install.texi (Prerequisites): Mention jar.
4422
4423 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
4424
4425         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
4426         subsection.
4427
4428 2006-04-04  Matthias Klose  <doko@debian.org>
4429
4430         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
4431         * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
4432         strings.
4433
4434 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
4435
4436         * doc/extend.texi (Function Attributes): Rewrite visibility
4437         attribute documentation.
4438         * doc/invoke.texi (C++ Dialect Options): Rewrite
4439         -fvisibility-inlines-hidden documentation to describe something
4440         entirely different, although in practise compatible.
4441         (Code Gen Options): Warn about system headers in -fvisibility=
4442         documentation.
4443
4444         * doc/extend.texi (Other Builtins): Document that
4445         __builtin_nan is a compile-time constant only when its argument
4446         is valid.
4447
4448 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
4449
4450         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
4451         trying to remove TRUNCATE check if all bits outside the new mode
4452         are identical to the sign bit.
4453
4454 2006-04-03  Jeff Law  <law@redhat.com>
4455
4456         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
4457         and operand scanning in some common cases.
4458
4459 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
4460             Dale Johannesen  <dalej@apple.com>
4461
4462         PR target/19653
4463         * regclass.c (struct reg_pref): Update documentation.
4464         (regclass): Set prefclass to NO_REGS if memory is the best option.
4465         (record_reg_classes): Cope with a prefclass set to NO_REGS.
4466         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
4467         into account.  For non-registers, equate an empty preferred
4468         reload class to a `!' in the constraint; move the if clause to
4469         do so after those that reject the insn.
4470         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
4471         return NO_REGS.
4472         (find_dummy_reload): Likewise.
4473         * doc/tm.texi (Register Classes): Document what it means
4474         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
4475         * config/i386/i386.c (ix86_preferred_reload_class): Force
4476         using SSE registers (and return NO_REGS for floating-point
4477         constants) if math is done with SSE.
4478         (ix86_preferred_output_reload_class): New.
4479         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
4480         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
4481         * config/i386/i386.md: Remove # register preferences.
4482
4483 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
4484
4485         PR bootstrap/26992
4486         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
4487         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
4488         the type of nb_iter.
4489         (instantiate_parameters_1): Convert the operands before calling
4490         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
4491         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
4492
4493 2006-04-02  Roger Sayle  <roger@eyesopen.com>
4494
4495         * builtins.c (dummy_object): Use build_int_cst instead of convert.
4496         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
4497         instead of convert.
4498         * dojump.c (do_jump): Likewise.
4499         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
4500         * gimplify.c (gimple_boolify, gimplify_init_constructor,
4501         gimplify_boolean_expr): Likewise.
4502         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
4503         * varasm.c (array_size_for_constructor): Likewise.
4504         * tree-object-size.c (compute_object_offset): Likewise.
4505
4506 2006-04-02  Roger Sayle  <roger@eyesopen.com>
4507
4508         PR middle-end/26977
4509         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
4510         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
4511
4512 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
4513
4514         PR tree-optimization/26939
4515         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
4516
4517 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
4518
4519         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
4520         at_stmt.  Convert the type of operands before calling
4521         build_polynomial_chrec.
4522         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
4523         add_to_evolution_1.
4524         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
4525         (instantiate_parameters_1): Convert the type of operands before calling
4526         build_polynomial_chrec.
4527         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
4528         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
4529         reset_evolution_in_loop): Insert asserts to check the types of the
4530         operands.
4531         (chrec_type): Moved...
4532         (eq_evolutions_p): Use operand_equal_p.
4533         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
4534         the types of the operands.
4535         (chrec_type): ...here.
4536         * tree-data-ref.c (create_data_ref): Convert the operands before
4537         calling chrec_replace_initial_condition.
4538         (same_access_functions, analyze_subscript_affine_affine,
4539         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
4540         (compute_subscript_distance, analyze_ziv_subscript,
4541         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
4542         analyze_miv_subscript): Convert the operands before calling
4543         chrec_fold_minus or chrec_fold_plus.
4544
4545 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
4546
4547         * tree-data-ref.c (compute_all_dependences): Use a pointer to
4548         the dependence_relations vector.
4549         (compute_data_dependences_for_loop): Adjust call to
4550         compute_all_dependences.
4551
4552 2006-04-01  Roger Sayle  <roger@eyesopen.com>
4553             Richard Henderson  <rth@redhat.com>
4554
4555         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
4556         gimple_boolify on the condition before calling gimplify_expr.
4557
4558 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
4559
4560         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
4561         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
4562         the frame size.  Update to use the new macros.
4563         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
4564         * config/xtensa/ieee754-df.S: Likewise.
4565
4566 2006-03-31  Richard Henderson  <rth@redhat.com>
4567
4568         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
4569         (make_edges): ... here.  Control fallthru creation with a local
4570         variable.  Do not play with fake edges.
4571         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
4572         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
4573         a boolean.
4574
4575 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
4576
4577         * dwarf2.h (DW64_CIE_ID): Define.
4578         * dwarf2out.c (DWARF_CIE_ID): Define.
4579         (output_call_frame_info): Output 0xffffffff before standard 8-byte
4580         length header.  Use DWARF_CIE_ID.
4581         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
4582         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
4583
4584 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
4585
4586         * config/sh/linux-atomic.asm: New file.
4587         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
4588
4589 2006-03-31  DJ Delorie  <dj@redhat.com>
4590
4591         * config/m32c/cond.md: Set condition flags properly throughout.
4592         * config/m32c/minmax.md: Likewise.
4593         * config/m32c/prologue.md: Likewise.
4594         * config/m32c/bitops.md: Likewise.
4595         * config/m32c/muldiv.md: Likewise.
4596         * config/m32c/mov.md: Likewise.
4597         * config/m32c/addsub.md: Likewise.
4598         * config/m32c/m32c.md: Likewise.
4599         * config/m32c/jump.md: Likewise.
4600         * config/m32c/shift.md: Likewise.
4601
4602         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
4603         conditionally output the pattern for this.
4604         * config/m32c/m32c.c (flags_needed_for_conditional): New.
4605         (m32c_compare_redundant): New.
4606         (m32c_output_compare): New.
4607         * config/m32c/m32c-protos.h (m32c_output_compare): New.
4608
4609         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
4610         dest, not src.  Allow other 4-byte modes.
4611
4612 2006-03-30  Denis Chertykov  <denisc@overta.ru>
4613
4614         * doc/md.texi: Refer to avr/constraints.md instead of
4615         avr/avr.h.
4616
4617 2006-03-30  Roger Sayle  <roger@eyesopen.com>
4618
4619         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
4620         signed vs. unsigned comparison failures on some hosts.
4621
4622 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
4623
4624         PR target/26459
4625         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
4626         change to FLOAT_REGS.
4627
4628         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
4629         (rs6000_override_options): Use it.
4630         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
4631         only for -mabi=spe/no-spe and -mabi=altivec.
4632
4633 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
4634
4635         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
4636         !Zdynamiclib.
4637
4638 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
4639
4640         * Makefile.in: Rename docdir to gcc_docdir.
4641
4642 2006-03-30  Roger Sayle  <roger@eyesopen.com>
4643
4644         PR target/17959
4645         * expr.c (emit_group_store): Optimize group stores into a pseudo
4646         register by using a paradoxical subreg to initialize the destination
4647         if the first or last member of the group specifies a "low part".
4648
4649 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
4650
4651         PR target/26734
4652         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
4653         * target.h (struct gcc_target.speculate_insn): Change type of the
4654         second parameter to 'int'.
4655         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
4656         the second operand of the DEPS_LIST.
4657         (copy_DEPS_LIST_list): Update reference to the second operand of the
4658         DEPS_LIST.
4659         * rtl.h (alloc_DEPS_LIST): Update signature.
4660         * sched-int.h (ds_t): Change typedef to 'int'.
4661         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
4662
4663 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
4664
4665         * haifa-sched.c (try_ready): Change condition to restore
4666         non-speculative pattern of the instruction.
4667         (process_insn_depend_be_in_spec): Code to keep probability of the
4668         speculative dependence non-decreasing.
4669
4670 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
4671
4672         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
4673         (single_move_for_movmem): ... this. Also change all uses.
4674         (bfin_expand_strmov): Renamed to...
4675         (bfin_expand_movmem): ... this. Also change all uses.
4676         * config/bfin/bfin.md (movstrsi): Renamed to...
4677         (movstrsi): ...this.
4678
4679 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
4680
4681         PR tree-optimization/26830
4682
4683         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
4684         (copy_prop_visit_stmt): Remove write-only variable ann.
4685         (init_copy_prop): Check variable loop depth here.  Do not simulate
4686         memory-tag and virtual operand PHIs except for store copy prop.
4687
4688 2006-03-30  Richard Guenther  <rguenther@suse.de>
4689
4690         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
4691         variants with double arguments.
4692
4693 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
4694
4695         * genpreds.c (write_tm_constrs_h): Delete variable p.
4696         * genconditions.c (write_header): Add tm-constrs.h to included
4697         headers.
4698         * genpeep.c (main): Add toplev.h to included headers.
4699         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
4700         (build/genpeep.o): Add toplev.h dependency.
4701         * config/rs6000/constraints.md: Add "W" constraint.
4702
4703 2006-03-29  Roger Sayle  <roger@eyesopen.com>
4704
4705         * stor-layout.c (mode_for_size_tree): Remove restiction on type
4706         sizes by correctly testing whether the size fits a host integer.
4707         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
4708         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
4709         SImode range for the default sizetype and bitsizetype.
4710
4711 2006-03-29  Roger Sayle  <roger@eyesopen.com>
4712
4713         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
4714         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
4715         quickly if the argument is already of the correct type.
4716         Call fold_build1 instead of build1.  Tidy up blank lines.
4717
4718 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
4719
4720         * genemit.c (main): Add tm-constrs.h to included headers.
4721         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
4722         * genpeep.c (main): Add tm-constrs.h to included headers.
4723         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
4724         (write_tm_constrs_h): this and write complete file.
4725         (write_tm_preds_h): Do not emit satisfies_constraint fns.
4726         (write_insn_preds_c): Add tm-constrs.h to included headers.
4727         (gen_constrs): New variable.
4728         (parse_option): Parse "-c".
4729         (main): Invoke write_tm_constrs_h.
4730         * genrecog.c (write_header): Add tm-constrs.h to included headers.
4731         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
4732         (object_out_file): Add tm-constrs.h dependency.
4733         (insn-emit.o): Same.
4734         (insn-output.o): Same.
4735         (insn-peep.o): Same.
4736         (insn-preds.o): Same.
4737         (insn-recog.o): Same.
4738         (tm-constsr.h): New target.
4739         (s-constrs-h): New target.
4740
4741         * config/rs6000/constraints.md: New file.
4742         * config/rs6000/rs6000.c: Include tm-constrs.h.
4743         (num_insn_constant_wide): Convert to satisfies_constraint.
4744         (rs6000_rtx_costs): Convert to satisfies_constraint.
4745         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
4746         (CONST_OK_FOR_LETTER_P): Delete.
4747         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4748         (EXTRA_CONSTRAINT): Delete.
4749         (EXTRA_MEMORY_CONSTRAINT): Delete.
4750         (EXTRA_ADDRESS_CONSTRAINT): Delete.
4751         * config/rs6000/predicates.md: Convert to satisfies_constraint.
4752         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
4753         satisfies_constraint.
4754
4755         * config/i386/i386.c: Include tm-constrs.h.
4756
4757 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
4758
4759         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
4760         * tree-data-ref.c (find_data_references_in_loop,
4761         compute_data_dependences_for_loop): Use pointers to VEC.
4762         (analyze_all_data_dependences): Adjust calls.
4763         * tree-data-ref.h (find_data_references_in_loop,
4764         compute_data_dependences_for_loop): Adjust declarations.
4765         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
4766         compute_data_dependences_for_loop.
4767
4768 2006-03-29  Paul Brook  <paul@codesourcery.com>
4769
4770         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
4771         (movdf_vfp): Ditto.
4772
4773 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
4774
4775         PR tree-optimization/26859
4776         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
4777         division by zero.
4778         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
4779         for the step after fold_convert.
4780
4781 2006-03-29  Paul Brook  <paul@codesourcery.com>
4782
4783         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
4784         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
4785
4786 2006-03-29  Paul Brook  <paul@codesourcery.com>
4787
4788         PR middle-end/23623
4789         * targhooks.c (default_narrow_bitfield): New fuction.
4790         * targhooks.h (default_narrow_bitfield): add prototype.
4791         * target.h (gcc_target): Add narrow_volatile_bitfield.
4792         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
4793         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
4794         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
4795         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
4796
4797 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
4798
4799         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
4800         tmake_file.
4801         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
4802         (NR_C_MODES): Add TDmode, DDmode and SDmode.
4803         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
4804         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
4805         (s390_function_arg_float): Allow SDmode and DDmode values to be
4806         passed in floating point registers.
4807         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
4808         check with SCALAR_FLOAT_MODE_P.
4809         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
4810
4811 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
4812
4813         PR tree-optimization/25985
4814         * tree-ssa-loop-niter.c (number_of_iterations_le,
4815         number_of_iterations_ne): Make comments more precise.
4816         (number_of_iterations_cond): Add only_exit argument.  Use the
4817         fact that signed variables do not overflow only when only_exit
4818         is true.
4819         (loop_only_exit_p): New.
4820         (number_of_iterations_exit): Pass result of loop_only_exit_p to
4821         number_of_iterations_cond.
4822
4823 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
4824
4825         PR tree-optimization/26643
4826         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
4827         bit_field_refs.
4828
4829 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4830
4831         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
4832         (divsi3_i4_int): Likewise.
4833
4834 2006-03-28  Roger Sayle  <roger@eyesopen.com>
4835
4836         * expr.c (emit_group_store): Only create a new pseudo reg if the
4837         quantity it needs to hold isn't already a suitable pseudo.
4838
4839 2006-03-28  Jeff Law  <law@redhat.com>
4840
4841         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
4842         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
4843
4844 2006-03-28  Roger Sayle  <roger@eyesopen.com>
4845
4846         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
4847         the equivalent ~X & Y, and the symmetry related transformations.
4848         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
4849         ~X & Y, and symmetry related transforms.
4850
4851 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
4852
4853         Revert my 2006-03-27 patches.
4854
4855 2006-03-28  Roger Sayle  <roger@eyesopen.com>
4856
4857         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
4858         ~(T1)X, when T1 and T2 are integer types of the same precision
4859         and (T2)X isn't an extension.
4860
4861 2006-03-28  Jeff Law  <law@redhat.com>
4862
4863         PR tree-optimization/26796
4864         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
4865         need EH edge cleanups rather than purging them immediately.
4866         (eliminate_degenerate_phis): Handle queued EH cleanups.
4867
4868 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
4869
4870         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
4871         from parent_var.
4872
4873 2006-03-27  Roger Sayle  <roger@eyesopen.com>
4874
4875         PR middle-end/22524
4876         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
4877         cast BIT_NOT_EXPR operand to the correct type.
4878
4879 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
4880
4881         * tree-loop-linear.c: Don't include varray.h.
4882         (gather_interchange_stats, try_interchange_loops,
4883         linear_transform_loops): Use VEC instead of VARRAY.
4884         * lambda-mat.c: Don't include varray.h.
4885         * tree-chrec.c: Same.
4886         * lambda-trans.c: Same.
4887         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
4888         VEC instead of VARRAY.
4889         * tree-vectorizer.h: Idem.
4890         * tree-data-ref.c (dump_data_references,
4891         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
4892         initialize_data_dependence_relation, finalize_ddr_dependent,
4893         compute_all_dependences, find_data_references_in_loop,
4894         compute_data_dependences_for_loop, analyze_all_data_dependences,
4895         free_dependence_relation, free_dependence_relations,
4896         free_data_refs): Idem.
4897         * tree-data-ref.h (data_reference_p, subscript_p): New.
4898         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
4899         VEC instead of VARRAY.
4900         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
4901         (find_data_references_in_loop, compute_data_dependences_for_loop,
4902         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
4903         dump_data_dependence_relations, free_dependence_relations,
4904         free_data_refs): Adjust declaration.
4905         (lambda_transform_legal_p): Move declaration here...
4906         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
4907         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
4908         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
4909         vect_analyze_data_refs): Use VEC instead of VARRAY.
4910         * lambda.h (lambda_transform_legal_p): ...from here.
4911         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
4912         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
4913         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
4914         tree-chrec.o): Don't depend on VARRAY_H.
4915
4916 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
4917
4918         * rtl.def (Copyright): Update date.
4919         (DEPS_LIST): Change type of the second operand to 'int'.
4920         * target.h (Copyright): Update date.
4921         (struct gcc_target.speculate_insn): Change type of the second parameter
4922         to 'int'.
4923         * lists.c (Copyright): Update date.
4924         (alloc_DEPS_LIST): Change signature.  Update reference to the second
4925         operand of the DEPS_LIST.
4926         (copy_DEPS_LIST_list): Update reference to the second operand of the
4927         DEPS_LIST.
4928         * rtl.h (Copyright): Update date.
4929         (alloc_DEPS_LIST): Update signature.
4930         * sched-int.h (Copyright): Update date.
4931         (ds_t): Change typedef to 'int'.
4932         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
4933
4934 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
4935
4936         * haifa-sched.c (Copyright): Update date.
4937         (try_ready): Change condition to restore non-speculative pattern
4938         of the instruction.
4939         (process_insn_depend_be_in_spec): Code to keep probability of the
4940         speculative dependence non-decreasing.
4941
4942 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
4943
4944         * regrename.c (replace_oldest_value_addr): Initialize a variable to
4945         shut up the compiler.
4946
4947 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
4948
4949         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
4950         to use lib prefix for target.
4951         ($(T)libic_invalidate_array_4-200.a): Likewise.
4952         ($(T)libic_invalidate_array_4a.a): Likewise.
4953
4954 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
4955             J"orn Rennecke <joern.rennecke@st.com>
4956
4957         * superh.opt: New file.
4958         * sh.c (boardtype, osruntime): Remove.
4959         * superh.h (SUBTARGET_OPTIONS): Remove.
4960         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
4961
4962         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
4963         arguments with ^ and/or [].
4964
4965         * config.gcc (sh-*-*): Add quoting to account for quirk of
4966         Solaris /bin/sh.
4967         Replace == with = in enable_incomplete_targets test.
4968
4969         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
4970         with MASK_LITTLE_ENDIAN.
4971
4972         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
4973         * config/sh/sh.opt: Added to some comments.
4974         * config/sh/superh.h: Removed some chaff.
4975
4976         * config/sh/sh.opt: Add m4-[1234]00* options.
4977         * config/sh/sh.c (sh_handle_option): Likewise.
4978         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
4979         (ic_invalidate_array_4-100.o): New rule.
4980         ($(T)libic_invalidate_array_4-100.a): Likewise.
4981         (ic_invalidate_array_4-200.o): Likewise.
4982         ($(T)libic_invalidate_array_4-200.a): Likewise.
4983         (ic_invalidate_array_4a.o): Likewise.
4984         ($(T)libic_invalidate_array_4a.a): Likewise.
4985         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
4986         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
4987         m4-200*, and m4a*.
4988         * config/sh/crt1.asm: Merged in profiling code.
4989         * config/sh/superh.h (STARTFILE_SPEC): Override.
4990         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
4991         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
4992         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
4993
4994         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
4995         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
4996         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
4997
4998         * sh.opt (mpretend-cmove): New option.
4999         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
5000         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
5001         (movsicc): Add TARGET_PRETEND_CMOVE code.
5002
5003 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5004
5005         * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
5006         s390_class_max_nregs): New function prototypes.
5007         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
5008         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
5009         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
5010         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
5011
5012 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
5013
5014         * dwarf2out.c (add_location_or_const_value_attribute): Call
5015         tree_add_const_value_attribute if nothing else works.
5016         (reference_to_unused): New.
5017         (rtl_for_decl_init): Use reference_to_unused to decide whether
5018         to output an initializer.
5019
5020 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
5021
5022         PR target/26459
5023         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
5024         peephole removing spe frob_di_df_2.
5025
5026 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
5027
5028         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
5029         (subscript_dependence_tester_1): Declared.
5030         (print_dir_vectors, print_dist_vectors): New.
5031         (debug_data_dependence_relation): New.
5032         (dump_data_dependence_relation): Print more details.
5033         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
5034         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
5035         (save_dist_v, save_dir_v, add_outer_distances,
5036         build_classic_dist_vector_1): New.
5037         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
5038         Don't test for lambda_vector_lexico_pos.
5039         (same_access_functions, add_multivariate_self_dist,
5040         add_other_self_distances, dir_from_dist): New.
5041         (build_classic_dir_vector): Replace implementation almost identical to
5042         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
5043         dir_from_dist.
5044         (subscript_dependence_tester_1): New.
5045         (subscript_dependence_tester): Handle the lexicographically negative
5046         distance vectors by recomputing the dependence relation.
5047         (compute_affine_dependence): Remove parameter loop_nest_depth.
5048         (compute_self_dependence): Don't call compute_subscript_distance.
5049         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
5050         Add a parameter for the loop_nest.
5051         (find_loop_nest_1, find_loop_nest): New.
5052         (compute_data_dependences_for_loop): Compute the loop nest, and give
5053         up if the nest is not well formed.
5054         * tree-data-ref.h (loop_p): New.
5055         (struct data_dependence_relation): Replace size_vect field with
5056         loop_nest, a vec of loops.
5057         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
5058         (DDR_LOOP_NEST): New.
5059         (print_dir_vectors, print_dist_vectors,
5060         debug_data_dependence_relation): Declared.
5061         (index_in_loop_nest): New.
5062         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
5063         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
5064         distance.
5065
5066 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
5067
5068         * simplify-rtx.c (simplify_relational_operation): Call
5069         simplify_relational_operation_1 even if mode is VOIDmode.
5070
5071 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
5072
5073         PR tree-optimization/26804
5074         * tree.h (DECL_CALL_CLOBBERED): New macro.
5075         (tree_decl_common): Add call_clobbered_flag.
5076         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
5077         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
5078         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
5079         (mark_non_addressable): Ditto.
5080         * tree-ssa.c (verify_call_clobbered): New function.
5081         (verify_alias_info): Use it.
5082         * tree-pass.h (pass_reset_cc_flags): New prototype.
5083         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
5084         (reset_cc_flags): New function.
5085         * passes.c (init_optimization_passes): Call reset_cc_flags after
5086         initializing referenced_vars.
5087
5088 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
5089             Roger Sayle  <roger@eyesopen.com>
5090
5091         PR middle-end/26717
5092         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
5093         to 1.0 for non-real operands. Implement A / A optimization for
5094         complex operands.
5095
5096 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
5097
5098         * config/i386/i386.c (size_cost): Correct the comment for
5099         cost of storing fp registers.
5100         (i386_cost): Likewise.
5101         (i486_cost): Likewise.
5102         (pentium_cost): Likewise.
5103         (pentiumpro_cost): Likewise.
5104         (k6_cost): Likewise.
5105         (athlon_cost): Likewise.
5106         (k8_cost): Likewise.
5107         (pentium4_cost): Likewise.
5108         (nocona_cost): Likewise.
5109         (generic64_cost): Likewise.
5110         (generic32_cost): Likewise.
5111
5112 2006-03-24  Denis Chertykov  <denisc@overta.ru>
5113
5114         * config/avr/avr-protos.h (extra_constraint): Delete.
5115         (extra_constraint_Q): New declaration.
5116         * config/avr/constraints.md: New file.
5117         * config/avr/avr.md: Include it.
5118         (REG_X, REG_Y, REG_Z, REG_W): New constants.
5119         (TMP_REGNO, ZERO_REGNO): Likewise.
5120         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
5121         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
5122         (extra_constraint): Delete.
5123         (extra_constraint_Q): Test for memory constraint 'Q'.
5124         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
5125         (REG_CLASS_FROM_LETTER): Delete.
5126         (CONST_OK_FOR_LETTER_P): Delete.
5127         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5128         (EXTRA_CONSTRAINT): Delete.
5129         (TMP_REGNO): Delete.
5130         (ZERO_REGNO): Delete.
5131
5132 2006-03-24  Jeff Law  <law@redhat.com>
5133
5134         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
5135         directly.  Call mark_new_vars_to_rename slightly earlier.
5136
5137 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
5138
5139         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
5140         (is_cxx): Likewise.
5141         (gen_compile_unit_die): Use new language types for Objective-C and
5142         Objective-C++.
5143         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
5144         DW_LANG_C_plus_plus.
5145
5146         PR 26793
5147         * config/t-darwin (crt3.o): Work around bug 26840.
5148         * config/darwin-crt3.c: Rewrite.
5149         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
5150
5151 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
5152
5153         * doc/invoke.texi: Document -femit-class-debug-always
5154         * common.opt: Add -femit-class-debug-always.
5155
5156 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
5157
5158         * config/s390/s390.c (s390_decompose_address): Allow SImode for
5159         index and base register.
5160         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
5161         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
5162         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
5163         REGNO_OK_FOR_INDEX_P.
5164         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
5165         ADDR_REGNO_P.
5166         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
5167         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
5168         REG_OK_FOR_BASE_P): Definitions removed.
5169
5170 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
5171
5172         PR middle-end/26611
5173         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
5174         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
5175         set yet or weren't marked as local yet.
5176
5177 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
5178
5179         * regrename.c (scan_rtx_address): Initialize a variable to shut up
5180         the compiler.
5181
5182 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
5183
5184         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
5185         (rs6000_legitimate_small_data_p): Delete.
5186         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
5187         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
5188         and make static.  Add forward declaration.  Update uses.
5189         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
5190         of offsettable_memref_p.
5191         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
5192         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
5193
5194 2006-03-24  Jeff Law  <law@redhat.com>
5195
5196         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
5197         around bug in immediate-use iterator.
5198
5199 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
5200
5201         PR target/26607
5202         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
5203         or __LITTLE_ENDIAN__.
5204
5205 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
5206
5207         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
5208         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
5209         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
5210         * config/sh/sh.opt (mdiv=): Amend description.
5211         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
5212         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
5213         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
5214         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
5215         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
5216         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
5217         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
5218         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
5219         TARGET_DIVIDE_CALL_FP.
5220
5221 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
5222
5223         * haifa-sched.c (choose_ready): Fix type of the local variable.
5224         Move local variables.  Add comment.
5225         (check_reg_live): Change signature.  Make callable from debugger.
5226         * sched-int.h (check_reg_live): Update signature.
5227         * sched-ebb.c (check_reg_live): Update parameters.
5228         * sched-rgn.c (check_reg_live): Ditto.
5229         (region_head_or_leaf_p): Check pointer before dereferencing.
5230         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
5231         before reload on optimization levels below 1.
5232
5233 2006-03-23  Richard Henderson  <rth@redhat.com>
5234
5235         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
5236         tls symbols.
5237
5238         PR target/26347
5239         * config/alpha/predicates.md (local_symbolic_operand): Reject
5240         weak symbols.
5241
5242 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
5243
5244         PR tree-opt/26795
5245         * tree-ssa-pre.c (create_value_expr_from): Don't reject
5246         expressions which have overflowed constants.
5247
5248 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
5249
5250         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
5251
5252 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
5253
5254         * cfgloopmanip.c (create_loop_notes): Removed.
5255         * final.c (final_scan_insn): Do not handle loop notes.
5256         * jump.c (squeeze_notes): Ditto.
5257         * cfglayout.c (skip_insns_after_block,
5258         duplicate_insn_chain): Ditto.
5259         * cfgcleanup.c (rest_of_handle_jump2): Do not call
5260         create_loop_notes.
5261         * cfgloop.h (create_loop_notes): Declaration removed.
5262
5263 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
5264
5265         * varasm.c (output_constant_pool): Restore fnname and fndecl
5266         arguments.
5267         (assemble_start_function): Adjust call accordingly.
5268         (assemble_end_function): Likewise.
5269
5270 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5271
5272         PR mudflap/26789
5273         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
5274
5275         PR mudflap/26790
5276         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
5277
5278 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5279
5280         PR driver/22600
5281         * system.h (ICE_EXIT_CODE): New macro.
5282         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
5283         (diagnostic_action_after_output): Likewise.
5284         * gcc.c (fatal_ice): New function.
5285         (execute): Use it instead of fatal.
5286         (fancy_abort): Likewise.
5287         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
5288
5289 2006-03-22  Jeff Law  <law@redhat.com>
5290
5291         * loop-unroll.c (analyze_iv_to_split_insn): Handle
5292         iv_analyze_result returning false.
5293
5294 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
5295
5296         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
5297
5298 2006-03-22  Richard Henderson  <rth@redhat.com>
5299
5300         PR middle-end/26084
5301         * except.c (duplicate_eh_regions_0): New.
5302         (duplicate_eh_region_1): Duplicate the children of the node as
5303         well as the node itself.  Link them up properly.
5304         (duplicate_eh_region_2): Merge into ...
5305         (duplicate_eh_regions): ... here.  Take copy_region argument, and
5306         copy only a sub-tree if asked.  Simplify copying and fixup.
5307         (eh_region_outer_p): New.
5308         * except.h (duplicate_eh_regions): Update decl.
5309         (eh_region_outer_p): Declare.
5310         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
5311         (lower_omp_master): Likewise.
5312         (lower_omp_ordered): Likewise.
5313         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
5314         (move_stmt_r): Use it to remap labels.  Handle recursion vs
5315         remap_decls_p properly.
5316         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
5317         (find_outermost_region_in_block): New.
5318         (new_label_mapper): New.
5319         (move_sese_region_to_fn): Copy eh information to the new function
5320         properly.
5321         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
5322         argument.
5323         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
5324         number.
5325
5326 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
5327
5328         * doc/md.texi (-mshared): Mention that -mshared code can be linked
5329         into shared libraries.
5330
5331 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
5332
5333         * doc/md.texi: Refer to i386/constraints.md instead of
5334         i386/predicates.md.
5335         * config/i386/constraints.md: New file, extracted from...
5336         * config/i386/predicates.md: ...here.
5337         * config/i386/i386.md: Include constraints.md.
5338
5339 2006-03-21  Jason Merrill  <jason@redhat.com>
5340
5341         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
5342
5343         PR middle-end/20297
5344         * expr.c (init_block_move_fn): Force default visibility.
5345         (init_block_clear_fn): Likewise.
5346         * builtins.c (expand_builtin_fork_or_exec): Likewise.
5347         * targhooks.c (default_external_stack_protect_fail): Likewise.
5348
5349 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
5350
5351         * config/mips/predicates.md (const_call_insn_operand): Allow direct
5352         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
5353         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
5354         Use TARGET_OLDABI instead of !TARGET_NEWABI.
5355         (loadgp): Use mips_current_loadgp_style.
5356         (loadgp_noshared): New pattern.
5357         (sibcall_internal): Use MIPS_CALL.
5358         (sibcall_value_internal): Likewise.
5359         (sibcall_value_multiple_internal): Likewise.
5360         (call_internal): Likewise.
5361         (call_value_internal): Likewise.
5362         (call_value_multiple_internal): Likewise.
5363         (call_split): Use MIPS_CALL and add an 'S' constraint.
5364         (call_value_split): Likewise.
5365         (call_value_multiple_split): Likewise.
5366         * config/mips/mips.opt (-mabicalls): Tweak docstring.
5367         (-mshared): New option.
5368         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
5369         (mips_current_loadgp_style): Declare.
5370         * config/mips/mips.c (mips_classify_symbol): Avoid using
5371         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
5372         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
5373         TARGET_ABSOLUTE_ABICALLS.
5374         (override_options): Adjust comments.  Improve the warning that is
5375         issued when -mabicalls and -G are used together.
5376         (mips_file_start): Remove comment.
5377         (mips_current_loadgp_style): New function.
5378         (mips_gnu_local_gp): New variable.
5379         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
5380         LOADGP_ABSOLUTE.
5381         (mips_output_function_prologue): Use mips_current_laodgp_style.
5382         (mips_expand_prologue): Call mips_emit_loadgp before emitting
5383         the cprestore instruction.
5384         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
5385         live for TARGET_ABSOLUTE_ABICALLS.
5386         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
5387         (ASM_SPEC): Pass down -mshared and -mno-shared.
5388         (MIPS_CALL): New macro.
5389         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
5390         definition.
5391         * doc/invoke.texi (-mabicalls): Update documentation.
5392         (-mshared): Document.
5393
5394 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
5395
5396         * config/ia64/unwind-hpux.c: New file.
5397         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
5398
5399 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
5400
5401         PR libgomp/26384
5402         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
5403
5404 2006-03-21  Jeff Law  <law@redhat.com>
5405
5406         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
5407         type conversions of a VR_VARYING source to a wider type.
5408
5409 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
5410
5411         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
5412         tm_file on Solaris 10 and later.
5413         (sparc64-*-solaris2*): Likewise.
5414         (sparc-*-solaris2*): Likewise.
5415         * config/sol26.h: Rename to config/sol2-6.h.
5416         * config/sol2-10.h: New file.
5417
5418 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
5419
5420         PR tree-opt/26781
5421         * tree-ssa-pre.c (create_component_ref_by_pieces):
5422         Handle STRING_CST.
5423
5424 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
5425
5426         PR c++/26690
5427         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
5428         return it immediately.
5429
5430 2006-03-21  Michael Matz  <matz@suse.de>
5431
5432         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
5433         New members.
5434         (remove_arc, add_arc): Update num_out_arcs member.
5435         (set_out_arc_insns_equiv_num): Returns nothing instead of number
5436         of out arcs.
5437         (cache_presence): New function.
5438         (compare_states_for_equiv): New function.
5439         (state_is_differed): Don't take number of outargs, adjust callers.
5440         Use new invariant for speeding up.
5441         (init_equiv_class): Create initial classes based on sorted
5442         input.
5443         (partition_equiv_class): Don't track out_arcs_num.
5444         (evaluate_equiv_classes): Call cache_presence on all states and
5445         sort them.
5446
5447 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
5448
5449         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
5450         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
5451         (bfin_valid_reg_p): Test for pseudos explicitly and use only
5452         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
5453         callers changed.
5454         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
5455         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
5456         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
5457         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
5458         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
5459         macros.
5460         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
5461         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
5462         (REGNO_REG_CLASS): ARGP is in PREGS.
5463         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
5464         IREGS.
5465         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
5466         to deal with those addresses.
5467         * addresses.h: New file.
5468         * caller-save.c: Include "addresses.h".
5469         (init_caller_save): Use new base_reg_class function.
5470         * rtl-factoring.c: Include "addresses.h".
5471         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
5472         * recog.c: Include "addresses.h".
5473         (preprocess_constraints): Use new base_reg_class function.
5474         * regrename.c: Include "addresses.h".
5475         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
5476         functions.  Keep track of a new var INDEX_CODE to compute valid
5477         classes.
5478         (replace_oldest_value_addr): Likewise.
5479         (replace_oldest_value_mem): Use base_reg_class.
5480         * reload.c: Include "addresses.h".
5481         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
5482         (find_reloads): Use new base_reg_class function.
5483         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
5484         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
5485         all callers and prototype changed.
5486         * reload1.c: Include "addresses.h".
5487         (maybe_fix_stack_asms): Use base_reg_class.
5488         * regclass.c: Include "addresses.h".
5489         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
5490         (init_reg_autoinc): Use new base_reg_class function.
5491         (record_reg_classes): Likewise.
5492         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
5493         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
5494         Use new args to compute necessary class.
5495
5496         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
5497         regrename.o, rtl-factoring.o): Update dependencies.
5498         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
5499         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
5500         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
5501         REG_OK_FOR_INDEX_P): Delete documentation.
5502
5503 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
5504
5505         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
5506         from V7 to V9 for Solaris 7 and above.
5507
5508 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
5509
5510         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
5511         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
5512         argument pointers may not alias any other storage.
5513         * common.opt: Define option -fargument-noalias-anything.
5514         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
5515         alias semantics is specified by flag_argument_noalias > 2.
5516
5517 2006-03-20  Jeff Law  <law@redhat.com>
5518
5519         * tree-pass.h (pass_phi_only_copy_prop): Delete.
5520         (pass_phi_only_cprop): Declare.
5521         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
5522         with phi_only_cprop
5523         * tree-ssa-dom.c (degenerate_phi_result): New function.
5524         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
5525         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
5526         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
5527         (eliminate_degenerate_phis): Likewise.
5528         (pass_phi_only_cprop): New pass descriptor.
5529         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
5530         support code.  Callers updated.
5531         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
5532         (store_copy_prop): Likewise.
5533         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
5534
5535 2006-03-20  Jason Merrill  <jason@redhat.com>
5536
5537         PR c++/21764
5538         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
5539         (push_visibility, pop_visibility): Likewise.
5540         * c-pragma.h: Declare them.
5541
5542 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5543
5544         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
5545
5546         * config/sh/sh.c (find_regmode_weight): Change the type of the first
5547         parameter and use get_ebb_head_tail.
5548         (sh_md_init_global): Adjust uses of find_regmode_weight.
5549
5550 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
5551
5552         * function.h (struct function) <x_tail_recursion_reentry>:
5553         Rename to x_stack_check_probe_note.
5554         (tail_recursion_reentry): Rename to stack_check_probe_note.
5555         * function.c: Replace tail_recursion_reentry with
5556         stack_check_probe_note everywhere.
5557         (expand_function_start): Only emit a note for
5558         stack_check_probe_note with -fstack-protect.
5559         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
5560
5561         * emit-rtl.c (remove_unnecessary_notes): Remove.
5562         (pass_remove_unnecessary_notes): Remove.
5563         * rtl.h (remove_unnecessary_notes): Remove prototype.
5564         * final.c (final_start_function): Don't call remove_unnecessary_notes.
5565         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
5566         * passes.c (pass_remove_unnecessary_notes): Don't run it.
5567
5568 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
5569
5570         PR tree-opt/26629
5571         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
5572         (valid_in_set): Handle ARRAY_REF.
5573         Change "if min_variant or VH" to asserts.
5574         (create_component_ref_by_pieces): Handle ARRAY_REF.
5575         (create_expression_by_pieces): Likewise.
5576         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
5577
5578 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
5579
5580         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
5581         is operand of switch, not str[0].
5582
5583 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
5584
5585         * config/rs6000/rs6000.c (rs6000_handle_option): Use
5586         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
5587
5588 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
5589
5590         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
5591         end of insn_extra_address_constraint declaration.
5592
5593 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
5594
5595         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
5596         (no-sum-in-toc): Same.
5597         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
5598         variables.
5599         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
5600         NO_FP_IN_TOC for -fPIC instead of mask.
5601
5602         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
5603         (BOOT_LDFLAGS): Delete.
5604         (LDFLAGS): Delete.
5605         * config/rs6000/t-aix52: Same.
5606
5607         * config/rs6000/rs6000.md (store_multiple_power): Delete.
5608         (stmsi[345678]_power): New.
5609
5610 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
5611
5612         * config/ia64/ia64.opt: Add empty line to end of file.
5613
5614 2006-03-17  Richard Guenther  <rguenther@suse.de>
5615
5616         PR middle-end/26721
5617         * builtins.c (get_pointer_alignment): For component style references
5618         adjust alignment to the component type alignment.  Make sure
5619         to adjust alignment for component access of constants.
5620
5621 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
5622
5623         * config/rs6000/rs6000.md (strlensi): Emit barrier after
5624         unconditional jump.
5625
5626 2006-03-17  Paul Brook  <paul@codesourcery.com>
5627
5628         * doc/install.texi: Docuemnt --with-mode.
5629         * config.gcc: Add --with-mode for arm*-*-*.
5630         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
5631
5632 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
5633
5634         * sh.c (max_labelno_before_reorg): New variable.
5635         (sh_reorg): Initialize it.
5636         (find_barrier): Check max_labelno_before_reorg before using
5637         label_to_alignment.  Take length of explicit alignment insns
5638         into account.  When seeing a UNSPECV_CONST_END, return it.
5639
5640         * sh.c (fixup_mova): Set mode of affected label to QImode.
5641         (untangle_mova): New function.
5642         (find_barrier): Use it.  Check mode of label before decrementing
5643         num_mova.
5644         (sh_reorg): Likewise.
5645         Set mode of all insns back to VOIDmode.
5646
5647         * sh.c (MOVA_LABELREF): New macro.
5648         (mova_p, fixup_mova, sh_reorg): Use it.
5649         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
5650         ADDR_DIFF_VEC matches mova.
5651
5652 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
5653
5654         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
5655         with ATTRIBUTE_UNUSED.
5656
5657 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
5658
5659         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
5660         pointer, instead of assuming it is possible to derive the
5661         correct args size from a call insn.
5662
5663 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5664
5665         * rtl.h (CONST_INT_P): Define.
5666         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
5667         instead of GET_CODE(x) == CONST_INT.
5668         (vax_rtx_costs): Likewise.
5669         (vax_output_int_move): Likewise.
5670         (vax_output_int_add): Likewise.
5671         (legitimate_constant_address_p): Likewise.
5672         (index_term_p): Likewise.
5673         * config/vax/vax.h (PRINT_OPERAND): Likewise.
5674         * config/vax/vax.md (and<mode>3): Likewise.
5675         (ashrsi3): Likewise.
5676         (extv): Likewise.
5677         (movstricthi): Likewise.
5678         (movstrictqi): Likewise.
5679         (rotrsi3): Likewise.
5680         (five unnamed insns): Likewise.
5681
5682 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
5683
5684         * doc/tm.texi (SDB and DWARF): Add extra parameter to
5685         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
5686         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
5687         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
5688         Pass to ASM_OUTPUT_DWARF_OFFSET.
5689         * dwarf2out.c (debug_frame_section): New.
5690         (output_call_frame_info): Use debug_frame_section.  Pass it to
5691         dw2_asm_output_offset.
5692         (output_die): Pass appropriate section to dw2_asm_output_offset.
5693         (output_compilation_unit_header): Likewise.
5694         (output_pubnames): Likewise.
5695         (output_aranges): Likewise.
5696         (enum dw_val_class): Break dw_val_class_lbl_offset into
5697         dw_val_class_lineptr and dw_val_class_macptr.
5698         (add_AT_lbl_offset): Delete.
5699         (add_AT_lineptr): New.
5700         (add_AT_macptr): New.
5701         (AT_lbl): Expect a lineptr or macptr.
5702         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
5703         (attr_checksum): Likewise.
5704         (same_dw_val_p): Likewise.
5705         (size_of_die): Likewise.
5706         (value_format): Likewise.
5707         (output_die): Likewise.
5708         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
5709         add_AT_lbl_offset.
5710         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
5711         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
5712         * config/darwin-protos.h (darwin_file_start): New.
5713         (darwin_asm_output_dwarf_offset): New.
5714         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
5715         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
5716         darwin_file_start.
5717         * config/darwin.c (darwin_emit_unwind_label): Don't output label
5718         if not EH section; simplify.
5719         (darwin_file_start): New.
5720         (darwin_asm_output_dwarf_offset): New.
5721         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
5722         mark as 'debug'.
5723         (DEBUG_INFO_SECTION): Likewise.
5724         (DEBUG_ABBREV_SECTION): Likewise.
5725         (DEBUG_ARANGES_SECTION): Likewise.
5726         (DEBUG_MACINFO_SECTION): Likewise.
5727         (DEBUG_LINE_SECTION): Likewise.
5728         (DEBUG_LOC_SECTION): Likewise.
5729         (DEBUG_PUBNAMES_SECTION): Likewise.
5730         (DEBUG_STR_SECTION): Likewise.
5731         (DEBUG_RANGES_SECTION): Likewise.
5732         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
5733         (ASM_OUTPUT_DWARF_OFFSET): New.
5734
5735 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
5736
5737         * config.gcc (tm_defines): Always add to previous value rather
5738         than replacing it.
5739
5740 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
5741
5742         * config/mips/predicates.md (splittable_const_int_operand): New,
5743         split from move_operand.
5744         (splittable_symbolic_operand): New.
5745         (move_operand): Add commentary.  Use splittable_const_int_operand.
5746         Inline mips_atomic_symbolic_constant_p.
5747         * config/mips/mips.md: Add combine splitters for handling moves
5748         of splittable_const_int_operands and splittable_symbolic_operands.
5749         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
5750         (mips_split_symbol): Declare.
5751         (mips_move_integer): Declare.
5752         * config/mips/mips.c (mips_split_p): Make global.
5753         (TARGET_MIN_ANCHOR_OFFSET): Override default.
5754         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
5755         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
5756         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
5757         (mips_offset_within_object_p): Handle block symbols.
5758         (mips_atomic_symbolic_constant_p): Delete.
5759         (mips_cannot_force_const_mem): Return false for constants that
5760         mips_legitimize_move can handle.
5761         (mips_use_blocks_for_constant_p): New function.
5762         (mips_split_symbol): Make global.
5763         (mips_move_integer): Likewise.  Add a temporary register argument.
5764         (mips_legitimize_const_move): Use splittable_const_int_operand and
5765         splittable_symbolic_operand.
5766         (mips_use_anchors_for_symbol_p): New function.
5767         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
5768         (mips_split_p): Declare.
5769
5770 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
5771
5772         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
5773         (mips*-*-linux*): Likewise.
5774
5775 2006-03-16  Roger Sayle  <roger@eyesopen.com>
5776             Daniel Speyer  <dspeyer@wam.umd.edu>
5777
5778         PR middle-end/18259
5779         * tree-dump.c (dump_real): New function.
5780         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
5781         * Makefile.in (REAL_H): New macro for dependencies on real.h.
5782         (tree-dump.o): Add $(REAL_H) to the dependencies.
5783
5784 2006-03-16  Roger Sayle  <roger@eyesopen.com>
5785
5786         PR middle-end/21781
5787         * real.c (real_from_string): If the mantissa is zero, don't bother
5788         parsing the exponent as the result should always be zero.
5789
5790 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
5791
5792         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
5793
5794 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
5795
5796         * config/ia64/ia64.c (stops_p): Added explicit initialization.
5797         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
5798         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
5799         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
5800         ia64_sched_finish_global): New static functions to implement
5801         hooks from gcc_target.sched.
5802         (spec_check_no, max_uid, pending_data_specs): New static variables.
5803         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
5804         ia64_spec_check_src_p): New static functions.
5805         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
5806         (TARGET_SCHED_ADJUST_COST): Removed.
5807         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
5808         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
5809         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
5810         TARGET_SCHED_GEN_CHECK,
5811         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
5812         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
5813         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
5814         Fixed to handle speculation checks.
5815         (rtx_needs_barrier): Fixed to handle speculative loads and
5816         their checks.
5817         (ia64_variable_issue): Added code to count speculative loads and their
5818         checks.
5819         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
5820         speculative loads.
5821         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
5822         New enumerations.
5823         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
5824         New constants.
5825         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
5826         (ia64_reorg): Reset stops_p to NULL after it is freed.
5827         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
5828         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
5829         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
5830         chk_a.
5831         (data_speculative, control_speculative, check_load): New attributes.
5832         (mov<mode>_advanced, mov<mode>_speculative,
5833         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
5834         zero_extend<mode>di2_speculative,
5835         zero_extend<mode>di2_speculative_advanced): New patterns for
5836         data and control speculative loads.
5837         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
5838         check loads.
5839         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
5840         New pattern for data and control speculation checks.
5841         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
5842         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
5843         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
5844         Auxiliary definitions for the patterns.
5845         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
5846         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
5847         constraints.
5848         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
5849         for speculation.
5850         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
5851         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
5852         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
5853         New resource constraints.
5854         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
5855         for speculation.
5856         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
5857         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
5858         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
5859         msched-in-control-spec, msched-ldc, msched-control-ldc,
5860         msched-spec-verbose, msched-prefer-non-data-spec-insns,
5861         msched-prefer-non-control-spec-insns,
5862         msched-count-spec-in-critical-path): New flags to tune speculative
5863         scheduling.
5864         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
5865         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
5866         msched-in-control-spec, msched-ldc, msched-control-ldc,
5867         msched-spec-verbose, msched-prefer-non-data-spec-insns,
5868         msched-prefer-non-control-spec-insns,
5869         msched-count-spec-in-critical-path): Document new flags.
5870
5871 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
5872
5873         * target.h (struct spec_info_def): New opaque declaration.
5874         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
5875         speculate_insn, needs_block_p, gen_check,
5876         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
5877         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
5878         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
5879         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
5880         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
5881         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
5882         gcc_target.sched.
5883         (TARGET_SCHED): Use new macros.
5884         * rtl.h (copy_DEPS_LIST_list): New prototype.
5885         * sched-int.h (struct sched_info): Change signature of new_ready field,
5886         adjust all initializations. New fields: add_remove_insn,
5887         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
5888         region_head_or_leaf_p.
5889         (struct spec_info_def): New structure declaration.
5890         (spec_info_t): New typedef.
5891         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
5892         recovery_block, orig_pat.
5893         (glat_start, glat_end): New variables declaraions.
5894         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
5895         New access macros.
5896         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
5897         DETACH_LIFE_INFO, USE_GLAT.
5898         (enum SPEC_SCHED_FLAGS): New enumeration.
5899         (NOTE_NOTE_BB_P): New macro.
5900         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
5901         attach_life_info, debug_spec_status, check_reg_live): New functions.
5902         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
5903         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
5904         sched-ebb.c
5905         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
5906         * ddg.c (get_block_head_tail): Adjust all uses.
5907         * modulo-sched.c (get_block_head_tail): Adjust all uses.
5908         (sms_sched_info): Initialize new fields.
5909         (contributes_to_priority): Removed.
5910         * haifa-sched.c (params.h): New include.
5911         (get_block_head_tail): Adjust all uses.
5912         (ISSUE_POINTS): New macro.
5913         (glat_start, glat_end): New global variables.
5914         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
5915         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
5916         old_last_basic_block, before_recovery, current_sched_info_var,
5917         rgn_n_insns, luid): New static variables.
5918         (insn_cost1): New function.  Move logic from insn_cost to here.
5919         (find_insn_reg_weight1): New function.  Move logic from
5920         find_insn_reg_weight to here.
5921         (reemit_notes, move_insn, max_issue): Change signature.
5922         (move_insn1): Removed.
5923         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
5924         extend_bb): New static functions to support extension of scheduler's
5925         data structures.
5926         (generate_recovery_code, process_insn_depend_be_in_spec,
5927         begin_speculative_block, add_to_speculative_block,
5928         init_before_recovery, create_recovery_block, create_check_block_twin,
5929         fix_recovery_deps): New static functions to support
5930         generation of recovery code.
5931         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
5932         restore_bb_notes, move_block_after_check, move_succs): New static
5933         functions to support ebb scheduling.
5934         (init_glat, init_glat1, attach_life_info1, free_glat): New static
5935         functions to support handling of register live information.
5936         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
5937         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
5938         add_jump_dependencies): New static functions.
5939         (check_cfg, has_edge_p, check_sched_flags): New static functions for
5940         consistancy checking.
5941         (debug_spec_status): New function to call from debugger.
5942         (priority): Added code to handle speculation checks.
5943         (rank_for_schedule): Added code to distinguish speculative instructions.
5944         (schedule_insn): Added code to handle speculation checks.
5945         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
5946         Fixed to handle ebbs.
5947         (move_insn): Added code to handle ebb scheduling.
5948         (max_issue): Added code to use ISSUE_POINTS of instructions.
5949         (choose_ready): Added code to choose between speculative and
5950         non-speculative instructions.
5951         (schedule_block): Added code to handle ebb scheduling and scheduling of
5952         speculative instructions.
5953         (sched_init): Initialize new variables.
5954         (sched_finish): Free new variables.  Print statistics.
5955         (try_ready): Added code to handle speculative instructions.
5956         * lists.c (copy_DEPS_LIST_list): New function.
5957         * sched-deps.c (extend_dependency_caches): New function.  Move logic
5958         from create_dependency_caches to here.
5959         (get_dep_weak, ds_merge): Make global.
5960         * genattr.c (main): Code to output prototype for
5961         dfa_clear_single_insn_cache.
5962         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
5963         (output_dfa_clean_insn_cache_func): Code to output
5964         dfa_clear_single_insn_cache function.
5965         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
5966         n_insns.
5967         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
5968         Removed.
5969         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
5970         New static variables.
5971         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
5972         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
5973         struct sched_info.
5974         (ebb_sched_info): Initialize new fields.
5975         (get_block_head_tail): Adjust all uses.
5976         (compute_jump_reg_dependencies): Fixed to use glat_start.
5977         (schedule_ebb): Code to remove unreachable last block.
5978         (schedule_ebbs): Added code to update register live information.
5979         * sched-rgn.c (region_sched_info): Initialize new fields.
5980         (get_block_head_tail): Adjust all uses.
5981         (last_was_jump): Removed.  Adjust users.
5982         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
5983         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
5984         Implement new hooks.
5985         (check_dead_notes1): New static function.
5986         (struct region): New fields: dont_calc_deps, has_real_ebb.
5987         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
5988         (BB_TO_BLOCK): Fixed to handle EBBs.
5989         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
5990         (ebb_head): New static variable.
5991         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
5992         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
5993         new fields.
5994         (compute_dom_prob_ps): New assertion.
5995         (check_live_1, update_live_1): Fixed to work with glat_start instead of
5996         global_live_at_start.
5997         (init_ready_list): New assertions.
5998         (can_schedule_ready_p): Split update code to begin_schedule_ready.
5999         (new_ready): Add support for BEGIN_CONTROL speculation.
6000         (schedule_insns): Fixed code that updates register live information
6001         to handle EBBs.
6002         (schedule_region): Fixed to handle EBBs.
6003         (init_regions): Use extend_regions and check_dead_notes1.
6004         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
6005         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
6006         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
6007         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
6008         TARGET_SCHED_GEN_CHECK,
6009         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
6010         TARGET_SCHED_SET_SCHED_FLAGS): Document.
6011         * doc/invoke.texi (max-sched-insn-conflict-delay,
6012         sched-spec-prob-cutoff): Document.
6013
6014 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6015
6016         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
6017         inter_tick, queue_index.
6018         (struct sched_info): Change signature of init_ready_list field.
6019         Adjust all initializations.
6020         (RESOLVED_DEPS): New access macro.
6021         (ready_add): Remove prototype.
6022         (try_ready): Add prototype.
6023         * sched-rgn.c (init_ready_list): Use try_ready.
6024         (schedule_region): Initialize
6025         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
6026         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
6027         (init_ready_list): Use try_ready.
6028         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
6029         * lists.c (remove_list_elem): Remove `static'.
6030         (remove_free_INSN_LIST_elem): New function.
6031         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
6032         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
6033         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
6034         New constants.
6035         (readyp): New variable.
6036         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
6037         change_queue_index, resolve_dep): New static functions.
6038         (try_ready): New function.  Adjust callers in sched-rgn.c and
6039         sched-ebb.c to use it instead of ready_add.
6040         (clock_var): Move at the begining of file.
6041         (rank_for_schedule): Fix typo.
6042         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
6043         (ready_lastpos): Enforce assertion.
6044         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
6045         update all callers.
6046         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
6047         (schedule_insn): Rewrite to use try_ready and resolve_dep.
6048         (queue_to_ready): Use free_INSN_LIST_list.
6049         (early_queue_to_ready): Fix typo.
6050         (schedule_block): Init readyp.  Move init_ready_list call after the
6051         initialization of clock_var.  Fix error in rejecting insn by
6052         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
6053         that previously corrected INSN_TICKs.  Add code for handling
6054         QUEUE_INDEX.
6055         (set_priorities): Fix typo.
6056         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
6057         Clarify comment and code that keeps current_sched_info->next_tail
6058         non-null.
6059
6060 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6061
6062         * sched-rgn.c (extend_rgns): New static function.
6063         (find_rgns): Use it.
6064         (gather_region_statistics, print_region_statistics): New static
6065         functions.
6066         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
6067         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
6068
6069 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6070             Andrey Belevantsev <abel@ispras.ru>
6071
6072         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
6073         * lists.c (unused_deps_list): New variable.
6074         (free_list): Add assertions to verify the proper distinguishing
6075         between INSN_LISTs and DEPS_LISTs.
6076         (find_list_elem, remove_list_elem, remove_list_node): New static
6077         functions.
6078         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
6079         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
6080         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
6081         (alloc_INSN_LIST): Assert that the list we're working on is indeed
6082         an INSN_LIST.
6083         (free_INSN_LIST_node): Likewise.
6084         * modulo-sched.c (current_sched_info): Initialize flags field.
6085         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
6086         * rtl.def (DEPS_LIST): Define.
6087         * rtl.h: Declare new functions from lists.c.
6088         * sched-deps.c (spec_dependency_cache): New static variable.
6089         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
6090         (add_dependence): Change return type to void.  Move the logic to ...
6091         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
6092         (delete_all_dependences): Add comment about forward_dependency_cache.
6093         Handle spec_dependency_cache.  Handle DEPS_LISTs.
6094         (fixup_sched_groups): Clarify the change of priority of output
6095         and anti dependencies.
6096         (sched_analyze_2): Adjust add_dependence calls to create data
6097         speculative dependence.
6098         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
6099         Adjust all callers.  Handle DEPS_LISTS.
6100         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
6101         presence of speculation.
6102         (init_dependency_caches, free_dependency_caches):
6103         Handle spec_dependency_cache.
6104         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
6105         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
6106         New static functions.
6107         (add_or_update_back_dep, add_or_update_back_forw_dep,
6108         add_back_forw_dep, delete_back_forw_dep): New functions.
6109         * sched-int.h (ds_t, dw_t): New typedefs.
6110         (struct sched_info): Add new field flags.
6111         (struct haifa_insn_data): Add new bitfield has_internal_dep.
6112         Prototype new sched-deps.c functions.
6113         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
6114         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
6115         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
6116         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
6117         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
6118         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
6119         New constants.
6120         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
6121         New enums.
6122         * sched-rgn.c (current_sched_info): Initialize flags field.
6123         (schedule_insns): Initialize current_sched_info before the sched_init
6124         call.
6125         * sched-ebb.c (current_sched_info): Initialize flags field.
6126         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
6127         Call add_or_update_back_dep instead of add_dependence.
6128         Create control speculative dependencies.
6129         (schedule_insns): Initialize current_sched_info before the sched_init
6130         call.
6131
6132 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
6133
6134         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
6135         fs->signal_frame.
6136         (sh_fallback_frame_state): Likewise.
6137
6138 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
6139
6140         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
6141         Do switch on default_use_cxa_atexit.
6142         (powerpc*-*-darwin*): Build crt2.o on powerpc.
6143         * config/darwin-crt3.o: New.
6144         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
6145         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
6146         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
6147         OS version.
6148         * config/rs6000/t-darwin: Move crt2.o building to here.
6149         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
6150         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
6151         of __cxa_atexit.
6152
6153 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
6154
6155         * config/vax/vax.c (nonindexed_address_p): Change logical negation
6156         from '! xxx' to '!xxx' for coding-style conformance.
6157         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
6158         (EXTRA_CONSTRAINT): Likewise.
6159         * config/vax/vax.md (four unnamed insns): Likewise.
6160
6161 2006-03-15  Paul Brook  <paul@codesourcery.com>
6162
6163         * config/arm/arm.c (minipool_pad): New.
6164         (add_minipool_forward_ref): Include pool alignment padding in address
6165         calculation.
6166         (push_minipool_fix): Set minipool_pad.
6167         (minipool_pad): Ditto.
6168
6169 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
6170
6171         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
6172         instead of GET_CODE() == MEM and REG_P() instead of
6173         GET_CODE() == REG.
6174         (print_operand_address): Likewise.
6175         (vax_address_cost): Likewise.
6176         (vax_rtx_costs): Likewise.
6177         (vax_notice_update_cc): Likewise.
6178         (vax_output_int_add): Likewise.
6179         (INDEX_REGISTER_P): Likewise.
6180         (BASE_REGISTER_P): Likewise.
6181         (nonindexed_address_p): Likewise.
6182         (vax_mode_dependent_address_p): Likewise.
6183         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
6184         (PRINT_OPERAND): Likewise.
6185         * config/vax/vax.md (ashlsi3): Likewise.
6186         (ashlsi3): Likewise.
6187         (some more unnamed insns): Likewise.
6188
6189 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
6190
6191         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
6192         iterator-style macro.
6193         (mark_control_dependent_edges_necessary): Update the use of
6194         EXECUTE_IF_CONTROL_DEPENDENT.
6195
6196 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
6197
6198         * config/sh/predicates.md (cache_address_operand): Special.
6199         (ua_address_operand): Likewise.
6200
6201 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
6202
6203         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
6204         loop notes.
6205         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
6206
6207 2006-03-15  Andreas Schwab  <schwab@suse.de>
6208
6209         * gensupport.c (identify_predicable_attribute): Don't free p_false
6210         when it is still in use.
6211
6212 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
6213
6214         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
6215         the default setting here.
6216
6217 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
6218
6219         * tree-pass.h (pass_cfg): Remove.
6220         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
6221         * passes.c (pass_cfg): Don't run it.
6222
6223 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
6224
6225         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
6226         * reg-stack.c (stack_regs_mentioned_data): Change the type to
6227         VEC(char,heap) *.
6228         (stack_regs_mentioned): Update the uses of
6229         stack_regs_mentioned_data.  Don't access the array beyond its
6230         end.
6231         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
6232         Don't include gt-reg-stack.h.
6233
6234         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
6235         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
6236
6237         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
6238
6239         PR middle-end/26684
6240         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
6241         STACK_REGS.
6242
6243 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6244
6245         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
6246
6247 2006-03-14  Richard Guenther  <rguenther@suse.de>
6248
6249         PR tree-optimization/26672
6250         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
6251         SSA form.
6252
6253 2006-03-14  Richard Guenther  <rguenther@suse.de>
6254
6255         PR tree-optimization/26667
6256         * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
6257         node for the callees.  Always allow inlining if it will shrink
6258         the function size.
6259
6260 2006-03-14  Richard Guenther  <rguenther@suse.de>
6261
6262         PR middle-end/26659
6263         * builtins.c (get_pointer_alignment): Prefer alignment
6264         information from decls over that from types.
6265
6266 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
6267
6268         PR target/26657
6269         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
6270
6271 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
6272
6273         * config/rs6000/rs6000.opt (mdlmzb): New option.
6274         (msched-prolog, msched-epilog): Use Var not Mask.
6275         * doc/invoke.texi (-mdlmzb): Document.
6276         * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
6277         MASK_SCHED_PROLOG.
6278         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
6279         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
6280
6281 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
6282
6283         PR rtl-optimization/25739
6284         * bt-load.c (augment_live_range): Free tos pointer.
6285
6286         * gensupport.c (identify_predicable_attribute): Free
6287         p_false pointer.
6288         * gcov.c (create_file_names): Free name pointer.
6289
6290 2006-03-13  Roger Sayle  <roger@eyesopen.com>
6291
6292         PR middle-end/26557
6293         * stmt.c (emit_case_nodes): Handle the case where the index is a
6294         CONST_INT, where the comparison mode is specified by the index type.
6295
6296 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6297
6298         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
6299         is defined.
6300
6301 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
6302
6303         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
6304         (*branch_fp_inverted): Likewise.
6305
6306 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
6307
6308         PR middle-end/25989
6309         * omp-low.c (expand_omp_for_generic): Mark istart0
6310         and iend0 as addressable.
6311
6312 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
6313
6314         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
6315
6316 2006-03-13  Jeff Law  <law@redhat.com>
6317
6318         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
6319         virtual operands are interesting.
6320         (vrp_visit_stmt): Corresponding changes.
6321
6322 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
6323
6324         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
6325         of RETS.
6326         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
6327         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
6328         * config/bfin/crti.S: Use it instead of __PIC__.
6329         * config/bfin/crtn.S: Likewise.
6330
6331         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
6332         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
6333         not if flag_pic.
6334         Lose 'G' modifier for call operand.
6335         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
6336         recognize 'G' modifier.
6337
6338 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
6339
6340         PR middle-end/18859
6341         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
6342         * stmt.c (expand_case): Likewise.
6343
6344 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
6345
6346         PR rtl-optimization/26254
6347         * loop-invariant.c (seq_insns_valid_p): New function.
6348         (move_invariant_reg): Only emit new code if it is valid.
6349
6350 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
6351
6352         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
6353         Removed.
6354         (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
6355         (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
6356         (commit_one_edge_insertion): Do not look for loop notes.
6357
6358 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
6359
6360         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
6361         flag_test_coverage out of loop.
6362
6363 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
6364
6365         * final.c (shorten_branches): Remove outdated comment, and turn
6366         the if branch that guards it to continue.
6367
6368 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
6369
6370         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
6371         * cfgloop.h (struct loop): Remove unused fields.
6372
6373 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
6374
6375         * doc/invoke.texi (-fdump-rtl-loop): Remove.
6376         (-dL, -fdump-rtl-loop2): Update the dump file names
6377
6378         * doc/invoke.texi: Update dump file names.
6379
6380 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
6381
6382         * predict.c (estimate_probability): Remove.
6383         * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
6384         * basic-block.h (estimate_probability): Remove prototype.
6385         * passes.c (finish_optimization_passes): Dump branch prediction or
6386         profiling heuristics to the .profile tree dump.
6387         (init_optimization_passes): Unqueue pass_branch_prob.
6388
6389         * doc/invoke.texi (-fdump-rtl-bp): Remove.
6390
6391 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
6392
6393         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
6394         * rtl.h (LABEL_NEXTREF): Remove field accessor.
6395
6396 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
6397
6398         * function.h (frame_offset_overflow): Declare.
6399         * function.c (frame_offset_overflow): New function.
6400         (assign_stack_local_1): Call it to detect that the offset overflows.
6401         * cfgexpand.c (alloc_stack_frame_space): Likewise.
6402
6403 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
6404
6405         * config/sh/sh.c: Include alloc-pool.h.
6406         (label_ref_list_pool): New alloc pool.
6407         (label_ref_list_t): New type for lists of labels.
6408         (struct pool_node): Make wend a label_ref_list_t.
6409         (add_constant): Use the new type, eradicate LABEL_NEXTREF
6410         references.
6411         (dump_table): Likewise.
6412         (sh_reorg): Set up the alloc pool before using add_constant and
6413         dump_table, and destroy it when finishing.
6414
6415 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
6416
6417         * config/mips/mips.c: Remove redundant comment.
6418
6419 2006-03-10  Jason Merrill  <jason@redhat.com>
6420
6421         PR c/26004
6422         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
6423         the target was declared 'register'.
6424
6425 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
6426
6427         * genpreds.c (write_insn_constraint_len): Change definition of
6428         insn_constraint_len to return size_t to match the declaration.
6429
6430 2006-03-10  DJ Delorie  <dj@redhat.com>
6431
6432         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
6433         start at zero.
6434         (m32c_expand_insv): Fix test for an AND mask.
6435
6436 2006-03-10  Richard Guenther  <rguenther@suse.de>
6437
6438         PR middle-end/26565
6439         * builtins.c (get_pointer_alignment): Handle component
6440         references for field alignment.
6441
6442 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
6443
6444         * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
6445         when building with libgloss.
6446         (sh*elf): Implement --without-fp option.
6447         (sh64-superh-linux*): Don't multilib.
6448
6449 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
6450
6451         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
6452
6453 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
6454
6455         * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
6456         Set it when one of the replacement functions returned true.
6457         Return TODO_cleanup_cfg if cfgchanged is true.
6458         (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
6459
6460 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
6461
6462         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
6463         instead of gen_lowpart.
6464
6465 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
6466
6467         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
6468         interface.
6469         (mips_output_order_conditional_branch): Declare.
6470         * config/mips/mips.h (MIPS_BRANCH): New macro.
6471         * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
6472         for the comparison.  Use gen_condjump.
6473         (mips_output_conditional_branch): Rework interface to take the
6474         asm templates for a direct branch and the inverse of a direct branch.
6475         (mips_output_order_conditional_branch): New function.
6476         (mips_builtin_branch_and_move): New function.
6477         (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
6478         branch condition.  Use gen_single_cc as the condition for
6479         __builtin_mips_upper_* or __builtin_mips_lower_*.
6480         (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
6481         Use VOIDmode for the branch condition.
6482         * config/mips/predicates.md (order_operator): New predicate.
6483         * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
6484         (branch_fp): Rename to...
6485         (*branch_fp): ...this.  Remove mode from comparison operator.
6486         Use new mips_output_conditional_branch interface.
6487         (branch_fp_inverted): Rename to...
6488         (*branch_fp_inverted): ...this and update as for *branch_fp.
6489         (*branch_zero<mode>): Rename to...
6490         (*branch_order<mode>): ...this.  Remove mode from comparison operator.
6491         Use mips_output_order_conditional_branch.  Only accept ordered
6492         comparisons.
6493         (*branch_zero<mode>_inverted): Rename to...
6494         (*branch_order<mode>_inverted): ...this and update as for
6495         *branch_order<mode>.
6496         (*branch_equality<mode>): Accept zero as the second operand to
6497         the equality operator.  Use the new mips_output_conditional_branch
6498         interface.
6499         (*branch_equality<mode>_inverted): Likewise.
6500         (condjump): New expander.
6501         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
6502         operator.
6503         * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
6504         (bc1any2t, bc1any2f): Likewise.
6505         (single_cc): New expander.
6506         (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
6507
6508 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
6509
6510         * doc/md.texi: Update documentation of MIPS constraints.
6511         * config/mips/constraints.md: New file.
6512         * config/mips/mips.md: Include it.
6513         * config/mips/mips.c (mips_char_to_class): Delete.
6514         (override_options): Don't initialize mips_char_to_class.
6515         * config/mips/mips.h (mips_char_to_class): Delete.
6516         (REG_CLASS_FROM_LETTER): Delete.
6517         (CONST_OK_FOR_LETTER_P): Delete.
6518         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6519         (EXTRA_CONSTRAINT_Y): Delete.
6520         (EXTRA_CONSTRAINT_STR): Delete.
6521         (CONSTRAINT_LEN): Delete.
6522         (EXTRA_MEMORY_CONSTRAINT): Delete.
6523
6524 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
6525
6526         * tree-cfg.c (move_block_to_fn): Remove the statements from the
6527         original fn's eh regions.
6528
6529 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
6530
6531         * fold-const.c (build_range_check): Make sure to use a valid type to
6532         apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
6533         transformation.
6534
6535         (range_predecessor): New static function.
6536         (range_successor): Likewise.
6537         (merge_ranges): Use them to compute predecessors and successors of
6538         range bounds.
6539
6540 2006-03-09  Roger Sayle  <roger@eyesopen.com>
6541
6542         PR middle-end/26561
6543         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
6544         X op C3, consider whether C3 overflows towards +Inf or -Inf.
6545
6546 2006-03-08  DJ Delorie  <dj@redhat.com>
6547
6548         * config/m32c/addsub.md (addqi3): Disparage a0/a1.
6549         (addpsi3): Expand to include memory operands.  Remove
6550         reload-specific splits.
6551         * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
6552         (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
6553         (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
6554         (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
6555         (shift1_qi, shift1_hi, insv): New.
6556         * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
6557         (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
6558         cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
6559         cond_to_int): New.
6560         * config/m32c/m32c-protos.h: Update as needed.
6561         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
6562         default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
6563         Fail for unrecognized R* constraints.
6564         (m32c_cannot_change_mode_class): Be more picky about pseudos.
6565         (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
6566         (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
6567         Add Sp constraint.
6568         (m32c_init_libfuncs): New.
6569         (m32c_legitimate_address_p): Add debug wrapper.
6570         (m32c_rtx_costs): New.
6571         (m32c_address_cost): New.
6572         (conversions): Add 'B' prefix.
6573         (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
6574         operands, or word regnames for QI operands.  'B' prints bit
6575         position.
6576         (m32c_expand_setmemhi): New.
6577         (m32c_expand_movmemhi): New.
6578         (m32c_expand_movstr): New.
6579         (m32c_expand_cmpstr): New.
6580         (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
6581         (m32c_expand_neg_mulpsi3): Handle non-ints.
6582         (m32c_cmp_flg_0): New.
6583         (m32c_expand_movcc): New.
6584         (m32c_expand_insv): New.
6585         (m32c_scc_pattern): New.
6586         * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
6587         a0/a1 out of SIregs.
6588         (STORE_FLAG_VALUE): New.
6589         * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
6590         code macros.
6591         (no_insn): New.
6592         * config/m32c/mov.md: Make constraints more liberal.
6593         (zero_extendqihi2): Optimize r0/r1 case.
6594         * config/m32c/muldiv.md (mulpsi3): Check for intvals.
6595         * config/m32c/predicates.md (m32c_any_operand): New.
6596         (m32c_nonimmediate_operand): New.
6597         (m32c_hl_operand): New.
6598         (m32c_r3_operand): New.
6599         (ap_operand): New.
6600         (ma_operand): New.
6601         (memsym_operand): New.
6602         (memimmed_operand): New.
6603         (a_qi_operand): New.
6604         (m32c_eqne_operator): New.
6605         (m32c_1bit8_operand): New.
6606         (m32c_1bit16_operand): New.
6607         (m32c_1mask8_operand): New.
6608         (m32c_1mask16_operand): New.
6609         * config/m32c/blkmov.md: New file.
6610         * config/m32c/t-m32c (MD_FILES): Add blkmov.
6611
6612 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
6613
6614         * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
6615         unsigned to fix signed/unsigned comparison issue in
6616         DWARF2_FRAME_REG_OUT.
6617         (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
6618         unsigned comparison issue in DWARF2_FRAME_REG_OUT.
6619
6620         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
6621         of ptr into the ENABLE_CHECKING section.
6622
6623 2006-03-08  Jeff Law  <law@redhat.com>
6624
6625         * tree-vrp.c (infer_value_range): Only count pointer uses
6626         and dereferences if -fdelete-null-pointer-checks is enabled.
6627
6628         * tree-vrp.c (find_assert_locations): Infer value ranges for
6629         single use pointers, but do not create ASSERT_EXPRs for them.
6630         When a non-null range is inferred for a pointer, backwards
6631         propagate that range to other equivalent pointers through the
6632         use-def chain.
6633
6634 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
6635
6636         PR bootstrap/26500
6637         * Makefile.in (dvi, html, install-info): Invoke the corresponding
6638         language hook targets.
6639         * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
6640         objcp/Make-lang.in: Create stub rules for dvi, html, install-info
6641         if language hook targets were missing.
6642
6643 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
6644
6645         * tree-ssa-opfinalize.h: Removed.
6646         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
6647         dependency.
6648         * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
6649         (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
6650         INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
6651         add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
6652         finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
6653         finalize_ssa_v_must_def_ops): New.
6654
6655 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
6656
6657         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
6658         block as parameter.
6659
6660 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
6661
6662         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
6663
6664         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
6665         addresses with offsets; reorganize.
6666
6667         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
6668         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
6669         (expand_builtin_init_dwarf_reg_sizes): Likewise.
6670
6671 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
6672
6673         PR target/26588
6674         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
6675
6676 2006-03-08  Ben Elliston  <bje@au.ibm.com>
6677
6678         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
6679
6680 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
6681
6682         PR gomp/26238
6683         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
6684         expansion.
6685
6686 2006-03-07  Richard Guenther  <rguenther@suse.de>
6687
6688         PR tree-optimization/26587
6689         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
6690
6691 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
6692
6693         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
6694
6695 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
6696
6697         * hooks.c (hook_bool_mode_rtx_true): New function.
6698         * hooks.h (hook_bool_mode_rtx_true): Declare.
6699         * toplev.c (compile_file): Call output_shared_constant_pool.
6700         * varasm.c (shared_constant_pool): New variable.
6701         (assemble_start_function, assemble_end_function): Remove arguments
6702         from call to output_constant_pool.
6703         (create_constant_pool): New function, split out from...
6704         (init_varasm_status): ...here.
6705         (force_const_mem): Choose between the shared and per-function constant
6706         pools.  Set current_function_uses_const_pool when reusing old entries
6707         as well as when creating new ones.
6708         (mark_constant): Ignore data argument.
6709         (mark_constants): Remove pool argument.
6710         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
6711         to decide whether the function uses a constant pool.
6712         (output_constant_pool_contents): New function, split out from...
6713         (output_constant_pool): ...here.
6714         (output_shared_constant_pool): New function.
6715         (init_varasm_once): Initialize shared_constant_pool.
6716         * output.h (output_constant_pool): Delete.
6717         (output_shared_constant_pool): Declare.
6718         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
6719         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
6720
6721 2006-03-06  Nick Clifton  <nickc@redhat.com>
6722
6723         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
6724         flag_strength_reduce.
6725
6726 2006-03-06  Ben Elliston  <bje@au.ibm.com>
6727
6728         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
6729         x86_64-*-linux* configurations.
6730
6731         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
6732         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
6733
6734 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
6735
6736         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
6737         Remove.
6738         * basic-block.h: Remove the extern for
6739         rediscover_loops_after_threading.
6740
6741         * cfgloop.c (cancel_loop): Make it static.
6742         * cfgloop.h: Remove the prototype for cancel_loop.
6743
6744         * flow.c (recompute_reg_usage): Make it static.
6745         * rtl.h: Remove the prototype for recompute_reg_usage.
6746
6747         * function.c (use_return_register): Make it static.
6748         * function.h: Remove the prototype.
6749
6750 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
6751
6752         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
6753         Remove.
6754         * recog.h: Remove the prototype for
6755         validate_change_maybe_volatile.
6756
6757 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
6758
6759         * rtlanal.c (replace_reg): Remove.
6760         * rtl.h: Remove the prototype for replace_reg.
6761
6762 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
6763
6764         * regclass.c (reg_scan_update): Remove.
6765         (reg_scan_mark_refs): Remove the last argument.
6766         * rtl.h: Remove the prototype for reg_scan_update.
6767
6768 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
6769
6770         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
6771         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
6772         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
6773         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
6774         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
6775         loop-invariant.c, omp-low.c, opts.c, passes.c,
6776         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
6777         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
6778         tree-ssa-structalias.c, tree-ssa-threadedge.c,
6779         tree-ssa-threadupdate.c, tree-vect-patterns.c,
6780         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
6781         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
6782
6783 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
6784
6785         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
6786         * dwarf2out.h: Remove the prototype for
6787         dwarf2out_add_library_unit_info.
6788
6789 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
6790
6791         * tree.c (add_var_to_bind_expr): Remove.
6792         * tree.h: Remove the prototype for add_var_to_bind_expr.
6793
6794 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
6795
6796         * regclass.c (n_non_fixed_regs): Remove.
6797         (init_reg_sets_1, globalize_reg): Remove all uses of
6798         n_non_fixed_regs.
6799         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
6800
6801 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
6802
6803         * rtlanal.c (insns_safe_to_move_p): Remove.
6804         * rtl.h: Remove the prototype for insns_safe_to_move_p.
6805
6806 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
6807
6808         * expmed.c (expand_mult_add): Remove.
6809         * expr.h: Remove the prototype for expand_mult_add.
6810
6811 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
6812
6813         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
6814         and REG_SAVED_VAL_EXP constants.
6815         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
6816         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
6817         Handle regs stored by value.
6818         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
6819         (execute_cfa_program): Handle DW_CFA_val_offset,
6820         DW_CFA_val_offset_sf and DW_CFA_val_expression.
6821         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
6822         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
6823         (uw_install_context_1): Handle target regs stored by value.
6824
6825 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
6826
6827         * tree-sra.c (tree_sra): Return todoflags;
6828         (generate_one_element): Set TODO_update_smt_usage if needed.
6829         (pass_sra): Remove TODO_update_smt_usage.
6830         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
6831         parameter.
6832         (tree_ssa_forward_propagate_single_use_vars): Return
6833         TODO_update_smt_usage if we need to update SMT usage.
6834         (pass_forwprop): Remove TODO_update_smt_usage.
6835
6836 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
6837
6838         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
6839         (correct_use_link): Remove reference to get_stmt_operands.
6840         (update_stmt_operands): Likewise.
6841         (get_modify_expr_operands): New function factored out of
6842         parse_ssa_operands and get_expr_operands.
6843         Try to create V_MUST_DEFs for LHS by default.
6844         (get_expr_operands) <case MODIFY_EXPR>: Call
6845         get_modify_expr_operands.
6846         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
6847         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
6848         (parse_ssa_operands) <case MODIFY_EXPR>: Call
6849         get_modify_expr_operands.
6850
6851 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
6852
6853         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
6854         * tree-flow.h: Remove the prototype for
6855         referenced_var_lookup_if_exists.
6856
6857 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
6858
6859         PR rtl-optimization/26345
6860         PR target/19061
6861         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
6862
6863 2006-03-03  Roger Sayle  <roger@eyesopen.com>
6864
6865         PR tree-optimization/26524
6866         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
6867         fold_convert to create a constant of the appropriate type.
6868
6869 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
6870
6871         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
6872         SYMBOL_REF_IN_BLOCK_P.
6873         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
6874         of SYMBOL_FLAG_IN_BLOCK.
6875         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
6876         instead of SYMBOL_REF_IN_BLOCK_P.
6877         * explow.c (use_anchored_address): Likewise.
6878         * rtl.c (rtx_size): Likewise.
6879         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
6880         instead of SYMBOL_FLAG_IN_BLOCK.
6881         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
6882         SYMBOL_REF_IN_BLOCK_P.
6883         (assemble_variable): Likewise.
6884         (output_constant_def_contents): Likewise.
6885         (output_constant_pool): Likewise.
6886         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
6887         instead of SYMBOL_FLAG_IN_BLOCK.
6888         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
6889         SYMBOL_REF_IN_BLOCK_P.
6890         (SYMBOL_REF_BLOCK): Likewise.
6891         (SYMBOL_REF_OFFSET): Likewise.
6892         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
6893         SYMBOL_REF_IN_BLOCK_P.
6894         (SYMBOL_FLAG_IN_BLOCK): Replace with...
6895         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
6896         (SYMBOL_REF_IN_BLOCK_P): Replace with...
6897         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
6898
6899 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
6900
6901         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
6902
6903 2006-03-02  Roger Sayle  <roger@eyesopen.com>
6904
6905         * simplify-rtx.c (simplify_unary_operation): When simplifying
6906         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
6907         that we perform the right shift in the appropriate mode, and
6908         then extend or truncate the result to requested mode.
6909
6910 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
6911
6912         * gengtype.c (main): Handle double_int type.
6913         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
6914         * double-int.c: New file.
6915         * double-int.h: New file.
6916         * system.h: Include doubleint.h.
6917         * Makefile.in (SYSTEM_H): Include double-int.h.
6918         (double-int.o): Add.
6919
6920 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
6921
6922         PR bootstrap/26478
6923         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
6924         copying over it.
6925
6926 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
6927
6928         * tree-vrp.c (remove_range_assertions): Do not update statements
6929         unnecessarily.
6930
6931 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
6932
6933         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
6934         cleanup.
6935         * gcse.c (rest_of_handle_gcse): Ditto.
6936         * except.c (gate_handle_eh): Ditto.
6937         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
6938         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
6939
6940 2006-03-02  Eric Christopher  <echristo@apple.com>
6941
6942         * config/i386/i386.c (machopic_output_stub): Add indirection to
6943         jump.
6944
6945 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
6946
6947         * loop.c: Removed.
6948
6949 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
6950
6951         Sun Niagara specific optimizations.
6952         * config.gcc: Recognize niagara as target.
6953         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
6954         (TARGET_CPU_niagara): Define.
6955         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
6956         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
6957         (CPP_CPU_SPEC): Handle -mcpu=niagara.
6958         (ASM_CPU_SPEC): Likewise.
6959         (PROCESSOR_NIAGARA): New enum entry.
6960         (REGISTER_MOVE_COST): Handle Niagara.
6961         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
6962         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
6963         (sparc_override_options): Recognize "niagara", set appropriate
6964         default MASK_* values for it, and align functions to 32-bytes
6965         by default just like ULTRASPARC/ULTRASPARC3.
6966         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
6967         (sparc64_initialize_trampoline): Likewise.
6968         (sparc_use_sched_lookahead): Use zero for niagara.
6969         (sparc_issue_rate): Use one for niagara.
6970         * config/sparc/niagara.md: New file.
6971         * config/sparc/sparc.md: Include it.
6972         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
6973         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
6974         when default cpu is niagara.
6975         (CPP_CPU_SPEC): Handle -mcpu=niagara.
6976         (ASM_CPU_SPEC): Likewise.
6977         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
6978         when default cpu is niagara.
6979         (ASM_CPU_SPEC): Handle -mcpu=niagara.
6980         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
6981         just like v9/ultrasparc/ultrasparc3.
6982         * doc/invoke.texi: Add documentation for "niagara" and improve
6983         existing documentation for ultrasparc variants.
6984
6985 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
6986
6987         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
6988
6989 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
6990
6991         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
6992         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
6993         and say that only one is needed.
6994         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
6995         * target.h (have_switchable_bss_sections): New hook.
6996         * explow.c (use_anchored_address): Check that the symbol is in a block.
6997         * varasm.c (tls_comm_section, comm_section, lcomm_section)
6998         (bss_noswitch_section): New variables.
6999         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
7000         (get_noswitch_section): New function.
7001         (get_block_for_section): Allow SECT to be null.
7002         (unlikely_text_section_p): Use SECTION_STYLE.
7003         (bss_initializer_p): New function.
7004         (get_variable_section): Move earlier in file.  Take a new argument,
7005         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
7006         Return one of the new *_sections in such cases.
7007         (get_block_for_decl): New function, extracting some logic from
7008         use_blocks_for_decl_p.
7009         (change_symbol_section): Remove in favor of...
7010         (change_symbol_block): ...this new function.
7011         (use_blocks_for_decl_p): Remove checks now performed by
7012         get_block_for_decl.
7013         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
7014         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
7015         (emit_local, emit_bss, emit_common): ...these new functions.
7016         Return true if the alignment was honored.
7017         (emit_tls_common): New function.
7018         (asm_emit_uninitialised): Delete.
7019         (assemble_variable_noswitch): New function, split out from...
7020         (assemble_variable): ...here.  Don't make decisions about common
7021         variables here.  Globalize all public decls that go into non-common
7022         sections.  Check whether SYMBOL_REF_BLOCK is null.
7023         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
7024         (output_constant_pool): Likewise.
7025         (init_varasm_once): Initialize the new section variables.
7026         (have_global_bss_p): New function.
7027         (categorize_decl_for_section): Use bss_initializer_p.
7028         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
7029         (place_block_symbol): Assert that the symbol must be in a block.
7030         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
7031         (TARGET_INITIALIZER): Include it.
7032         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
7033         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
7034         (SECTION_MACH_DEP): Bump by two.
7035         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
7036         (unnamed_section): Mention SECTION_UNNAMED in comment.
7037         (named_section): Likewise SECTION_NAMED.
7038         (noswitch_section_callback): New type.
7039         (noswitch_section): New structure.
7040         (section): Add a noswitch_section alternative.
7041         (SECTION_STYLE): New macro.
7042         (tls_comm_section, comm_section, lcomm_section): Declare.
7043         (bss_noswitch_section, have_global_bss_p): Declare.
7044         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
7045         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
7046         Override.
7047         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
7048         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
7049         Override.
7050
7051 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
7052
7053         * tree-vrp.c (execute_vrp): Return value.
7054         * regrename.c (rest_of_handle_regrename): Ditto.
7055         * tree-into-ssa.c (rewrite_into_ssa): Ditto.
7056         * tree-complex.c (tree_lower_complex): Ditto.
7057         (tree_lower_complex_O0): Ditto.
7058         * tracer.c (rest_of_handle_tracer): Ditto.
7059         * postreload-gcse.c (rest_of_handle_gcse2): Ditto.
7060         * postreload.c (rest_of_handle_postreload): Ditto.
7061         * tree-tailcall.c (execute_tail_recursion): Ditto.
7062         (execute_tail_calls): Ditto.
7063         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
7064         * tree.h (init_function_for_compilation): Ditto.
7065         * ipa-cp.c (ipcp_driver): Ditto.
7066         * tree-scalar-evolution.c (scev_const_prop): Ditto.
7067         * tree-scalar-evolution.h (scev_const_prop): Ditto.
7068         * final.c (compute_alignments): Ditto.
7069         (rest_of_handle_final): Ditto.
7070         (rest_of_handle_shorten_branches): Ditto.
7071         (rest_of_clean_state): Ditto.
7072         * omp-low.c (execute_expand_omp): Ditto.
7073         (execute_lower_omp): Ditto.
7074         * tree-ssa-dse.c (tree_ssa_dse): Ditto.
7075         * ipa-reference.c (static_execute): Ditto.
7076         * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
7077         * reorg.c (rest_of_handle_delay_slots): Ditto.
7078         (rest_of_handle_machine_reorg): Ditto.
7079         * cgraphunit.c (rebuild_cgraph_edges): Ditto.
7080         * flow.c (recompute_reg_usage): Ditto.
7081         (rest_of_handle_remove_death_notes): Ditto.
7082         (rest_of_handle_life): Ditto.
7083         (rest_of_handle_flow2): Ditto.
7084         * tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
7085         * tree-ssa-ccp.c (do_ssa_ccp): Ditto.
7086         (do_ssa_store_ccp): Ditto.
7087         (execute_fold_all_builtins): Ditto.
7088         * mode-switching.c (rest_of_handle_mode_switching): Ditto.
7089         * modulo-sched.c (rest_of_handle_sms): Ditto.
7090         * ipa-pure-const.c (static_execute): Ditto.
7091         * cse.c (rest_of_handle_cse): Ditto.
7092         (rest_of_handle_cse2): Ditto.
7093         * web.c (rest_of_handle_web): Ditto.
7094         * tree-stdarg.c (execute_optimize_stdarg): Ditto.
7095         * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
7096         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
7097         * tree-nrv.c (tree_nrv): Ditto.
7098         (execute_return_slot_opt): Ditto.
7099         * tree-ssa-alias.c (compute_may_aliases): Ditto.
7100         (create_structure_vars): Ditto.
7101         * loop-init.c (rtl_loop_init): Ditto.
7102         (rtl_loop_done): Ditto.
7103         (rtl_move_loop_invariants): Ditto.
7104         (rtl_unswitch): Ditto.
7105         (rtl_unroll_and_peel_loops): Ditto.
7106         (rtl_doloop): Ditto.
7107         * gimple-low.c (lower_function_body): Ditto.
7108         (mark_used_blocks): Ditto.
7109         * tree-ssa-sink.c (execute_sink_code): Ditto.
7110         * ipa-inline.c (cgraph_decide_inlining): Ditto.
7111         (cgraph_early_inlining): Ditto.
7112         * global.c (rest_of_handle_global_alloc): Ditto.
7113         * jump.c (cleanup_barriers): Ditto.
7114         (purge_line_number_notes): Ditto.
7115         * ifcvt.c (rest_of_handle_if_conversion): Ditto.
7116         (rest_of_handle_if_after_reload): Ditto.
7117         * tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
7118         (tree_ssa_loop_im): Ditto.
7119         (tree_ssa_loop_unswitch): Ditto.
7120         (tree_vectorize): Ditto.
7121         (tree_linear_transform): Ditto.
7122         (tree_ssa_loop_ivcanon): Ditto.
7123         (tree_ssa_empty_loop): Ditto.
7124         (tree_ssa_loop_bounds): Ditto.
7125         (tree_complete_unroll): Ditto.
7126         (tree_ssa_loop_prefetch): Ditto.
7127         (tree_ssa_loop_ivopts): Ditto.
7128         (tree_ssa_loop_done): Ditto.
7129         * predict.c (tree_estimate_probability): Ditto.
7130         * recog.c (split_all_insns_noflow): Ditto.
7131         (rest_of_handle_peephole2): Ditto.
7132         (rest_of_handle_split_all_insns): Ditto.
7133         * tree-eh.c (lower_eh_constructs): Ditto.
7134         * regmove.c (rest_of_handle_regmove): Ditto.
7135         (rest_of_handle_stack_adjustments): Ditto.
7136         * local-alloc.c (rest_of_handle_local_alloc): Ditto.
7137         * function.c (instantiate_virtual_regs): Ditto.
7138         (init_function_for_compilation): Ditto.
7139         (rest_of_handle_check_leaf_regs): Ditto.
7140         * gcse.c (rest_of_handle_jump_bypass): Ditto.
7141         (rest_of_handle_gcse): Ditto.
7142         * ipa-type-escape.c (type_escape_execute): Ditto.
7143         * alias.c (rest_of_handle_cfg): Ditto.
7144         * tree-if-conv.c (main_tree_if_conversion): Ditto.
7145         * profile.c (rest_of_handle_branch_prob): Ditto.
7146         * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
7147         * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
7148         * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
7149         * tree-dfa.c (find_referenced_vars): Ditto.
7150         * except.c (set_nothrow_function_flags): Ditto.
7151         (convert_to_eh_region_ranges): Ditto.
7152         (rest_of_handle_eh): Ditto.
7153         * emit-rtl.c (unshare_all_rtl): Ditto.
7154         (remove_unnecessary_notes): Ditto.
7155         * except.h (set_nothrow_function_flags): Ditto.
7156         (convert_to_eh_region_ranges): Ditto.
7157         * cfgexpand.c (tree_expand_cfg): Ditto.
7158         * tree-cfgcleanup.c (merge_phi_nodes): Ditto.
7159         * tree-ssa-pre.c (do_pre): Ditto.
7160         (execute_fre): Ditto.
7161         * cfgcleanup.c (rest_of_handle_jump): Ditto.
7162         (rest_of_handle_jump2): Ditto.
7163         * tree-sra.c (tree_sra): Ditto.
7164         * tree-mudflap.c (execute_mudflap_function_ops): Ditto.
7165         (execute_mudflap_function_decls): Ditto.
7166         * tree-ssa-copy.c (do_copy_prop): Ditto.
7167         (do_store_copy_prop): Ditto.
7168         * ipa-prop.h (ipcp_driver): Ditto.
7169         * cfglayout.c (insn_locators_initialize): Ditto.
7170         * tree-ssa-forwprop.c
7171         (tree_ssa_forward_propagate_single_use_vars): Ditto.
7172         * cfglayout.h (insn_locators_initialize): Ditto.
7173         * tree-ssa-dce.c (tree_ssa_dce): Ditto.
7174         * tree-ssa.c (execute_early_warn_uninitialized): Ditto.
7175         (execute_late_warn_uninitialized): Ditto.
7176         * rtl.h (cleanup_barriers): Ditto.
7177         (split_all_insns_noflow): Ditto.
7178         (purge_line_number_notes): Ditto.
7179         (unshare_all_rtl): Ditto.
7180         (remove_unnecessary_notes): Ditto.
7181         (recompute_reg_usage): Ditto.
7182         (variable_tracking_main): Ditto.
7183         * integrate.c (emit_initial_value_sets): Ditto.
7184         * integrate.h (emit_initial_value_sets): Ditto.
7185         * tree-optimize.c (execute_free_datastructures): Ditto
7186         (execute_free_cfg_annotations): Ditto.
7187         (execute_fixup_cfg): Ditto.
7188         (execute_cleanup_cfg_pre_ipa): Ditto.
7189         (execute_cleanup_cfg_post_optimizing): Ditto.
7190         (execute_init_datastructures): Ditto.
7191         * tree-object-size.c (compute_object_sizes): Ditto.
7192         * combine.c (rest_of_handle_combine): Ditto.
7193         * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
7194         * bb-reorder.c (duplicate_computed_gotos): Ditto.
7195         (rest_of_handle_reorder_blocks): Ditto.
7196         (rest_of_handle_partition_blocks): Ditto.
7197         * var-tracking.c (variable_tracking_main): Ditto.
7198         * tree-profile.c (tree_profiling): Ditto.
7199         * tree-vect-generic.c (expand_vector_operations): Ditto.
7200         * reg-stack.c (rest_of_handle_stack_regs): Ditto.
7201         * sched-rgn.c (rest_of_handle_sched): Ditto.
7202         (rest_of_handle_sched2): Ditto.
7203         * basic-block.h (free_bb_insn): Ditto.
7204         * tree-ssa-structalias.c (ipa_pta_execute): Ditto.
7205         * tree-cfg.c (execute_build_cfg): Ditto.
7206         (remove_useless_stmts): Ditto.
7207         (split_critical_edges): Ditto.
7208         (execute_warn_function_return): Ditto.
7209         (execute_warn_function_noreturn): Ditto.
7210         * tree-ssa-reassoc.c (execute_reassoc): Ditto.
7211         * cfgrtl.c (free_bb_for_insn): Ditto.
7212         * passes.c (execute_one_pass): Run additional
7213         todos returned by execute function.
7214         * tree-pass.h (struct tree_opt_pass): Make execute
7215         return a value.
7216
7217 2006-03-02  Richard Guenther  <rguenther@suse.de>
7218
7219         * tree-ssa-alias.c (find_used_portions): Consider taking
7220         the address as making the variable not write-only.
7221
7222 2006-03-02  Nick Clifton  <nickc@redhat.com>
7223
7224         * config.gcc (default_use_cxa_atexit): Extend the description of
7225         this configure variable.  Set its default value to "yes" for
7226         Linux, NetBSD and ELF targets on the assumption that they will
7227         use C libraries with the __cxa_atexit function.
7228
7229 2006-03-02  Ben Elliston  <bje@au.ibm.com>
7230
7231         * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
7232         parameter as unused to suppress a build warning.
7233
7234 2006-03-02  Ben Elliston  <bje@au.ibm.com>
7235
7236         * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
7237         config/dfp-bit.c.
7238
7239 2006-03-01  Roger Sayle  <roger@eyesopen.com>
7240
7241         PR other/26489
7242         * gthr-posix.h (__gthrw2): Define to take three parameters, the
7243         declared name, the weak reference name, and the typeof name.
7244         (__gthrw): Avoid expanding the declared name suffix.
7245         (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
7246
7247 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
7248
7249         * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
7250         from DWARF 3.
7251         (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
7252         DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
7253         DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
7254         DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
7255         DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
7256         (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
7257         (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
7258         DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
7259         (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
7260         DW_DS_leading_separate, DW_DS_trailing_separate): New.
7261         (DW_END_default, DW_END_big, DW_END_little): New.
7262         (DW_END_lo_user, DW_END_hi_user): Define.
7263         (DW_LNE_lo_user, DW_LNE_hi_user): Define.
7264         (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
7265         (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
7266         DW_LANG_D): New.
7267
7268 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
7269
7270         * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
7271         Update all users.
7272         * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
7273         Update all users.
7274         (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
7275         Update all users.
7276         * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
7277         Update all users.
7278         * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
7279         to 'symbol_mem_tag'.
7280         Update all users.
7281         * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
7282         rename.
7283
7284 2006-03-01  Roger Sayle  <roger@eyesopen.com>
7285
7286         * builtins.c (fold_builtin_copysign): Delete unreachable code.
7287
7288 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
7289
7290         PR target/25761
7291         * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
7292         MACHO_DYNAMIC_NO_PIC_P.
7293         (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
7294
7295 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
7296
7297         PR target/26389
7298         * config/darwin-protos.h (darwin_asm_output_anchor):
7299         Declare.
7300         * config/darwin-sections.def (cstring_section):
7301         Add SECTION_MERGE to the flags.
7302         (literal4_section): Likewise.
7303         (literal8_section): Likewise.
7304         (objc_selector_refs_section): Likewise.
7305         (objc_cls_refs_section): Likewise.
7306         * config/darwin.c (darwin_asm_output_anchor): New
7307         function.
7308         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
7309
7310 2006-03-01  Daniel Berlin  <dberlin@dberlin.org>
7311
7312         Fix PR tree-optimization/26443
7313         * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
7314         to todo and PROP_tmt_usage to properties_destroyed.
7315         * tree-ssa-ccp.c (pass_ccp): Ditto.
7316         (pass_store_ccp): Ditto.
7317         * tree-ssa-dom.c (pass_dominator): Ditto.
7318
7319 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
7320
7321         * tree-ssa-operands.c: Cleanup whitespace.
7322         (get_asm_expr_operands): Move before first invocation.
7323         (get_indirect_ref_operands): Likewise.
7324         (get_tmr_operands): Likewise.
7325         (get_call_expr_operands): Likewise.
7326         (append_def): Likewise.
7327         (append_use): Likewise.
7328         (append_v_may_def): Likewise.
7329         (append_v_must_def): Likewise.
7330         (add_call_clobber_ops): Likewise.
7331         (add_call_read_ops): Likewise.
7332         (add_stmt_operand): Likewise.
7333         (add_virtual_operand): Likewise.
7334         (build_ssa_operands): Likewise.
7335
7336 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
7337
7338         PR middle-end/26022
7339         Revert:
7340         PR middle-end/24437
7341         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
7342         with a call expr to ...
7343         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
7344
7345 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
7346
7347         * tree-vrp.c (extract_range_from_assert): Remove special
7348         handling for types with super-types.
7349
7350 2006-03-01  Ben Elliston  <bje@au.ibm.com>
7351
7352         * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
7353         and powerpc64-*-linux* configurations.
7354         * config/t-dfprules: New file.
7355
7356         * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
7357         Compile dfp-bit.c from the source directory using -DWIDTH and
7358         $DFP_CFLAGS to control the compilation of that file, rather than
7359         generating width-specific versions in the build directory.
7360         * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
7361         (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
7362
7363 2006-02-28  Zack Weinberg  <zackw@panix.com>
7364
7365         * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
7366         continues to work.
7367
7368 2006-02-28  Eric Christopher  <echristo@apple.com>
7369
7370         * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
7371         Set up IN_LIBGCC definition of TARGET_64BIT.
7372         * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
7373
7374 2006-02-28  Roger Sayle  <roger@eyesopen.com>
7375
7376         PR middle-end/14752
7377         * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
7378         BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
7379         cases via the construction of "expr != 0".
7380
7381 2006-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
7382
7383         * alias.c (alias_invariant, alias_invariant_size): Remove.
7384         (record_base_value): Remove.
7385         (memrefs_conflict_p): Don't look at alias_invariant.
7386         (end_alias_analysis): Don't free it.
7387         * alias.h (record_base_value): Remove prototype.
7388
7389 2006-02-28  Paolo Bonzini  <bonzini@gnu.org>
7390             Adam Nemet  <anemet@caviumnetworks.com>
7391
7392         * rtl.h (truncated_to_mode): Declare it.
7393         (struct rtl_hooks): Add reg_truncated_to_mode hook.
7394         * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
7395         (RTL_HOOKS_INITIALIZER): Include it.
7396         * rtlhooks.c (reg_truncated_to_mode_general): New function.
7397         * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
7398         reg_truncated_to_mode.
7399         * rtlanal.c (truncated_to_mode): Define it.
7400         * simplify-rtx.c (simplify_unary_operation_1): Use it.
7401
7402 2006-02-28  Jeff Law  <law@redhat.com>
7403
7404         * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
7405         conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
7406         the range allowed by TYPE_PRECISION.
7407
7408         * tree.h (strct phi_arg_d): Remove unused NONZERO field.
7409
7410 2006-02-28  Dorit Nuzman  <dorit@il.ibm.com>
7411
7412         PR tree-optimization/26419
7413         * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
7414         values of n.
7415
7416 2006-02-27  Zack Weinberg  <zackw@panix.com>
7417
7418         * doc/md.texi: Fix typo in previous change.
7419
7420 2006-02-27  Kenneth Zadeck <zadeck@naturalbridge.com>
7421
7422         * df.c: Remove.
7423
7424 2006-02-27  Zack Weinberg  <zackw@panix.com>
7425
7426         * rtl.def (define_constraint, define_register_constraint)
7427         (define_memory_constraint, define_address_constraint): New MD forms.
7428         * gensupport.c (process_rtx): Put define_constraint etc on the
7429         predicate queue.
7430         * genpreds.c (process_define_predicate): Adjust comment.  Validate
7431         the name, and call validate_exp to validate the expression.
7432         (mark_mode_tests, write_extract_subexp): Can assume correct input.
7433         (write_predicate_expr): Likewise.  NAME argument no longer necessary;
7434         all callers changed.
7435         (validate_exp, needs_variable, struct constraint_data)
7436         (constraints_by_letter_table, first_constraint, last_constraint_ptr)
7437         (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
7438         (const_dbl_constraints, constraint_max_namelen)
7439         (have_register_constraints, have_memory_constraints)
7440         (have_address_constraints, have_address_constraints)
7441         (have_extra_constraints, have_const_int_constraints)
7442         (have_const_dbl_constraints, mangle, add_constraint)
7443         (process_define_constraint, process_define_register_constraint)
7444         (write_enum_constraint_num, write_lookup_constraint)
7445         (write_insn_constraint_len, write_regclass_for_constraint)
7446         (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
7447         (write_insn_extra_memory_constraint)
7448         (write_insn_extra_address_constraint)
7449         (write_satisfies_constraint_fns): New.
7450         (write_tm_preds_h): If we have new-style constraint definitions,
7451         prototype the functions generated from them, and define the
7452         old constraint interface (still used by generic code) in terms of
7453         those functions.
7454         (write_insn_preds_c): If we have new-style constraint definitions,
7455         generate all relevant functions from those definitions.
7456         (main): Handle define_constraint etc.
7457         * genoutput.c (struct constraint_data, indep_constraints)
7458         (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
7459         (mdep_constraint_len): New data structures and functions, defined
7460         #ifdef USE_MD_CONSTRAINTS.
7461         (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
7462         (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
7463         use new logic to validate operand constraints against constraint
7464         definitions.
7465         (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
7466         defined.
7467         * defaults.h: If none of the old-style constraint macros are
7468         defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
7469         old-style macros; and poison REG_CLASS_FROM_LETTER,
7470         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
7471         EXTRA_CONSTRAINT.
7472         * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
7473         * doc/md.texi: Document new constraint-definition mechanism and the
7474         C interface it provides.  Remove references to old mechanism
7475         elsewhere in the document.
7476         (Machine Constraints): Use pathnames relative to gcc directory,
7477         i.e. config/ARCH/FILE.  Change i386 section to refer to
7478         config/i386/predicates.md; update that section to match docstrings.
7479         * doc/tm.texi: Move all documentation of the old constraint-
7480         definition macros to their own section, clearly mark as obsolete.
7481
7482         * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
7483         (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
7484         definitions.
7485         * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
7486         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
7487         * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
7488         constraint strings.
7489         (splits and peepholes): Use satisfies_constraint_*.
7490         * config/i386/i386.c (memory_address_length)
7491         (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
7492
7493 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
7494
7495         * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
7496         scalar operation to be put back into the loop.
7497
7498 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
7499
7500         PR other/26208
7501         * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
7502         (extract_cie_info): Handle S flag in augmentation string.
7503         (execute_cfa_program): If context->signal_frame, execute also
7504         fs->pc == context->ra instructions.
7505         (uw_frame_state_for): If context->signal_frame, don't subtract one
7506         from context->ra to find FDE.
7507         (uw_update_context_1): Set context->signal_frame to
7508         fs->signal_frame.
7509         (_Unwind_GetIPInfo): New function.
7510         * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
7511         * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
7512         of _Unwind_GetIP.
7513         * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
7514         * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
7515         * unwind-compat.c (_Unwind_GetIPInfo): New function.
7516         * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
7517         * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
7518         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
7519         * config/i386/linux-unwind.h (x86_fallback_frame_state,
7520         x86_64_fallback_frame_state): Set fs->signal_frame.
7521         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
7522         (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
7523         (frob_update_context): Likewise.  Workaround missing S flag in
7524         Linux 2.6.12 - 2.6.16 kernel vDSOs.
7525         * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
7526         Remove the psw_addr + 1 hack.
7527
7528 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
7529
7530         * tree-ssa-structalias.c (get_constraint_for): Move code to deal
7531         with aggregates here.
7532         (find_func_aliases): Remove code for &<aggregate> from here.
7533
7534 2006-02-26  Roger Sayle  <roger@eyesopen.com>
7535
7536         * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
7537         (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
7538         Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
7539         as (X & C) ne/eq 0.
7540
7541 2006-02-26  Roger Sayle  <roger@eyesopen.com>
7542
7543         PR middle-end/19983
7544         * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
7545
7546 2006-02-26  Zdenek Dvorak <dvorakz@suse.cz>
7547
7548         * opts.c (decode_options): Do not handle flag_strength_reduce.
7549         (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
7550         and OPT_fstrength_reduce.
7551         * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
7552         flag_prefetch_loop_arrays for being nonzero.
7553         * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
7554         no-ops.
7555         (fprefetch-loop-arrays-rtl): Removed.
7556         (flag_prefetch_loop_arrays): Do not specify the value.
7557
7558         * doc/passes.texi: Update documentation of loop optimizer
7559         passes.
7560         * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
7561         -frerun-loop-opt): Remove.
7562
7563 2006-02-26  Richard Guenther  <rguenther@suse.de>
7564
7565         PR tree-optimization/26421
7566         * tree-ssa-alias.c (find_used_portions): Don't treat parameters
7567         in function calls that are ADDR_EXPRs as using the whole structure.
7568
7569 2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
7570
7571         * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
7572         * tree-pass.h (pass_loop_optimize): Remove.
7573         * passes.c (pass_loop_optimize): Never run it.
7574         * toplev.c (backend_init): Don't call init_loop.
7575         * opts.c (flag_loop_optimize_set): Remove.
7576         (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
7577         (common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
7578         the old RTL loop optimizer when profiling enabled.
7579         * predict.c (tree_estimate_probability): Always strip builtin_expect.
7580         * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
7581         pre-headers for the sake of the old RTL loop optimizer.
7582         * Makefile.in: Remove all references to loop.o.
7583
7584         * doc/invoke.texi: Remove all references to -floop-optimize
7585         and -frerun-loop-opt.
7586
7587 2006-02-26  Zack Weinberg  <zackw@panix.com>
7588
7589         * doc/md.texi (Machine Constraints): Refer to all files with paths
7590         relative to gcc directory (i.e. config/CPU/file).  Add missing
7591         @table @code ... @end table to M32C subsection.
7592
7593 2006-02-26  Roger Sayle  <roger@eyesopen.com>
7594
7595         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
7596         (X & 1) == 0.
7597         <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
7598
7599 2006-02-26  Roger Sayle  <roger@eyesopen.com>
7600             James A. Morrison  <phython@gcc.gnu.org>
7601
7602         PR middle-end/21137
7603         * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
7604         when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
7605         new constant C2<<C1, or as (X<0) or (X,false) depending upon the
7606         signedness of the shift operation.
7607
7608 2006-02-26  Dorit Nuzman  <dorit@il.ibm.com>
7609
7610         PR tree-optimization/26359
7611         * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
7612
7613 2006-02-25  Roger Sayle  <roger@eyesopen.com>
7614
7615         * simplify-rtx.c (simplify_relational_operation_1): Simplify
7616         (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
7617         as X == 0, and some symmetry related transformations.
7618         Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
7619
7620 2006-02-25  Roger Sayle  <roger@eyesopen.com>
7621
7622         PR middle-end/23673
7623         * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
7624         and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
7625         symmetry related transformations.  Fold (X^C1) == C2 as
7626         X == (C1^C2).
7627
7628 2006-02-25  Juergen Weigert  <jw@suse.de>
7629         Richard Guenther  <rguenther@suse.de>
7630
7631         * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
7632
7633 2006-02-24  Adam Nemet  <anemet@caviumnetworks.com>
7634
7635         * combine.c (gen_lowpart_or_truncate): Call
7636         simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
7637
7638 2006-02-24  Diego Novillo  <dnovillo@redhat.com>
7639
7640         * doc/invoke.texi: Move -fopenmp description to "Options for
7641         Code Generation".
7642         Remove reference to -lgomp.
7643
7644 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
7645
7646         * doc/install.texi: Require GNU tar version 1.14.
7647
7648 2006-02-24  Geoffrey Keating  <geoffk@apple.com>
7649
7650         * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
7651         * doc/invoke.texi (C++ Dialect Options): Document
7652         -fno-use-cxa-get-exception-ptr.
7653         * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
7654         * configure: Regenerate.
7655         * c.opt (fuse-cxa-get-exception-ptr): New.
7656         * c-opts.c (c_common_handle_option): Handle
7657         OPT_fuse_cxa_get_exception_ptr.
7658         * c-common.c (flag_use_cxa_atexit): Update documentation.
7659         (flag_use_cxa_get_exception_ptr): New.
7660         * c-common.h (flag_use_cxa_get_exception_ptr): New.
7661         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
7662         documentation.
7663         (C_COMMON_OVERRIDE_OPTIONS): New.
7664
7665 2006-02-24  Roger Sayle  <roger@eyesopen.com>
7666
7667         PR middle-end/24952
7668         * combine.c (try_combine): Explicitly check whether GET_CODE is
7669         a SET or a CLOBBER, instead on checking that it isn't a USE.
7670
7671 2006-02-24  Roger Sayle  <roger@eyesopen.com>
7672
7673         * fold-const.c (fold_comparison): New subroutine of fold_binary
7674         containing transformations common to both the equality and
7675         ordering relational operators, factored out of fold_binary.
7676         (fold_binary): Separate out the equality operators (EQ_EXPR
7677         and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
7678         LE_EXPR and GE_EXPR), calling fold_comparison to perform the
7679         transformations common to both.
7680         (fold_div_compare): Fix latent bugs in the previously unreachable
7681         LT_EXPR and GE_EXPR cases.
7682
7683 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
7684
7685         * config/rs6000/rs6000.c (rs6000_init_builtins): Change
7686         decl libname for clog to __clog on AIX.
7687
7688         * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
7689
7690 2006-02-24  Alan Modra  <amodra@bigpond.net.au>
7691
7692         PR target/26453
7693         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
7694         output traceback table for thunks.  Localise rs6000_stack_info call.
7695
7696 2006-02-23  Roger Sayle  <roger@eyesopen.com>
7697             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7698
7699         * gthr-posix.h (__gthrw): Fix typo in comment.
7700
7701 2006-02-23  Geoffrey Keating  <geoffk@apple.com>
7702
7703         * doc/cpp.texi (Character sets): Document that we do support
7704         input files to be in any character set.
7705
7706 2006-02-23  Jeff Law  <law@redhat.com>
7707
7708         * tree.h (PHI_ARG_NONZERO): Remove.
7709         * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
7710         (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
7711         node to the new node.
7712
7713         PR tree-optimization/26425
7714         * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
7715         min/max, then assume its varying.
7716
7717 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
7718
7719         PR rtl-optimization/26316
7720         * rtlanal.c (enum may_trap_p_flags): New.
7721         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
7722         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
7723         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
7724         (may_trap_after_code_motion_p): New function.
7725         * loop-invariant.c (find_identical_invariants): Fix dump formating.
7726         (find_invariant_insn): Use may_trap_after_code_motion_p.
7727         * rtl.h (may_trap_after_code_motion_p): Declare.
7728
7729 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
7730
7731         * emit-rtl.c (immed_double_const): Cleanup.
7732
7733 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
7734
7735         Fix PR tree-optimization/26376
7736         * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
7737         remove assert.
7738
7739 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
7740
7741         PR middle-end/26412
7742         * gimplify.c (omp_add_variable): Guard variable size decl test with
7743         DECL_SIZE (decl) check.
7744
7745 2006-02-23  Richard Guenther  <rguenther@suse.de>
7746
7747         PR middle-end/26439
7748         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
7749         like aggregate types.
7750
7751 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
7752
7753         * configure.ac: Add --with{,out}-long-double-128 configure option.
7754         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
7755         * configure: Rebuilt.
7756         * config.in: Rebuilt.
7757         * doc/install.texi (Options specification): Document
7758         --with-long-double-128.
7759
7760         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
7761         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
7762         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
7763         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
7764
7765 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
7766
7767         * config/s390/s390.c (override_options): Handle
7768         TARGET_DEFAULT_LONG_DOUBLE_128.
7769
7770         * config/alpha/alpha.c (override_options): Handle
7771         TARGET_DEFAULT_LONG_DOUBLE_128.
7772
7773         * config/sparc/sparc.c (sparc_override_options): Handle
7774         TARGET_DEFAULT_LONG_DOUBLE_128.
7775
7776 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
7777
7778         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
7779         (real-install-headers-tar, real-install-headers-cpio)
7780         (real-install-headers-cp): New targets.
7781
7782 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
7783
7784         * tree.h (variable_section): Delete.
7785         * varasm.c (variable_section): Delete.
7786
7787 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
7788
7789         * install.texi: Add notes on install.texi2html.
7790         (Building in parallel): Do not use footnotes.
7791
7792 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
7793
7794         PR libgomp/26234
7795         * doc/install.texi (Configuration): Document --disable-libgomp.
7796
7797 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
7798
7799         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
7800
7801 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
7802
7803         * config/i386/sse.md (vec_extractv2df_1_sse): New.
7804         (vec_extractv2df_0_sse): New.
7805
7806 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
7807
7808         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
7809         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
7810         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
7811         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
7812         to the result of the expression.
7813         (def_cfa_1): Adjust.
7814         (frame_pointer_cfa_offset): Rename to...
7815         (frame_pointer_fb_offset): ... this.  Adjust all uses.
7816         (convert_cfa_to_loc_list): Rename to...
7817         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
7818         Pass it on to build_cfa_loc.
7819         (compute_frame_pointer_to_cfa_displacement): Rename to...
7820         (compute_frame_pointer_to_fb_displacement): ... this.  New
7821         offset parameter.  Use it in computation.
7822         (gen_subprogram_die): Compute cfa_fb_offset with the new
7823         macro, and use it to compute the fb loc list and the
7824         displacement.
7825
7826 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
7827
7828         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
7829         replaced with register_operand.
7830         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
7831         non-DREG is expensive.
7832         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
7833         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
7834         involving memory.
7835
7836 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
7837
7838         * doc/install.texi2html: Use set -e.
7839
7840 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
7841
7842         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
7843         (ASM_OUTPUT_SHARED_LOCAL): Delete.
7844         * doc/invoke.texi (-fshared-data): Delete.
7845         * common.opt (fshared-data): Delete.
7846         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
7847         (assemble_static_space): Remove #if 0 code.
7848         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
7849         (ASM_OUTPUT_SHARED_LOCAL): Poison.
7850         * config/cris/cris.h: Remove FIXME.
7851
7852 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
7853
7854         * doc/sourcebuild.texi (Front End Directory): No more double-colon
7855         hooks.
7856
7857 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
7858
7859         PR middle-end/26379
7860         * combine.c (simplify_shift_const_1): Disable nested shifts
7861         optimization for vector shifts.
7862
7863 2006-02-20  Roger Sayle  <roger@eyesopen.com>
7864
7865         PR tree-optimization/26361
7866         * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
7867         of unsigned integer types.
7868
7869 2006-02-20  Sebastian Pop  <pop@cri.ensmp.fr>
7870
7871         * tree-chrec.c (eq_evolutions_p): New.
7872         * tree-chrec.h (eq_evolutions_p): Declared.
7873         * tree-data-ref.c: Fix formatting.
7874         (datadep_stats, dependence_stats): New.
7875         (gcd): Moved...
7876         (print_direction_vector): New.
7877         (dump_data_dependence_relation): Use print_direction_vector.
7878         (object_analysis, create_data_ref): Handle COMPONENT_REF.
7879         (compute_subscript_distance): Static.
7880         (initialize_data_dependence_relation): Static.  Get the number
7881         of loops surrounding the references from the callers, and initialize
7882         DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
7883         base_object_differ_p analyzers.
7884         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
7885         compute_overlap_steps_for_affine_1_2,
7886         analyze_subscript_affine_affine): Count the classified dependences.
7887         Print a message when a test failed.
7888         (can_use_analyze_subscript_affine_affine): New.
7889         (analyze_siv_subscript): Compute the data dependences on symbolic
7890         scevs that verify can_use_analyze_subscript_affine_affine.
7891         (chrec_steps_divide_constant_p): Returns true, false, or unknown.
7892         (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
7893         Handle symbolic scevs.
7894         (analyze_overlapping_iterations): Let symbolic affine scevs to be
7895         analyzed.
7896         (subscript_dependence_tester): Moved...
7897         (build_classic_dist_vector, build_classic_dir_vector): Don't use
7898         lambda_vector_clear on newly allocated vectors.  Get nb_loops from
7899         DDR_SIZE_VECT instead of getting it in parameter.
7900         (subscript_dependence_tester): ... here.  Take as a parameter
7901         loop_nest_depth.  Call build_classic_dist_vector and
7902         build_classic_dir_vector.
7903         (compute_affine_dependence): Update subscript_dependence_tester
7904         parameters.  Update datadep_stats counters.  Call
7905         compute_subscript_distance.
7906         (compute_self_dependence): Save the dist and dir vectors.  Call
7907         compute_subscript_distance.
7908         (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
7909         (compute_all_dependences): Reorder parameters as they were before
7910         conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
7911         compute_subscript_distance.  Update the use of
7912         compute_affine_dependence and initialize_data_dependence_relation.
7913         (find_data_references_in_loop): Handle COMPONENT_REF.
7914         (compute_data_dependences_for_loop): Initialize dependence_stats.
7915         Don't call build_classic_dist_vector and build_classic_dir_vector.
7916         Update the parameters of initialize_data_dependence_relation and
7917         compute_all_dependences.  Print the statistics from datadep_stats.
7918         (analyze_all_data_dependences): Static.  Not used until the pass for
7919         checking the data dependences is contributed.
7920         * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
7921         DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
7922         (initialize_data_dependence_relation, compute_affine_dependence,
7923         analyze_all_data_dependences, compute_subscript_distance): Removed.
7924         (print_direction_vector): New.
7925         * lambda.h (gcd): ... here.
7926         (lambda_vector_gcd): Moved here from gcd_vector.
7927         * lambda-code.c (gcd, gcd_vector): Removed.
7928         (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
7929         * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
7930
7931 2006-02-20  Diego Novillo  <dnovillo@redhat.com>
7932
7933         * ipa-type-escape.c: Tidy some comments and white space.
7934         * tree-ssa-operands.c: Likewise.
7935
7936 2006-02-20  Andrew Pinski  <pinskia@physics.uc.edu>
7937
7938         PR tree-opt/25879
7939         * tree-pretty-print.c (debug_tree_chain): Walk the chains.
7940         (dump_decl_name): Do not walk the decl tree chains.
7941         * tree-pass.h (TDF_CHAIN): Remove.
7942
7943 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
7944
7945         * Makefile.in (C): Remove
7946         (PROTO): Remove
7947         (.PHONY): Remove C and PROTO
7948
7949 2006-02-20  Roger Sayle  <roger@eyesopen.com>
7950
7951         PR middle-end/26236
7952         * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
7953         deprecated CHAR_TYPE tree code.
7954
7955 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
7956
7957         * configure.ac (target_list): Add install-info, dvi, html.
7958         * configure: Regenerate.
7959
7960         * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
7961         java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
7962         treelang/Make-lang.in: Do not use double-colon rules.
7963
7964 2006-02-20  Daniel Berlin  <dberlin@dberlin.org>
7965
7966         * tree.h (struct tree_memory_tag): Add is_used_alone member.
7967         (TMT_USED_ALONE): New macro.
7968         * tree-pass.h (PROP_tmt_usage): New property.
7969         (TODO_update_tmt_usage): New todo.
7970         * tree-ssa-alias.c (updating_used_alone): New variable.
7971         (recalculate_used_alone): New function.
7972         (compute_may_aliases): Set updating_used_alone, call
7973         recalculate_used_alone.
7974         * tree-sra.c (pass_sra): Note that this pass destroys
7975         PROP_tmt_usage, and add TODO_update_tmt_usage.
7976         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
7977         * tree-flow.h (updating_used_alone): Prototype.
7978         (recalculate_used_alone): Ditto.
7979         * passes.c (execute_todo): Add code to set updating_used_alone,
7980         and call recalculate.
7981         * tree-ssa-operands.c (add_virtual_operand): Only append bare def
7982         for clobber if used alone, and add assert to verify used_alone
7983         status.
7984
7985 2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>
7986
7987         * config/s390/s390.c (legitimize_pic_address): Assertions checking
7988         for non tls symbols added.
7989         (legitimize_address): Do nothing for PLUS expressions if one of the
7990         addends is a tls symbol reference.
7991
7992 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
7993
7994         PR bootstrap/25476
7995
7996         * Makefile.in (LDFLAGS): Define from autoconf substitution.
7997
7998         * Makefile.in (BOOTSTRAPPING): New.
7999         (quickstrap): New definition if BOOTSTRAPPING=yes.
8000
8001         * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
8002         * configure.ac: Substitute all_selected_languages with the languages
8003         that were configured.  For all the other variables except
8004         lang_specs_files, include all the languages in the tree.
8005         * configure: Regenerate.
8006
8007         * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
8008         if there is one.  Run the commands to run fixincludes in the same
8009         subshell.
8010
8011         * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
8012         * doc/install.texi: Document exact conventions for searching target tools.
8013         Document --with-build-time-tools.  Document toplevel bootstrap.  Document
8014         something more about building an Ada cross-compiler.  Don't list GNU Make
8015         requirements which affect all platforms.
8016
8017 2006-02-19  Roger Sayle  <roger@eyesopen.com>
8018
8019         PR middle-end/19543
8020         * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
8021         only equivalent if the have both the same mode and precision.
8022
8023 2006-02-20  Ben Elliston  <bje@au.ibm.com>
8024
8025         * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
8026
8027 2006-02-19  Roger Sayle  <roger@eyesopen.com>
8028             Steven Bosscher  <stevenb.gcc@gmail.com>
8029
8030         * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
8031         constant pool references to identify stack mode constants.
8032         * rtlanal.c (constant_pool_constant_p): New predicate to check
8033         whether operand is a floating point constant in the pool.
8034         * rtl.h (constant_pool_constant_p): Prototype here.
8035         * loop.c (scan_loop): Avoid hoisting constants from the constant
8036         pool on STACK_REGS targets.
8037         (load_mems): Likewise.
8038         * loop-invariant.c (get_inv_cost): Make hoisting constant pool
8039         loads into x87 registers expensive in terms of register pressure.
8040
8041 2006-02-19  Roger Sayle  <roger@eyesopen.com>
8042
8043         * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
8044         __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
8045
8046 2006-02-19  David Edelsohn  <edelsohn@gnu.org>
8047
8048         * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
8049         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
8050
8051 2006-02-19  Daniel Berlin  <dberlin@dberlin.org>
8052
8053         * doc/invoke.texi: Document -fipa-pta.
8054         * common.opt: Add ipa-pta option.
8055         * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
8056         (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
8057         (do_ds_constraint): Ditto.
8058         (get_constraint_for): Only add to referenced_vars if
8059         referenced_vars exists.
8060         (insert_into_field_list): Rewrite to do this unsorted.
8061         (insert_into_field_list_sorted): Rename old insert_into_field_list
8062         to this.
8063         (create_function_info_for): Use insert_into_field_list_sorted.
8064         (create_variable_info_for): Rewrite so it uses unsorted version,
8065         since the field list is sorted.
8066         (intra_create_variable_infos): Only add to referenced_vars if
8067         referenced_vars exists.
8068         (ipa_pta_execute): Init heapvars, and delete when done.
8069         * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
8070
8071 2006-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8072
8073         * doc/install.texi: Add missing `@samp'.
8074
8075 2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>
8076
8077         * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
8078         Use the arguments.
8079
8080 2006-02-18  Mark Wielaard  <mark@klomp.org>
8081
8082         * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
8083         who added new 4.1 features, bug fixes and integration support.
8084
8085 2006-02-18  David Edelsohn  <edelsohn@gnu.org>
8086
8087         PR target/26350
8088         * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
8089         MEM for ABI_V4 pic.
8090
8091 2006-02-18  Richard Sandiford  <richard@codesourcery.com>
8092
8093         * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
8094         * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
8095         (copy_insn_1): Likewise.  Don't copy each field individually.
8096         Reindent.
8097         * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
8098         of RTX_SIZE.
8099         * reload1.c (eliminate_regs): Use shallow_copy_rtx.
8100         * rtl.c (rtx_size): Rename variable to...
8101         (rtx_code_size): ...this.
8102         (rtx_size): New function.
8103         (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
8104         (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
8105         Reindent.
8106         (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
8107         * rtl.h (rtx_code_size): New variable.
8108         (rtx_size): Change from a variable to a function.
8109         (RTX_SIZE): Rename to...
8110         (RTX_CODE_SIZE): ...this.
8111
8112         PR target/9703
8113         PR tree-optimization/17106
8114         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
8115         (Anchored Addresses): New section.
8116         * doc/invoke.texi (-fsection-anchors): Document.
8117         * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
8118         (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
8119         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
8120         * hooks.c (hook_bool_mode_rtx_false): New function.
8121         * hooks.h (hook_bool_mode_rtx_false): Declare.
8122         * gengtype.c (create_optional_field): New function.
8123         (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
8124         SYMBOL_REF_IN_BLOCK_P is true.
8125         * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
8126         (min_anchor_offset, max_anchor_offset): Likewise.
8127         (use_anchors_for_symbol_p): New hook.
8128         * toplev.c (compile_file): Call output_object_blocks.
8129         (target_supports_section_anchors_p): New function.
8130         (process_options): Check that -fsection-anchors is only used on
8131         targets that support it and when -funit-at-a-time is in effect.
8132         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
8133         if the decl doesn't have one.
8134         * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
8135         * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
8136         of force_const_mem through use_anchored_address.
8137         (expand_expr_constant): New function.
8138         (expand_expr_addr_expr_1): Call it.  Use the same modifier when
8139         calling expand_expr for INDIRECT_REF.
8140         (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
8141         for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
8142         * expr.h (use_anchored_address): Declare.
8143         * loop-unroll.c: Don't declare rtx vectors here.
8144         * explow.c: Include output.h.
8145         (validize_mem): Call use_anchored_address.
8146         (use_anchored_address): New function.
8147         * common.opt (-fsection-anchors): New switch.
8148         * varasm.c (object_block_htab, anchor_labelno): New variables.
8149         (hash_section, object_block_entry_eq, object_block_entry_hash)
8150         (use_object_blocks_p, get_block_for_section, create_block_symbol)
8151         (use_blocks_for_decl_p, change_symbol_section): New functions.
8152         (get_variable_section): New function, split out from assemble_variable.
8153         (make_decl_rtl): Create a block symbol if use_object_blocks_p and
8154         use_blocks_for_decl_p say so.  Use change_symbol_section if the
8155         symbol has already been created.
8156         (assemble_variable_contents): New function, split out from...
8157         (assemble_variable): ...here.  Don't output any code for
8158         block symbols; just pass them to place_block_symbol.
8159         Use get_variable_section and assemble_variable_contents.
8160         (get_constant_alignment, get_constant_section, get_constant_size): New
8161         functions, split from output_constant_def_contents.
8162         (build_constant_desc): Create a block symbol if use_object_blocks_p
8163         says so.  Or into SYMBOL_REF_FLAGS.
8164         (assemble_constant_contents): New function, split from...
8165         (output_constant_def_contents): ...here.  Don't output any code
8166         for block symbols; just pass them to place_section_symbol.
8167         Use get_constant_section and get_constant_alignment.
8168         (force_const_mem): Create a block symbol if use_object_blocks_p and
8169         use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
8170         (output_constant_pool_1): Add an explicit alignment argument.
8171         Don't switch sections here.
8172         (output_constant_pool): Adjust call to output_constant_pool_1.
8173         Switch sections here instead.  Don't output anything for block symbols;
8174         just pass them to place_block_symbol.
8175         (init_varasm_once): Initialize object_block_htab.
8176         (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
8177         (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
8178         (place_block_symbol, get_section_anchor, output_object_block)
8179         (output_object_block_htab, output_object_blocks): New functions.
8180         * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
8181         (TARGET_ASM_OUT): Include it.
8182         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
8183         (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
8184         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
8185         (TARGET_INITIALIZER): Include them.
8186         * rtl.c (rtl_check_failed_block_symbol): New function.
8187         * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
8188         (block_symbol, object_block): New structures.
8189         (rtx_def): Add a block_symbol field to the union.
8190         (BLOCK_SYMBOL_CHECK): New macro.
8191         (rtl_check_failed_block_symbol): Declare.
8192         (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
8193         (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
8194         (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
8195         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
8196         * output.h (output_section_symbols): Declare.
8197         (object_block): Name structure.
8198         (place_section_symbol, get_section_anchor, default_asm_output_anchor)
8199         (default_use_anchors_for_symbol_p): Declare.
8200         * Makefile.in (RTL_BASE_H): Add vec.h.
8201         (explow.o): Depend on output.h.
8202         * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
8203         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
8204         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
8205         (rs6000_use_blocks_for_constant_p): New function.
8206
8207 2006-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8208
8209         * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
8210
8211 2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
8212
8213         PR tree-opt/25680
8214         * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
8215         IMAGPART_EXPR.
8216
8217 2006-02-18  Diego Novillo  <dnovillo@redhat.com>
8218
8219         * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
8220         is_aliased.
8221         Update all users.
8222
8223 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
8224
8225         PR middle-end/26334
8226         * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
8227         instead of DECL_REGISTER.
8228
8229 2006-02-18  Olivier Hainque  <hainque@adacore.com>
8230
8231         PR ada/13408
8232         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
8233
8234 2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>
8235
8236         PR target/24837
8237         * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
8238         * opth-gen.awk: Handle Var and InverseMask together.
8239         * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
8240         * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
8241         (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
8242         (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
8243         used together.
8244         (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
8245         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
8246         * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
8247         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
8248         LINUX_DYNAMIC_LINKER): Define.
8249         (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
8250         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
8251         TARGET_GLIBC.
8252         * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
8253         (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
8254         * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
8255         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
8256         (TARGET_C99_FUNCTIONS): Don't define.
8257         * config/i386/linux.h (DYNAMIC_LINKER): Rename to
8258         GLIBC_DYNAMIC_LINKER.
8259         (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
8260         * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
8261         GLIBC_DYNAMIC_LINKER64): Define.
8262         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
8263         LINUX_DYNAMIC_LINKER64.
8264         * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
8265         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
8266         * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
8267         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
8268         * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
8269         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
8270         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
8271         GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
8272         UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
8273         (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
8274         and LINUX_DYNAMIC_LINKER32.
8275         * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
8276         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
8277         * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
8278         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
8279         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
8280         TARGET_GLIBC.
8281         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
8282         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
8283         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
8284         CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
8285         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
8286         (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
8287         (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
8288         * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
8289         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
8290         LINUX_DYNAMIC_LINKER): Define.
8291         (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
8292         * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
8293         GLIBC_DYNAMIC_LINKER64): Define.
8294         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
8295         LINUX_DYNAMIC_LINKER64.
8296         * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
8297         (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
8298         * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
8299         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
8300         LINUX_DYNAMIC_LINKER): Define.
8301         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
8302         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
8303         * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
8304         GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
8305         UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
8306         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
8307         (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
8308         (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
8309         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
8310         * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
8311         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
8312         * doc/invoke.texi (-muclibc): Remove caveat about supported
8313         targets.
8314
8315 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
8316
8317         * doc/cpp.texi (__TIMESTAMP__): Document.
8318
8319 2006-02-17  Roger Sayle  <roger@eyesopen.com>
8320
8321         PR middle-end/25600
8322         * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
8323         C is one less than the width of X (and related transformations).
8324         * simplify-rtx.c (simplify_unary_operation_1): Transform
8325         (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
8326         depending on STORE_FLAG_VALUE, were C is one less then the
8327         width of X.
8328
8329 2006-02-17  Daniel Berlin  <dberlin@dberlin.org>
8330
8331         Fix PR tree-optimization/26341
8332         * tree-ssa-operands.c (add_virtual_operand): Remove assert
8333         about NAME_MEMORY_TAG's.
8334
8335 2006-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8336
8337         PR target/26255
8338         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
8339         with hardware float support, and software float support.  Add fcpy
8340         alternative to hardware patterns.  Add alternatives to copy between
8341         general and floating-point registers to the 32-bit pattern.
8342         * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
8343         secondary reload to load a QI or HI mode constant into a floating
8344         point register.
8345         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
8346         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
8347
8348 2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
8349
8350         PR target/26272
8351         * config/rs6000/darwin.md (load_macho_picbase_si): Add
8352         pc to the pattern.
8353         (load_macho_picbase_di): Likewise.
8354
8355 2006-02-16  Jeff Law  <law@redhat.com>
8356
8357         * tree-vrp.c (set_value_range_to_nonnegative): New function.
8358         (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
8359         (ssa_name_nonzero_p): Likewise.
8360         (get_value_range): Return NULL if VRP is not running.
8361         (extract_range_from_expr): Fallback to tree_expr_XXX_p if
8362         VRP routines do not discover a range.
8363         (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
8364         * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
8365         * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
8366         (tree_expr_nonnegative_p): Similarly.
8367         * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
8368         (restore_nonzero_vars_to_original_value): Remove.
8369         (unsafe_associative_fp_binop): Remove.
8370         (tree_ssa_dominator_optimize): Remove initialization and
8371         finalization of nonzero_vars and nonzero_vars_stack.
8372         (dom_opt_initialize_block): No longer push marker on
8373         nonzero_vars_stack.
8374         (dom_opt_finalize_block): No longer call
8375         restore_nonzero_vars_to_original_value.
8376         (record_equivalences_from_phis): No longer look for
8377         nonzero PHI arguments.
8378         (cprop_into_successor_phis): No longer propagate nonzero
8379         property into PHI arguments.  Lose unused argument.  Caller
8380         updated.
8381         (record_equivalences_from_stmt): No longer record nonzero
8382         values for SSA_NAMEs.
8383         (lookup_avail_expr): No longer use nonzero_vars.
8384
8385         * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
8386         for sizetype when sizetype is unsigned.
8387
8388 2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>
8389
8390         PR rtl-optimization/25603
8391         * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
8392         (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
8393         * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
8394         with new meaning of SETS.
8395
8396 2006-02-16  Joseph S. Myers  <joseph@codesourcery.com>
8397
8398         PR target/20353
8399         PR target/24578
8400         PR target/24837
8401         * config/linux.opt: New file.
8402         * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
8403         LINUX_DYNAMIC_LINKER): Define.
8404         (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
8405         * config.gcc (*-*-linux*): Define extra_options.
8406         (*-*-*uclibc*): Define UCLIBC_DEFAULT.
8407         (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
8408         * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
8409         GLIBC_DYNAMIC_LINKER.
8410         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
8411         (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
8412         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
8413         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
8414         * doc/invoke.texi (GNU/Linux Options): New section.
8415
8416 2006-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
8417
8418         * config/sparc/sparc.md (setjmp): Rewrite.
8419         (setjmp_32): Delete.
8420         (setjmp_64): Likewise.
8421
8422 2006-02-16  Daniel Berlin <dberlin@dberlin.org>
8423
8424         * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
8425          previous change.
8426
8427 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
8428
8429         * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
8430         read-write uses.
8431
8432 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
8433
8434         PR rtl-optimization/26296
8435         * Makefile.in (loop-invariant.c): Add except.h dependency.
8436         * loop-invariant.c: Include except.h.
8437         (find_invariant_insn): Ignore insns satisfying can_throw_internal.
8438
8439 2005-02-16  Paul Brook  <paul@codesourcery.com>
8440
8441         * reload1.c (emit_reload_insns): Invalidate dead input registers used
8442         for reloads.
8443
8444 2006-02-16  Bernd Schmidt  <bernd.schmidt@analog.com>
8445
8446         PR rtl-optimization/25636
8447         * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
8448         when deciding whether an insn is an initializing insn.
8449
8450 2006-02-15 Daniel Berlin  <dberlin@dberlin.org>
8451
8452         * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
8453         (tree_code_size): Ditto.
8454         * tree.h (struct tree_memory_tag): Remove parent_var.
8455         (struct tree_struct_field_tag): New.
8456         (SFT_OFFSET): New.
8457         (SFT_SIZE): New.
8458         (union tree_node): Add sft member.
8459         * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
8460         specially here.
8461         (create_sft): Add size and offset argument, set SFT_OFFSET and
8462         SFT_SIZE.
8463         (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
8464         * treestruct.def: Add TS_STRUCT_FIELD_TAG.
8465         * tree-flow-inline.h (get_subvar_at): Update for
8466         SFT_OFFSET/SFT_SIZE.
8467         (var_can_have_subvars): Ditto.
8468         (overlap_subvar): Ditto.
8469         * print-tree.c (print_node): Print out interesting things for
8470         SFT's.
8471         * tree-flow.h (struct subvar): Remove offset and size members.
8472         * tree-ssa-operands.c (get_expr_operands): Update for
8473         get_indirect_ref_operands changes.
8474         (get_indirect_ref_operands): Call add_virtual_operand instead of
8475         add_stmt_operand.  Only recurse on base var if requested.
8476         (access_can_touch_variable): New function.
8477         (add_stmt_operand): Split virtual operand handling into ...
8478         (add_virtual_operand): Here.  Add offset, size, and for_clobber
8479         arguments.  Prune alias sets.
8480         (add_call_clobber_ops): Call add_virtual_operand.
8481
8482 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
8483
8484         PR middle-end/26300
8485         * combine.c (make_extraction): Bail out if ORIG_POS is negative.
8486
8487         * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
8488         than TREE_CODE as index into omp_clause_num_ops array.
8489
8490 2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
8491
8492         PR rtl-optimization/26184
8493         * modulo-sched.c (generate_reg_moves): Free bitmap vector
8494         uses_of_defs.
8495         * modulo-sched.c (sms_schedule): Free g_arr pointer.
8496         * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
8497         must_precede, must_follow and tobe_scheduled.
8498
8499         PR other/26147
8500         * opts.c (common_handle_option): Free new_option pointer.
8501         * df-core.c (df_analyze): Free postorder pointer.
8502
8503 2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
8504
8505         * Makefile.in: Fix the examples about the use of stamps
8506
8507 2006-02-15  Michael Matz  <matz@suse.de>
8508
8509         PR middle-end/22275
8510
8511         * stor-layout.c (layout_decl): Zero-width bitfields aren't
8512         influenced by maximum_field_alignment or DECL_PACKED.
8513         (update_alignment_for_field): Ditto.
8514         (place_field): Ditto.
8515         * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
8516         this behaviour.
8517
8518 2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
8519
8520         * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
8521         (debug_flow_info): Pass it.
8522         * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
8523         * bb-reorder.c (reorder_basic_blocks): Likewise.
8524         * cfgcleanup.c (rest_of_handle_jump2): Likewise.
8525         * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
8526         * flow.c (life_analysis, recompute_reg_usage): Likewise.
8527         * gcse.c (gcse_main, bypass_jumps): Likewise.
8528         * ifcvt.c (rest_of_handle_if_conversion): Likewise.
8529         * local-alloc.c (rest_of_handle_local_alloc): Likewise.
8530         * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
8531         * profile.c (compute_branch_probabilities, branch_prob): Likewise.
8532         * rtl.h (dump_flow_info): Adjust prototype.
8533         * tracer.c (rest_of_handle_tracer, tracer): Likewise.
8534         * var-tracking.c (variable_tracking_main): Likewise.
8535         * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
8536         * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
8537         options.
8538
8539 2006-02-15  Marcin Dalecki <martin@dalecki.de>
8540
8541         * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
8542         construction.
8543
8544 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
8545
8546         PR tree-optimization/26209
8547         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
8548         * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
8549         eh edges.
8550         * tree-cfg.c (replace_uses_by): Do not alter cfg.
8551
8552 2006-02-14  Roger Sayle  <roger@eyesopen.com>
8553
8554         PR middle-end/23670
8555         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
8556         (X,Y) and the corresponding symmetry related transformations.
8557         (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
8558         (X,Y) and its symmetry related transformations.
8559
8560 2006-02-14  Roger Sayle  <roger@eyesopen.com>
8561
8562         * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
8563         and GEU.
8564
8565 2006-02-14  Adam Nemet  <anemet@caviumnetworks.com>
8566
8567         * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
8568
8569 2006-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8570
8571         PR bootstrap/26053
8572         * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
8573         support COMDAT group.
8574         * configure: Regenerate.
8575
8576 2006-02-14  Roger Sayle  <roger@eyesopen.com>
8577
8578         PR middle-end/26279
8579         PR middle-end/26280
8580         PR middle-end/26283
8581         * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
8582
8583 2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
8584
8585         Fix PR tree-optimization/26260
8586
8587         * doc/invoke.texi (max-fields-for-field-sensitive): Document
8588         param.
8589         * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
8590         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
8591         * tree-ssa-structalias.c (create_variable_info_for): Use
8592         MAX_FIELDS_FOR_FIELD_SENSITIVE.
8593
8594 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
8595
8596         * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
8597         Document.
8598         * tree-ssa-loop-niter.c (number_of_iterations_ne,
8599         number_of_iterations_lt, number_of_iterations_cond): Remember the shape
8600         of the ending condition.
8601         * tree-ssa-loop-manip.c: Include params.h.
8602         (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
8603         tree_unroll_loop): New functions.
8604         * tree-pass.h (pass_loop_prefetch): Declare.
8605         * loop.c (rest_of_handle_loop_optimize): Test for
8606         -fprefetch-loop-arrays-rtl.
8607         * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
8608         * timevar.def (TV_TREE_PREFETCH): New timevar.
8609         * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
8610         pass_loop_prefetch): New.
8611         * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
8612         (cleanup_tree_cfg_loop): Call scev_reset.
8613         * common.opt (fprefetch-loop-arrays-rtl): Add.
8614         * tree-ssa-loop-prefetch.c: New file.
8615         * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
8616         (new_temp_expr_table): Initialize expr_vars.
8617         (free_temp_expr_table): Cleanup expr_vars.
8618         (check_replaceable, find_replaceable_in_bb): Prevent accumulating
8619         expressions from being merged into one.
8620         * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
8621         (struct tree_niter_desc): Add control, bound and cmp fields.
8622         (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
8623         Declare.
8624         * Makefile.in (tree-ssa-loop-prefetch.o): Add.
8625         (tree-cfgcleanup.o): Add SCEV_H dependency.
8626         (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
8627         * passes.c (init_optimization_passes): Add pass_loop_prefetch.
8628
8629 2006-02-14  Richard Guenther  <rguenther@suse.de>
8630
8631         PR tree-optimization/26258
8632         * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
8633         in PHI argument processing.
8634
8635 2006-02-13  Adam Nemet  <anemet@caviumnetworks.com>
8636
8637         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
8638         new expression in the requested machine mode.
8639
8640 2006-02-13  Roger Sayle  <roger@eyesopen.com>
8641
8642         * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
8643         directly, instead let do_compare_rtx_and_jump handle this for us.
8644         * expr.c (expand_expr_real_1): Likewise.
8645         * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
8646         before do_jump_by_parts_greater.
8647         (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
8648         * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
8649
8650 2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8651
8652         * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
8653
8654 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
8655
8656         PR rtl-optimization/26235
8657         * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
8658         (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
8659         format.
8660
8661 2006-02-13  Jeff Law  <law@redhat.com>
8662
8663         * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
8664         TRUTH_XOR_EPR.
8665
8666 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
8667
8668         PR middle-end/26092
8669         * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
8670         twice if decl is a builtin.  When trying again, call get_callee_fndecl
8671         first to verify it is still a builtin.
8672
8673 2006-02-13  Geoffrey Keating  <geoffk@apple.com>
8674
8675         * dwarf2out.c (base_type_die): Don't add AT_name here.
8676         (subrange_type_die): Don't add AT_name here.
8677         (modified_type_die): Rearrange code flow.  Do add AT_name here.
8678
8679 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
8680
8681         PR rtl-optimization/26247
8682         PR rtl-optimization/26248
8683         * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
8684
8685 2006-02-13  Richard Sandiford  <richard@codesourcery.com>
8686
8687         * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
8688         * config/fixtfdi.c: Likewise.
8689         * config/fixunstfdi.c: Likewise.
8690         * config/floatditf.c: Likewise.
8691
8692 2006-02-13  Roger Sayle  <roger@eyesopen.com>
8693
8694         PR middle-end/24427
8695         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
8696         into (X,C2) if C1 is a subset of the bits of C2.  Transform
8697         (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
8698         (X&(C1&~C2))|C2.
8699         <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
8700
8701 2006-02-13  Josh Conner  <jconner@apple.com>
8702
8703         PR target/25376
8704         * varasm.c (function_section): Check for section name before
8705         calling select_section on targets that define
8706         USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
8707         unlikely_text_section instead of hot_function_section if
8708         first_function_block_is_cold.
8709
8710 2006-02-13  J"orn Rennecke <joern.rennecke@st.com>
8711
8712         PR middle-end/25335
8713         * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
8714
8715 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
8716
8717         PR rtl-optimization/26222
8718         * function.c (assign_stack_temp_for_type): Do not reuse stack slots
8719         after tree->rtl expansion.
8720         * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
8721         before passing it to emit_move_insn.
8722
8723 2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8724
8725         * doc/invoke.texi (-Write-strings): Document that it is enabled by
8726         default.
8727         * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
8728         Clarify documentation.
8729         * c-common.h (warn_write_strings): Remove.
8730         * c-common.c (warn_write_strings): Likewise.
8731         * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
8732         default for C++.
8733
8734 2006-02-12  Roger Sayle  <roger@eyesopen.com>
8735
8736         PR middle-end/25724
8737         * dojump.c (do_jump): Call do_compare_rtx_and_jump.
8738         (do_jump_parts_zero_rtx): New function renamed from
8739         do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
8740         (do_jump_parts_equality_rtx): New function split out from
8741         do_jump_parts_equality.  Old implementation renamed as above.
8742         Call do_jump_parts_zero_rtx if either operand is zero.
8743         (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
8744         do all of the heavy lifting.
8745         (do_compare_rtx_and_jump): Handle multi-word comparisons by
8746         calling either do_jump_by_parts_greater_rtx or
8747         do_jump_by_parts_equality_rtx.
8748         * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
8749         * expmed.c (do_cmp_and_jump): Now multi-word optimization has
8750         moved to do_compare_rtx_and_jump, call it directly.
8751         * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
8752         mode argument.  Call do_compare_rtx_and_jump.
8753         (emit_case_nodes): Update calls to do_jump_if_equal.
8754
8755 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
8756
8757         PR rtl-optimization/26225
8758         * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
8759
8760 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
8761
8762         PR rtl-optimization/26232
8763         * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
8764
8765 2006-02-11  Jason Merrill  <jason@redhat.com>
8766
8767         PR tree-opt/24365
8768         * tree-inline.c (declare_return_variable): Just don't use the
8769         modify target if it's a gimple complex reg and the return slot
8770         isn't.
8771
8772 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8773
8774         * doc/contrib.texi: Update my entry.
8775
8776 2006-02-10  Geoffrey Keating  <geoffk@apple.com>
8777
8778         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
8779
8780 2006-02-10  Diego Novillo  <dnovillo@redhat.com>
8781
8782         * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
8783         expensive.
8784
8785 2006-02-10  Zdenek Dvorak <dvorakz@suse.cz>
8786
8787         * doc/invoke.texi (-floop-optimize2): Removed.
8788         * toplev.c (process_options): Remove handling of flag_loop_optimize2.
8789         * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
8790         Test flag_branch_on_count_reg only if HAVE_doloop_end.
8791         * common.opt (floop-optimize2): Removed.
8792         (fmove-loop-invariants): Enabled by default.
8793
8794 2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
8795
8796         * tree-if-conv.c (combine_blocks): Free the result of
8797         get_loop_exit_edges.
8798
8799 2006-02-10  Jeff Law  <law@redhat.com>
8800
8801         * fold-const.c (tree_expr_nonzero_p): Fix thinko.
8802
8803         PR tree-optimization/26213
8804         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
8805         loop trying to follow SSA_NAME_VALUE chains.
8806
8807 2006-02-10  Richard Guenther  <rguenther@suse.de>
8808
8809         * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
8810         deal with structures that end in implicitly variable sized arrays.
8811
8812 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
8813
8814         PR rtl-optimization/24762
8815         * df-scan.c (df_bb_refs_record): Record correct registers defined on
8816         eh edges.
8817
8818 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
8819
8820         * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
8821         (struct ivopts_data): Add regs_used field.
8822         (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
8823         (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
8824         instead of loop_data->regs_used;
8825         (free_loop_data): Do not free aux fields for loops.
8826         (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
8827         and tree_ssa_iv_optimize_finalize.
8828
8829 2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
8830
8831         * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
8832
8833 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
8834
8835         PR target/26141
8836         * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
8837         computing the effective result type.
8838
8839 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
8840
8841         PR inline-asm/16194
8842         * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
8843         (tree_overlaps_hard_reg_set): Declare.
8844         * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
8845         type and signature to match function type expected by walk_tree.
8846         (tree_overlaps_hard_reg_set): New function.
8847         (decl_conflicts_with_clobbers_p): Rename to:
8848         (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
8849         Use tree_overlaps_hard_reg_set.  Changed caller.
8850         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
8851         decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
8852         * cris.c (cris_md_asm_clobbers): Likewise.
8853
8854 2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
8855
8856         * reload1.c (emit_input_reload_insns): Delete code that tries to
8857         inherit using find_equiv_reg.
8858
8859 2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8860
8861         * c-common.h (flag_const_strings): Don't declare.
8862         * c-common.c (flag_const_strings): Remove.
8863         * c.opt (fconst_strings): Remove.
8864         * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
8865         <OPT_Wwrite_strings>: Don't set flag_const_strings.
8866         (c_common_init_options): Don't set flag_const_strings.
8867         * doc/invoke.texi (-fno-const-strings): Remove documentation.
8868
8869 2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
8870
8871         * arm.md (tlobits_cbranch): New pattern.
8872         * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
8873         testing a single bit.
8874
8875 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
8876
8877         PR tree-opt/26179
8878         * tree-ssa-pre.c (create_component_ref_by_pieces):
8879         Handle RETURN_DECL like VAR_DECL.
8880
8881 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
8882
8883         PR middle-end/26134
8884         * fold-const.c (fold_indirect_ref_1): Fold
8885         "*(foo *)&complexfoo" to "__real__ complexfoo"
8886         and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
8887
8888 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
8889
8890         * tree-flow-inline.h (var_can_have_subvars):
8891         Volatile variables should not have subvariables.
8892
8893 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
8894
8895         PR 26180
8896         * tree-vrp.c (vrp_int_const_binop): Detect overflow when
8897         multiplying unsigned values.
8898         Tidy comments.
8899
8900 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
8901
8902         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
8903
8904 2006-02-08  Jason Merrill  <jason@redhat.com>
8905
8906         PR c++/25979
8907         * tree.def: Elaborate on difference from MODIFY_EXPR.
8908         * doc/c-tree.texi (INIT_EXPR): Likewise.
8909         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
8910         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
8911         (gimplify_target_expr): Likewise.
8912         (gimplify_cond_expr): Remove target handling.
8913         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
8914         (gimplify_expr): Clobber it here.
8915         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
8916         Do return slot optimization if we have an INIT_EXPR.
8917
8918         PR tree-opt/24365
8919         * tree-inline.c (declare_return_variable): Also clear
8920         DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
8921
8922         PR c++/16405
8923         * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
8924
8925         PR middle-end/22439
8926         * gimplify.c (gimplify_one_sizepos): Fix typo.
8927
8928 2006-02-08  Jeff Law  <law@redhat.com>
8929
8930         PR tree-optimization/21417
8931         * tree-ssa-threadedge.c (thread_across_edge): Reject threading
8932         across a backedge if the control statement at the end of the
8933         block is data dependent on other statements in the same block.
8934         (record_temporary_equivalences_from_stmts): Remove over-conservative
8935         test for threading across backedges.
8936
8937         * tree-ssa-dce.c (remove_dead_statement): When removing a dead
8938         control statement, handle all three special cases in the same
8939         manner as they all have the same desired solution.  No longer
8940         special case edge flag updating when the post dominator is
8941         the exit block.
8942
8943 2006-02-08  Roger Sayle  <roger@eyesopen.com>
8944
8945         * tree.def (CHAR_TYPE): Remove.
8946         * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
8947         * dwarf2out.c (base_type_die, is_base_type): Likewise.
8948         (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
8949         (gen_string_type_die): Delete unreachable function.
8950
8951         * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
8952         * tree.c (build_int_cst_wide, type_contains_placeholder_1,
8953         type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
8954         * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
8955         * builtins.c (type_to_class): Likewise.
8956         * fold-const.c (fold_convert, build_range_check,
8957         merge_ranges): Likewise.
8958         * expr.c (count_type_elements): Likewise.
8959         * c-pretty-print.c (pp_c_type_specifier): Likewise.
8960         * stor-layout.c (layout_type): Likewise.
8961         * ipa-type-escape.c (type_to_consider): Likewise.
8962         * gimplify.c (omp_firstprivatize_type_sizes,
8963         gimplify_type_sizes): Likewise.
8964         * explow.c (promote_mode): Likewise.
8965         * tree-sra.c (is_sra_scalar_type): Likewise.
8966         * varasm.c (output_constant): Likewise.
8967         * tree-inline.c (remap_type_1): Likewise.
8968         * convert.c (convert_to_pointer, convert_to_real,
8969         convert_to_integer, convert_to_complex): Likewise.
8970
8971 2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
8972
8973         * df-scan.c (df_def_record_1): A set destination may
8974         be a parallel regardless of mode.
8975
8976 2006-02-08  Roger Sayle  <roger@eyesopen.com>
8977
8978         PR target/22209
8979         * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
8980         * config/mips/_tilib.c: Remove.
8981         * config/fixtfdi.c: New libgcc source file.
8982         * config/fixunstfdi.c: New source file.
8983         * config/floatditf.c: New source file.
8984         * config/floatunditf.c: New souce file.
8985         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
8986         files above instead of config/mips/_tilib.c.
8987         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
8988
8989 2006-02-08  Jeff Law  <law@redhat.com>
8990
8991         PR tree-optimization/26169
8992         * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
8993         threading jumps.
8994
8995 2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
8996
8997         * df.h (DF_REG_SIZE): Return the length of the initialized
8998         part of the array.
8999
9000 2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
9001
9002         * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
9003         __muldf3): Return a correctly signed zero.
9004
9005 2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
9006
9007         * passes.c (register_one_dump_file): Accept the current properties
9008         instead of pass number.  Adjust call to dump_register.  Remove
9009         duplicated code.
9010         (register_dump_files): Now a wrapper around...
9011         (register_dump_files_1): ... this one.  Do not modify the pass
9012         structure.
9013         (next_pass_1): Cosmetic fix.
9014         (execute_todo): Keep second parameter only.  Use curr_properties
9015         instead of fetching it from the pass structure.  Check and set
9016         last_verified.
9017         (execute_one_pass): Handle TODO_set_props.  Use curr_properties
9018         instead of fetching it from the pass structure.  Fix calls to
9019         execute_todo.  Update curr_properties and initialize .vcg RTL dump
9020         after running the pass.  Reset last_verified.
9021         * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
9022         at the beginning.
9023         (FIRST_AUTO_NUMBERED_DUMP): New.
9024         (dump_register): Remove "num" parameter, assign it within the
9025         function.
9026         (get_dump_file_name): Modify template for dumps.
9027         * tree-dump.h (dump_register): Adjust prototype.
9028         * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
9029         (PROP_trees): Add PROP_gimple_lomp.
9030         (TODO_set_props): New.
9031         * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
9032         * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
9033         * cfgexpand.c (pass_expand): Destroy PROP_trees.
9034
9035 2006-02-08  Jakub Jelinek  <jakub@redhat.com>
9036
9037         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
9038         (sparc64-*-linux*): Likewise.
9039         * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
9040         * config/sparc/t-linux: New file.
9041         * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
9042         __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
9043         (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
9044         -m32 -mlong-double-128.
9045
9046         * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
9047         * config/alpha/t-linux: New file.
9048         * config/alpha/libgcc-alpha-ldbl.ver: New file.
9049
9050         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
9051         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
9052         (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
9053         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
9054         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
9055         (CPP_ARCH32_SPEC): Remove.
9056
9057 2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
9058
9059         PR tree-optimization/26145
9060         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
9061         bbs pointer.
9062
9063 2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9064
9065         PR target/26109
9066         * pa.c (attr_length_indirect_call): Don't return length 8 for distances
9067         >= 240000 when generating code for SOM runtime.
9068         (output_indirect_call): Don't use "b,l" instruction for indirect calls
9069         to $$dyncall when generating code for SOM runtime..
9070
9071 2006-02-07  Dirk Mueller  <dmueller@suse.com>
9072
9073         PR c++/18150
9074         * doc/invoke.texi (-Wsequence-point): Update documentation
9075         that -Wsequence-point is implemented for C++ as well.
9076
9077 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
9078
9079         * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
9080         * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
9081         (LIB_SPEC): Likewise.
9082         * doc/invoke.texi (SPARC options): Document -pthread.
9083
9084 2006-02-07  Geoffrey Keating  <geoffk@apple.com>
9085
9086         * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
9087         PIC addresses.
9088
9089 2006-02-07  Roger Sayle  <roger@eyesopen.com>
9090
9091         * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
9092         Correct comment describing BOOLEAN_TYPE.
9093
9094 2006-02-07  Dirk Mueller  <dmueller@suse.com>
9095
9096         * c.opt: C++ frontend supports -Wdiv-by-zero.
9097         * c-opts.c (c_common_handle_option): Remove dead case.
9098
9099 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
9100
9101         * configure.ac (TLS assembler check): Do not enable TLS by
9102         default on SPARC/Solaris before version 10.
9103         * configure: Regenerate.
9104
9105 2006-02-07  David Edelsohn  <edelsohn@gnu.org>
9106
9107         * doc/invoke.texi (xl-compat): Document conversion and support
9108         routine names.
9109
9110 2006-02-07  Jeff Law  <law@redhat.com>
9111
9112         * tree-vrp.c (find_conditional_asserts): Update comments.
9113         (simplify_stmt_for_jump_threading): New.
9114         (identify_jump_threads, finalize_jump_threads): New.
9115         (vrp_finalize): Call identify_jump_threads.
9116         (execute_vrp): Call finalize_jump_threads.
9117         * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
9118         (vrp_element, vrp_data, vrp_element_p): Remove.
9119         (vrp_hash_elt, vrp_variables_stack): Remove.
9120         (vrp_hash, vrp_eq, record_range): Remove.
9121         (simplify_cond_and_lookup_avail_expr): Remove.
9122         (extract_range_from_cond): Remove.
9123         (thread_across_edge): Relocated into tree-ssa-threadedge.c.
9124         (simplify_stmt_for_jump_threading): New.
9125         (dom_thread_across_edge): New wrapper.
9126         (tree_ssa_dominator_optimize): No longer initialize or
9127         finalize any of the VRP datastructures.  Remove iteration
9128         step and simplify as a result of removal of iteration step.
9129         (pass_dominator): Perform a cfg cleanup after DOM.
9130         (dom_opt_finalize_block): Use the new common routines
9131         for threading jumps.  Simplify stack management slightly.
9132         No longer need to unwind VRP state.
9133         (record_equivalences_from_incoming_edge): No longer record
9134         VRP information.
9135         (eliminate_redundant_computations): No longer call
9136         simplify_cond_and_lookup_avail_expr.
9137         * tree-flow.h (potentially_threadable_block): Prototype.
9138         (thread_across_edge): Likewise.
9139         * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
9140         (tree-ssa-threadedge.o): Add dependencies.
9141         * tree-ssa-threadedge.c: New file.
9142         * passes.c (init_optimization_passes): Merge PHIs before
9143         calling VRP.  Run VRP again late in the SSA optimization pipeline.
9144
9145 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
9146
9147         * df-core.c (df_set_blocks): Do not dereference function pointers.
9148         (df_finish1): Likewise.
9149         (df_hybrid_search_forward): Likewise.
9150         (df_hybrid_search_backward): Likewise.
9151         (df_iterative_dataflow): Likewise.
9152         (df_analyze_problem): Likewise.
9153         (df_compact_blocks): Likewise.
9154         (df_dump): Likewise.
9155         * df-scan.c (df_rescan_blocks): Likewise.
9156         (df_record_entry_block_defs): Likewise.
9157
9158         * genconditions.c (write_conditions): Guard the definition of
9159         'insn_conditions' with the check on GCC version.
9160         (write_writer): Guard the traversal 'insn_conditions' with
9161         the check on GCC version.
9162
9163 2006-02-07  Richard Guenther  <rguenther@suse.de>
9164
9165         PR c++/26140
9166         Revert
9167         2006-01-30  Richard Guenther  <rguenther@suse.de>
9168         PR c++/23372
9169         * gimplify.c (gimplify_target_expr): Handle easy cases
9170         without creating a temporary.
9171
9172 2006-02-07  Pete Steinmetz  <steinmtz@us.ibm.com>
9173
9174         * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
9175         use of float in probability computations.  Use edge probabilities
9176         in place of statically computed probabilities.
9177         (min_spec_prob): New static variable.
9178         (schedule_insns): Initialize it.
9179         (GET_SRC_PROB): Removed.
9180         * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
9181
9182 2006-02-07  Alexandre Oliva  <aoliva@redhat.com>
9183
9184         PR debug/24444
9185         * config/ia64/unwind-ia64.c: Revert last change.
9186         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
9187         (INCOMING_FRAME_SP_OFFSET): Define.
9188
9189 2006-02-06  Roger Sayle  <roger@eyesopen.com>
9190
9191         * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
9192
9193 2006-02-07  Ben Elliston  <bje@au.ibm.com>
9194
9195         * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
9196         (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
9197         (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
9198         (ix86_return_in_memory): Handle TDmode.
9199         (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
9200         (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
9201
9202 2006-02-06  Richard Sandiford  <richard@codesourcery.com>
9203
9204         * reorg.c (dbr_schedule): Use dump_file instead of file.
9205
9206 2006-02-06  Steve Ellcey  <sje@cup.hp.com>
9207
9208         PR target/25917
9209         * config/ia64/predicates.md (extr_len_operand): New predicate.
9210         * config/ia64/ia64.md (extv): Tighten constraints.
9211         (extzv): Ditto.
9212         (*tbit_and_2): Ditto.
9213         (*tbit_and_3): Ditto.
9214         (*tbit_or_2): Ditto.
9215         (*tbit_or_3): Ditto.
9216         (*bit_zero): Ditto.
9217         (*bit_one): Ditto.
9218
9219 2006-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
9220
9221         PR target/23359
9222         * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
9223
9224 2006-02-06  Zdenek Dvorak <dvorakz@suse.cz>
9225
9226         * tree-vrp.c (execute_vrp): Do not pass dump argument to.
9227         loop_optimizer_init and loop_optimizer_finalize
9228         * tree-ssa-sink.c (execute_sink_code): Ditto.
9229         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
9230         * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
9231         tree_ssa_loop_done): Ditto.
9232         * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
9233         * sched-ebb.c: Include output.h.
9234         (schedule_ebbs): Do not use dump argument.
9235         * value-prof.h (struct profile_hooks): Remove profile_dump_file.
9236         * loop.c (loop_dump_stream): Removed.
9237         (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
9238         argument.
9239         (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
9240         emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
9241         final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
9242         loop_iterations, strength_reduce, record_biv, record_giv,
9243         final_giv_value, check_final_value, check_ext_dependent_givs,
9244         combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
9245         try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
9246         dump_file instead of loop_dump_stream.
9247         * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
9248         argument dump_file.
9249         * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
9250         dump argument.
9251         * flow.c (life_analysis, rest_of_handle_life): Ditto.
9252         * haifa-sched.c: Include output.h
9253         (schedule_insns, sched_init): Do not use dump argument.
9254         * mode-switching.c (optimize_mode_switching): Ditto.
9255         * modulo-sched.c (stats_file): Removed.
9256         (print_node_sched_params): Do not call argument dump_file.
9257         (sms_schedule_by_order, loop_canon_p, sms_schedule,
9258         rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
9259         of stats_file.
9260         * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
9261         use dump argument.
9262         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
9263         rtl_loop_init, rtl_loop_done): Ditto.
9264         * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
9265         * predict.c (combine_predictions_for_bb, tree_estimate_probability):
9266         Ditto.
9267         * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
9268         * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
9269         * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
9270         rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
9271         * emit-rtl.c (renumber_insns): Ditto.
9272         * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
9273         expand_gimple_basic_block, tree_expand_cfg): Ditto.
9274         * regclass.c (regclass): Ditto.
9275         * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
9276         remove_ssa_form, rewrite_out_of_ssa): Ditto.
9277         * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
9278         convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
9279         Ditto.
9280         * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
9281         * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
9282         to regclass.
9283         * gcse.c (gcse_file, debug_stderr): Removed.
9284         (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
9285         rest_of_handle_gcse): Do not use dump argument.
9286         (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
9287         one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
9288         pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
9289         compute_code_hoist_vbeinout, compute_code_hoist_data,
9290         one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
9291         compute_store_table, build_store_vectors, insert_insn_start_bb,
9292         insert_store, remove_reachable_equiv_notes, replace_store_insn,
9293         store_motion): Use dump_file instead of gcse_file.
9294         * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
9295         * profile.c (profile_dump_file): Removed.
9296         (branch_prob): Use dump_file instead of profile_dump_file.
9297         * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
9298         dump_file.
9299         * tree-ssa-copy.c (dump_copy_of): Ditto.
9300         * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
9301         dump file to life_analysis.
9302         * bt-load.c (branch_target_load_optimize): Ditto.
9303         * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
9304         renumber_insns.
9305         * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
9306         regclass, dbr_schedule): Declaration changed.
9307         * sched-int.h (sched_init): Declaration changed.
9308         * tree-profile.c (tree_profile_dump_file): Removed.
9309         (tree_profile_hooks): Removed profile_dump_file hook.
9310         * rtl-profile (rtl_profile_dump_file): Removed.
9311         (rtl_profile_hooks): emoved profile_dump_file hook.
9312         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
9313         changed.
9314         * c-gimplify.c (c_genericize): Do not call local variable dump_file.
9315         * tree-cfg.c (build_tree_cfg): Ditto.
9316         * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
9317         * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
9318         Declaration changed.
9319         * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
9320         life_analysis and schedule_insns.
9321         * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
9322         life_analysis.
9323         * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
9324         dbr_schedule.
9325         * config/mips/mips.c (mips_reorg): Ditto.
9326         * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
9327         schedule_ebbs.
9328
9329 2006-02-06  Aldy Hernandez  <aldyh@redhat.com>
9330
9331         * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
9332         (s390_mangle_fundamental_type): New.
9333         * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
9334         Define.
9335
9336         * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
9337         (alpha_mangle_fundamental_type): New.
9338         * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
9339         Define.
9340
9341         * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
9342         Define.
9343         * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
9344         Define.
9345         * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
9346         (sparc_mangle_fundamental_type): New.
9347
9348 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
9349
9350         * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
9351         (s390x-*-linux*): Likewise.
9352         * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
9353         * config/s390/t-linux: New file.
9354
9355 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
9356
9357         * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
9358         sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
9359
9360 2006-02-06  Daniel Berlin  <dberlin@dberlin.org>
9361
9362         * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
9363         (ANTIC_SAFE_LOADS): New macro.
9364         (find_or_generate_expression): Add prototype.
9365         (set_contains_value): Allow null set for sake of not always having
9366         to allocate ANTIC_SAFE_LOADS.
9367         (phi_translate): Move placement of AGGREGATE_TYPE_P check.
9368         Allow COMPONENT_REF too.
9369         (valid_in_set): Allow COMPONENT_REF.
9370         Check ANTIC_SAFE_LOADS too.
9371         (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
9372         (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
9373         rename.
9374         (can_PRE_operation): Add COMPONENT_REF.
9375         (create_component_ref_by_pieces): New function.
9376         (create_expression_by_pieces): Use create_component_ref_by_pieces.
9377         (insert_aux): Move AGGREGATE_TYPE_P check here.
9378         (compute_avail): Set bb local stmt uids.
9379         (pass_pre): Use TODO_update_ssa_only_virtuals.
9380
9381 2006-02-06  Ben Elliston  <bje@au.ibm.com>
9382
9383         * configure.ac: Unconditionally disable decimal float by default.
9384         * configure: Regenerate.
9385
9386 2006-02-06  Ben Elliston  <bje@au.ibm.com>
9387
9388         * read-rtl.c (read_name): Terminate reading on EOF.
9389
9390 2006-02-06  Ben Elliston  <bje@au.ibm.com>
9391
9392         * dfp.c (decimal_real_arithmetic): Change second argument type
9393         from int to enum tree_code. Do not always return true, but now
9394         return result of any call to decimal_do helper functions.
9395         * dfp.h (decimal_real_arithmetic): Update prototype.
9396
9397 2006-02-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
9398
9399         * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
9400
9401 2006-02-05  Andrew Pinski  <pinskia@physics.uc.edu>
9402
9403         PR tree-opt/25251
9404         * tree-cfg.c (cleanup_dead_labels): Also don't remove
9405         forced labels.
9406
9407 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
9408
9409         * tree-vrp.c (cfg_loops): Removed.
9410         (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
9411         Use current_loops instead of cfg_loops.  Pass flags to
9412         loop_optimizer_init.
9413         * cfgloopmanip.c (fix_loop_structure): Update only available
9414         information.
9415         * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
9416         loop_optimizer_init.
9417         * modulo-sched.c (build_loops_structure): Removed.
9418         (sms_schedule): Use loop_optimizer_init.
9419         * loop-init.c (loop_optimizer_init): Use flags to determine
9420         which properties of loops to prepare.
9421         (rtl_loop_init): Pass flags to loop_optimizer_init.
9422         * tree-ssa-sink.c (execute_sink_code): Ditto.
9423         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
9424         * tree-ssa-pre.c (init_pre): Ditto.
9425         * cfgloop.h (LOOPS_NORMAL): New.
9426         (loop_optimizer_init): Declaration changed.
9427
9428 2006-02-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9429
9430         * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
9431         * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
9432         pa/t-pa.
9433         * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
9434         pa/t-pa.
9435         * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
9436         pa/x-ada.
9437         * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
9438         * pa/t-pa64: Delete quadlib.c rule.
9439         * pa/x-ada: Revert last change.
9440         * pa/t-pa: Revert last change.  Delete quadlib.c rule.
9441
9442 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
9443
9444         PR rtl-optimization/26087
9445         * rtlanal.c (canonicalize_condition): Do not cross basic block
9446         boundaries.
9447
9448 2006-02-04  Alexandre Oliva  <aoliva@redhat.com>
9449
9450         PR debug/24444
9451         * config/ia64/ia64.c: Include debug.h.
9452         (MAX_ARTIFICIAL_LABEL_BYTES): New.
9453         (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
9454         (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
9455         (process_epilogue, process_set, process_for_unwind_directive):
9456         Output unwind info only if requested.  Add CFA info if requested.
9457         Add new arguments as needed.  Adjust callers.
9458         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
9459         incorrect default.
9460         (DWARF2_FRAME_INFO): Define to zero.
9461         * config/ia64/unwind-ia64.c: Remove code that compensated for
9462         the CFA offset error fixed above.
9463         * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
9464         * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
9465         (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
9466         -funwind-tables and -fexceptions to enable frame info.
9467         (dwarf2out_frame_init): Define initial CFA even if
9468         DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
9469         DWARF2_UNWIND_INFO is nonzero, not just defined.
9470         (dwarf2out_frame_finish): Output non-EH call frame info only
9471         if DWARF2_FRAME_INFO is nonzero.
9472         (convert_cfa_to_loc_list,
9473         compute_frame_pointer_to_cfa_displacement): Define even if
9474         unwind info is not supported.
9475         (gen_subprogram_die): Use the above unconditionally.  Remove
9476         legacy alternate code.
9477         * toplev.c (compile_file): Compile in call to
9478         dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
9479         (lang_dependent_init): Ditto for dwarf2out_frame_init.
9480
9481 2006-02-04  David Edelsohn  <edelsohn@gnu.org>
9482             Jakub Jelinek  <jakub@redhat.com>
9483
9484         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
9485         IBM extended float format long double as "g" on powerpc*-linux.
9486
9487 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9488
9489         PR target/25926
9490         * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
9491         * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
9492
9493 2006-02-03  Jason Merrill  <jason@redhat.com>
9494
9495         PR c++/25979
9496         * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
9497
9498         PR middle-end/25977
9499         * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
9500         on the return slot if it's an NRV.
9501
9502 2006-02-03  Zdenek Dvorak <dvorakz@suse.cz>
9503
9504         * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
9505         (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
9506         rewrite_use): Do not handle USE_OUTER.
9507         (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
9508         add_iv_outer_candidates, may_replace_final_value,
9509         determine_use_iv_cost_outer, rewrite_use_outer): Removed.
9510         (find_interesting_uses_op): Functionality of
9511         find_interesting_uses_outer_or_nonlin moved here.
9512         (find_interesting_uses_outside): Use find_interesting_uses_op.
9513
9514 2006-02-03  Alan Modra  <amodra@bigpond.net.au>
9515
9516         PR target/25960
9517         * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
9518
9519 2006-02-03  Andreas Krebbel  <krebbel1@de.ibm.com>
9520             Ulrich Weigand  <uweigand@de.ibm.com>
9521
9522         PR target/25864
9523         * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
9524         "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
9525         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
9526         * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
9527         and dxr fields.
9528         (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
9529         (s390_rtx_costs): Use the new fields to calculate rtx costs.
9530         (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
9531         Define secondary reloads for TFmode moves.
9532         (constant_modes): Add TFmode.
9533         (NR_C_MODES): Set to 8.
9534         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
9535         builtin define.
9536         (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
9537         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
9538         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
9539         CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
9540         * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
9541         fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
9542         (FPR mode macro): Add TFmode.
9543         (DSF mode macro): New.
9544         (<de>, <dee> mode attributes): Removed.
9545         (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
9546         ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
9547         "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
9548         "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
9549         "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
9550         "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
9551         "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
9552         "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
9553         "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
9554         "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
9555         "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
9556         "*negabs<mode>2", "sqrt<mode>2"):
9557         Changed <de> to <xde>. R constraint replaced by <Rf>.
9558         ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
9559         <Rf>.
9560         ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
9561         ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
9562         ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
9563         splitters.
9564         ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
9565         "extenddftf2", "extendsftf2"): New expanders.
9566         ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
9567         "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
9568         "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
9569         * config/s390/s390.opt (mlong-double-128, mlong-double-64):
9570         New options.
9571         * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
9572         * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
9573         __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
9574         __floatditf): Add a GCC_4.1.0 symbol version tag.
9575         * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
9576         the new options.
9577
9578 2006-02-02  Andrew Pinski  <pinskia@physics.uc.edu>
9579
9580         PR target/25377
9581         * config/i386/i386.c (ix86_function_ok_for_sibcall):
9582         Use targetm.binds_local_p instead of TREE_PUBLIC.
9583
9584 2006-02-02  Roger Sayle  <roger@eyesopen.com>
9585
9586         * tree.h (TYPE_STRING_FLAG): Document that this field may be used
9587         on INTEGER_TYPEs to indicate that it denotes a character type.
9588         * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
9589         signed_char_type_node, unsigned_char_type_node and char_type_node.
9590         * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
9591         INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
9592         a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
9593
9594 2006-02-02  Zdenek Dvorak <dvorakz@suse.cz>
9595             Daniel Berlin  <dberlin@dberlin.org>
9596
9597         * tree-tailcall.c (arg_needs_copy_p): New function.
9598         (eliminate_tail_call): Use arg_needs_copy_p.
9599         (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
9600         (add_virtual_phis): New function.
9601
9602 2006-02-02  Jakub Jelinek  <jakub@redhat.com>
9603
9604         * config/sparc/sparc.c (sparc_output_scratch_registers): Use
9605         #ignore instead of #scratch for %g7 .register directive.
9606
9607 2006-02-02  Andreas Tobler  <a.tobler@schweiz.ch>
9608
9609         * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
9610         object files.
9611
9612 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
9613
9614         * flow.c (calculate_global_regs_live): Assert that there aren't any
9615         EDGE_FAKE edges.
9616
9617 2006-02-02  Paolo Bonzini  <bonzini@gnu.org>
9618
9619         * tree-flow-inline.h (bsi_after_labels): Rewrite, return
9620         what its name says.
9621         * lambda-code.c (perfect_nestify): Use bsi_insert_before on
9622         bsi_after_labels iterator.
9623         * tree-if-conv.c (find_phi_replacement_condition,
9624         replace_phi_with_cond_modify_expr): Likewise.
9625         * tree-scalar-evolution.c (scev_const_prop): Likewise.
9626         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
9627
9628 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
9629
9630         * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
9631
9632 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
9633
9634         PR 25990
9635         * tree-cfg.c (move_block_to_fn): Clear out the basic block
9636         array after growing it.
9637
9638 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
9639
9640         PR middle-end/24901
9641         * fold-const.c (fold_checksum_tree): Change type of buf.
9642
9643 2006-02-01  Bernd Schmidt  <bernd.schmidt@analog.com>
9644
9645         * reload.c (push_secondary_reload): Initialize t_icode.
9646
9647 2006-02-01  Jakub Jelinek  <jakub@redhat.com>
9648
9649         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
9650         -msoft-float -mlong-double-128 only issue a warning, but don't
9651         swich to DFmode long double.
9652
9653 2006-02-01  Hans-Peter Nilsson  <hp@axis.com>
9654
9655         * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
9656         has a constant equivalent, iterate over equivalents for arg0,
9657         calling simplify_relational_operation and if there's a result
9658         cheaper than X, apply fold_rtx and return the result.
9659
9660 2006-02-01  Jan Hubicka  <jh@suse.cz>
9661
9662         * opts.c (no_unit_at_a_time_default): New global variable.
9663         (decode_options): Use it.
9664         * opts.h (no_unit_at_a_time_default): Declare.
9665
9666 2006-02-01  Paul Brook  <paul@codesourcery.com>
9667
9668         * function.c (assign_parm_setup_reg): Use function argument promotion
9669         rules.
9670         * expr.c (expand_expr_real_1): Use function argument promotion rules
9671         for PARM_DECLs.
9672
9673 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
9674
9675         * gcc.c (process_command): Change j to 'unsigned int'.
9676
9677 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
9678
9679         PR middle-end/26001
9680         * expr.c (expand_expr_real_1) <case ARRAY_REF>:
9681         Use the corrected index for the character
9682         out of the string constant.
9683
9684 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
9685
9686         * mode-switching.c (optimize_mode_switching): Fix size
9687         allocated for bb_info[n_entities].
9688
9689 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
9690
9691         * gcc.c (main): Correct type that is allocated for
9692         explicit_link_files.
9693
9694 2006-01-31  Jakub Jelinek  <jakub@redhat.com>
9695
9696         * config/s390/s390.c (init_alignment_context): Set
9697         ALIAS_SET_MEMORY_BARRIER on the MEM.
9698         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
9699
9700 2006-01-31  Uttam Pawar  <uttamp@us.ibm.com>
9701
9702         PR middle-end/25933
9703         * loop-unroll.c (unroll_loop_runtime_iterations): Free
9704         dom_bbs pointer.
9705         * tree-ssa-live.c (type_var_init): Allocate bitmap after
9706         call to tpa_init.
9707
9708 2006-01-31  Marcin Dalecki  <martin@dalecki.de>
9709
9710         * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
9711         * regrename.c: Ditto.
9712         * tree-ssa-loop-im.c: Ditto.
9713         * tree-dump.c: Ditto.
9714         * tree-complex.c: Ditto.
9715         * genrecog.c: Ditto.
9716         * tree-ssa-threadupdate.c: Ditto.
9717         * tracer.c: Ditto.
9718         * java/class.c: Ditto.
9719         * java/jcf-parse.c: Ditto.
9720         * java/resource.c: Ditto.
9721         * java/except.c: Ditto.
9722         * java/jvspec.c: Ditto.
9723         * java/jcf-write.c: Ditto.
9724         * java/jcf-path.c: Ditto.
9725         * java/gjavah.c: Ditto.
9726         * java/zextract.c: Ditto.
9727         * java/jcf-io.c: Ditto.
9728         * java/jcf.h: Ditto.
9729         * java/buffer.c: Ditto.
9730         * java/lang.c: Ditto.
9731         * java/parse-scan.y: Ditto.
9732         * java/lex.c: Ditto.
9733         * java/lex.h: Ditto.
9734         * cfgloopmanip.c: Ditto.
9735         * postreload-gcse.c: Ditto.
9736         * tree-ssa-loop-manip.c: Ditto.
9737         * postreload.c: Ditto.
9738         * tree-ssa-loop-ch.c: Ditto.
9739         * loop.c: Ditto.
9740         * ipa-cp.c: Ditto.
9741         * cppspec.c: Ditto.
9742         * diagnostic.c: Ditto.
9743         * final.c: Ditto.
9744         * genoutput.c: Ditto.
9745         * gcc.c: Ditto.
9746         * cfghooks.c: Ditto.
9747         * cfgloopanal.c: Ditto.
9748         * objc/objc-act.c: Ditto.
9749         * gcov.c: Ditto.
9750         * genextract.c: Ditto.
9751         * genautomata.c: Ditto.
9752         * pretty-print.c: Ditto.
9753         * genemit.c: Ditto.
9754         * cgraphunit.c: Ditto.
9755         * flow.c: Ditto.
9756         * df-scan.c: Ditto.
9757         * haifa-sched.c: Ditto.
9758         * dominance.c: Ditto.
9759         * dbxout.c: Ditto.
9760         * tree-ssa-loop-ivopts.c: Ditto.
9761         * df-core.c: Ditto.
9762         * mode-switching.c: Ditto.
9763         * modulo-sched.c: Ditto.
9764         * graph.c: Ditto.
9765         * ipa-pure-const.c: Ditto.
9766         * cse.c: Ditto.
9767         * fix-header.c: Ditto.
9768         * web.c: Ditto.
9769         * tree-stdarg.c: Ditto.
9770         * ipa-utils.c: Ditto.
9771         * loop-init.c: Ditto.
9772         * ipa-inline.c: Ditto.
9773         * cfganal.c: Ditto.
9774         * global.c: Ditto.
9775         * alloc-pool.c: Ditto.
9776         * dwarf2out.c: Ditto.
9777         * opts.c: Ditto.
9778         * genattrtab.c: Ditto.
9779         * tree-ssa-loop-ivcanon.c: Ditto.
9780         * predict.c: Ditto.
9781         * timevar.c: Ditto.
9782         * lcm.c: Ditto.
9783         * fortran/gfortranspec.c: Ditto.
9784         * regmove.c: Ditto.
9785         * local-alloc.c: Ditto.
9786         * langhooks.c: Ditto.
9787         * function.c: Ditto.
9788         * tree-vectorizer.c: Ditto.
9789         * gcse.c: Ditto.
9790         * ipa-type-escape.c: Ditto.
9791         * alias.c: Ditto.
9792         * tree-if-conv.c: Ditto.
9793         * profile.c: Ditto.
9794         * ipa.c: Ditto.
9795         * tree-data-ref.c: Ditto.
9796         * loop-unroll.c: Ditto.
9797         * treelang/treetree.c: Ditto.
9798         * calls.c: Ditto.
9799         * bt-load.c: Ditto.
9800         * ggc-common.c: Ditto.
9801         * except.c: Ditto.
9802         * coverage.c: Ditto.
9803         * cselib.c: Ditto.
9804         * tree-cfgcleanup.c: Ditto.
9805         * tree-ssa-pre.c: Ditto.
9806         * cfgcleanup.c: Ditto.
9807         * loop-invariant.c: Ditto.
9808         * loop-iv.c: Ditto.
9809         * ipa-prop.c: Ditto.
9810         * print-tree.c: Ditto.
9811         * conflict.c: Ditto.
9812         * ggc-page.c: Ditto.
9813         * sched-deps.c: Ditto.
9814         * regclass.c: Ditto.
9815         * tree-object-size.c: Ditto.
9816         * combine.c: Ditto.
9817         * bb-reorder.c: Ditto.
9818         * resource.c: Ditto.
9819         * var-tracking.c: Ditto.
9820         * cfgloop.c: Ditto.
9821         * df-problems.c: Ditto.
9822         * reg-stack.c: Ditto.
9823         * tlink.c: Ditto.
9824         * gccspec.c: Ditto.
9825         * sched-rgn.c: Ditto.
9826         * tree-ssa-structalias.c: Ditto.
9827         * tree-ssa-reassoc.c: Ditto.
9828         * config/darwin-c.c: Ditto.
9829         * config/darwin.c: Ditto.
9830         * config/arm/arm.c: Ditto.
9831         * cfgrtl.c: Ditto.
9832         * collect2.c: Ditto.
9833         * reload1.c: Ditto.
9834
9835 2006-01-31  Nicolas Pitre  <nico@cam.org>
9836
9837         * arm.md (smaxsi3): Make aware of smax_m1.
9838         (smax_m1): New.
9839
9840 2006-01-31  Nathan Sidwell  <nathan@codesourcery.com>
9841
9842         * config/m68k/lb1sf68.asm: Use moveq to load small constants.
9843
9844 2006-01-31  Richard Guenther  <rguenther@suse.de>
9845
9846         * doc/invoke.texi (-msselibm): Document.
9847         * target.h (expand_library_builtin): New target hook.
9848         * builtins.c (expand_builtin): Use expand_library_builtin.
9849         (default_expand_library_builtin): New function.
9850         * gcc.c (LINK_GCC_MATH_SPEC): Define.
9851         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
9852         (link_gcc_math_spec): Declare.
9853         (static_specs): Add link_gcc_math_spec.
9854         * expr.h (default_expand_library_builtin): Declare.
9855         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
9856         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
9857         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
9858         * config/i386/i386.opt (msselibm): New target option.
9859         * config/i386/i386.c (ix86_builtin_function_variants): New array.
9860         (ix86_init_sse_abi_builtins): New function.
9861         (ix86_expand_library_builtin): Likewise.
9862         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
9863         (override_options): Handle error conditions wrt -msselibm.
9864         (ix86_builtins): Add function codes for SSE2 ABI builtins.
9865         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
9866         * doc/extend.texi (__builtin_sse2_*): Document new target specific
9867         builtins.
9868
9869 2006-01-31  Richard Guenther  <rguenther@suse.de>
9870         Paolo Bonzini  <bonzini@gnu.org>
9871
9872         * doc/install.texi (--disable-libgcc-math): Document.
9873
9874 2006-01-30  Marcin Dalecki  <martin@dalecki.de>
9875
9876         * expr.h (expand_normal): new inline function.
9877         * builtins.c: use it, use EXPAND_NORMAL explicitely.
9878         * dojump.c: use it.
9879         * dwarf2out.c: use it.
9880         * expr.c: use it.
9881         * calls.c: use it.
9882         * expmed.c: use it.
9883         * except.c: use it.
9884         * config/sparc/sparc.c: use it.
9885         * config/i386/i386.c: use it.
9886         * config/rs6000/rs6000.c: use it.
9887         * config/arm/arm.c: use it.
9888         * config/mips/mips.c: use it.
9889         * stmt.c: use it, use EXPAND_NORMAL explicitely.
9890
9891 2006-01-30  Roger Sayle  <roger@eyesopen.com>
9892
9893         * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
9894         argv to the appropriate type.
9895
9896 2006-01-30  Zdenek Dvorak <dvorakz@suse.cz>
9897
9898         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
9899         unreachable code.
9900
9901 2006-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
9902
9903         PR target/26018
9904         * config/s390/s390.c (struct machine_function): New flag
9905         decomposed_literal_pool_addresses_ok_p.
9906         (s390_reorg): Set it before final stage of literal pool transforms.
9907         (s390_decompose_address): Only accept displacements of the form
9908         (minus (label_ref ...) (label_ref ...)) if that flag is set.
9909
9910 2006-01-30  Carlos O'Donell  <carlos@codesourcery.com>
9911
9912         * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
9913         the comparison routine return.
9914
9915 2006-01-30  Michael Matz  <matz@suse.de>
9916
9917         * global.c (find_reg): Only evict for global regs.
9918         Take n_refs into account and dump more info.
9919
9920 2006-01-30  J"orn Rennecke <joern.rennecke@st.com>
9921
9922         PR target/14798:
9923         * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
9924         (pragma_trap, pragma_nosave_low_regs): Likewise.
9925         (current_function_anonymous_args): Likewise.
9926         (sh_deferred_function_attributes): New variable.
9927         (sh_deferred_function_attributes_tail): Likewise.
9928         (print_operand): For '@', look up trap_exit attribute.
9929         (calc_live_regs): Look up trapa_handler attribute.  For trapa
9930         handlers, save/restore fpscr, but don't do any other
9931         interrupt-specific saves.
9932         Don't save r0..r7 if the nosave_low_regs attribute is in effect.
9933         Fix check for partially saved registers to check for SHmedia.
9934         (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
9935         (sh_output_function_epilogue): Don't clear any of the removed
9936         variables.
9937         (sh_insert_attributes): Don't check pragma_interrupt.
9938         Insert deferred attributes.  Check that interrupt attribute is
9939         present for other attributes that require its presence.
9940         (sh_attribute_table): Add new attributes trapa_handler and
9941         nosave_low_regs.
9942         (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
9943         Don't check for pragma_interrupt.  Don't store argument.
9944         * sh.h (pragma_interrupt, sp_switch): Don't declare.
9945         (sh_deferred_function_attributes): Declare.
9946         (sh_deferred_function_attributes_tail): Likewise.
9947         * sh.md (sp_switch_1): Add operand.  Change generator caller.
9948         (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
9949         (*return_i): Don't use when trap_exit attribute is in effect.
9950         (*return_trapa): New insn pattern.
9951         * sh-c.c: New file.
9952         * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
9953         setting c_target_objs and cxx_target_objs.
9954         * t-sh: Add rule for sh-c.o.
9955
9956 2006-01-30  Richard Guenther  <rguenther@suse.de>
9957
9958         PR c++/23372
9959         * gimplify.c (gimplify_target_expr): Handle easy cases
9960         without creating a temporary.
9961
9962 2006-01-30  Nathan Sidwell  <nathan@codesourcery.com>
9963
9964         * vec.h (safe_grow): Remove duplicated line.
9965
9966 2006-01-29  Diego Novillo  <dnovillo@redhat.com>
9967
9968         PR 25874
9969         * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
9970         (expand_omp): ... here.
9971         (expand_omp_parallel): Only remove barriers for combined
9972         parallel+workshare constructs.
9973
9974 2006-01-29  Eric Botcazou  <ebotcazou@adacore.com>
9975
9976         Revert
9977
9978         2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
9979         * tree.c (build_qualified_type): Chain the new type to the original
9980         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
9981         a POINTER_TYPE or a REFERENCE_TYPE respectively.
9982         (build_pointer_type_for_mode): Only return unqualified types.
9983         (build_reference_type_for_mode): Likewise.
9984
9985 2006-01-29  Gabriel Dos Reis  <gdr@integgrable-solutions.net>
9986
9987         * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
9988         * Makefile.in (CXX_COMPAT_WARN): Define.
9989         * configure: Regenerate.
9990
9991 2006-01-29  Dorit Nuzman  <dorit@il.ibm.com>
9992
9993         PR tree-opt/25911
9994         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
9995         to an if check.
9996
9997 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9998
9999         * toplev.c: Fix thinko.
10000
10001 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10002             Marcin Dalecki  <martin@dalecki.de>
10003
10004         * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
10005         (push_srcloc): Use XNEW.
10006         (init_asm_output, default_get_pch_validity): Use XNEWVEC.
10007
10008 2006-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
10009
10010         * df-core.c (df_set_blocks): Deleted all variable.
10011
10012 2006-01-28  Ian Lance Taylor  <ian@airs.com>
10013
10014         * cgraphunit.c (cgraph_assemble_pending_functions): Call
10015         cgraph_output_pending_asms.
10016
10017 2006-01-28  Zack Weinberg  <zackw@panix.com>
10018
10019         * c.opt: Add -W(no-)overlength-strings.
10020         * doc/invoke.texi: Document it.
10021         * c-opts.c (c_common_handle_option): -pedantic implies
10022         -Woverlength-strings, if not explicitly disabled already.
10023         (c_common_post_options): -Woverlength-strings defaults to off, and
10024         is always off for C++.
10025         * c-common.c (fix_string_type): Issue warning about strings longer
10026         than is portable only if warn_overlength_strings.  Rearrange code
10027         a little for clarity.
10028         * configure.in: Check for -Wno-overlength-strings as well before
10029         enabling -pedantic in stage 1.
10030         * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
10031         (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
10032
10033         * genconditions.c (write_header, write_one_condition)
10034         (write_conditions, write_writer): Consolidate very long strings
10035         that were broken up to fit in C89 portable limit.  Don't use
10036         printf when fputs will do.
10037
10038 2006-01-28  Adam Nemet  <anemet@caviumnetworks.com>
10039
10040         * combine.c (simplify_comparison <AND>): Check
10041         TRULY_NOOP_TRUNCATION before start using a subreg.
10042
10043         * config/mips/mips.md (*branch_zero<mode>,
10044         *branch_zero<mode>_inverted, *branch_equality<mode>,
10045         *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
10046         Remove mode check from comparisons.
10047
10048 2006-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
10049
10050         * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
10051
10052 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
10053
10054         * expmed.c (const_mult_add_overflow_p): Remove.
10055         * expr.h: Remove the prototype for const_mult_add_overflow_p.
10056
10057         * recog.c (validate_replace_rtx_subexp): Remove.
10058         * recog.h: Remove the prototype for
10059         validate_replace_rtx_subexp.
10060
10061         * integrate.h: Remove the prototype for
10062         copy_decl_for_inlining.
10063         * rtl.h: Remove the prototype for mark_constant_function.
10064         * tree-vectorizer.h: Remove the prototype for
10065         vect_strip_conversion.
10066
10067         * modulo-sched.c (create_partial_schedule,
10068         free_partial_schedule, reset_partial_schedule): Make them
10069         static.
10070
10071         * hooks.c (hook_bool_rtx_int_false): Remove.
10072         * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
10073
10074 2006-01-28  David Edelsohn  <edelsohn@gnu.org>
10075
10076         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
10077         and -mlong-double-128 are incompatible.
10078         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
10079         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
10080         (TARGET_LIBGCC2_CFLAGS): Define.
10081         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
10082         (TARGET_LIBGCC2_CFLAGS): Same.
10083         * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
10084
10085 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
10086
10087         PR c/19606.
10088         * c-typeck.c (build_binary_op): Perform implicit casts of
10089         operands before shortening them.
10090
10091         * cfgloopmanip.c (split_loop_bb): Remove.
10092         * cfgloop.h: Remove the prototype for split_loop_bb.
10093
10094         * cfgloop.c (flow_loop_outside_edge_p): Remove.
10095         * cfgloop.h: Remove the prototype for
10096         flow_loop_outside_edge_p.
10097
10098         * emit-rtl.c (init_virtual_regs): Make it static.
10099         * function.h: Remove the prototype for init_virtual_regs.
10100
10101         * recog.c (peephole2_optimize): Make it static.
10102         * recog.h: Remove the prototype for peephole2_optimize.
10103
10104 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
10105
10106         * df-scan.c (df_record_entry_block_defs): Check if
10107         INCOMING_RETURN_ADDR_RTX is defined.
10108
10109 2006-01-27  Daniel Berlin  <dberlin@dberlin.org>
10110             Kenneth Zadeck <zadeck@naturalbridge.com>
10111
10112         PR rtl-optimization/24762
10113         * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
10114         * targhooks.c (hook_void_bitmap): New hook prototype.
10115         * targhoohs.h (hook_void_bitmap): Ditto.
10116         * bitmap.h (bitmap_head_def): Moved to coretypes.h.
10117         * coretypes.h (bitmap_head_def): Moved from bitmap.h.
10118         * target.h (live_on_entry): New function pointer.
10119         * df-scan.c (df_all_hard_regs): Removed.
10120         (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
10121         (df_scan_free_internal): Added df->entry_block_defs.
10122         (df_scan_alloc): Ditto.
10123         (df_scan_dump): Ditto.
10124         (df_uses_record): Plumbed flag field properly thru calls.
10125         Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
10126         This part fixes PR24762.
10127         (df_bb_refs_record): Added code to make the frame and arg
10128         pointers live in EH blocks.
10129         (df_refs_record): Added call to df_record_entry_block_defs.
10130         (df_record_entry_block_defs): New function.
10131         * df-core.c: Added comments to describe new artifical defs.
10132         * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
10133         (entry_block_defs): New field in struct df.
10134         (df_all_hard_regs): Deleted.
10135         * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
10136         * df-problems.c (df_ru_bb_local_compute_process_def):
10137         Added code to handle artifical defs in the entry to a function.
10138         (df_ru_bb_local_compute): Ditto.
10139         (df_rd_bb_local_compute_process_def): Ditto.
10140         (df_rd_bb_local_compute): Ditto.
10141         (df_lr_bb_local_compute): Ditto.
10142         (df_ur_bb_local_compute): Ditto.
10143         (df_urec_bb_local_compute): Ditto.
10144         (df_chain_create_bb): Ditto.
10145         (df_ur_local_finalize): Removed entry.
10146         (df_urec_init): Ditto.
10147         (df_urec_local_finalize): Ditto.
10148         (df_ri_bb_compute): Added detection of last use of pseudos.
10149         * Makefile.in (df-scan.o): Updated dependencies.
10150         * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
10151         * config/mips/mips.c (mips_set_live_on_entry): Added.
10152         * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
10153         for target hook.
10154         * dce.c (marked_insn_p): Added code to handle artifical defs.
10155
10156 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
10157
10158         * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
10159         intrinsic.
10160         (_mm_cvtsi128_si64): Likewise.
10161         (_mm_cvtsd_si64): Likewise.
10162         (_mm_cvttsd_si64): Likewise.
10163         (_mm_cvtsi64_sd): Likewise.
10164         (_mm_cvtsi64_si128): Likewise.
10165         * config/i386/mmintrin.h (_m_from_int64): Likewise.
10166         (_mm_cvtsi64_m64): Likewise.
10167         (_m_to_int64): Likewise.
10168         (_mm_cvtm64_si64): Likewise.
10169         * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
10170         (_mm_cvttss_si64): Likewise.
10171         (_mm_cvtsi64_ss): Likewise.
10172         (_mm_cvtss_f32): Likewise.
10173
10174 2006-01-27  Carlos O'Donell  <carlos@codesourcery.com>
10175
10176         * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
10177         for pragma redefine_extname.
10178
10179 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
10180
10181         PR target/25864
10182         * libgcc-std.ver: Add GCC_4.1.0 symbol version.
10183         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
10184         -mno-minimal-toc to previous content.
10185         (bispecs): Remove goal.
10186         * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
10187         * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
10188         compatibility aliases on powerpc-*-*gnu*.
10189         * config/rs6000/libgcc-ppc-glibc.ver: New file.
10190         * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
10191         libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
10192         (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
10193         (ldblspecs): New goal.
10194         * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
10195         * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
10196         _df_to_tf.
10197         * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
10198         L_sf_to_tf or L_df_to_tf is defined.
10199
10200 2006-01-27  David Edelsohn  <edelsohn@gnu.org>
10201             Alan Modra  <amodra@bigpond.net.au>
10202
10203         PR target/25864
10204         * config/rs6000/linux.h (POWERPC_LINUX): Define.
10205         * config/rs6000/linux64.h (POWERPC_LINUX): Define.
10206         * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
10207         * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
10208         * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
10209         * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
10210         (rs6000_override_options): Initialize rs6000_ieeequad.
10211         Initialize TFmode format to ibm_extended_format if not
10212         TARGET_IEEEQUAD.
10213         (rs6000_handle_option): Accept -mabi= ibmlongdouble and
10214         ieeelongdouble.
10215         (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
10216         (rs6000_return_in_memory): Only return IEEEQUAD in memory.
10217         (function_arg_advance): IBM long double passed in two FPRs, not
10218         split.
10219         (function_arg): IBM long double passed in FPRs.
10220         (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
10221         (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
10222         Only multireg GPR aligned.
10223         (rs6000_init_libfuncs): Enable IBM long double functions if not
10224         IEEEQUAD.
10225         (rs6000_generate_compare): Use IBM long double compare if not
10226         TARGET_IEEEQUAD.
10227         * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
10228         (TARGET_IEEEQUAD): Define.
10229         (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
10230         not TARGET_IEEEQUAD.
10231         * config/rs6000/rs6000.md: Enable TFmode patterns if
10232         !TARGET_IEEEQUAD.
10233         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
10234         * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
10235         and -mlong-double-128 are incompatible.
10236         * doc/invoke.texi (-mabi): Collect options together.  Add
10237         ibmlongdouble and ieeelongdouble.
10238
10239 2006-01-27  Richard Sandiford  <richard@codesourcery.com>
10240
10241         * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
10242         opaque type.
10243         * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
10244         * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
10245         (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
10246         * rtl.h (rtunion_def): Remove rt_ptr.
10247         (X0PTR): Delete.
10248         (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
10249         (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
10250         * config/i386/winnt.c (i386_pe_mark_dllexport)
10251         (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
10252
10253 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
10254
10255         * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
10256
10257 2006-01-26 Alexandre Oliva  <aoliva@redhat.com>
10258
10259         PR other/24829
10260         PR target/24831
10261         * gthr-dce.h: Do not gthrw-ify pthread_once_init,
10262         pthread_key_delete.  From John David Anglin.  gthrw-ify
10263         pthread_getunique_np only if it it's not a macro.  Delete
10264         UNUSED macro.
10265         (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
10266         __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
10267         __gthread_objc_condition_signal, __gthread_key_delete): Add
10268         "__attribute__ ((__unused__))" to unused arguments.
10269         (__gthread_recursive_mutex_init_function): Add missing return.
10270         * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
10271         gthr-posix95.h: Use macro-based approach for name redirection
10272         on targets missing weakref.
10273
10274 2006-01-26  Zack Weinberg  <zackw@panix.com>
10275
10276         * genconditions.c (write_header): In generated code, #ifdef out
10277         all includes and fake declarations, except includes of bconfig.h
10278         and system.h, unless GCC_VERSION >= 3001.  Do not include
10279         gensupport.h in any case.
10280         (write_conditions): Generate a definition of struct c_test.  Add
10281         a comment to the generated #endif.
10282         (write_one_condition): Escape backslashes in string too.
10283         (write_writer): Generated code must escape backslashes and quote
10284         marks (but not newlines) in the strings it writes.
10285         * Makefile.in (build/gencondmd.o): Update dependencies.
10286
10287 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
10288
10289         PR target/25961
10290         * Makefile.in (insn-automata.o): Add header file dependencies.
10291         * genautomata.c: Add includes.
10292
10293 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
10294
10295         PR target/25961
10296         * Makefile.in (insn-automata.o): Add -Wno-error flag.
10297
10298 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
10299
10300         * configure.ac: Expect target tools paths to be passed from the toplevel
10301         and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
10302         AS_SET_VAR_IF.
10303         * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
10304
10305 2006-01-26  Alexandre Oliva  <aoliva@redhat.com>
10306
10307         PR c/25892
10308         * c.opt (Wpointer-sign): Init to -1.
10309         * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
10310         OPT_pedantic, to 0 otherwise.
10311         * doc/invoke.texi: Update.
10312
10313 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
10314
10315         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
10316         constants provided by 80387 instructions in the destination mode.
10317
10318 2006-01-26  Richard Guenther  <rguenther@suse.de>
10319             Andrew Pinski  <pinskia@physics.uc.edu>
10320
10321         PR tree-opt/21470
10322         partial PR tree-opt/17064
10323         * tree-ssa-structalias.c (intra_create_variable_infos):
10324         Create heap variables for incoming parameters if
10325         flag_argument_noalias > 1.
10326         (find_what_p_points_to): Look through default defs of
10327         parameter decls.
10328
10329 2006-01-26  Jeff Law  <law@redhat.com>
10330
10331         PR ada/25900
10332         * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
10333         with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
10334         within the VR_RANGE, use the VR_RANGE as the result, not the
10335         VR_ANTI_RANGE.
10336         (adjust_range_with_scev): Reject ranges from SCEV which are out of
10337         bounds for the type.
10338
10339 2006-01-26  Daniel Berlin  <dberlin@dberlin.org>
10340
10341         * tree-ssa-alias.c (maybe_create_global_var): Change
10342         subvar walking to an assertion that we don't have subvar'd variables.
10343
10344 2006-01-26  Andrew Pinski  <pinskia@physics.uc.edu>
10345
10346         PR C/25861
10347         * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
10348         Use a new variable, inner.  PARM_DECLs are always non-weak.
10349
10350 2006-01-26  Shantonu Sen  <ssen@opendarwin.org>
10351
10352         * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
10353         --disable-checking.
10354
10355 2006-01-26  Adam Nemet  <anemet@caviumnetworks.com>
10356
10357         * config/mips/mips.md (*clear_upper32): New combiner pattern.
10358
10359 2006-01-26  Richard Earnshaw  <richard.earnshaw@arm.com>
10360
10361         * arm.md (smaxsi3, sminsi3): Convert to define_expand.
10362         (smax_insn, smin_insn, smax_0, smin_0): New.
10363
10364 2006-01-26  Hans-Peter Nilsson  <hp@axis.com>
10365
10366         PR target/25947
10367         * config/cris/cris.c (cris_order_for_addsi3): New function.
10368         * config/cris/cris-protos.h: Prototype it.
10369         * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
10370         (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
10371         (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
10372         (split for "op.S1 [rx=rx+i],ry (swapped)")
10373         (split for "op(s|u).S1 [rx=rx+i],ry")
10374         (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
10375         Apply cris_order_for_addsi3 when generating addsi3 insns.
10376
10377 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
10378
10379         * tree.h (TREE_RANGE_CHECK): Fix range predicate.
10380         (TREE_BLOCK): Add call to EXPR_CHECK.
10381
10382 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
10383
10384         PR 25886
10385         * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
10386         * tree-pretty-print.c (dump_omp_clause): Extract from ...
10387         (dump_omp_clauses): ... here.
10388         (dump_generic_node): Handle OMP_CLAUSE.
10389         * tree.c (omp_clause_num_ops): New.
10390         (omp_clause_code_name): New.
10391         (tree_code_size): Handle OMP_CLAUSE.
10392         (tree_size): Likewise.
10393         (make_node): Document handling of OMP_CLAUSE.
10394         (tree_node_structure): Handle OMP_CLAUSE.
10395         (omp_clause_check_failed): New.
10396         (omp_clause_range_check_failed): New.
10397         (omp_clause_operand_check_failed): New.
10398         (build_omp_clause): New.
10399         (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
10400         * tree.h (enum omp_clause_code): Declare.
10401         (OMP_CLAUSE_SUBCODE_CHECK): Define.
10402         (OMP_CLAUSE_RANGE_CHECK): Define.
10403         (OMP_CLAUSE_ELT_CHECK): Define.
10404         (omp_clause_check_failed): Declare.
10405         (omp_clause_operand_check_failed): Declare.
10406         (omp_clause_range_check_failed): Declare.
10407         (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
10408         (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
10409         (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
10410         (OMP_CLAUSE_LASTPRIVATE): Likewise.
10411         (OMP_CLAUSE_IF_EXPR): Likewise.
10412         (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
10413         (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
10414         (OMP_CLAUSE_REDUCTION_CODE): Likewise.
10415         (OMP_CLAUSE_REDUCTION_INIT): Likewise.
10416         (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
10417         (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
10418         Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
10419         (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
10420         (OMP_CLAUSE_DEFAULT_KIND): Likewise.
10421         (OMP_CLAUSE_CODE): Define.
10422         (OMP_CLAUSE_SET_CODE): Define.
10423         (OMP_CLAUSE_CODE): Define.
10424         (OMP_CLAUSE_OPERAND): Define.
10425         (struct tree_omp_clause): Declare.
10426         (union tree_node): Add field 'omp_clause'.
10427         * treestruct.def (TS_OMP_CLAUSE): Define.
10428         * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
10429         OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
10430         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
10431         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
10432         OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
10433         OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
10434         (OMP_CLAUSE): Define.
10435         * print-tree.c (print_node): Handle OMP_CLAUSE.
10436         * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
10437         * c-typeck.c: Likewise.
10438         * gimplify.c: Likewise.
10439         * c-omp.c: Likewise.
10440         * tree-nested.c: Likewise.
10441         * tree-inline.c: Likewise.
10442         * c-parser.c: Likewise.
10443         * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
10444         clauses.
10445
10446 2006-01-25  Roger Sayle  <roger@eyesopen.com>
10447
10448         PR rtl-optimization/25703
10449         * combine.c (try_combine): Handle zero_extract and strict_low_part
10450         of non-lowpart SUBREGs for constant reg_subword_p set optimization.
10451
10452 2006-01-25  Peter Bergner  <bergner@vnet.ibm.com>
10453
10454         * global.c: Fix comment typos.
10455
10456 2006-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
10457
10458         PR target/25758
10459         * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
10460         Use output_addr_const instead of assemble_name.
10461
10462 2006-01-25  Paolo Bonzini  <bonzini@gnu.org>
10463
10464         * Makefile.in (sched-vis.o): Update dependencies.
10465         * haifa-sched.c (sched_finish): Clear current_sched_info.
10466         * cfg.c (dump_bb_info): New, split from dump_flow_info.
10467         (dump_flow_info): Call it.
10468         * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
10469         a slim RTL dump.
10470         * basic-block.h (dump_bb_info): Declare.
10471         * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
10472         option, and apply options only for dump files whose TDF_RTL,
10473         TDF_TREE, or TDF_IPA bits match.
10474         * rtl.h: Declare new functions exported from sched-vis.c.
10475         * sched-vis.c: Enable also if scheduling is not used.
10476         (print_value): Print the mode of registers if not inside scheduling.
10477         (print_insn): Make it work outside the scheduler.  Beautify the output
10478         a bit.
10479         (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
10480
10481 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
10482
10483         * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
10484         * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
10485         a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
10486         depending on the value of CONSTANT_POOL_ADDRESS_P.
10487         * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
10488         SYMBOL_REF_DECL.
10489         * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
10490         rather than SYMBOL_REF_DECL.
10491         (rtx_constant_pool): Remove const_rtx_sym_htab.
10492         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
10493         (init_varasm_status): Don't initialize const_rtx_sym_htab.
10494         (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
10495         Remove handling of const_rtx_sym_htab.
10496         (find_pool_constant): Delete.
10497         (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
10498         rather than find_pool_constant.
10499         (get_pool_constant_for_function): Delete.
10500         (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
10501         find_pool_constant.
10502         * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
10503         (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
10504         (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
10505         (SYMBOL_REF_CONSTANT): New macro.
10506         (get_pool_constant_for_function): Delete.
10507         * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
10508         rather than SYMBOL_REF_DECL.
10509         (i386_pe_mark_dllimport): Likewise.
10510         * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
10511         rather than SYMBOL_REF_DECL.
10512         * config/darwin.c (machopic_indirect_data_reference): Likewise.
10513         (machopic_indirect_call_target): Likewise.
10514
10515 2006-01-25  Eric Botcazou  <ebotcazou@adacore.com>
10516
10517         * flow.c (delete_noop_moves): Add missing EOL to dump message.
10518
10519 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
10520
10521         * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
10522
10523 2006-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
10524
10525         * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
10526
10527 2006-01-24  David Daney  <ddaney@avtrex.com>
10528
10529         PR java/25816
10530         * configure.ac (enable_tls): New enable option.
10531         (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
10532         * configure: Regenerate.
10533         * doc/install.texi (--enable-tls): Document new option.
10534         (--disable-tls): Ditto.
10535
10536 2006-01-24  Richard Henderson  <rth@redehat.com>
10537
10538         * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
10539         * alias.c (true_dependence): Respect it.
10540         (canon_true_dependence, write_dependence_p): Likewise.
10541         * builtins.c (get_builtin_sync_mem): Set it.
10542
10543 2006-01-25  Zdenek Dvorak <dvorakz@suse.cz>
10544
10545         * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
10546         efficient way.
10547
10548 2006-01-24  DJ Delorie  <dj@redhat.com>
10549
10550         * expmed.c (store_bit_field): Don't arbitrarily deny using insv
10551         for storing constants in single-bit bitfields.
10552
10553 2006-01-25  Ben Elliston  <bje@au.ibm.com>
10554
10555         * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
10556
10557 2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>
10558
10559         PR tree-opt/25860
10560         * tree-ssa-pre.c (phi_translate): Return NULL
10561         for AGGREGATE_TYPE's.
10562
10563 2006-01-24  Zack Weinberg  <zackw@panix.com>
10564
10565         * genautomata.c (process_state_for_insn_equiv_partition):
10566         Use xcalloc for insn_arcs_array.
10567         * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
10568         (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
10569
10570 2006-01-24  Richard Henderson  <rth@redhat.com>
10571
10572         * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
10573         update all callers.
10574
10575 2006-01-23  Paolo Bonzini  <bonzini@gnu.org>
10576
10577         PR rtl-optimization/25890
10578         PR rtl-optimization/25905
10579         * combine.c (expand_compound_operation, expand_field_assignment):
10580         Fail if the bitfield's final position is out of bounds.
10581
10582 2006-01-24  Ian Lance Taylor  <ian@airs.com>
10583
10584         PR middle-end/25930
10585         * cgraphunit.c (cgraph_output_in_order): Don't clear
10586         cgraph_asm_nodes until after asm strings have been output.
10587
10588 2006-01-23  Adam Nemet  <anemet@caviumnetworks.com>
10589
10590         * fix-header.c (read_scan_file): Add new parameter imultilib when
10591         calling register_include_chains.
10592
10593 2006-01-23  Diego Novillo  <dnovillo@redhat.com>
10594
10595         * omp-low.c: Update documentation.
10596
10597 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
10598             Daniel Berlin  <dberlin@dberlin.org>
10599
10600         PR tree-opt/25315
10601         PR tree-opt/25857
10602         * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
10603         return from the function.
10604
10605 2006-01-22  Zack Weinberg  <zackw@panix.com>
10606
10607         * rtl.def (match_code): Add second argument.
10608         * genpreds.c (write_extract_subexp): New function.
10609         (write_match_code): Add path argument.  Use write_extract_subexp.
10610         (write_predicate_expr): Pass path to write_match_code.
10611         (mark_mode_tests): MATCH_CODE applied to a subexpression does
10612         not perform a mode test.
10613         * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
10614         a subexpression does not constrain the top-level code set.
10615         * read-rtl.c (read_rtx_variadic): New function.
10616         (read_rtx_1): Use it; allow AND and IOR to be variadic.
10617         * doc/md.texi: Document new notation.
10618         * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
10619         (cmpsi_operand): ... here, using new notation.
10620
10621 2006-01-22  Zack Weinberg  <zackw@panix.com>
10622
10623         * varray.c: Remove GENERATOR_FILE #ifdefs.
10624
10625 2006-01-22  Zack Weinberg  <zackw@panix.com>
10626
10627         * genautomata.c (output_reserved_units_table): Emit nothing if
10628         description->query_units_num is zero.  Remove extra blank line.
10629         (output_cpu_unit_reservation_p): Short circuit
10630         if description->query_units_num is zero.
10631
10632 2006-01-22  Zack Weinberg  <zackw@panix.com>
10633
10634         * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
10635         and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
10636         nor any of the random handful of variables that used to be necessary
10637         when this program was linked with rtlanal.o.  Prune set of forward
10638         function declarations.
10639         (struct attr_desc): Remove static_p field.
10640         (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
10641         (check_attr_test, make_internal_attr, make_numeric_value): Make static.
10642         (attr_string): Do not read the character one past the length of
10643         the string.
10644         (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
10645         (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
10646         (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
10647         (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
10648         (make_automaton_attrs): New.
10649         (main): Do not call into genautomata.  Call local gen_bypass
10650         and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
10651         Remove special case for insn_alts.
10652         * genautomata.c: Include gensupport.h; not genattrtab.h nor
10653         varray.h (leftover from previous change).  Prune set of forward
10654         function declarations.  Remove state_alts fields from all
10655         structures.  Remove state_alts_table from struct automaton.
10656         Make everything except main static.  Do not maintain num_dfa_decls.
10657         Do not maintain state_alts fields of various structures.
10658         (process_decls): Don't validate condexp for dm_insn_reserv decls.
10659         (add_arc): Remove state_alts argument.  All callers updated.
10660         (output_reserved_units_table): Emit #ifdef here...
10661         (output_tables): ...not here.  Don't generate state_alts tables.
10662         (expand_automata): Don't generate attributes.
10663         (write_automata): Don't generate state_alts functions.
10664         (main): New function.
10665         (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
10666         (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
10667         (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
10668         (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
10669         (BYPASS_P_FUNC_NAME, output_state_alts_table)
10670         (output_automata_list_state_alts_code, output_internal_state_alts_func)
10671         (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
10672         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
10673         Delete.
10674         * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
10675         * genattrtab.h: Delete file.
10676         * Makefile.in (OBJS-common): Add insn-automata.o.
10677         (insn-automata.o): New rule.
10678         (simple_generated_c): Add insn-automata.c.
10679         (build/genattrtab.o, build/genautomata.o): Update dependencies.
10680         (genprogmd): Add automata.
10681         (build/genattrtab): Needs no extra objects nor libraries.
10682         (build/genautomata): Needs build/vec.o and -lm.
10683
10684 2006-01-22  Zack Weinberg  <zackw@panix.com>
10685
10686         * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
10687         (output_dfa_max_issue_rate, locked_states_num): Delete.
10688         (struct automaton): Add locked_states field.
10689         (output_dead_lock_vect): Save number of locked states in
10690         automaton->locked_states.  If it is zero, don't print anything.
10691         (output_max_insn_queue_index_def): Define max_insn_queue_index const.
10692         (output_internal_dead_lock_func): Only test the dead_lock_vect
10693         for automata that have locked states.
10694         (output_statistics): Always print the number of locked states for
10695         each automaton.  Calculate total number of locked states here.
10696         (write_automata): Don't call output_dfa_max_issue_rate.
10697         * genattrtab.c: Define length_unit_log as a const variable.
10698         * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
10699         max_insn_queue_index const.
10700         * final.c (length_unit_log): Declare const.
10701         * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
10702
10703 2006-01-22  Zack Weinberg  <zackw@panix.com>
10704
10705         * genautomata.c: Include vec.h, not varray.h.
10706         Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
10707         VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
10708         VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
10709         VEC_* macros operating on appropriately typed vectors, or to
10710         malloced arrays when the size is known in advance.  Const-ify
10711         many char* variables and function arguments.  No functional changes.
10712         * Makefile.in (build/varray.o): Delete rule.
10713         (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
10714         (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
10715
10716 2006-01-22  Zack Weinberg  <zackw@panix.com>
10717
10718         * gensupport.c: Define get_insn_name and record_insn_name here.
10719         (read_md_rtx): Call record_insn_name as appropriate.
10720         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
10721         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
10722         * genpreds.c, genrecog.c: Don't define get_insn_name nor
10723         record_insn_name.
10724         * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
10725         (BUILD_VARRAY): Delete.
10726         (genprognormal): Rename genprogmd.  Fold in all programs from
10727         genprognoprint; also attrtab.
10728         (build/genattrtab): Just mention genautomata.o and varray.o.
10729         Reorganize a bit, add comments to make the categories clearer.
10730
10731 2006-01-22  Zack Weinberg  <zackw@panix.com>
10732
10733         * genconditions.c (condition_table, add_condition): Delete.
10734         (write_conditions): Don't emit n_insn_conditions nor
10735         insn_elision_unavailable.  Issue the gcc version #ifdef here,
10736         inside the table, with no #else clause ...
10737         (write_header): ...not here.
10738         (write_writer): New function.
10739         (main): Don't initialize condition_table.  Use add_c_test.
10740         Call write_writer.
10741         * gensupport.c (init_md_reader_args_cb): Handle multiple input
10742         files on the command line.
10743         (maybe_eval_c_test): Don't check insn_elision_unavailable.
10744         Return -1 if there is no entry in the table, don't abort.
10745         (add_c_test, traverse_c_tests): New functions.
10746         * gensupport.h (insn_elision_unavailable, insn_conditions)
10747         (n_insn_conditions): Delete declarations.
10748         (add_c_test, traverse_c_tests): Declare.
10749         * read-rtl.c: Include gensupport.h.
10750         (read_conditions): New function.
10751         (read_rtx): If read_rtx_1 returns 0, treat as EOF.
10752         (read_rtx_1): If we get EOF when we were looking for an initial
10753         open paren, return 0.  Call read_conditions when appropriate.
10754         * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
10755         dummy-conditions.o.  Eliminate references to insn-conditions.o,
10756         or change them to build/gencondmd.o, as appropriate.  Remove
10757         insn-constants.h from $(simple_generated_h) and insn-conditions.c
10758         from $(simple_generated_c).  For all files remaining in those
10759         two lists, add insn-conditions.md to the generator command line.
10760         Give insn-constants.h/s-constants their own rules.  Add rules
10761         for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
10762         (build/read-rtl.o): Depend on gensupport.h.
10763         (genprognormal): Include preds.
10764         (genprogearly): Rename genprognoprint; only difference is now that
10765         they don't link with $(BUILD_PRINT).
10766         * dummy-conditions.c: Delete.
10767
10768 2006-01-22  Zack Weinberg  <zackw@panix.com>
10769
10770         * genextract.c: Don't include insn-config.h.  Do include vec.h.
10771         Declare vectors of int, char, and locstr.
10772         (locstr): New typedef.
10773         (struct extraction): Make all array fields into bare pointers.
10774         (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
10775         (insn_code_number): Delete.
10776         (accum_extract): New struct.
10777         (VEC_safe_set_locstr, VEC_char_to_string): New functions.
10778         (gen_insn): Take insn_code_number as an argument.  Use an
10779         accum_extract structure instead of loading data directly into
10780         a struct extraction, and having to know how big it might get.
10781         (walk_rtx): Operate entirely on an accum_extract structure.
10782         (print_path): Avoid unnecessary use of printf.
10783         (print_header): New function, split out of main.  Distinguish
10784         more carefully between an unrecognizable insn and an insn that
10785         has the code number of a define_expand.
10786         (main): Pass insn_code_number to gen_insn.  Call print_header
10787         only after parsing.  Avoid unnecessary use of printf.
10788         * Makefile.in (build/vec.o): New rule.
10789         (build/genextract): Depend on build/vec.o.
10790         (build/genextract.o): Don't depend on insn-config.h.
10791
10792 2006-01-22  Zack Weinberg  <zackw@panix.com>
10793
10794         * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
10795         $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
10796         practical.  Eliminate per-generator-program link rules.
10797
10798 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
10799
10800         PR middle-end/24437
10801         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
10802         with a call expr to ...
10803         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
10804
10805 2006-01-23  Richard Guenther  <rguenther@suse.de>
10806
10807         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
10808         before make_edge with conditional EDGE_TRUE_VALUE.
10809
10810 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
10811         Jan Hubicka  <jh@suse.cz>
10812         Richard Guenther  <rguenther@suse.de>
10813
10814         PR rtl-optimization/25654
10815         * cfgexpand.c (aggregate_contains_union_type): New function.
10816         (add_alias_set_conflicts): Call it.  Make sure to add conflicts
10817         for structure variables that contain a union type.
10818
10819 2006-01-23  Richard Sandiford  <richard@codesourcery.com>
10820
10821         * gengtype.c (new_structure): Return the structure.
10822         (create_option): Add an extra "next" argument.
10823         (create_field): New function.
10824         (adjust_field_rtx_def): Use create_option and create_field.
10825         Remove a now-unnecessary call to find_structure.
10826         (adjust_field_tree_def): Likewise.
10827         (note_yacc_type): Remove an unnecessary call to find_structure.
10828         * gengtype.h (new_structure): Return the structure.
10829         (create_option): Add an extra argument.
10830         * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
10831         (option): Adjust calls to create_option.
10832
10833 2006-01-22  David Edelsohn  <edelsohn@gnu.org>
10834
10835         * config/rs6000/aix.h (STACK_BOUNDARY): Define.
10836
10837 2006-01-22  Paul Brook  <paul@codesourcery.com>
10838         Peter Barada  <peter@the-baradas.com>
10839
10840         * config/m68k/m68k.md: Add Coldfire FPU support.
10841         Define FP mode macro and associated attributes.
10842         Use it for float mode patterns.
10843         * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
10844         (LIBCALL_VALUE): Use m68k_libcall_value.
10845         * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
10846         (m68k_function_value): Ditto.
10847         (emit_move_sequence): Ditto.
10848         * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
10849         * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
10850         * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
10851         (MULTILIB_EXCEPTIONS): Ditto.
10852         * config/m68k/m68k.opt: Add mcfv4e.
10853         * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
10854         (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
10855         (m68k_output_function_prologue): Save ColdFire FPU registers.
10856         (m68k_output_function_epilogue): Restore ColdFire FPU registers.
10857         (force_mode, fp_reg_operand, emit_move_sequence): New functions.
10858         (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
10859         ColdFire FPU registers.
10860         (m68k_libcall_value, m68k_function_value): New functions.
10861         * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
10862         (LIBCALL_VALUE): Use m68k_libcall_value.
10863         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
10864         (MASK_COLDFIRE): Add MASK_CFV4E.
10865         (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
10866         (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
10867         (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
10868         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
10869         (GO_IF_LEGITIMATE_ADDRESS): Use it.
10870         (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
10871         * doc/invoke.tex: Document -mcfv4e on m68k.
10872
10873 2006-01-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
10874
10875         * doc/contribute.texi: Change CVS to SVN and update the corresponding
10876         URL.
10877
10878 2006-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10879
10880         PR c++/16190
10881         * c-opts.c (c_common_handle_option): Don't include
10882         -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
10883         * doc/invoke.texi (C++ Dialect Options): Document that
10884         -Wnon-virtual-dtor is no longer included in -Wall.
10885
10886 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
10887
10888         * gcov.c (print_version), gcov-dump.c (print_version),
10889         mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
10890         dates.
10891
10892 2006-01-21  Kenneth Zadeck <zadeck@naturalbridge.com>
10893
10894         * df-scan.c (problem_SCAN): Added NULL reset function.
10895         (df_scan_reset_blocks): Added code to call reset block function
10896         (df_bb_refs_delete) Fixed comment.
10897         (df_insn_refs_delete): Made tolerant of deleting non existent info
10898         for dataflow problems that need to be reset.
10899         * df-core.c (df_set_blocks): Ditto.
10900         * df.h (struct df_problem): Added reset_fun.
10901         * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
10902         problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
10903         (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
10904         functions to clear out all references to def-use or use-def chains.
10905
10906 2006-01-21  Ben Elliston  <bje@au.ibm.com>
10907
10908         * varasm.c (assemble_real): Initialise data array.
10909
10910 2006-01-20  Paul Brook  <paul@codesourcery.com>
10911
10912         Merge from csl-arm-branch.
10913         2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
10914         * config/arm/arm.md (movdi): Force operands[1] to a register
10915         if we have a non-register source.
10916         (*arm_movdi, *movdf_soft_insn): Require that one of the
10917         operands be a register.
10918         * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
10919         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
10920
10921 2006-01-20  DJ Delorie  <dj@redhat.com>
10922
10923         * varasm.c (initializer_constant_valid_p): Allow pointers
10924         initialized from integer constants of lesser precision.
10925         (output_constant): Allow non-int-sized pointer modes to be
10926         initialized from integer constants.
10927
10928 2006-01-20  Joseph S. Myers  <joseph@codesourcery.com>
10929
10930         PR libstdc++/25524
10931         * cppdefault.h (struct default_include): Add multilib flag.
10932         * cppdefault.c (cpp_include_defaults): Set it.
10933         * c.opt (-imultilib): New option.
10934         * c-opts.c (imultilib): New.
10935         (c_common_handle_option): Handle -imultilib.
10936         (c_common_post_options): Likewise.
10937         * c-incpath.c (add_standard_paths, register_include_chains):
10938         Likewise.
10939         * c-incpath.h (register_include_chains): Add extra parameter.
10940         * gcc.c (do_spec_1): Generate -imultilib option.
10941         (The Specs Language): Update %I description.
10942         (process_command): Update copyright notice.
10943         * doc/cppopts.texi (-imultilib): Document.
10944         * doc/invoke.texi (-imultilib): Include in option summary.
10945         (%I): Update specs documentation.
10946
10947 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
10948
10949         * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
10950
10951 2006-01-20  Richard Sandiford  <richard@codesourcery.com>
10952
10953         * stmt.c (case_bit_test_cmp): Stabilize the sort using code
10954         label numbers.
10955
10956 2006-01-20  Richard Guenther  <rguenther@suse.de>
10957         Steven Bosscher <stevenb.gcc@gmail.com>
10958
10959         PR rtl-optimization/24626
10960         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
10961         EDGE_TRUE_VALUE if in RTL mode.
10962
10963         Revert
10964         2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
10965         * cfgrtl.c (rtl_verify_flow_info_1): Fix.
10966
10967 2006-01-20  Dirk Mueller  <dmueller@suse.com>
10968
10969         PR c++/5520
10970         * c-parser.c (c_parser_if_body): Use build_empty_stmt()
10971         instead of a special NOP marker.
10972         * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
10973         NOP marker handling.
10974         * c-common.h (empty_body_warning): Add forward declaration.
10975         * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
10976         Now uses IS_EMPTY_STMT() instead of special NOP markers.
10977
10978 2006-01-20  Paul Brook  <paul@codesourcery.com>
10979
10980         * Makefile.in (lang_checks): Keep going if mkdir fails.
10981
10982 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
10983
10984         * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
10985         be able to clean out basic block when not necessary.
10986         (df_scan_free): Fixed to properly delete information if df is
10987         unused before calling df_finish.
10988         (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
10989         df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
10990         or comment typos.
10991         (df_bb_refs_delete): New function.
10992         (df_refs_delete): Moved per block code to df_bb_refs_delete.
10993         * df-core.c (df_set_blocks): Added code to properly clean out
10994         unused blocks if they are not part of the blocks to consider.
10995         Added additional null check.
10996         (df_compact_blocks): Added basic block parameter to free_bb_fun to
10997         be able to clean out basic block when not necessary
10998         * df.h (df_free_bb_function): Ditto.
10999         (df_bb_refs_delete): New function.
11000         * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
11001         df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
11002         basic block parameter to be able to clean out basic block when not
11003         necessary.
11004         (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
11005         (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
11006         Fixed to properly delete information if df is unused before
11007         calling df_finish.
11008
11009 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
11010
11011         PR rtl-optimization/25799
11012         * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
11013         Corrected confluence operator to remove bits from op2 before oring
11014         with op1 rather than removing bits from op1.
11015         (df_ru_transfer_function): Corrected test on wrong bitmap which
11016         caused infinite loop.  Both of these problems were introduced in
11017         the dataflow rewrite.
11018
11019 2006-01-19  DJ Delorie  <dj@redhat.com>
11020
11021         * reload1.c (find_reload_regs): Note the details of reload
11022         failures in the dump file.
11023         (spill_failure): Likewise.
11024
11025 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
11026
11027         * loop-iv.c: Include df.h and hashtab.h.
11028         (enum iv_grd_result): New enum.
11029         (DF_REF_IV, DF_REF_IV_SET): New macros.
11030         (struct biv_entry): New.
11031         (df, bivs): New global variables.
11032         (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
11033         assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
11034         Removed.
11035         (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
11036         iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
11037         analyzed_for_bivness_p, record_biv): New functions.
11038         (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
11039         get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
11040         iv_analyze, biv_p, iv_analysis_done): Work with df representation of
11041         UD chains.
11042         (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
11043         analysed.
11044         (iv_number_of_iterations): Use new interface to iv analysis.
11045         * loop-unroll.c: Do not include varray.h.
11046         (analyze_iv_to_split_insn): Use new interface to iv
11047         analysis.
11048         * loop-unswitch.c (may_unswitch_on): Ditto.
11049         * df.c (df_bitmaps_free): Only work for bbs for that structures are
11050         allocated.
11051         (df_bb_modify): Realloc tables to the new index.
11052         (df_find_use): New function.
11053         * df.h (df_find_use): Declare.
11054         * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
11055         outmode.
11056         * cfgloop.h (struct rtx_iv): Remove analysed field.
11057         (iv_get_reaching_def): Removed.
11058         (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
11059         * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
11060         (loop-iv.o): Add df.h and hashtab.h dependency.
11061         * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
11062
11063 2006-01-20  Alan Modra  <amodra@bigpond.net.au>
11064
11065         PR target/25668
11066         * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
11067         Double TFmode.
11068         (__floatundisf, __floatundidf): Likewise.
11069         * libgcc2.h (IS_IBM_EXTENDED): Define.
11070
11071 2006-01-19  DJ Delorie  <dj@redhat.com>
11072
11073         * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
11074
11075 2006-01-19  Paul Brook  <paul@codesourcery.com>
11076
11077         * config/arm/arm.c (arm_compute_func_type): Treat all functions
11078         as nothrow when unwinding tables are disabled.
11079
11080 2006-01-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11081
11082         PR testsuite/25171
11083         * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
11084         of bit-field" when in system header.
11085
11086 2006-01-19  DJ Delorie  <dj@redhat.com>
11087
11088         * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
11089         the 16 bit shift limit of the m16c.
11090
11091 2006-01-19  Andrew Pinski  <pinskia@physics.uc.edu>
11092
11093         PR target/22099
11094         * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
11095         * config/i386/i386.c (output_set_got): Output the label if we have one
11096         for the TARGET_DEEP_BRANCH_PREDICTION case.
11097
11098 2006-01-19  Jan Hubicka  <jh@suse.cz>
11099             H.J. Lu  <hongjiu.lu@intel.com>
11100             Evandro Menezes <evandro.menezes@amd.com>
11101
11102         * invoke.texi (generic): Document
11103         (i686) Update.
11104         * config.gcc: Make x86_64-* and i686-* default to generic tunning.
11105         * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
11106         TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
11107         (x86_use_incdec, x86_pad_returns): New variables
11108         (TARGET_CPU_DEFAULT_generic): New constant
11109         (TARGET_CPU_DEFAULT_NAMES): Add generic.
11110         (enum processor_type): Add generic32 and generic64.
11111         * i386.md (cpu attribute): Add generic32/generic64
11112         (movhi splitter): Behave sanely when both partial_reg_dependency and
11113         partial_reg_stall are set.
11114         (K8 splitters): Enable for generic as well.
11115         * predicates.md (incdec_operand): Use TARGET_INCDEC
11116         (aligned_operand): Avoid memory mismatch stalls.
11117         * athlon.md: Enable for generic64, new patterns for 128bit moves.
11118         * ppro.md: Enable for generic32
11119         * i386.c (generic64_cost, generic32_cost): New.
11120         (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
11121         (x86_use_leave): Enable for generic64.  (x86_use_sahf,
11122         x86_ext_80387_constants): Enable for generic32.  (x86_push_memory,
11123         x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
11124         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
11125         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
11126         x86_partial_reg_dependency, x86_memory_mismatch_stall,
11127         x86_accumulate_outgoing_args, x86_prologue_using_move,
11128         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
11129         x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
11130         Enable for generic.
11131         (x86_use_incdec, x86_pad_returns): New.
11132         (override_options): Add generic32 and generic64, translate "generic"
11133         to generic32/generic64 and "i686" to "generic32", refuse
11134         "generic32"/"generic64" as arch target.
11135         (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
11136         (ix86_reorg): Honor PAD_RETURNS.
11137
11138 2006-01-19  Diego Novillo  <dnovillo@redhat.com>
11139
11140         * tree-pretty-print.c (dump_generic_node): Handle
11141         OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
11142         * cgraph.c (cgraph_expand_queue): Rename from
11143         cgraph_analyze_queue.  Update all users.
11144         * cgraphunit.c (cgraph_assemble_pending_functions): Process
11145         cgraph_expand_queue.
11146         (cgraph_expand_all_functions): Likewise.
11147         (cgraph_finalize_pending_functions): Remove.  Update callers.
11148
11149         * tree.h (OMP_DIRECTIVE_P): Define.
11150         (OMP_PARALLEL_FN): Define.
11151         (OMP_PARALLEL_DATA_ARG): Define.
11152         (OMP_SECTIONS_SECTIONS): Define.
11153         * tree-pass.h (pass_expand_omp): Declare.
11154         * omp-low.c (struct omp_region): Declare.
11155         (struct omp_context): Remove fields 'parallel_type',
11156         'parallel_start_ix' and 'parallel_start_additional_args'.
11157         Update all users.
11158         (struct omp_for_data): Rename from struct expand_omp_for_data.
11159         (omp_regions): New static variable.
11160         (root_omp_region): New static variable.
11161         (find_omp_clause): Make static.
11162         (is_in_combined_parallel_ctx): Remove.
11163         (is_combined_parallel): New.
11164         (extract_omp_for_data): Move earlier in the file.
11165         (workshare_safe_to_combine_p): New.
11166         (get_ws_args_for): New.
11167         (determine_parallel_type): Move earlier in the file.
11168         (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
11169         child function.
11170         (omp_copy_decl): Likewise.
11171         (create_omp_child_function): Likewise.
11172         (lookup_omp_region): New.
11173         (dump_omp_region): New.
11174         (debug_omp_region): New.
11175         (debug_all_omp_regions): New.
11176         (new_omp_region): New.
11177         (scan_omp_parallel): If parallel_nesting_level > 1, the
11178         directive is nested within another parallel directive.
11179         Set OMP_PARALLEL_FN.
11180         (scan_omp_for): Do not try to handle combined parallel+for
11181         cases.
11182         Remove FIXME comment.
11183         (scan_omp_nested): Remove.
11184         (scan_omp_1): Do not call scan_omp_nested when
11185         parallel_nesting_level is > 1.
11186         Do not change the DECL_CONTEXT of local variables found.
11187         (lookup_decl_in_outer_ctx): New.
11188         (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
11189         (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
11190         (lower_reduction_clauses): Rename from expand_reduction_clauses.
11191         (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
11192         If CTX is nested, lookup VAR in the outer context when
11193         building copy assignment.
11194         (lower_send_clauses): Rename from expand_send_clauses.
11195         If CTX is nested, lookup VAR in the outer context when
11196         building copy assignments.
11197         (lower_send_shared_vars): Rename from expand_send_shared_vars.
11198         If CTX is nested, lookup VAR in the outer context when
11199         building copy assignments.
11200         (expand_parallel_call): Rename from build_parallel_call.
11201         Handle combined parallel+workshare cases.
11202         Re-implement to emit code into the CFG.
11203         (list2chain): New.
11204         (expand_omp_parallel): Re-implement to emit code into the CFG.
11205         Call move_sese_region_to_fn to outline the sub-graph
11206         containing the parallel region.
11207         (expand_omp_for_1): Remove.
11208         (expand_omp_for_generic): Re-implement to emit code into the
11209         CFG.
11210         (expand_omp_for_static_nochunk): Likewise.
11211         (expand_omp_for_static_chunk): Likewise.
11212         (expand_omp_for): Likewise.
11213         (expand_omp_sections): Likewise.
11214         (remove_exit_barriers): New.
11215         (expand_omp_synch): New.
11216         (expand_omp): New.
11217         (build_omp_regions_1): New.
11218         (build_omp_regions): New.
11219         (execute_expand_omp): New.
11220         (gate_expand_omp): New.
11221         (pass_expand_omp): Define.
11222         (lower_omp_sections): Rename from expand_omp_sections.
11223         Set OMP_SECTIONS_SECTIONS.
11224         (lower_omp_single_simple): Rename from expand_omp_single_simple.
11225         (lower_omp_single_copy): Rename from expand_omp_single_copy.
11226         (lower_omp_single): Rename from expand_omp_simple.
11227         (lower_omp_master): Rename from expand_omp_master.
11228         (lower_omp_ordered): Rename from expand_omp_ordered.
11229         (lower_omp_critical): Rename from expand_omp_critical.
11230         (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
11231         (lower_omp_for): Re-implement.
11232         (lower_omp_parallel): Re-implement.
11233         (lower_regimplify): Rename from expand_regimplify.
11234         (lower_omp_1): Rename from expand_omp_1.
11235         If there are syntax errors in the program, replace every
11236         OpenMP directive with NOP.
11237         Call lower_omp_* instead of expand_omp_*.
11238         (lower_omp): Rename from expand_omp.
11239
11240         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
11241         * tree-gimple.h (enum omp_parallel_type): Remove.
11242         (gimple_boolify): Declare extern.
11243         (find_omp_clause, determine_parallel_type): Remove.
11244
11245         * gimple-low.c (lower_omp_directive): New.
11246         (lower_stmt): Call it.
11247         (record_vars_into): Move from ...
11248         (record_vars): ... here.
11249         Call record_vars_into with current_function_decl.
11250
11251         * gimplify.c (struct gimplify_ctx): Remove fields
11252         combined_pre_p and combined_ctxp.  Update users.
11253         (get_formal_tmp_var): Add documentation.
11254         (gimple_boolify): Make extern.
11255         (gimplify_expr_in_ctx): Remove.  Update callers.
11256         (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
11257         will always be a BIND_EXPR.
11258         (gimplify_expr): Handle OMP_RETURN_EXPR.
11259         * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
11260         (OMP_PARALLEL): Add 3 operands.
11261         (OMP_SECTIONS): Add 1 operand.
11262         (OMP_RETURN_EXPR): Define.
11263
11264         * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
11265         (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
11266         * tree-iterator.c (alloc_stmt_list): Assert that we are not
11267         creating a circular free list.
11268         (free_stmt_list): Assert that we are not freeing stmt_list_cache.
11269
11270         * tree-flow.h (move_sese_region_to_fn): Declare.
11271         (record_vars_into): Declare.
11272         * tree-cfg.c (make_omp_sections_edges): New.
11273         (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
11274         OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
11275         OMP_SECTIONS and OMP_SECTION.
11276         (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
11277         (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
11278         (verify_stmt): Do not handle OMP_DIRECTIVE_P.
11279         (gather_blocks_in_sese_region): New.
11280         (struct move_stmt_d): Declare.
11281         (move_stmt_r): New.
11282         (move_block_to_fn): New.
11283         (move_sese_region_to_fn): New.
11284
11285         * passes.c (init_optimization_passes): Schedule
11286         pass_expand_omp after pass_init_datastructures.
11287
11288         * tree-ssa-operands.c (get_expr_operands): Handle
11289         OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
11290         OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
11291
11292 2006-01-19  Jeff Law  <law@redhat.com>
11293
11294         * tree-vrp.c (extract_range_from_assert): Refine the result range
11295         if the variable referenced by the ASSERT_EXPR has a range and
11296         either the tentative result range or the previous range is a
11297         VR_ANTI_RANGE.
11298
11299 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
11300
11301         * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
11302
11303 2006-01-19  Jan Hubicka  <jh@suse.cz>
11304
11305         * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
11306
11307 2006-01-19  Paolo Bonzini  <bonzini@gnu.org>
11308
11309         * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
11310         (expand_compound_operation, expand_field_assignment): Fail if the
11311         bit lengths of an extract operation are out of range.
11312         (make_extraction): Compute wanted_inner_mode based on the position
11313         and length of the extraction.  Make it extraction_mode for non-constant
11314         positions, and do not modify offset in that case.  When generating a
11315         new MEM, use a mode that can hold the extraction while keeping correct
11316         alignment.  Remove code that supported MEMs wrapped by USEs.
11317         (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
11318
11319 2006-01-19  Andreas Krebbel  <krebbel1@de.ibm.com>
11320
11321         * config/s390/s390.md ("Y", "y"): New mode attribute.
11322         ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
11323         "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
11324         "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
11325         "*addsi3_imm_cc", "*addsi3_carry1_cc",
11326         "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
11327         "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
11328         "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
11329         "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
11330         "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
11331         "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
11332         "addsi3", "subsi3"): Insn patterns removed.
11333         ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
11334         "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
11335         "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
11336         "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
11337         "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
11338         "*sub<mode>3_cconly2"): New insn patterns.
11339         ("addsi3", "subsi3"): New expanders.
11340
11341 2006-01-19  Dorit Nuzman  <dorit@il.ibm.com>
11342
11343         * Makefile.in (tree-vect-patterns.o): Add rule for new file.
11344         * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
11345         existing STMT_VINFO_VECTYPE if available.
11346         (vect_mark_relevant): Add special handling for stmts that are
11347         marked as STMT_VINFO_IN_PATTERN_P.
11348         (vect_analyze_loop): Call vect_pattern_recog.
11349         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
11350         * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
11351         stmt_info.
11352         (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
11353         (vect_recog_func_ptr): New function-pointer type.
11354         * tree-vect-patterns.c: New file.
11355         (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
11356         (vect_recog_dot_prod_pattern, vect_pattern_recog):
11357         (vect_pattern_recog_1): New functions.
11358         (vect_pattern_recog_funcs): New array of function pointers.
11359
11360         * tree-vectorizer.h (ternary_op): New enum value.
11361         * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
11362         declaration. Revised documentation. Removed redundant dump prints.
11363         Removed redundant argument. Added support for reduction patterns.
11364         (vectorizable_reduction): Added support for reduction patterns.
11365         (vect_transform_stmt): Added support for patterns.
11366
11367         * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
11368         * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
11369         * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
11370         (expand_widen_pattern_expr): New function.
11371         (init_optabs): Initialize new optabs udot_prod_optab,
11372         sdot_prod_optab.
11373         * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
11374         (sdot_prod_optab, udot_prod_optab): Define new optabs.
11375         (expand_widen_pattern_expr): New function declaration.
11376         * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
11377         tree-codes.
11378         * tree-inline.c (estimate_num_insns_1): Added cases for new
11379         tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
11380         * tree-pretty-print.c (dump_generic_node): Likewise.
11381         (op_prio): Likewise.
11382         (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
11383         * tree-ssa-operands.c (get_expr_operands): Added case for
11384         DOT_PROD_EXPR.
11385         * tree-vect-patterns.c (widened_name_p): New function.
11386         (vect_recog_dot_prod_pattern): Added function implementation.
11387         * tree-vect-transform.c (get_initial_def_for_reduction): Added
11388         cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
11389         * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
11390         * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
11391
11392         * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
11393         * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
11394         * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
11395         (init_optabs): Initialize new optabs widen_ssum_optab,
11396         widen_usum_optab.
11397         * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
11398         (widen_ssum_optab, widen_usum_optab): Define new optabs.
11399         * tree-vect-generic.c: (expand_vector_operations_1): Check type of
11400         use instead of type of def.
11401         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
11402         function implementation.
11403         * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
11404         widen_ssumv8hi): New.
11405
11406         * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
11407         patterns.
11408
11409 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
11410
11411         PR c/25805
11412         * c-decl.c (add_flexible_array_elts_to_size): New function.
11413         (finish_decl): Use it.
11414
11415 2006-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
11416
11417         * diagnostic.h: Include options.h.
11418         * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
11419         dependancies for diagnostic.h.
11420         * Makefile.in (DIAGNOSTIC_H): Add options.h.
11421
11422 2006-01-16  Daniel Berlin  <dberlin@dberlin.org>
11423
11424         * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
11425         (ssa_ro_call_cache_valid): Ditto.
11426         * tree-ssa-alias.c (sort_tags_by_id): New function.
11427         (init_transitive_clobber_worklist): Ditto.
11428         (add_to_worklist): Ditto.
11429         (mark_aliases_call_clobbered): Ditto.
11430         (compute_tag_properties): Ditto.
11431         (set_initial_properties): Ditto.
11432         (compute_call_clobbered): Ditto.
11433         (compute_may_aliases):  Call compute_call_clobbered and grouping.
11434         (compute_flow_sensitive_aliasing): Remove clobbering related code.
11435         (compute_flow_insensitive_aliasing): Grouping now happens in our
11436         caller.
11437         (setup_pointers_and_addressables): Remove clobbering related code.
11438         (add_may_alias): Ditto.
11439         (replace_may_alias): Ditto.
11440         (get_nmt_for): Ditto.
11441         (create_global_var):
11442         (is_escape_site): Return an escape_type enumeration.
11443         * tree-flow-inline.h (is_call_clobbered): Global var does not
11444         imply call clobbered.
11445         (mark_call_clobbered): Take a reason for marking this. Remove
11446         marking of globalness, and cache invalidation.
11447         (clear_call_clobbered): Remove cache invalidation code.
11448         * tree-dfa.c (dump_variable): If details is on, dump the reason
11449         for escaping.
11450         * tree-outof-ssa.c (create_temp): Copy escape mask from original
11451         variable.
11452         * tree-flow.h (struct ptr_info_def): Add escape mask member.
11453         (struct var_ann_d): Ditto.
11454         (enum escape_type): New.
11455         (mark_call_clobbered): Adjust prototype.
11456         * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
11457         are never call clobbered.
11458         Record reasons for escaping.
11459         * tree-ssa-structalias.h (is_escape_site): Update prototype.
11460         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
11461         (ssa_ro_call_cache_valid): Ditto.
11462         (clobbered_v_may_defs): Ditto.
11463         (clobbered_vuses): Ditto.
11464         (ro_call_vuses): Ditto.
11465         (clobber_stats): New.
11466         (init_ssa_operands): Zero out clobber stats.
11467         (fini_ssa_operands): Print out clobber stats.
11468         (get_call_expr_operands): Pass callee fndecl to
11469         add_call_read_ops).
11470         (add_call_clobber_ops): Remove use of cache.
11471         Add use of PURE_CONST information.
11472         (add_call_read_ops): Remove use of cache.
11473         Add use of static not_read information.
11474
11475 2006-01-18  Alexandre Oliva  <aoliva@redhat.com>
11476
11477         Introduce TLS descriptors for i386 and x86_64.
11478         * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
11479         (TARGET_ANY_GNU_TLS): New macro.
11480         (enum tls_dialect): Added TLS_DIALECT_GNU2.
11481         (struct machine_function): Add tls_descriptor_call_expanded_p.
11482         (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
11483         (ix86_current_function_calls_tls_descriptor): Likewise.
11484         * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
11485         (override_options): Introduce gnu2 tls dialect.
11486         (ix86_frame_pointer_required): Functions containing TLSCALLs are
11487         not leaves.
11488         (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
11489         Likewise.
11490         (legitimize_tls_address): Adjust logic for GNU2 TLS.
11491         (ix86_init_machine_status): Initialize new field.
11492         (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
11493         (ix86_tls_module_base): New.
11494         * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
11495         * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
11496         (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
11497         (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
11498         (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
11499         (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
11500         (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
11501         (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
11502         * config/i386/predicates.md (tls_modbase_operand): New.
11503         (tp_or_register_operand): New.
11504
11505 2006-01-18  Daniel Berlin  <dberlin@dberlin.org>
11506
11507         * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
11508         (look_for_address_of): Ditto.
11509         (ipa_init): Walk the function decls.
11510         (static_execute): Don't set readonly on FUNCTION_DECL's.
11511
11512 2006-01-18  Roger Sayle  <roger@eyesopen.com>
11513
11514         * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
11515         for shifts where the source and destination registers are different.
11516
11517 2006-01-18  Paul Brook  <paul@codesourcery.com>
11518
11519         Merge from csl-arm-branch.
11520         2005-03-14  Julian Brown  <julian@codesourcery.com>
11521         * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
11522         (aeabi_llsl): Likewise.
11523         (ashrdi3): Likewise.
11524         (aeabi_lasr): Likewise.
11525         (lshrdi3): Likewise.
11526         (aeabi_llsr): Likewise.
11527         2005-03-10  Julian Brown  <julian@codesourcery.com>
11528         * config.gcc: Disable shared libgcc for SymbianOS.
11529         * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
11530
11531 2006-01-18  DJ Delorie  <dj@redhat.com>
11532
11533         * c-pragma.c (handle_pragma_diagnostic): New.
11534         (init_pragma): Register it.
11535         * doc/extend.texi: Document it.
11536
11537         * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
11538         * diagnostic.h (diagnostic_classify_diagnostic): Declare.
11539         (diagnostic_context): Add classify_diagnostic[].
11540         * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
11541         as errors if they're overridden to DK_WARNING.
11542         (diagnostic_initialize): Initialize classify_diagnostic[].
11543         (diagnostic_set_kind_override): New.
11544         (diagnostic_report_diagnostic): Check for kind changes.
11545         * opts.c (common_handle_option): Take lang_mask.  Update callers.
11546         Handle OPT_Werror_.
11547         * common.opt (Werror=): New.
11548         * doc/invoke.texi: Document -Werror=*
11549
11550 2006-01-18  Jeff Law  <law@redhat.com>
11551
11552         * tree-vrp.c (test_for_singularity): Correct test for new
11553         min limit.  Use operand_equal_p rather than pointer equality
11554         for testing if new min/max values are equal.
11555
11556         * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
11557         using range information until after propagation and folding.
11558
11559 2006-01-18  Richard Henderson  <rth@redhat.com>
11560             Aldy Hernandez  <aldyh@redhat.com>
11561             Jakub Jelinek  <jakub@redhat.com>
11562             Diego Novillo  <dnovillo@redhat.com>
11563
11564         * omp-low.c: New file.
11565         * c-omp.c: New file.
11566
11567 2006-01-18  Richard Henderson  <rth@redhat.com>
11568             Jakub Jelinek  <jakub@redhat.com>
11569             Diego Novillo  <dnovillo@redhat.com>
11570
11571         * doc/invoke.texi: Document -fopenmp.
11572         * tree-dump.h (debug_function): Declare.
11573         * hooks.c (hook_bool_tree_bool_false): New function.
11574         (hook_tree_tree_null): Remove.
11575         (hook_tree_tree_tree_null): New.
11576         * hooks.h: Update to match.
11577         * tree-pretty-print.c (debug_tree_chain): New.
11578         (print_generic_expr): Handle TDF_CHAIN.
11579         (dump_generic_node): Handle BLOCK.
11580         Do not abort with incomplete SWITCH_EXPRs.
11581         Do not dump body of an OpenMP directive if TDF_SLIM is given.
11582         <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
11583         print space after directive name.
11584         <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
11585         Handle OMP_MASTER and OMP_ORDERED.
11586         Handle printing of OMP_BODY just in one place, goto
11587         dump_omp_body in the rest of OMP_* nodes that have
11588         OMP_BODY.
11589         Don't handle clause nodes here.  Update omp statements to
11590         use dump_omp_clauses.
11591         Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
11592         OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
11593         OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
11594         GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
11595         GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
11596         GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
11597         Adjust output for GOMP_PARALLEL.
11598         (dump_omp_clauses): New.
11599         (print_declaration): Dump DECL_VALUE_EXPR.
11600         (op_symbol_1): Split out of op_symbol.
11601         (dumping_stmts): Remove.  Update all users.
11602         * cgraph.c (cgraph_analyze_queue): New.
11603         (cgraph_add_new_function): New.
11604         * cgraph.h (cgraph_analyze_queue): Declare.
11605         (cgraph_add_new_function): Declare.
11606         (cgraph_lower_function): Remove.
11607         * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
11608         nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
11609         and TYPE_P nodes in its default clause.
11610         (empty_body_p): New.
11611         (tree_range_check_failed): New.
11612         (build5_stat): New.
11613         * tree.h (OMP_CLAUSE_REDUCTION_INIT,
11614         OMP_CLAUSE_REDUCTION_MERGE,
11615         OMP_CLAUSE_REDUCTION_PLACEHOLDER,
11616         OMP_CLAUSE_PRIVATE_DEBUG,
11617         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
11618         OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
11619         OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
11620         OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
11621         OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
11622         OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
11623         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
11624         OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
11625         OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
11626         OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
11627         OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
11628         OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
11629         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
11630         OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
11631         (TREE_RANGE_CHECK): New.
11632         (empty_body_p): Declare.
11633         (enum omp_clause_default_kind): New.
11634         (build_string_literal): Declare.
11635         (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
11636         (build5_stat, build5): Declare.
11637         * tree-pass.h (TDF_CHAIN): Define.
11638         * tree-pass.h (PROP_gimple_lomp): Define.
11639         (pass_lower_omp): Declare.
11640         * diagnostic.h (debug_tree_chain): Declare.
11641         * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
11642         mode_for_size.
11643         (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
11644         * builtins.c (build_string_literal): Make extern.
11645         * gcc.c (include_spec_function): New.
11646         (static_spec_functions): Add it.
11647         (main): Move load of libgomp.spec ...
11648         (LINK_COMMAND_SPEC): ... here.
11649         (link_gomp_spec): New.
11650         (static_specs): Include it.
11651         (LINK_COMMAND_SPEC): Add link_gomp.
11652         (GOMP_SELF_SPECS): New.
11653         (driver_self_specs): Include it.
11654         (switch_matches): Don't mark inline.
11655         (main): Load libgomp.spec.
11656         * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
11657         OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
11658         and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
11659         * tree-gimple.h (enum omp_parallel): Declare.
11660         (determine_parallel_type): Declare.
11661         (omp_firstprivatize_variable): Declare.
11662         (omp_reduction_init): Declare.
11663         (diagnose_omp_structured_block_errors): Declare.
11664         (struct walk_stmt_info): Add want_return_expr.
11665         (struct walk_stmt_info): Add want_bind_expr, want_locations.
11666         (find_omp_clause): Declare.
11667         (insert_field_into_struct): Declare.
11668         (struct walk_stmt_info): Move from tree-nested.c
11669         (walk_stmts): Declare.
11670         * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
11671         to 200505.
11672         * cgraphunit.c (cgraph_lower_function): Make static.
11673         (cgraph_finalize_pending_functions): New.
11674         (cgraph_finalize_function): Call it.
11675         (cgraph_finalize_compilation_unit): Likewise.
11676         * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
11677         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
11678         (BT_FN_UINT_UINT): New.
11679         (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
11680         DEF_FUNCTION_TYPE_VAR_4): Document.
11681         (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
11682         BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
11683         BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
11684         BT_FN_VOID_OMPFN_PTR_UINT_UINT,
11685         BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
11686         BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
11687         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
11688         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
11689         * builtins.def: Update DEF_BUILTIN comment to include COND argument.
11690         Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
11691         into separate files.
11692         (DEF_GOMP_BUILTIN): New.
11693         (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
11694         BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
11695         BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
11696         BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
11697         BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
11698         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
11699         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
11700         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
11701         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
11702         BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
11703         BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
11704         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
11705         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
11706         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
11707         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
11708         BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
11709         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
11710         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
11711         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
11712         BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
11713         BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
11714         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
11715         BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
11716         BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
11717         BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
11718         BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
11719         * sync-builtins.def: New file, moved from builtins.def.
11720         * omp-builtins.def: New file, moved from builtins.def.
11721         * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
11722         * gimple-low.c (lower_function_body): Clear data.
11723         (lower_stmt): Do not handle COMPOUND_EXPR.
11724         Remove call to print_node_brief.
11725         * c-tree.h (c_finish_omp_clauses): New prototype.
11726         (C_DECL_THREADPRIVATE_P): Define.
11727         (lookup_name_no_remap, c_omp_remap_private): Remove
11728         (c_begin_omp_parallel, c_finish_omp_parallel): Update.
11729         (check_for_loop_decls): Update decl.
11730         (lookup_name_no_remap, c_omp_remap_private): Declare.
11731         (build_indirect_ref, build_modify_expr, pushdecl,
11732         pushdecl_top_level): Move to c-common.h.
11733         * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
11734         before the switch, but just in the 2 places that need it.
11735         * c-decl.c (diagnose_mismatched_decls): Do not check for
11736         mismatched thread-local attributes when OLDDECL is marked
11737         threadprivate and NEWDECL has no thread-local attributes.
11738         (merge_decls): Merge C_DECL_THREADPRIVATE_P.
11739         (c_gimple_diagnostics_recursively): Rename from
11740         c_warn_unused_result_recursively.  Invoke
11741         diagnose_omp_structured_block_errors.
11742         (check_for_loop_decls): Return a singular decl found.
11743         * langhooks.c (lhd_omp_predetermined_sharing): Return
11744         OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
11745         (lhd_omp_firstprivatize_type_sizes): New.
11746         (lhd_omp_assignment): New.
11747         (lhd_omp_predetermined_sharing): New.
11748         * langhooks.h (struct gimplify_omp_ctx): Forward declare.
11749         (struct lang_hooks_for_types): Add
11750         omp_firstprivatize_type_sizes, omp_privatize_by_reference,
11751         omp_predetermined_sharing, omp_disregard_value_expr,
11752         omp_private_debug_clause, omp_clause_default_ctor,
11753         omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
11754         (c_finish_omp_clauses): New.
11755         (c_finish_bc_stmt): Diagnose break within omp for.
11756         (c_begin_omp_parallel, c_finish_omp_parallel): New.
11757         (build_unary_op): Return error_mark after reporting
11758         a readonly_error.
11759         (build_modify_expr): Likewise.
11760         * gimplify.c: Include optabs.h and pointer-set.h.
11761         (enum gimplify_omp_var_data): Declare.
11762         (struct gimplify_omp_ctx): Declare.
11763         (struct gimplify_ctx): Add fields prev_context, combined_pre_p
11764         and combined_ctxp.
11765         (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
11766         (push_gimplify_context, pop_gimplify_context): Allow nesting.
11767         (splay_tree_compare_decl_uid): New.
11768         (new_omp_context): New.
11769         (delete_omp_context): New.
11770         (gimple_add_tmp_var): Call omp_add_variable.
11771         (gimplify_bind_expr): Likewise.
11772         (gimplify_var_or_parm_decl): If omp_notice_variable returned
11773         true, disregard DECL_VALUE_EXPR on the decl if any.
11774         (gimplify_expr_in_ctx): New.
11775         (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
11776         omp_add_variable, omp_notice_variable, omp_is_private
11777         gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
11778         gimplify_adjust_omp_clauses, gimplify_omp_parallel
11779         gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
11780         gimplify_omp_atomic_fetch_op, goa_stabilize_expr
11781         gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
11782         gimplify_omp_atomic): New.
11783         (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
11784         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
11785         OMP_CRITICAL and OMP_ATOMIC.
11786         (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
11787         * c-pragma.h (enum pragma_kind): Add
11788         PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
11789         PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
11790         PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
11791         PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
11792         PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
11793         PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
11794         PRAGMA_OMP_THREADPRIVATE.
11795         * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
11796         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
11797         OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
11798         OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
11799         OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
11800         OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
11801         OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
11802         OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
11803         OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
11804         * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
11805         * tree-ssa-dce.c (find_control_dependence): Do not assume that
11806         ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
11807         * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
11808         OpenMP directives.
11809         (struct nesting_info): Add field_map,
11810         suppress_expansion, debug_var_chain.
11811         (create_nesting_tree): Initialize them.
11812         (lookup_field_for_decl): Use field_map.
11813         (get_nonlocal_debug_decl, get_local_debug_decl): New.
11814         (convert_local_omp_clauses): New.
11815         (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
11816         (walk_body): Split out of walk_function.
11817         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
11818         (convert_nonlocal_reference): Handle omp statements.
11819         (convert_local_reference): Likewise.
11820         (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
11821         (unnest_nesting_tree): New.
11822         (lower_nested_functions): Call it.
11823         (insert_field_into_struct): Make extern.
11824         (struct walk_stmt_info): Move to tree-gimple.h.
11825         (walk_stmts): Make extern.
11826         * omp-builtins.def: New file.
11827         * tree-iterator.c (expr_only): Clarify comment.
11828         * c-common.h (pushdecl_top_level, pushdecl,
11829         build_modify_expr, build_indirect_ref,
11830         c_finish_omp_master, c_finish_omp_critical,
11831         c_finish_omp_ordered, c_finish_omp_barrier,
11832         c_finish_omp_atomic, c_finish_omp_flush,
11833         c_finish_omp_for, c_split_parallel_clauses,
11834         omp_clause_default_kind, c_omp_sharing_predetermined,
11835         c_omp_remap_decl): Declare.
11836         * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
11837         (OBJS-common): Add omp-low.o.
11838         (c-omp.o, omp-low.o): Add.
11839         (gimplify.o): Add dependency on $(OPTABS_H).
11840         (GTFILES): Add omp-low.c.
11841         (gt-stringpool.h): Add.
11842         * tree-cfg.c (set_bb_for_stmt): Do not update the
11843         block-to-labels map if we are currently expanding to RTL.
11844         (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
11845         checks.
11846         Handle IDENTIFIER_NODE.
11847         (tree_verify_flow_info): Do not ICE when emitting error
11848         messages about invalid labels.
11849         (dump_function_to_file): Reset CFUN before emitting the body
11850         of the function.
11851         (debug_function): New.
11852         * passes.c (init_optimization_passes): Schedule
11853         pass_lower_omp.
11854         * langhooks-def.h (lhd_omp_predetermined_sharing,
11855         lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
11856         Declare.
11857         (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
11858         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
11859         (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
11860         LANG_HOOKS_OMP_PREDETERMINED_SHARING,
11861         LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
11862         LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
11863         LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
11864         LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
11865         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
11866         LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
11867         (LANG_HOOK_DECLS): Use them.
11868
11869 2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
11870             Richard Henderson  <rth@redhat.com>
11871             Jakub Jelinek  <jakub@redhat.com>
11872             Diego Novillo  <dnovillo@redhat.com>
11873
11874         * c-parser.c (pragma_omp_clause): Define.
11875         (c_parser_declaration_or_fndef): Document OpenMP syntax.
11876         (c_parser_compound_statement): Likewise.
11877         (c_parser_statement): Likewise.
11878         (c_parser_pragma): Handle omp pragmas.
11879         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
11880         OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
11881         (c_parser_omp_clause_name, check_no_duplicate_clause,
11882         c_parser_omp_variable_list,
11883         c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
11884         c_parser_omp_clause_copyprivate,
11885         c_parser_omp_clause_default,
11886         c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
11887         c_parser_omp_clause_lastprivate,
11888         c_parser_omp_clause_nowait,
11889         c_parser_omp_clause_num_threads,
11890         c_parser_omp_clause_ordered, c_parser_omp_clause_private,
11891         c_parser_omp_clause_reduction,
11892         c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
11893         c_parser_omp_all_clauses, c_parser_omp_structured_block,
11894         c_parser_omp_atomic, c_parser_omp_barrier,
11895         c_parser_omp_critical, c_parser_omp_flush,
11896         c_parser_omp_for_loop, c_parser_omp_for,
11897         c_parser_omp_master, c_parser_omp_ordered,
11898         c_parser_omp_sections_scope, c_parser_omp_sections,
11899         c_parser_omp_parallel, c_parser_omp_single,
11900         c_parser_omp_construct, c_parser_omp_threadprivate): New.
11901         * c-pragma.c (init_pragma): Do omp pragma registration here.
11902         * c.opt (fopenmp): New flag.
11903
11904 2006-01-18  Eric Christopher  <echristo@apple.com>
11905
11906         * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
11907         * config/darwin.h (GOMP_SELF_SPECS): Define.
11908
11909 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
11910
11911         * rtl.h: Remove the prototype for reg_alloc.
11912
11913 2006-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11914
11915         PR target/25731
11916         * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
11917         hppa[12]*-*-hpux11*): Override default shared libgcc version for both
11918         sjlj and dwarf2 exception handling.
11919         * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
11920         Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
11921         * pa/pa.c (function_value): Treat complex and vector types as
11922         aggregates.
11923         (function_arg): Likewise.  Only pass scalar floats in the floating
11924         point argument registers.
11925         * pa/t-slibgcc-dwarf-ver: New file.
11926         * pa/t-slibgcc-sjlj-ver: New file.
11927         * pa/t-slibgcc-elf-ver: Delete file.
11928
11929 2006-01-19  Alan Modra  <amodra@bigpond.net.au>
11930
11931         * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
11932         unlikely_test_section_p test.
11933
11934 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
11935
11936         * mode-switching.c (optimize_mode_switching): Make it static.
11937         * basic-block.h: Remove the prototype for
11938         optimize_mode_switching.
11939
11940         * modulo-sched.c (sms_schedule): Make it static.
11941         * rtl.h: Remove the prototype for sms_schedule.
11942
11943         * postreload-gcse.c (gcse_after_reload_main): Make it static.
11944         * rtl.h: Remove the prototype for gcse_after_reload_main.
11945
11946         * reg-stack.c (reg_to_stack): Make it static.
11947         * rtl.h: Remove the prototype for reg_to_stack.
11948
11949         * regrename.c (regrename_optimize, copyprop_hardreg_forward):
11950         Make them static.
11951         * rtl.h: Remove the prototypes for regrename_optimize and
11952         copyprop_hardreg_forward.
11953
11954 2006-01-18  Eric Botcazou  <ebotcazou@adacore.com>
11955
11956         * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
11957         alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
11958         Test against the appropriate null constant for the mode.
11959         If 'fixup_overlap' is true, swap the operands if they overlap.
11960         (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
11961         * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
11962         alpha_split_tmode_pair and adjust for above change.
11963         * config/alpha/alpha.md (movtf_internal): Adjust call to
11964         alpha_split_tfmode_pair and rely on it to swap the operands.
11965         (movti_internal): New insn and post-reload splitter.
11966         (movti): New expander.
11967
11968 2006-01-18  Philippe De Muyter  <phdm@macqel.be>
11969
11970         * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
11971         operands.
11972
11973 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
11974
11975         * rtlanal.c (global_reg_mentioned_p_1,
11976         global_reg_mentioned_p): Remove.
11977         * rtl.h: Remove the prototype for global_reg_mentioned_p.
11978
11979         * flow.c (initialize_uninitialized_subregs): Make it static.
11980         * rtl.h: Remove the prototype for
11981         initialize_uninitialized_subregs.
11982
11983         * function.c (instantiate_virtual_regs): Make it static.
11984         * function.h: Remove the prototype for
11985         instantiate_virtual_regs.
11986
11987         * regmove.c (regmove_optimize, combine_stack_adjustments):
11988         Make them static.
11989         * rtl.h: Remove the prototypes for regmove_optimize and
11990         combine_stack_adjustments.
11991
11992 2006-01-17  Roger Sayle  <roger@eyesopen.com>
11993
11994         * config/i386/i386.c (COSTS_N_BYTES): New macro.
11995         (size_cost): Encode costs in bytes so that a reg-reg addition is
11996         equivalent to COSTS_N_INSNS(1).
11997         (override_options): Use the size_cost.branch_cost as the default
11998         ix86_branch_cost when optimizing for size.
11999
12000 2006-01-18  Ben Elliston  <bje@au.ibm.com>
12001
12002         * Makefile.in (D32PBIT_FUNCS): New.
12003         (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
12004         (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
12005         D64PBIT_FUNCS and D128PBIT_FUNCS.
12006         (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
12007         * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
12008         D128PBIT are set.
12009         (decnumber_dep): Define.
12010         * doc/libgcc.texi (Decimal float library routines): New node.
12011         * config/dfp-bit.h, config/dfp-bit.c: New files.
12012
12013 2006-01-18  Ben Elliston  <bje@au.ibm.com>
12014
12015         * expr.c (emit_move_change_mode): Always adjust addresses, not
12016         just during reload.  Copy replacements only during reload.
12017         (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
12018         emit_move_via_integer.
12019
12020 2006-01-17  Shantonu Sen  <ssen@opendarwin.org>
12021
12022         * Makefile.in (check-%, check-consistency): Use $${srcdir}
12023         instead of $(srcdir) and ${srcdir}.
12024
12025 2006-01-17  Richard Earnshaw  <rearnsha@arm.com>
12026
12027         PR target/592
12028         PR middle-end/11135
12029         * arm.h (struct machine_function): Add pic_reg.
12030         * arm.c (arm_pic_register): Make unsigned.
12031         (arm_override_options): Only set arm_pic_register if
12032         TARGET_SINGLE_PIC_BASE.
12033         (use_return_insn): Only test for a pic register if it is fixed.
12034         (arm_compute_save_reg0_reg12_mask): Likewise.
12035         (thumb_compute_save_reg_mask): Likewise.
12036         (legitimate_pic_operand): Factor out some known invariants.
12037         (legitimize_pic_address): If we don't have a fixed pic register,
12038         then set up a pseudo in the function entry sequence.  Handle the
12039         pic base being in a pseudo.
12040         (arm_load_pic_register): Handle the pic register being in a pseudo.
12041         (arm_expand_prologue): Only set up the pic register if it is fixed.
12042         (thumb_expand_prologue): Likewise.
12043         * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
12044         (pic_load_addr_based_insn): Likewise.
12045         (builtin_setjmp_receiver): Don't restore the pic base if it isn't
12046         fixed.
12047
12048 2006-01-18  Ben Elliston  <bje@au.ibm.com>
12049
12050         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
12051         decimal float modes for all floating point registers.
12052
12053         * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
12054         match_code "mem" with match_test "macho_lo_sum_memory_operand".
12055
12056 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
12057
12058         PR c/25682
12059         * c-typeck.c (build_unary_op): Fold offsetof-like expressions
12060         even when the pointer is not NULL.
12061
12062 2006-01-16  Ian Lance Taylor  <ian@airs.com>
12063
12064         * common.opt (ftoplevel-reorder): New option.
12065         * cgraph.c (cgraph_asm_nodes): New global variable.
12066         (cgraph_asm_last_node): New static variable.
12067         (cgraph_order): New global variable.
12068         (cgraph_create_node): Set new order field.
12069         (cgraph_varpool_node): Likewise.
12070         (decide_is_variable_needed): Return true if not
12071         flag_toplevel_reorder.
12072         (cgraph_add_asm_node): New function.
12073         * cgraph.h (struct cgraph_node): Add order field.
12074         (struct cgraph_varpool_node): Add order field.
12075         (struct cgraph_asm_node): Define.
12076         (cgraph_asm_nodes, cgraph_order): Declare.
12077         (cgraph_add_asm_node): Declare.
12078         * cgraphunit.c (cgraph_varpool_assemble_decl): New static
12079         function.
12080         (cgraph_varpool_assemble_pending_decls): Call it.
12081         (cgraph_output_pending_asms): New static function.
12082         (cgraph_finalize_compilation_unit): Call it.
12083         (struct cgraph_order_sort): Define.
12084         (cgraph_output_in_order): New static function.
12085         (cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
12086         !flag_toplevel_reorder case.
12087         * c-parser.c: Include "cgraph.h".
12088         (c_parser_asm_definition): Call cgraph_add_asm_node rather than
12089         assemble_asm.
12090         * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
12091         than -fno-unit-at-a-time.
12092         * doc/invoke.texi (Option Summary): Mention
12093         -fno-toplevel-reorder.
12094         (Optimize Options): Document -fno-toplevel-reorder.  Mention it in
12095         -funit-at-a-time documentation.
12096
12097 2006-01-17  Hans-Peter Nilsson  <hp@axis.com>
12098             Kazu Hirata  <kazu@codesourcery.com>
12099
12100         * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
12101
12102 2006-01-17  Kazu Hirata  <kazu@codesourcery.com>
12103
12104         * Makefile.in (FUNCTION_H): New.  Use it instead of
12105         function.h throughout the file.
12106         * function.h: Include tree.h.
12107
12108 2006-01-17  Ben Elliston  <bje@au.ibm.com>
12109
12110         * recog.c: Separate some functions with whitespace.
12111
12112 2006-01-16  Richard Henderson  <rth@redhat.com>
12113
12114         Merge from gomp branch:
12115         * Makefile.in (TREE_INLINE_H): New.  Use it as needed.
12116         * tree-inline.h (struct copy_body_data): Move from tree-inline.c
12117         and rename from struct inline_data.  Rename callee* to dst*;
12118         caller* to src*; add copy_decl hook, transform_call_graph_edges,
12119         transform_new_cfg, transform_return_to_modify, and
12120         transform_lang_insert_block flags; remove cloning_p, versioning_p,
12121         update_clones_p.
12122         (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
12123         (copy_decl_for_dup): Remove.
12124         * tree-inline.c (struct inline_data): Move to header.
12125         (insert_decl_map): Export.
12126         (remap_decl): Update for member name changes.  Use copy_decl hook.
12127         Allow for replacement to be a non-decl.  Remove dead code.
12128         (remap_type_1): Check for existing mapping.
12129         (remap_type): Export.
12130         (remap_decls): Update for member name changes.
12131         (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
12132         (copy_body, setup_one_parameter, declare_return_variable): Likewise.
12133         (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
12134         (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
12135         (tree_function_versioning, build_duplicate_type): Likewise.
12136         (copy_body_r): Likewise.  Export.
12137         (copy_decl_for_dup): Split into ...
12138         (copy_decl_for_dup_finish, copy_decl_to_var,
12139         copy_decl_no_change, copy_decl_maybe_to_var): ... these.
12140         (replace_ref_tree, inlining_p): Remove.
12141
12142 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
12143
12144         * ifcvt.c (if_convert): Make it static.
12145         * rtl.h: Remove the prototype for if_convert.
12146
12147         * local-alloc.c (local_alloc): Make it static.
12148         * rtl.h: Remove the prototype for local_alloc.
12149
12150         * loop.c (loop_optimize): Make it static.
12151         * cfgloop.h: Remove the prototype for loop_optimize.
12152         * rtl.h: Likewise.
12153
12154 2006-01-16  DJ Delorie  <dj@redhat.com>
12155
12156         * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
12157         mems.
12158
12159 2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12160
12161         * pa.md: Disparage copies between general and floating-point registers
12162         in 32-bit move patterns.
12163
12164 2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>
12165
12166         PR testsuite/25741
12167         * Makefile.in (check-%): Depend on site.exp instead of
12168         $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
12169         directories.
12170
12171 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
12172
12173         * global.c (global_alloc): Make it static.
12174         * rtl.h: Remove the prototype for global_alloc.
12175
12176 2006-01-16  Richard Guenther  <rguenther@suse.de>
12177
12178         * tree-ssa-alias.c (struct used_part): Add write_only field.
12179         (get_or_create_used_part_for): Initialize it to true.
12180         (create_overlap_variables_for): Don't create structure variables
12181         for structures that only are written to.
12182         (find_used_portions): Handle MODIFY_EXPR to track whether a
12183         structure is only written to.
12184
12185 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
12186
12187         * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
12188         static.
12189         * basic-block.h: Remove the prototype for
12190         partition_hot_cold_basic_blocks.
12191
12192 2006-01-16  Rafael Ãvila de EspÃ�­ndola <rafael.espindola@gmail.com>
12193
12194         * cppspec.c (lang_specific_spec_functions): Remove.
12195         * gcc.c (lookup_spec_function): Use static_spec_functions directly.
12196         * gcc.h (lang_specific_spec_functions): Remove.
12197         * gccspec.c (lang_specific_spec_functions): Remove.
12198
12199 2006-01-16  Paolo Bonzini  <bonzini@gnu.org>
12200
12201         * combine.c (record_value_for_reg): Invalidate registers
12202         if INSN is null.
12203         (record_dead_and_set_regs_1): Likewise, by passing them to
12204         record_value_for_reg.
12205         (record_dead_and_set_regs): Invalidate stores made by a
12206         call.  We do not combine across a call, but we still
12207         relied on equivalences.
12208
12209 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
12210
12211         * tree-vrp.c (extract_range_from_binary_expr): Cope with
12212         vrp_int_const_binop returning non-constant nodes.
12213
12214 2006-01-16  Paul Brook  <paul@codesourcery.com>
12215
12216         * config/m68k/m68k.c (output_move_const_into_data_reg):
12217         Output correct mnemonic for mvz and mvs.
12218
12219 2006-01-16  Gabor Loki  <loki@gcc.gnu.org>
12220
12221         * rtl-factoring.c: Add sequence abstraction algorithm.
12222         * cfgcleanup.c (outgoing_edges_match): Extra checks.
12223         (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
12224         ABNORMAL edges.
12225         (block_has_preserve_label): New function.
12226         * common.opt: Register new pass.
12227         * Makefile.in: Ditto.
12228         * passes.c: Ditto.
12229         * timevar.def: Ditto.
12230         * tree-pass.h: Ditto.
12231         * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
12232         * rtl.h (make_jump_insn_raw): Add forward decl.
12233         * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
12234
12235 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
12236             Roger Sayle  <roger@eyesopen.com>
12237
12238         * fold-const.c (fold_minmax): New static function.
12239         (fold_binary) <MIN_EXPR>: Call it.
12240         <MAX_EXPR>: Likewise.
12241         * stor-layout.c (place_field): Use DECL_SIZE consistently
12242         in the computation of the new record size.
12243
12244 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
12245
12246         * cse.c (cse_condition_code_reg): Make it static.
12247         * rtl.h: Remove the prototype for cse_condition_code_reg.
12248
12249         * combine.c (combine_instructions): Make it static.
12250         * rtl.h: Remove the prototype for combine_instructions.
12251
12252 2006-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12253
12254         PR target/25168
12255         * tree.c (get_file_function_name_long): Concatenate the first global
12256         object name with a string derived from the input filename of the object
12257         for type "F".
12258
12259 2006-01-16  Ben Elliston  <bje@au.ibm.com>
12260
12261         * config/i386/winnt-stubs.c: Update FSF address.
12262         * config/xtensa/ieee754-df.S: Ditto.
12263         * config/xtensa/ieee754-sf.S: Ditto.
12264
12265 2006-01-14  Ian Lance Taylor  <ian@airs.com>
12266
12267         * ifcvt.c (noce_init_if_info): New static function, broken out of
12268         noce_process_if_block.
12269         (noce_process_if_block): Call noce_init_if_info.
12270         (check_cond_move_block): New static function.
12271         (cond_move_process_if_block): New static function.
12272         (process_if_block): Call cond_move_process_if_block.
12273
12274 2006-01-15  Kazu Hirata  <kazu@codesourcery.com>
12275
12276         * cselib.c (hash_table): Rename to cselib_hash_table.
12277         (cselib_clear_table, discard_useless_values,
12278         remove_useless_values, cselib_lookup_mem, cselib_lookup,
12279         cselib_init, cselib_finish): Adjust uses of hash_table.
12280
12281 2006-01-14  Kazu Hirata  <kazu@codesourcery.com>
12282
12283         PR tree-optimization/25485
12284         * tree-vrp.c (extract_range_from_binary_expr): Handle cases
12285         where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
12286         is known to be false and true, respectively.
12287
12288 2006-01-14  Richard Guenther  <rguenther@suse.de>
12289
12290         PR tree-optimization/22548
12291         PR tree-optimization/22555
12292         PR tree-optimization/22501
12293         * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
12294         * params.def (salias-max-array-elements): New parameter.
12295         * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
12296         * doc/invoke.texi (salias-max-array-elements): Document.
12297         * tree-flow-inline.h (var_can_have_subvars): We also handle
12298         arrays now.
12299         * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
12300         COMPONENT_REF.
12301         * tree-ssa-structalias.c (params.h): Include.
12302         (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
12303         (find_func_aliases): Handle multiple constraints from ARRAY_REF.
12304         (get_constraint_for): For ADDR_EXPR operating on something
12305         containing an ARRAY_REF, add all subvars to the solution.
12306         (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
12307         * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
12308         for creating MUST_DEFs.
12309         (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
12310
12311 2006-01-14  Zdenek Dvorak <dvorakz@suse.cz>
12312
12313         * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
12314         functions.
12315         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
12316         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
12317         number_of_iterations_le): New functions.
12318         (number_of_iterations_special): Removed.
12319         (number_of_iterations_exit): Do not use number_of_iterations_special.
12320         * tree.c (unsigned_type_for): Always return integer type.
12321
12322 2006-01-14  Steven Bosscher  <stevenb.gcc@gmail.com>
12323         Richard Guenther  <rguenther@suse.de>
12324
12325         PR rtl-optimization/24257
12326         * gcse.c (find_moveable_store): Only consider a store movable
12327         when the SET_SRC of the insn can be assigned to a register.
12328
12329 2006-01-14  Ian Lance Taylor  <ian@airs.com>
12330
12331         * tree.c (tree_not_class_check_failed): New function.
12332         * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
12333         (tree_not_class_check_failed): Declare.
12334
12335 2006-01-13  Ian Lance Taylor  <ian@airs.com>
12336
12337         * reload1.c (do_output_reload): Add assertion rejecting a
12338         CALL_INSN.
12339
12340 2006-01-13  Adam Nemet  <anemet@caviumnetworks.com>
12341
12342         * combine.c (struct reg_stat): Add new fields truncation_label and
12343         truncated_to_mode.
12344         (record_value_for_reg): Reset truncated_to_mode.
12345         (record_truncated_value): New function.
12346         (check_promoted_subreg): Call it.  Rename to check_conversions.
12347         (combine_instructions): Rename check_promoted_subreg to
12348         check_conversions.
12349         (reg_truncated_to_mode): New function.
12350         (make_extraction): Use it.  Check TRULY_NOOP_TRUNCATION.
12351         (gen_lowpart_or_truncate): New function.
12352         (force_to_mode): Use it instead of gen_lowpart.
12353
12354 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
12355
12356         * tree-ssa-alias.c (add_type_alias): Fix typo.  Test whether
12357         VAR is a tag, not its type tag.
12358
12359 2006-01-13  Alexandre Oliva  <aoliva@redhat.com>
12360
12361         * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
12362         alternatives to match style of other entries.
12363         (*vec_extractv2di_1_sse): Likewise.  Fix mode attr.
12364
12365 2006-01-13  Daniel Berlin  <dberlin@dberlin.org>
12366
12367         PR tree-optimization/25771
12368         * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
12369         SSA_NAMES.
12370
12371 2006-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
12372
12373         PR tree-opt/24365
12374         * tree-inline.c (declare_return_variable): If the return variable
12375         was marked as a non gimple complex, set the return slot variable
12376         to be a non gimple comple variable.
12377
12378 2006-01-13  Richard Guenther  <rguenther@suse.de>
12379
12380         * builtins.c (expand_builtin_sincos): New function.
12381         (expand_builtin_mathfn_3): Remove dead code, sin and cos
12382         do not set errno.
12383         (expand_builtin): Expand sincos using expand_builtin_sincos.
12384
12385 2006-01-12  DJ Delorie  <dj@redhat.com>
12386
12387         * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
12388         shift counts, separate SI shifts for m32c vs m16c, pass shift type
12389         so that constant shifts can be split.
12390         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
12391         (m32c_valid_pointer_mode): Make static.
12392         (shift_gen_func_for): New.
12393         (m32c_prepare_shift): Use it.  Split large const shifts into
12394         multiple shifts.
12395         * config/m32c/predicates.md (shiftcount_operand): Allow more
12396         general operands.
12397         (longshiftcount_operand): New.
12398         * doc/md.texi (Machine Constraints): Document In6.
12399
12400 2006-01-13  Ben Elliston  <bje@au.ibm.com>
12401
12402         * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
12403         REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
12404         documentation.
12405
12406 2006-01-12  Daniel Berlin  <dberlin@dberlin.org>
12407
12408         * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
12409         to try to avoid clobbering pieces of structures when we know
12410         something about the whole structure.
12411         * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
12412
12413 2006-01-13  Ben Elliston  <bje@au.ibm.com>
12414
12415         * doc/rtl.texi (Insns): Remove statement that libcalls cannot
12416         return in memory, as this is no limitation is no longer present.
12417
12418 2006-01-12  DJ Delorie  <dj@redhat.com>
12419
12420         * config/m32c/addsub.md (addhi3): Add two more alternatives, for
12421         mova with fb, and for fb+0 -> An.
12422
12423         * config/m32c/mov.md (peephole2): Fix enabling logic.
12424
12425         * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
12426         DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
12427         DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
12428         FINI_ARRAY_SECTION_ASM_OP): Define.
12429
12430         * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
12431         variable.
12432         (m32c_legitimize_reload_address): New logic to reload FB to An.
12433         (m32c_output_reg_push): Add newline.
12434         (m32c_output_reg_pop): Likewise.
12435
12436 2006-01-12  Ulrich Weigand  <uweigand@de.ibm.com>
12437
12438         * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
12439
12440 2006-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
12441
12442         * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
12443
12444 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
12445
12446         * config/sh/predicates.md (sh_rep_vec): Add parallel to
12447         match_code.
12448
12449 2006-01-11  Ben Elliston  <bje@au.ibm.com>
12450
12451         * rtlanal.c (find_reg_note): Assert insn is not null.
12452
12453 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
12454
12455         * df-scan.c (df_hard_reg_init): Move declaration of i outside
12456         ifdef.
12457
12458 2006-01-11  Jeff Law  <law@redhat.com>
12459
12460         * tree-ssa-threadupdate.c (threaded_edges): New VEC to
12461         hold edge pairs.
12462         (mark_threaded_blocks, register_jump_thread): New functions.
12463         (thread_through_all_blocks): Remove unwanted argument.  No
12464         longer rely on e->aux to communicate thread target info.
12465         Call mark_threaded_blocks.  Release the threaded_blocks
12466         bitmap and threaded_edges vector when complete.
12467         * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
12468         (threaded_blocks): Remove.
12469         (tree_ssa_dominator_optimize): Remove initialization and
12470         finalization of threaded_blocks.  Simplify call to
12471         thread_through_all_blocks.
12472         (thread_across_edge): Call register_jump_thread rather than
12473         storing thread information into e->aux.
12474         (free_all_edge_infos): Simplify now that e->aux is no longer
12475         used to communicate with thread_through_all_blocks.
12476         * tree-flow.h (thread_through_all_blocks): Update prototype.
12477         (register_jump_thread): Prototype.
12478
12479 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
12480
12481         * df-core.c (df_compact_blocks, df_bb_replace): Use
12482         SET_BASIC_BLOCK instead of BASIC_BLOCK.
12483
12484 2006-01-11  Richard Guenther  <rguenther@suse.de>
12485
12486         PR tree-optimization/25734
12487         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
12488         stop propagation after successful propagation to the LHS.
12489
12490 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
12491
12492         * basic-block.h (control_flow_graph): Change the type of
12493         x_basic_block_info to VEC(basic_block,gc) *.
12494         (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
12495         basic_block_info.
12496         (SET_BASIC_BLOCK): New.
12497         * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
12498         instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
12499         * cfgbuild.c (find_basic_blocks): Likewise.
12500         * cfglayout.c (fixup_reorder_chain): Likewise.
12501         * cfgrtl.c (create_basic_block_structure,
12502         rtl_create_basic_block): Likewise.
12503         * ifcvt.c (find_if_case_1): Likewise.
12504         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
12505         Likewise.
12506
12507 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
12508
12509         * Makefile.in: Removed rotted odf.c entry.
12510
12511 2006-01-11  Hans-Peter Nilsson  <hp@axis.com>
12512
12513         PR target/25706
12514         * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
12515         ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
12516         ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
12517         output pattern modifier, not %e.
12518         * config/cris/cris.c (cris_op_str): Update comment about pattern
12519         modifier.
12520         (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
12521         before falling through into...
12522         <case 'E'>: Redefined from old 'e' case.
12523
12524 2006-01-11  Jan Hubicka  <jh@suse.cz>
12525
12526         PR target/25042
12527         * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
12528
12529 2006-01-11  Jan Hubicka  <jh@suse.cz>
12530
12531         * i386.h (TARGET_DECOMPOSE_LEA): Kill.
12532         * i386.c (x86_decompose_lea): Kill.
12533         (ix86_rtx_costs): Kill.
12534
12535 2006-01-11  Jan Hubicka  <jh@suse.cz>
12536
12537         * cgraph.c (cgraph_insert_node_to_hashtable): New function.
12538         * cgraph.h (cgraph_node): Add inline_decl.
12539         (cgraph_insert_node_to_hashtable): Declare.
12540         (save_inline_function_body): Declare.
12541         * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
12542         clones.
12543         (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
12544         (cgraph_function_versioning): Update call of tree_function_versioning.
12545         (save_inline_function_body): New function.
12546         * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
12547         saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
12548         * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
12549         (cgraph_default_inline_p): Likewise.
12550         (cgraph_decide_inlining_incrementally): Likewise.
12551         * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
12552         (copy_bb): Kill saving; do updating of clones.
12553         (copy_cfg_body): Kill saving.
12554         (initialize_inlined-parameters): Likewise.
12555         (expand_call_inline): Likewise.
12556         (save_body): Kill.
12557         (tree_function_versioning): New parameter "update_clones".
12558         (inlining_p): Kill saving.
12559         * tree-inline.h (tree_function_versioning): Update prototype.
12560         * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
12561         saving.
12562
12563 2006-01-11  Ian Lance Taylor <ian@airs.com>
12564
12565         * combine.c (struct undo): Remove is_int.  Enumify types of undos.
12566         Allow undoing set of machine mode.
12567         (do_SUBST): Use enums instead of is_int.
12568         (do_SUBST_MODE): New function.
12569         (SUBST_MODE): New macro.
12570         (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
12571         reg and trying to replace reg_regno_rtx with a new register.
12572         (undo_all): Use new enums, handle undoing a PUT_MODE change.
12573         (simplify_set): Use SUBST_MODE.
12574         (distribute_notes): Remove code that tried to update reg notes
12575         for regno_reg_rtx changes.
12576
12577 2006-01-11  Paolo Bonzini  <bonzini@gnu.org>
12578
12579         PR tree-optimization/23109
12580         PR tree-optimization/23948
12581         PR tree-optimization/24123
12582
12583         * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
12584         * tree-cfg.c (single_noncomplex_succ): New.
12585         * tree-flow.h (single_noncomplex_succ): Declare it.
12586         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
12587         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
12588         (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
12589         insert_bb, register_division_in, insert_reciprocals,
12590         replace_reciprocal, free_bb): New.
12591         (execute_cse_reciprocals_1): Rewritten.
12592         (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
12593         Do not commit any edge insertion.  Always compute dominators and
12594         create the allocation pool.
12595         * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
12596         * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
12597         * targhooks.c (default_min_divistions_for_recip_mul): New.
12598         * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
12599         * passes.c (init_optimization_passes): Run recip after tree loop
12600         optimizations.
12601         * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
12602
12603 2006-01-11  Danny Berlin <dberlin@dberlin.org>
12604             Kenneth Zadeck <zadeck@naturalbridge.com>
12605
12606         * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
12607         DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
12608         DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
12609         DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
12610         DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
12611         DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
12612         DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
12613         DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
12614         DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
12615         DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
12616         DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
12617         DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
12618         DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
12619         DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
12620         DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
12621         DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
12622         DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
12623         DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
12624         DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
12625         DF_SCAN_POST_ALLOC): New macros.
12626         (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
12627         df_free_bb_function, df_local_compute_function, df_init_function,
12628         df_dataflow_function, df_confluence_function_0,
12629         df_confluence_function_n, df_transfer_function,
12630         df_finalizer_function, df_free_function, df_dump_problem_function,
12631         df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
12632         df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
12633         df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
12634         df_urec_bb_info, ) New types.
12635         (df_invalidated_by_call, df_all_hard_regs, df_state) New public
12636         variables.
12637         (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
12638         df_analyze_simple_change_some_blocks,
12639         df_analyze_simple_change_one_block, df_compact_blocks,
12640         df_bb_replace, df_bb_regno_last_use_find,
12641         df_bb_regno_first_def_find, df_bb_regno_last_def_find,
12642         df_insn_regno_def_p, df_find_def, df_find_use,
12643         df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
12644         df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
12645         df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
12646         debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
12647         debug_df_chain, df_get_dependent_problem, df_chain_create,
12648         df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
12649         df_grow_bb_info, df_chain_dump, df_print_bb_index,
12650         df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
12651         df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
12652         df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
12653         df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
12654         df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
12655         df_rescan_blocks, df_ref_create, df_get_artificial_defs,
12656         df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
12657         df_ref_remove, df_insn_refs_delete, df_refs_delete,
12658         df_reorganize_refs, df_set_state, df_hard_reg_init,
12659         df_read_modify_subreg_p) New public functions.
12660         * df-core.c: The core dataflow solver and glue routines for rtl
12661         dataflow.
12662         (df_init, df_add_problem, df_set_blocks, df_finish,
12663         df_hybrid_search_forward, df_hybrid_search_backward,
12664         df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
12665         df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
12666         df_bb_regno_last_use_find, df_bb_regno_first_def_find,
12667         df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
12668         df_reg_defined, df_find_use, df_reg_used, df_dump,
12669         df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
12670         df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
12671         debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
12672         debug_df_useno, reset_df_after_reload): New functions.
12673         * df-scan.c: The scanning fuctions, once in df.c, completely
12674         rewritten so that they now fully model the functionality of
12675         register usage at the backend.
12676         (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
12677         df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
12678         df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
12679         df_grow_insn_info, df_rescan_blocks, df_ref_create,
12680         df_get_artificial_defs, df_get_artificial_uses,
12681         df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
12682         df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
12683         df_refs_delete, df_reorganize_refs, df_set_state,
12684         df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
12685         df_def_record_1, df_defs_record, df_uses_record,
12686         df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
12687         df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
12688         df_record_exit_block_uses, df_hard_reg_init): New functions.
12689
12690         * df-problems.c: Seven concrete dataflow problems that use the
12691         scanning in df-scan.c and are solved by the engine in df-core.c.
12692         (df_get_dependent_problem, df_chain_create, df_chain_unlink,
12693         df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
12694         df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
12695         df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
12696         df_ru_free_bb_info, df_ru_alloc,
12697         df_ru_bb_local_compute_process_def,
12698         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
12699         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
12700         df_ru_transfer_function, df_ru_free, df_ru_dump,
12701         df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
12702         df_rd_free_bb_info, df_rd_alloc,
12703         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
12704         df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
12705         df_rd_transfer_function, df_rd_free, df_rd_dump,
12706         df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
12707         df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
12708         df_lr_local_compute, df_lr_init, df_lr_confluence_0,
12709         df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
12710         df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
12711         df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
12712         df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
12713         df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
12714         df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
12715         df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
12716         df_urec_mark_reg_change, df_urec_check_earlyclobber,
12717         df_urec_mark_reg_use_for_earlyclobber,
12718         df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
12719         df_urec_local_compute, df_urec_init, df_urec_local_finalize,
12720         df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
12721         df_urec_dump, df_urec_add_problem, df_chain_alloc,
12722         df_chain_create_bb_process_use, df_chain_create_bb,
12723         df_chain_finalize, df_chain_free, df_chains_dump,
12724         df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
12725         df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
12726         df_reg_lifetime): New functions.
12727         * df.c: Deleted file.
12728         * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
12729         consistent with new df api.
12730         * modulo-sched.c (sms_schedule, rest_of_handle_sms,
12731         rest_of_handle_sms): Ditto.
12732         * web.c (unionfind_union, union_defs, entry_register, web_main):
12733         Ditto.
12734         * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
12735         invariant_expr_equal_p, find_defs, check_dependencies,
12736         find_invariant_insn, find_invariants_to_move, move_invariant_reg,
12737         free_inv_motion_data, move_loop_invariants): Ditto.
12738         * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
12739         Update dependencies.
12740         (odf.c): Added defective entry that was deleted later in day.
12741         * sched-deps.c (sched_analyze_1): Ditto.
12742
12743 2006-01-11  Zdenek Dvorak <dvorakz@suse.cz>
12744
12745         * tree-ssa-operands.c (get_expr_operands): Record addressable
12746         variables directly.  Do not call add_stmt_operands for CONST_DECLs
12747         and ARRAY_DECLs.
12748         (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
12749         (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
12750
12751 2006-01-11  Ben Elliston  <bje@au.ibm.com>
12752
12753         * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
12754         function returns true in the positive case.
12755
12756 2006-01-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12757
12758         PR target/20754
12759         * config/pa/pa.md: Create separate 32 and 64-bit move patterns
12760         for SI, DI, SF and DF modes.  Add alternatives to copy between
12761         general and floating point registers to the 32-bit patterns.
12762         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
12763         * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
12764         (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
12765         generating 64-bit code.
12766         * config/pa/pa.c (output_move_double): Handle copies between general
12767         and floating registers.
12768
12769 2006-01-10  Stuart Hastings  <stuart@apple.com>
12770
12771         * config/i386/i386.md (set_got): Update.
12772         (set_got_labelled): New.  (UNSPEC_LD_MPIC): New.
12773         (builtin_setjmp_receiver): Mach-O support.
12774         * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
12775         (GOT_SYMBOL_NAME): Define.
12776         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
12777         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
12778         * config/i386/i386.c (override_options): Revise for Darwin.
12779         (USE_HIDDEN_LINKONCE): Enable for Mach-O.  (ix86_file_end): Mach-O
12780         support.  (darwin_x86_file_end): New.  (output_set_got): Add label
12781         parameter, revise for Mach-O.  (x86_output_mi_thunk): Likewise.
12782         * config/i386/i386-protos.h (output_set_got): Likewise.
12783         * config/darwin.c (machopic_legitimize_pic_address): Update
12784         regs_ever_live[].
12785
12786 2006-01-10  Kaz Kojima  <kkojima@gcc.gnu.org>
12787
12788         * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
12789         when MODE isn't BLKmode.
12790
12791 2006-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
12792
12793         PR rtl-optimization/25367
12794         * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
12795
12796 2006-01-10  Hans-Peter Nilsson  <hp@axis.com>
12797
12798         PR target/25718
12799         * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
12800         for a negative bound.
12801
12802 2006-01-10  Richard Guenther  <rguenther@suse.de>
12803
12804         * tree-ssa-structalias.c (get_constraint_for_component_ref):
12805         Never override with anything constraint.
12806
12807 2006-01-10  Jan Beulich  <jbeulich@novell.com>
12808
12809         * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
12810         256 bits when optimize_size.
12811
12812 2006-01-10  Jan Beulich  <jbeulich@novell.com>
12813
12814         * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
12815         MASK_ALIGN_DOUBLE.
12816         * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
12817         * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
12818         arguments.
12819
12820 2006-01-10  Ben Elliston  <bje@au.ibm.com>
12821
12822         * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
12823         float modes.
12824         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
12825         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
12826         (USE_FP_FOR_ARG): Reject decimal float modes.
12827         (function_arg_advance): Likewise.
12828         (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
12829         (rs6000_handle_altivec_attribute): Do not permit decimal floating
12830         point types in AltiVec vectors.
12831         (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
12832         (rs6000_libcall_value): Likewise.
12833
12834 2006-01-09  Bob Wilson  <bob.wilson@acm.org>
12835
12836         * config/xtensa/ieee754-df.S: New file.
12837         * config/xtensa/ieee754-sf.S: New file.
12838         * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
12839         (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
12840         * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
12841
12842 2006-01-09  Kazu Hirata  <kazu@codesourcery.com>
12843
12844         * config/sh/predicates.md (binary_float_operator,
12845         binary_logical_operator, commutative_float_operator,
12846         equality_comparison_operator, greater_comparison_operator,
12847         less_comparison_operator, logical_operator,
12848         noncommutative_float_operator, shift_operator,
12849         symbol_ref_operand, unary_float_operator): Remove redundant
12850         conditionals.
12851
12852 2006-01-09  Jeff Law  <law@redhat.com>
12853
12854         * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
12855         code to propagate the RHS of a cast into COND_EXPR_COND.  Remove
12856         now unused arguments.  Callers updated.
12857         (eliminate_redundant_computations): Remove now unused arguments,
12858         callers updated.
12859         (local_fold): Remove, no longer used.
12860         (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
12861         and moved to...
12862         * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
12863         (simplify_cond): New function.
12864         (forward_propagate_into_cond): Call simplify_cond.
12865
12866 2006-01-09  Alexandre Oliva  <aoliva@redhat.com>
12867
12868         * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
12869         (*vec_extractv2di_1_sse): New.
12870
12871 2006-01-09  Ben Elliston  <bje@au.ibm.com>
12872
12873         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
12874
12875 2006-01-08  Richard Guenther  <rguenther@suse.de>
12876
12877         * tree-ssa-structalias.c (get_constraint_for): Remove
12878         anyoffset argument.
12879         (get_constraint_for_component_ref): Likewise.
12880         (do_deref): Likewise.
12881         (get_constraint_for): Likewise.
12882         (do_structure_copy): Likewise.
12883         (handle_ptr_arith): Likewise.
12884         (find_func_aliases): Likewise.  Remove unused need_anyoffset
12885         variable.
12886
12887 2006-01-08  J"orn Rennecke  <joern.rennecke@st.com>
12888             Kaz Kojima  <kkojima@gcc.gnu.org>
12889
12890         * config/sh/sh.h (CONST_OK_FOR_K16): Define.
12891         (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
12892         (EXTRA_CONSTRAINT_C16): Remove.
12893         (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
12894         (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
12895         EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
12896         * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
12897         constants of SHmedia.  Handle nested constant expressions of
12898         SHmedia correctly.
12899         (andcosts): Fix the costs for SHmedia constants.
12900         (sh_rtx_costs): Take account of outer_code for SHmedia constants.
12901         * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
12902         (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
12903         (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
12904         (movv4hi_i, movv2si_i): Likewise.
12905         (movsi_const): Adjust the second operand of ior so to match with
12906         the Csu constraint.
12907         (movdi_const, movdi_const_32bit): Likewise.
12908         (movdi_const_16bit+1): Don't sign-extend LOW.
12909         (movdi_const_16bit+2): Likewise.  Remove the zero_extend and truncate
12910         step.
12911         (*double_shori): Fix the split condition.  Use GEN_INT instead
12912         of get_int_mode calls.  Mask lower 16-bit of the argument of
12913         the last GEN_INT.
12914         (sym2GOTPLT): Remove.
12915         (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
12916         gen_rtx_UNSPEC.
12917         * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
12918         instead of EXTRA_CONSTRAINT_C16.
12919
12920 2006-01-07  Ian Lance Taylor  <ian@airs.com>
12921             David Edelsohn  <edelsohn@gnu.org>
12922
12923         PR rtl-optimization/25662
12924         * optabs.c (simplify_expand_binop): Use simplify_binary_operation
12925         for constant operands instead of simplify_gen_binary.
12926         * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
12927         after trying simplify_binary_operation
12928
12929 2006-01-06  Daniel Berlin  <dberlin@dberlin.org>
12930
12931         * tree.c (iterative_hash_expr): Hash decls based on UID.
12932
12933 2006-01-06  Eric Christopher  <echristo@apple.com>
12934
12935         * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
12936         (TARGET_UNWIND_EMIT): Fix spelling.
12937         * target.h (gcc_target): Add except_table_label.
12938         * except.c (output_function_exception_table): Use.
12939         * varasm.c (default_emit_except_table_label): New.
12940         * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
12941         define.
12942         (asm_out): Add here.
12943         * output.h (default_emit_except_table_label): Prototype.
12944         * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
12945         * config/darwin.c (darwin_emit_except_table_label): Define.
12946         * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
12947
12948 2006-01-06  Zdenek Dvorak <dvorakz@suse.cz>
12949
12950         PR tree-optimization/18527
12951         * tree-ssa-loop-niter.c (number_of_iterations_cond,
12952         number_of_iterations_special, number_of_iterations_exit):
12953         Move base and step of an iv to a single structure.  Add
12954         no_overflow flag, and use it in # of iterations analysis.
12955         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
12956         folded_casts argument.
12957         (simple_iv): Pass base and step in a structure.  Set no_overflow
12958         flag.
12959         (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
12960         Evaluate expensiveness of computing # of iterations instead of
12961         the final expression.
12962         * tree-scalar-evolution.h (affine_iv): New structure.
12963         (simple_iv): Declaration changed.
12964         * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
12965         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
12966         find_givs_in_stmt): Changed due to simple_iv change.
12967
12968 2006-01-06  Jeff Law  <law@redhat.com>
12969
12970         PR ada/24994
12971         * tree-cfg.c (bsi_replace): Rename final argument from
12972         PRESERVE_EH_INFO to UPDATE_EH_INFO.  Fix typo in last
12973         change (stmt -> orig_stmt).
12974         * tree-eh.c (verify_eh_throw_stmt_node): New function.
12975         (bsi_remove): Add new argument.  Remove EH information
12976         if requested.
12977         (verify_eh_throw_table_statements): New function.
12978         (bsi_remove): Add new argument REMOVE_EH_INFO.  All callers
12979         updated.
12980         * tree-optimize.c (execute_free_cfg_annotations): Verify
12981         the EH throw statement table after removing annotations.
12982         * except.h (verify_eh_throw_table_statements): Prototype.
12983         * tree-flow.h (bsi_remove): Update prototype.
12984         * tree-vrp.c (remove_range_assertions): Add new argument to
12985         bsi_remove call.
12986         * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
12987         * tree-complex.c (expand_complex_div_wide): Likewise.
12988         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
12989         * tree-tailcall.c (eliminate_tailcall): Likewise.
12990         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
12991         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
12992         * tree-nrv.c (tree_nrv): Likewise.
12993         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
12994         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
12995         (combine_blocks): Likewise.
12996         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
12997         * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
12998         (cleanup_control_flow): Likewise.
12999         (remove_forwarder_block): Likewise.
13000         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
13001         * tree-sra.c (sra_replace): Likewise.
13002         * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
13003         (forward_propagate_single_use_vars): Likewise.
13004         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
13005         * tree-inline.c (expand_call_inline): Likewise.
13006         * tree-vect-transform.c (vect_transform_loop): Likewise.
13007         * tree-outof-ssa.c (rewrite_trees): Likewise.
13008         * tree-cfg.c (make_goto_expr_edges): Likewise.
13009         (cleanup_dead_labels): Likewise.
13010         (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
13011         (bsi_move_before, bsi_move_after): Likewise.
13012         (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
13013         (tree_redirect_edge_and_branch, tree_split_block): Likewise.
13014
13015 2006-01-06  Andrew Pinski  <pinskia@physics.uc.edu>
13016
13017         PR tree-opt/25528
13018         * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
13019         and IMAGPART_EXPR.
13020         * tree-flow-inline.h (var_can_have_subvars): Handle complex types
13021         on non gimple variables.  Also add checks at the top for decls and
13022         mtags.
13023         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
13024         complex types.
13025         * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
13026         and IMAGPART_EXPR for creating MUST_DEFs.
13027         (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
13028         and NAME_MEMORY_TAG separately from the DECLs.
13029
13030 2006-01-06  Richard Guenther  <rguenther@suse.de>
13031
13032         * tree-dfa.c (mark_new_vars_to_rename): Create stmt
13033         annotation, if necessary.
13034         * tree-ssa-pre.c (create_expression_by_pieces): Remove
13035         redundant calls to update_stmt.
13036         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
13037         Likewise.
13038
13039 2006-01-05  Richard Henderson  <rth@redhat.com>
13040
13041         * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
13042
13043 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
13044
13045         * c-typeck.c: Update copyright date.
13046
13047 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
13048
13049         * c-typeck.c (build_c_cast): Always warn when casting
13050         from a pointer to an integer of different size, even if
13051         the node was constant.
13052
13053 2006-01-05  Richard Guenther  <rguenther@suse.de>
13054
13055         PR tree-optimization/22555
13056         * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
13057         if one structure field is an array.
13058         * tree-ssa-operands.c (get_expr_operands): Continue scanning
13059         operands even if we found a subvar, but ignore VOPs in this
13060         case.
13061         * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
13062         for renaming.
13063         * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
13064
13065 2006-01-05  Richard Earnshaw  <rearnsha@arm.com>
13066
13067         PR middle-end/24998
13068         * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
13069
13070 2006-01-05  Richard Guenther  <rguenther@suse.de>
13071             Diego Novillo  <dnovillo@redhat.com>
13072
13073         * tree-pass.h (TODO_remove_unused_locals): Define.
13074         * gimple-low.c (expand_var_p, remove_useless_vars,
13075         pass_remove_useless_vars): Remove.  Update all users.
13076         * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
13077         (remove_unused_locals): New function.
13078         * tree-flow.h (remove_unused_locals): Declare.
13079         * passes.c (execute_todo): Call remove_unused_locals if
13080         TODO_remove_unused_locals is set.
13081         * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
13082         * tree-ssa-dce.c (pass_dce): Likewise.
13083         * tree-outof-ssa.c (pass_del_ssa): Likewise.
13084
13085 2006-01-05  Richard Guenther  <rguenther@suse.de>
13086
13087         * tree-flow.h (struct fieldoff): Decompose field to
13088         type, size and decl.
13089         * tree-ssa-alias.c (create_sft): Take type as parameter.
13090         (create_overlap_variables_for): Store type, size and decl
13091         in the fieldoff structure.
13092         * tree-ssa-structalias.c (fieldoff_compare): Adjust users
13093         of struct fieldoff.
13094         (push_fields_onto_fieldstack): Likewise.
13095         (create_variable_info_for): Likewise.  Use offset for the
13096         SFT name if the decl is not available.
13097
13098 2006-01-04  Paul Brook  <paul@codesourcery.com>
13099
13100         * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
13101
13102 2006-01-04  Daniel Berlin  <dberlin@dberlin.org>
13103
13104         * lambda-code.c (can_put_in_inner_loop): Relax
13105         restrictions.
13106         (can_put_after_inner_loop): New function.
13107         (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
13108         (perfect_nestify): Change to make copies and modify uses.
13109
13110 2006-01-04  Richard Henderson  <rth@redhat.com>
13111
13112         Merge from gomp branch:
13113         * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
13114         via integer constant.
13115         (pragma_lex): Remove.
13116         * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
13117         rather than parsing it.
13118         * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
13119         handle_pragma_extern_prefix): Add %< %> quotes.
13120         (registered_pragmas): New.
13121         (c_register_pragma_1): New.
13122         (c_register_pragma): Use it.
13123         (c_register_pragma_with_expansion): Likewise.
13124         (c_invoke_pragma_handler): New.
13125         (init_pragma): Use cpp_register_deferred_pragma directly for
13126         pch_preprocess.
13127         * c-pragma.h (enum pragma_kind): New.
13128         (pragma_handler): New.
13129         (c_invoke_pragma_handler): Declare.
13130         * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
13131         CPP_PRAGMA_EOL.
13132         * c-common.h (c_common_pch_pragma): Update decl.
13133         * Makefile.in (c-parser.o): Update dependencies.
13134         (GTFILES): Add c-pragma.h.
13135         * c-parser.c (struct c_token): Add pragma_kind.
13136         (struct c_parser): Add in_pragma.
13137         (c_lex_one_token): Always initialize keyword and pragma_kind.
13138         Extract data for CPP_PRAGMA.
13139         (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
13140         (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
13141         Don't allow CPP_PRAGMA_EOL if in_pragma.
13142         (c_parser_consume_pragma): New.
13143         (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
13144         (c_parser_skip_to_end_of_parameter): Likewise.
13145         (c_parser_skip_to_end_of_block_or_statement): Likewise.
13146         (c_parser_skip_to_pragma_eol): New.
13147         (c_parser_external_declaration): Handle CPP_PRAGMA.
13148         (c_parser_compound_statement_nostart): Likewise.
13149         (c_parser_statement_after_labels): Likewise.
13150         (c_parser_pragma): New.
13151         (pragma_lex): Likewise.
13152         (c_parser_pragma_pch_preprocess): New.
13153         (c_parser_new): Merge into ...
13154         (c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
13155
13156 2006-01-04  Jeff Law  <law@redhat.com>
13157
13158         PR ada/24994
13159         * tree-cfg.c (bsi_replace): Remove the original statement
13160         from the EH throw statement table.
13161
13162 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
13163
13164         * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
13165         make the prototype extern "C" and add throw ().
13166
13167         PR target/25554
13168         * config/i386/i386.md (testqi_ext_3): Ensure len is positive
13169         and pos non-negative and pos + len <= 32.
13170         (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
13171         drop pos + len < HOST_BITS_PER_WIDE_INT test.
13172         (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
13173
13174         PR c/25559
13175         * c-common.c (handle_vector_size_attribute): Reject zero vector size
13176         as well as sizes not multiple of component size.
13177
13178         PR debug/25562
13179         * function.c (instantiate_expr): New function.
13180         (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
13181         walk its DECL_VALUE_EXPR with instantiate_expr.
13182
13183         * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
13184         DW_OP_deref{,_size} if address isn't going to be added.
13185
13186 2006-01-04  Ben Elliston  <bje@au.ibm.com>
13187
13188         * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
13189         * config/fp-bit.c: Likewise.
13190
13191 2006-01-03  Daniel Berlin  <dberlin@dberlin.org>
13192
13193         * dominance.c: Add comment about why we use DFS numbering
13194         of dominance tree.
13195
13196 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
13197             Richard Henderson  <rth@redhat.com>
13198
13199         Merge from gomp-branch:
13200         * varasm.c (assemble_variable): Handle thread-local COMMON data.
13201         * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
13202
13203 2006-01-03  Paolo Bonzini  <bonzini@gnu.org>
13204
13205         PR rtl-optimization/25578
13206         * combine.c (combine_simplify_rtx, force_to_mode): Don't
13207         pass a parameter to simplify_shift_const if changing ASHIFTRT
13208         to LSHIFTRT.
13209
13210 2006-01-03  Adrian Straetling  <straetling@de.ibm.com>
13211
13212         * builtins.c (get_builtin_sync_mem): New function.
13213         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
13214         expand_builtin_lock_test_and_set, expand_builtin_lock_release):
13215         Call get_builtin_sync_mem to generate mem rtx.
13216
13217 2006-01-03  Richard Guenther  <rguenther@suse.de>
13218
13219         PR c/25183
13220         * stmt.c (add_case_node): Make sure to clear overflow flags
13221         from ranges.
13222
13223 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
13224
13225         Merge from gomp-branch.
13226         * config/sparc/sync.md: New file.
13227         * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
13228         UNSPECV_LDSTUB): New constants.
13229         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
13230         * config/sparc/predicates.md (memory_reg_operand): New predicate.
13231         * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
13232         prototype.
13233
13234 2006-01-03  Roger Sayle  <roger@eyesopen.com>
13235
13236         * combine.c (reg_subword_p): New predicate to test whether the
13237         destination of a set refers to a subword/piece of a register.
13238         (try_combine): Generalize the code to merge the setting of a
13239         pseudo to a constant followed by a set of a subword of that
13240         register to a constant.
13241
13242 2006-01-03  Kazu Hirata  <kazu@codesourcery.com>
13243
13244         * basic-block.h (control_flow_graph): Change the type of
13245         x_label_to_block_map to VEC(basic_block,gc) *.
13246         * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
13247         set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
13248
13249         * tree-ssa-propagate.c (cfg_blocks): Change the type to
13250         VEC(basic_block,heap) *.
13251         (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
13252         ssa_prop_fini): Adjust the uses of cfg_blocks.
13253
13254 2006-01-03  Steven Bosscher  <stevenb.gcc@gmail.com>
13255
13256         * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
13257         COMPONENT_REFs.
13258         * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
13259         hashing trees instead of a pointer hash.
13260         (mem_attrs_htab_eq): Do a deep compare instead of a pointer
13261         compare for MEM_EXPR.
13262
13263         PR rtl-optimization/25130
13264         * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
13265         when comparing MEMs for GCSE
13266
13267 2006-01-03  Ben Elliston  <bje@au.ibm.com>
13268
13269         * targhooks.h (default_decimal_float_supported_p): Declare.
13270         * targhooks.c (default_decimal_float_supported_p): Define.
13271         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
13272         `default_decimal_float_supported_p'.
13273         * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
13274
13275 2006-01-02  Adam Nemet  <anemet@caviumnetworks.com>
13276
13277         * combine.c (apply_distributive_law <SUBREG>): Check
13278         TRULY_NOOP_TRUNCATION.
13279
13280 2006-01-02  Geoffrey Keating  <geoffk@apple.com>
13281
13282         * dwarf2out.c (have_switched_text_section): Delete.
13283         (have_multiple_function_sections): New.
13284         (have_location_lists): Make 'bool'.
13285         (add_AT_loc_list): Use 'true' not '1'.
13286         (dwarf2out_switch_text_section): Set have_multiple_function_sections.
13287         (output_loc_list): Use have_multiple_function_sections.
13288         (output_ranges): Likewise.
13289         (dwarf2out_begin_function): Set have_multiple_function_sections if
13290         necessary.
13291         (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
13292         Check function_section rather than DECL_SECTION_NAME.
13293         (dwarf2out_finish): Use have_multiple_function_sections.
13294         Don't clear have_location_lists.
13295
13296 2006-01-02  Eric Botcazou  <ebotcazou@adacore.com>
13297             Jan Hubicka  <jh@suse.cz>
13298
13299         * cfglayout.c (fixup_reorder_chain): Remove kludge for the
13300         case of conditional jump jumping to the next instruction.
13301         * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
13302         cases of conditional jump jumping to the next instruction.
13303
13304 2006-01-02  Jan Hubicka  <jh@suse.cz>
13305
13306         * i386.c (*_cost): Add COSTS_N_INSNS.
13307         (ix86_rtx_costs): Do not use COSTS_N_INSNS.
13308
13309 2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
13310
13311         PR target/25259
13312         * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
13313
13314 2006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
13315
13316         * config/arm/arm.c (all_fpus): Fix comment typo.
13317         * config/darwin.c: Likewise.
13318         * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
13319         * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
13320         * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
13321
13322 2006-01-01  David Edelsohn  <edelsohn@gnu.org>
13323
13324         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
13325         (rs6000_split_compare_and_swapqhi): New.
13326         * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
13327         (sync_compare_and_swapqhi_internal): New.
13328         * config/rs6000/rs6000-protos.h: Declare.