OSDN Git Service

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