OSDN Git Service

ca6a05fa5858e2670e6740a8affe5d4cd87de2b2
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-12-08  Mark Shinwell  <shinwell@codesourcery.com>
2
3         * recog.c (mode_dependent_address_p): Identify pre-increment,
4         pre-decrement, post-increment and post-decrement addressing as always
5         being mode-dependent.
6         * config/m32c/m32c.c (m32c_mode_dependent_address): Delete.
7         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
8         * config/m32c/m32c-protos.h (m32c_mode_dependent_address): Delete.
9         * config/m32r/m32r.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC,
10         PRE_INC and POST_INC checks.
11         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
12         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
13         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
14         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
15         * config/c4x/c4x.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC,
16         PRE_INC, POST_DEC and POST_INC cases.
17         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
18         Delete POST_INC and PRE_DEC cases.
19         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to
20         no-op.
21         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
22         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to
23         no-op.
24         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
25         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
26         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Delete
27         PRE_INC and PRE_DEC cases.
28         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
29         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
30         * config/arm/arm.h (ARM_GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
31         (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
32         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
33         * config/vax/vax.c (vax_mode_dependent_address_p): Delete
34         auto-increment cases.
35         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete
36         auto-increment cases.
37         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
38
39 2006-12-08  Andrew MacLeod  <amacleod@redhat.com>
40
41         * Makefile.in: Add new file tree-ssa-ter.c.
42         * tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table, 
43         free_temp_expr_table, add_value_to_version_list, 
44         add_value_to_partition_list, remove_value_from_partition_list, 
45         add_dependence, check_replaceable, finish_expr, mark_replaceable, 
46         kill_expr, kill_virtual_exprs, find_replaceable_in_bb, 
47         find_replaceable_exprs, dump_replaceable_exprs): Move to tree-ssa-ter.c.
48         * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Add
49         prototypes.
50         * tree-ssa-ter.c: New file using code moved from tree-outof-ssa.c.
51         (struct value_expr_d): Remove.
52         (struct temp_expr_table_d): Rename fields, add explicit vector of
53         replaceable expressions instead of sharing.  Change value_expr_p's to 
54         bitmap.  Delete free_list.
55         (new_temp_expr_table): Rename fields, count number of ssa_names in
56         each partition.
57         (free_temp_expr_table): Rename field, free new fields.
58         (new_value_expr, free_value_expr, find_value_in_list, add_value_to_list,
59         add_info_to_list, remove_value_from_list): Delete.
60         (version_to_be_replaced_p): New.  Is an ssa-name replaceable?
61         (make_dependent_on_partition): New.  Set bit in version list, allocating
62         a bitmap if need be.
63         (add_to_partition_kill_list): New.  Set bit in the partition list,
64         allocating a bitmap if need be.
65         (remove_from_partition_kill_list): New.  Remove a bit from the
66         partition list, free the bitmap if it is empty.
67         (add_dependence): Use renamed field, cleanup.  Don't add a dependence
68         on partitions with only one member.
69         (is_replaceable_p): New.  Split out replaceability check from 
70         check_replaceable.
71         (process_replaceable): New.  Code split from check_replaceable.
72         (check_replaceable): Removed.
73         (finished_with_expr): Renamed from finish_expr.
74         (kill_expr): Use renamed fields and less parameters.
75         (kill_virtual_exprs): Less parameters.
76         (mark_replaceable): Use renamed fields.
77         (find_replaceable_in_bb): Use renamed fields, cleanup.
78         (find_replaceable_exprs): Use renamed routines, cleanup.
79         (dump_replaceable_exprs): Don't go past end of ssa_names list.
80         (debug_ter): New.  Debug routine to dump state.
81
82 2006-12-08  Bernd Schmidt  <bernd.schmidt@analog.com>
83
84         * config/bfin/bfin.c (effective_address_32bit_p): Return true for
85         anything involving the GOT.
86         (bfin_adjust_cost): Don't take the REGNO of a MEM.
87         (trapping_loads_p): Look inside the pattern of an insn to find the
88         SET.
89         * config/bfin/bfin.md (attr "type"): Add movcc.
90         (insn_reservation "alu"): Likewise.
91         (movsicc_insn1, movsicc_insn2): Change type to movcc.
92
93 2006-12-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
94
95         * config/spu/spu-c.c (spu_build_overload_builtin): Delete.
96         (spu_resolve_overloaded_builtin): Check for non scalar instead
97         of vector type and check the function call argument type also for
98         non scalar.
99         Call build_function_call instead of spu_build_overload_builtin.
100
101 2006-12-07  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
102
103         * config/spu/spu.c (array_to_constant): Correct the order of arguments
104         to the calls of hwint_to_const_double.
105
106 2006-12-07  Nick Clifton  <nickc@redhat.com>
107
108         * config/elfos.h (TARGET_ASM_RECORD_GCC_SWITCHES): Set to
109         elf_record_gcc_switches.
110
111 2006-12-07  Andrew Macleod  <amacleod@redhat.com>
112
113         * expr.c (string_constant): Account for non-zero lower bound arrays.
114
115 2006-12-07  Richard Guenther  <rguenther@suse.de>
116
117         * builtins.c (expand_builtin_pow): Adjust predicates for
118         pow to cbrt expansion to unsafe math and !HONOR_NANS for
119         negative base.
120
121 2006-12-07  Jan Hubicka  <jh@suse.cz>
122
123         * i386.c (nocona_cost, pentium4_cost): Update preffered memcpy/memset
124         codegen.
125
126 2006-12-07  Jan Hubicka  <jh@suse.cz>
127
128         * tree-vrp.c (compare_values): Short circuit INTEGER_CST;
129         use fold_constant_to_binary; tolerate wrong type constants.
130         (value_intersect_p): Do just two tests.
131
132 2006-12-07  Bernd Schmidt  <bernd.schmidt@analog.com>
133
134         * config/bfin/bfin.c (print_operand): New modifier 'N' for constants.
135         * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
136         lshifthi3): Use it, and fix the order of alternatives.
137
138 2006-12-07  Nick Clifton  <nickc@redhat.com>
139
140         * common.opt (record-gcc-switches): New command line switch.
141         * target.h (print_switch_type): New enum.
142         (print_switch_fn_type): New typedef for a function pointer.
143         (struct gcc_target): Add record_gcc_switches and
144         record_gcc_switches_section fields.
145         * target-def.h (TARGET_ASM_RECORD_GCC_SWITCHES): Provide a
146         default definition.
147         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Provide a default
148         definition.
149         * toplev.c (print_single_switch): Simplify by providing a
150         pointer to function that will format and output the switch
151         appropriately.
152         (print_switch_values): Likewise.
153         (print_to_asm_out_file): New function.
154         (print_to_stderr): New function.
155         (init_asm_output): If flag_record_gcc_switches is set then if
156         the target supports recording the switches then emit them into
157         the assembler output file, otherwise tell the user that the
158         switch is not supported.
159         * varasm.c (eld_record_gcc_switches): New function.  Example
160         handler for the record_gcc_switches target hook.
161         * doc/tm.texi (TARGET_ASM_RECORD_GCC_SWITCHES): Document the new
162         target hook.
163         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Likewise.
164         * doc/invoke.texi (-frecord-gcc-switches): Document.
165
166 2006-12-07  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
167
168         PR target/29794
169         * sched-rgn.c (add_block1): Use correct initializer.
170
171 2006-12-07  Richard Guenther  <rguenther@suse.de>
172
173         * tree-vect-transform.c (vectorizable_call): Fix leftover of
174         TREE_OPERAND to GIMPLE_STMT_OPERAND conversion.
175
176 2006-12-06  Aldy Hernandez  <aldyh@redhat.com>
177
178         PR/30079
179         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Build MODIFY_EXPR
180         not GIMPLE_MODIFY_STMT.
181
182 2006-12-06  Jan Hubicka  <jh@suse.cz>
183
184         * tree-vrp.c (operand_less_p): New.
185         (compare_values, value_inside_range): Rewrite in terms of
186         operand_less_p.
187
188 2006-12-06 Uros Bizjak <ubizjak@gmail.com>
189
190         * config/i386/i386.md (DIRFLAG_REG): Remove constant.
191         (type): Remove cld.
192         (length_immediate): Do not depend on cld type attribute.
193         (length_address): Ditto.
194         (modrm): Ditto.
195         (memory): Ditto.
196         (cld): Remove insn pattern.
197         (strmov_singleop): Do not use DIRFLAG_REG.
198         (*strmovdi_rex_1): Ditto.
199         (*strmovsi_1): Ditto.
200         (*strmovsi_rex_1): Ditto.
201         (*strmovhi_1): Ditto.
202         (*strmovhi_rex_1): Ditto.
203         (*strmovqi_1): Ditto.
204         (*strmovqi_rex_1): Ditto.
205         (rep_mov): Ditto.
206         (*rep_movdi_rex64): Ditto.
207         (*rep_movsi): Ditto.
208         (*rep_movsi_rex64): Ditto.
209         (*rep_movqi): Ditto.
210         (*rep_movqi_rex64): Ditto.
211         (strset_singleop): Ditto.
212         (*strsetdi_rex_1): Ditto.
213         (*strsetsi_1): Ditto.
214         (*strsetsi_rex_1): Ditto.
215         (*strsethi_1): Ditto.
216         (*strsethi_rex_1): Ditto.
217         (*strsetqi_1): Ditto.
218         (*strsetqi_rex_1): Ditto.
219         (rep_stos): Ditto.
220         (*rep_stosdi_rex64): Ditto.
221         (*rep_stossi): Ditto.
222         (*rep_stossi_rex64): Ditto.
223         (*rep_stosqi): Ditto.
224         (*rep_stosqi_rex64): Ditto.
225         (cmpstrnsi): Do not generate cld insn.
226         (cmpstrnqi_nz_1): Do not use DIRFLAG_REG.
227         (*cmpstrnqi_nz_1): Ditto.
228         (*cmpstrnqi_nz_rex_1): Ditto.
229         (cmpstrnqi_1): Ditto.
230         (*cmpstrnqi_1): Ditto.
231         (*cmpstrnqi_rex_1): Ditto.
232         (strlenqi_1): Ditto.
233         (*strlenqi_1): Ditto.
234         (*strlenqi_rex_1): Ditto.
235
236         * config/i386/geode.md (shift): Do not depend on cld type attribute.
237         * config/i386/pentium.md (pent_cld): Remove insn reservation.
238         * config/i386/athlon.md (athlon_decode): Do not depend on cld
239         type attribute.
240         * config/i386/ppro.md (ppro_cld): Remove insn reservation.
241         * config/i386/k6.md (k6_alux_only): Do not depend on cld type
242         attribute.
243         (k6_alux_only_load): Ditto.
244         (k6_alux_only_store): Ditto.
245
246         * config/i386/i386.c (ix86_expand_movmem): Remove cld_done boolean.
247         Do not emit cld instruction.
248         (ix86_expand_setmem): Ditto.
249         (ix86_expand_strlen): Do not emit cld instruction.
250
251 2006-12-06  Bernd Schmidt  <bernd.schmidt@analog.com>
252
253         * config/bfin/bfin.c (bfin_rtx_costs): Add a number of new cases, tweak
254         old ones.
255
256 2006-12-06  Diego Novillo  <dnovillo@redhat.com>
257
258         * gdbinit.in: Set complaints to 0.
259
260 2006-12-06  Jan Hubicka  <jh@suse.cz>
261
262         * statistics.h (ALONE_PASS_MEM_STAT, ALONE_MEM_STAT_INFO,
263         ALONE_MEM_STAT_DECL): New macros.
264         * bitmap.h: Include statistics.h
265         (struct bitmap_head_def): Add variant with pointer to bitmap descriptor.
266         (bitmap_initialize_stat): Rename from bitmap_initialize; add statistics.
267         (bitmap_obstack_alloc_stat, bitmap_gc_alloc_stat): Declare.
268         * bitmap.c: Include hashtab.h
269         (bitmap_descriptor): New.
270         (bitmap_hash): New static variable
271         (hash_descriptor, eq_descriptor, bitmap_descriptor, register_overhead):
272         New static functions.
273         (bitmap_register): New.
274         (bitmap_element_free, bitmap_element_allocate, bitmap_elt_clear_from,
275         bitmap_obstack_release): Do accounting.
276         (bitmap_obstack_alloc_stat): Rename from bitmap_obstack_alloc ; do
277         accounting.
278         (bitmap_gc_alloc_stat): Likewise.
279         (bitmap_obstack_free, bitmap_find_bit): Do statictics.
280         (print_statistics, dump_bitmap_statistics): New functions.
281         * toplev.c (finalize): Dump bitmap statistics.
282
283 2006-12-06  Bernd Schmidt  <bernd.schmidt@analog.com>
284
285         * reload1.c (delete_output_reload): Count occurrences in
286         CALL_INSN_FUNCTION_USAGE.
287         * rtlanal.c (count_occurrences): Handle EXPR_LIST nodes without
288         crashing at the end of the list.
289
290 2006-12-05  Daniel Berlin  <dberlin@dberlin.org>
291
292         * tree-ssa-structalias.c (set_used_smts): Re-fix pr29156.
293         Optimize to avoid marking more SMT's as used when they aren't.
294
295 2006-12-05  Eric Christopher  <echristo@apple.com>
296
297         * config/i386/i386.c (x86_output_aligned_bss): Move out
298         of COMMON_ASM_OP ifdef.
299
300 2006-12-05  Eric Christopher  <echristo@apple.com>
301
302         * config/darwin.h (DARWIN_EXTRA_SPECS): New.
303         (STARTFILE_SPEC): Use.
304         (DARWIN_DYLIB1_SPEC): New.
305         (DARWIN_CRT1_SPEC): New.
306         * config/i386/darwin64.h (SUBTARGET_EXTRA_SPECS): Use
307         DARWIN_EXTRA_SPECS.
308         * config/i386/darwin.h: Ditto.
309         * config/rs6000/darwin.h: Ditto.
310
311 2006-12-05  Daniel Berlin  <dberlin@dberlin.org>
312
313         * tree-vrp.c (pass_vrp): Remove PROP_smt_usage.
314         * tree-complex.c (pass_lower_complex): Ditto.
315         * tree-ssa-ccp.c (pass_ccp): Ditto.
316         (pass_store_ccp): Ditto.
317         * tree-ssa-dom.c (pass_dominator): Ditto.
318         (pass_phi_only_cprop): Ditto.
319         * tree-sra.c (pass_sra): Ditto.
320         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
321         * tree-flow.h (updating_used_alone): Remove.
322         (updating_used_alone): Ditto.
323         * tree-ssa-alias.c (updating_used_alone): Remove variable.
324         (lhs_may_store_to): Remove function.
325         (recalculate_used_alone): Ditto.
326         (compute_may_aliases): Remove used_alone calculation.
327         * tree.h (struct tree_memory_tag): Remove is_used_alone and
328         old_used_alone. Remove SMT_USED_ALONE and SMT_OLD_USED_ALONE.
329         * tree-pass.h (PROP_smt_usage): Remove.
330         * passes.c (execute_todo): Remove used alone recalculation.
331         (execute_one_pass): Ditto.
332         * tree-ssa-operands.c (add_virtual_operand): Remove used_alone
333         stuff.
334
335 2006-12-05  Brooks Moses  <brooks.moses@codesourcery.com>
336
337         * doc/include/texinfo.tex: Update to version 2006-11-08.17.
338
339 2006-12-05  Zdenek Dvorak <dvorakz@suse.cz>
340
341         PR tree-optimization/14784
342         * tree-ssa-operands.c (access_can_touch_variable): Unrevert the fix.
343
344 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
345
346         Merge from gimple-tuples-branch.
347
348         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
349
350         * config/s390/s390.c (s390_va_start): Replace MODIFY_EXPR with
351         GIMPLE_MODIFY_STMT.
352         (s390_gimplify_va_arg): Same.
353         * config/sparc/sparc.c (sparc_gimplify_va_arg): Same.
354         * config/sh/sh.c (sh_va_start): Same.
355         (sh_gimplify_va_arg_expr): Same.
356         * config/xtensa/xtensa.c (xtensa_va_start): Same.
357         (xtensa_gimplify_va_arg_expr): Same.
358         * config/ia64/ia64.c (ia64_gimplify_va_arg): Same.
359         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Same.
360         * config/mips/mips.c (mips_va_start): Same.
361         (mips_gimplify_va_arg_expr): Same.
362
363         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
364
365         * Merge from mainline at revision 119445.
366
367         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
368
369         * config/spu/spu.c (spu_va_start): Change MODIFY_EXPR to
370         GIMPLE_MODIFY_STMT.
371         (spu_gimplify_va_arg_expr): Same.
372
373         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
374
375         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
376         Change uses of MODIFY_EXPR to GIMPLE_MODIFY_STMT.
377         (xstormy16_expand_builtin_va_arg): Same.
378
379         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
380
381         * config/frv/frv.c (frv_expand_builtin_va_start): Change MODIFY_EXPR
382         to GIMPLE_MODIFY_STMT.
383
384         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
385
386         * config/alpha/alpha.c (va_list_skip_additions): Change all
387         occurrences of MODIFY_EXPR to GIMPLE_MODIFY_STMT.
388         (alpha_va_start): Same.
389         (alpha_gimplify_va_arg_1): Same.
390         (alpha_gimplify_va_arg): Same.
391
392         2006-12-01  Aldy Hernandez  <aldyh@redhat.com>
393
394         * gimplify.c (gimplify_modify_expr): Remove FIXME comment.
395
396         2006-12-01  Aldy Hernandez  <aldyh@redhat.com>
397
398         * tree-ssa-loop-im.c: Rename all PROTECTED_TREE_OPERAND to
399         GENERIC_TREE_OPERAND, and all PROTECTED_TREE_TYPE to
400         GENERIC_TREE_TYPE.
401         * tree-complex.c: Same.
402         * tree-pretty-print.c: Same.
403         * tree.c: Same.
404         * tree.h: Same.
405         * builtins.c: Same.
406         * fold-const.c: Same.
407         * tree-ssa-dom.c: Same.
408         * tree-ssa-propagate.c: Same.
409         * tree-ssa-alias.c: Same.
410         * gimple-low.c: Same.
411         * dwarf2out.c: Same.
412         * c-pretty-print.c: Same.
413         * gimplify.c: Same.
414         * tree-inline.c: Same.
415         * tree-outof-ssa.c: Same.
416         * tree-ssa-structalias.c: Same.
417         * tree-ssa-reassoc.c: Same.
418         * stmt.c: Same.
419
420         2006-11-16  Aldy Hernandez  <aldyh@redhat.com>
421
422         * tree.c (build2_stat): Fix comment.
423
424         2006-11-13  Aldy Hernandez  <aldyh@redhat.com>
425
426         * tree-ssa-propagate.c (get_rhs): Use GIMPLE_MODIFY_STMT and
427         TREE_OPERAND when appropriate.
428
429         2006-11-04  Aldy Hernandez  <aldyh@redhat.com>
430
431         * java/java-tree.h (lang_tree_node): Handle gimple tuples.
432         (EXPR_WFL_EMIT_LINE_NOTE): Look inside base.
433         (EXPR_WFL_LINECOL): Use EXPR_LOCUS macro instead of exp.locus.
434         * java/java-gimplify.c (java_gimplify_expr): Comment on why we do
435         not handle GIMPLE_MODIFY_STMT in the switch statement.
436         (java_gimplify_modify_expr): Call build2 with GIMPLE_MODIFY_STMT.
437         (java_gimplify_new_array_init): Same.
438
439         2006-11-03  Aldy Hernandez  <aldyh@redhat.com>
440
441         * gimplify.c (gimplify_omp_for): Allow gimple statements.
442         * tree-outof-ssa.c (check_replaceable): Use PROTECTED_TREE_OPERAND.
443         * fold-const.c (fold_binary): Allow gimple statements.
444         (fold): Same.
445         * fortran/trans-array.c (gfc_conv_descriptor_data_set_internal):
446         Rename from gfc_conv_descriptor_data_set.
447         Call gfc_add_modify instead of gfc_add_modify_expr.
448         * fortran/trans-array.h (gfc_conv_descriptor_data_set_internal):
449         Rename from gfc_conv_descriptor_data_set.
450         (gfc_conv_descriptor_data_set): New macro.
451         (gfc_conv_descriptor_data_set_tuples): New macros.
452         * fortran/trans-openmp.c (gfc_omp_clause_default_ctor): Call
453         gfc_conv_descriptor_data_set_tuples.
454         * fortran/trans.c (gfc_add_modify): Rename from gfc_add_modify_expr.
455         Generate GIMPLE_MODIFY_STMT when appropriate.
456         * fortran/trans.h (gfc_add_modify): Rename from gfc_add_modify_expr.
457         (gfc_add_modify_expr): New macro.
458         (gfc_add_modify_stmt): New macro.
459         * fortran/f95-lang.c (lang_tree_node): Handle gimple statements.
460
461         2006-11-01  Aldy Hernandez  <aldyh@redhat.com>
462
463         * Merge from mainline at revision 118200.
464
465         2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
466
467         * tree-inline.c (copy_bb): Check for GIMPLE_MODIFY_STMT, and adjust
468         accordingly.
469
470         2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
471
472         * tree.h (TREE_CHAIN, TREE_TYPE): Add versions for non GCC or not
473         enable checking.
474         Also, add __extension__ to GCC versions.
475         * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
476         * tree-inline.c (copy_tree_r): Initialize chain to assuage the warning
477         patrol.
478
479         2006-10-05  Aldy Hernandez  <aldyh@redhat.com>
480
481         * tree-complex.c (expand_complex_libcall): Adjust for
482         GIMPLE_MODIFY_STMT.
483         (expand_complex_comparison): Same.
484         * tree-pretty-print.c (dump_generic_node): Is_expr should include
485         GIMPLE_STMT_P statements.
486         * value-prof.c (tree_divmod_fixed_value_transform): Adjust for
487         GIMPLE_MODIFY_STMT.
488         (tree_mod_pow2_value_transform): Same.
489         (tree_mod_subtract_transform): Same.
490         * tree.c (build2_stat): Check for gimplified function in cfun.
491         * tree.h (DECL_GIMPLIFIED): Delete.
492         (struct tree_function_decl): Remove gimplified_flag.
493         * omp-low.c (lower_omp_for): Adjust for GIMPLE_MODIFY_STMT.
494         * cp/cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
495         (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
496         (cxx_omp_clause_copy_ctor): Same.
497         (cxx_omp_clause_assign_op): Same.
498         * c-pretty-print.c (pp_c_conditional_expression): Same.
499         (pp_c_expression): Same.
500         * langhooks.c (lhd_omp_predetermined_sharing): Same.
501         * function.h (struct function): Add gimplified field.
502         * tree-if-conv.c (add_to_dst_predicate_list): Adjust for
503         GIMPLE_MODIFY_STMT.
504         (find_phi_replacement_condition): Same.
505         * gimplify.c (gimplify_modify_expr_to_memcpy): Same.
506         (gimplify_modify_expr_to_memset): Same.
507         (gimplify_init_ctor_eval_range): Same.
508         (gimplify_modify_expr_complex_part): Same.
509         (tree_to_gimple_tuple): Same.
510         (gimplify_modify_expr): Same.
511         (gimple_push_cleanup): Same.
512         (gimplify_omp_for): Same.
513         (gimplify_omp_atomic_pipeline): Same.
514         (gimplify_omp_atomic_mutex): Same.
515         (gimplify_expr): Same.
516         (gimplify_one_sizepos): Same.
517         (gimplify_function_tree): Same.
518         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Same.
519         (vect_recog_widen_sum_pattern): Same.
520         * tree-vect-transform.c (get_initial_def_for_reduction): Same.
521         (vect_create_epilog_for_reduction): Same.
522         (vectorizable_reduction): Same.
523
524         2006-09-28  Aldy Hernandez  <aldyh@redhat.com>
525
526         * tree-ssa-math-opts.c (replace_reciprocal): Use GIMPLE_STMT_OPERAND.
527         * tree-if-conv.c (if_convertible_gimple_modify_stmt_p): Same.
528         (ifc_temp_var): Same.
529         * tree-vect-analyze.c (vect_determine_vectorization_factor): Check
530         for gimple statements.
531         (vect_analyze_operations): Same.
532         (exist_non_indexing_operands_for_use_p): Use GIMPLE_STMT_OPERAND.
533         * gimplify.c (gimplify_return_expr): Handle gimple statements.
534         * lambda-code.c (can_put_in_inner_loop): Same.
535         (can_put_after_inner_loop): Same.
536         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same.
537         (vect_create_data_ref_ptr): Same.
538         (vect_init_vector): Same.
539         (vect_get_vec_def_for_operand): Same.
540         (vect_create_epilog_for_reduction): Same.
541         (vectorizable_reduction): Same.
542         (vectorizable_assignment): Same.
543         (vectorizable_operation): Same.
544         (vectorizable_load): Same.
545         (vectorizable_condition): Same.
546         * config/rs6000/rs6000.c (rs6000_va_start): Do not create MODIFY_EXPRs.
547         (rs6000_gimplify_va_arg): Same.
548
549         2006-09-25  Aldy Hernandez  <aldyh@redhat.com>
550
551         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use
552         GIMPLE_STMT_OPERAND.
553         (simplify_abs_using_ranges): Same.
554         * tree-complex.c (expand_complex_operations_1): Use
555         PROTECTED_TREE_OPERAND.
556         * tree-ssa-loop-niter.c (simplify_replace_tree): Check for gimple
557         stmt.
558         (get_val_for): Use GIMPLE_STMT_OPERAND.
559         * tree-tailcall.c (adjust_accumulator_values): Same.
560         (adjust_return_value): Same.
561         * tree.c (walk_tree): Use IS_GIMPLE_STMT_CODE_CLASS on default
562         case.  Remove special case for tcc_gimple_stmt.
563         * tree.h (CAN_HAVE_LOCATION_P): New.
564         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Check for
565         GIMPLE_STMT_P.
566         * tree-stdarg.c (va_list_counter_bump): Use GIMPLE_STMT_OPERAND.
567         * tree-ssa-dom.c (propagate_rhs_into_lhs): Same.
568         * tree-nrv.c (execute_return_slot_opt): Same.
569         * tree-ssa-alias.c (count_uses_and_derefs): Check for GIMPLE_STMT_P.
570         * tree-vn.c (set_value_handle): Same.
571         (get_value_handle): Same.
572         * c-decl.c (add_stmt): Use CAN_HAVE_LOCATION_P.
573         * tree-vectorizer.c (find_loop_location): Same.
574         * c-typeck.c (c_process_expr_stmt): Same.
575         (c_finish_stmt_expr): Same.
576         * gimplify.c (should_carry_locus_p): Same.
577         (tree_to_gimple_tuple): Delete definition and use of unecessary
578         variable save_tree_block.
579         * tree-ssa-pre.c (phi_translate): Check for GIMPLE_STMT_P.
580         (create_expression_by_pieces): Use GIMPLE_STMT_OPERAND.
581         (realify_fake_stores): Same.
582         * tree-ssa-forwprop.c (forward_propagate_addr_into_variable_arr):
583         Use TREE_OPERAND.
584         * tree-inline.c (copy_body_r): Check for EXPR_P and GIMPLE_STMT_P.
585         (copy_tree_r): Check for IS_GIMPLE_STMT_CODE_CLASS.
586         * tree-cfg.c (move_stmt_r): Use EXPR_P.  Check for GIMPLE_STMT_P.
587         * c-parser.c (c_parser_typeof_specifier): Use CAN_HAVE_LOCATION_P.
588         (c_parser_statement_after_labels): Same.
589         (c_parser_paren_condition): Same.
590         (c_parser_for_statement): Same.
591         (c_parser_omp_for_loop): Same.
592         * tree-ssa-reassoc.c (linearize_expr): Use GIMPLE_STMT_OPERAND.
593         (linearize_expr_tree): Same.
594         * dwarf2out.c (reference_to_unused): Check for GIMPLE_STMT_P.
595         * function.c (instantiate_expr): Same.
596
597         2006-09-22  Aldy Hernandez  <aldyh@redhat.com>
598
599         * tree.c (expr_location): Use GIMPLE_STMT_LOCUS.
600         (set_expr_location): Same.
601         (expr_locus): Same.
602         (set_expr_locus): Same.
603         (expr_filename): Same.
604         (expr_lineno): Same.
605         (tree_block): Use GIMPLE_STMT_BLOCK.
606         (protected_tree_operand): Use GIMPLE_STMT_OPERAND.
607         * tree.h (struct gimple_stmt): Remove prev and next.
608         (GIMPLE_STMT_OPERAND_CHECK): New.
609         (TREE_TO_GIMPLE_STMT): Delete.
610         (GIMPLE_STMT_TO_TREE): Delete.
611         (GIMPLE_STMT_OPERAND): Use union, not cast.
612         (GIMPLE_STMT_LOCUS): New.
613         (GIMPLE_STMT_BLOCK): New.
614         * gimplify.c (tree_to_gimple_tuple): Use union.  Do not cast
615         to tree_base.
616         * tree-cfg.c (verify_gimple_tuples_1): Call gcc_unreachable.
617
618         2006-09-21  Aldy Hernandez  <aldyh@redhat.com>
619
620         * tree-into-ssa.c (REGISTER_DEFS_IN_STMT): Change common.base
621         to base.
622         * tree-tailcall.c (adjust_return_value): Same.
623         * tree.c (tree_code_size): Remove GIMPLE_STATEMENT_LIST case.
624         (copy_node_stat): Change common.base to base.
625         (tree_node_structure): Return TS_GIMPLE_STATEMENT for tcc_gimple_stmt.
626         Remove GIMPLE_STATEMENT_LIST case.
627         * tree.h (struct gimple_stmt): Make operands of type tree.
628         (TREE_CODE, TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL,
629         CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN,
630         TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED,
631         TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC,
632         TYPE_CACHED_VALUES_P, TREE_SIDE_EFFECTS, FORCED_LABEL,
633         TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY,
634         TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED,
635         BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN, TREE_USED,
636         TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT, DECL_BY_REFERENCE,
637         CALL_FROM_THUNK_P, TYPE_ALIGN_OK, TREE_PRIVATE, TREE_PROTECTED,
638         TREE_DEPRECATED, IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT,
639         TREE_LANG_FLAG_*, SSA_NAME_OCCURS_IN_ABNORMAL_PHI,
640         SSA_NAME_IN_FREE_LIST, TYPE_VOLATILE, TYPE_READONLY, BINFO_VIRTUAL_P):
641         Change common.base to base.
642         (GIMPLE_STATEMENT_LIST*): Remove.
643         (union tree_node): Add base.  Remove gimple_statement_list.
644         Remove pointer from gstmt.
645         * tree-ssa-propagate.c (set_rhs): Change common.base to base.
646         * treestruct.def: Add TS_BASE.  Remove TS_GIMPLE_STATEMENT_LIST.
647         * tree-vn.c (vn_compute): Change common.base to base.
648         * tree-eh.c (verify_eh_throw_stmt_node): Same.
649         * tree-flow-inline.h (var_ann): Same.
650         (function_ann): Same.
651         (stmt_ann): Same.
652         (mark_non_addressable): Same.
653         * gimplify.c (tree_to_gimple_tuple): Same.
654         * tree.def (DEFTREECODE): Remove GIMPLE_STATEMENT_LIST.
655         * tree-dfa.c (create_var_ann): Change common.base to base.
656         (create_function_ann): Same.
657         (create_stmt_ann): Same.
658         (create_tree_ann): Same.
659         (collect_dfa_stats_r): Same.
660         * tree-ssa-pre.c (NECESSARY): Change common.base to base.
661         * tree-ssa-dce.c (NECESSARY): Same.
662         * tree-ssa.c (delete_tree_ssa): Same.
663         * tree-optimize.c (execute_free_cfg_annotations): Same.
664         * tree-flow.h: Same.
665
666         2006-09-19  Aldy Hernandez  <aldyh@redhat.com>
667
668         * tree.c (tree_code_size): Handle GIMPLE_STATEMENT_LIST.
669         (tree_node_structure): Handle GIMPLE_STATEMENT_LIST and
670         GIMPLE_MODIFY_STMT.
671         * tree.h (struct gimple_stmt): Add prev and next fields.
672         (GIMPLE_STMT_TO_TREE): Cast, do not call GIMPLE_STMT_CHECK.
673         (GIMPLE_STATEMENT_LIST_HEAD): New.
674         (GIMPLE_STATEMENT_LIST_TAIL): New.
675         (struct gimple_statement_list): New.
676         (union tree_node): Add gimple_stmt_list and gstmt.
677         * treestruct.def: Add TS_GIMPLE_STATEMENT_LIST, TS_GIMPLE_STATEMENT.
678         * tree.def: Add GIMPLE_STATEMENT_LIST.
679
680         2006-09-06  Aldy Hernandez  <aldyh@redhat.com>
681
682         * tree-dump.c (dequeue_and_dump): Handle GIMPLE_MODIFY_STMT.
683         * tree-vrp.c (build_assert_expr_for): Change uses of
684         MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
685         (find_assert_locations): Same.
686         (remove_range_assertions): Same.
687         (stmt_interesting_for_vrp): Same.
688         (vrp_visit_assignment): Same.
689         (vrp_visit_stmt): Same.
690         (simplify_cond_using_ranges): Same.
691         * tree-into-ssa.c (REGISTER_DEFS_IN_THIS_STMT): Adjust for new
692         tree structure.
693         * tree-ssa-loop-im.c (movement_possibility): Change uses of
694         MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
695         (stmt_cost): Same.
696         (determine_invariantness_stmt): Same.
697         (schedule_sm): Same.
698         (gather_mem_refs_stmt): Same.
699         * tree-complex.c (init_dont_simulate_again): Same.
700         (complex_visit_stmt): Same.
701         (set_component_ssa_name): Same.
702         (expand_complex_move): Same.
703         (expand_complex_div_wide): Same.
704         (expand_complex_comparison): Same.
705         (expand_complex_operations_1): Same.
706         * tree-ssa-loop-niter.c (expand_simple_operations): Same.
707         (chain_of_csts_start): Same.
708         (infer_loop_bounds_from_undefined): Same.
709         * tree-pretty-print.c (dump_generic_node): Same.
710         (op_prio): Same.
711         (op_symbol_1): Same.
712         * tree-ssa-loop-manip.c (create_iv): Same.
713         * value-prof.c (tree_divmod_fixed_value): Same.
714         (tree_divmod_fixed_value_transform): Same.
715         (tree_mod_pow2): Same.
716         (tree_mod_pow2_value_transform): Same.
717         (tree_mod_subtract): Same.
718         (tree_mod_subtract_transform): Same.
719         (tree_divmod_values_to_profile): Same.
720         * tree-tailcall.c (process_assignment): Same.
721         (find_tail_calls): Same.
722         (adjust_accumulator_values): Same.
723         (adjust_return_value): Same.
724         (eliminate_tail_call): Same.
725         * tree.c (tree_code_size): Handle tcc_gimple_stmt.
726         (make_node_stat): Same.
727         (copy_node_stat): Handle gimple tuples.
728         (expr_align): Handle GIMPLE_MODIFY_STMT.  Abort on MODIFY_EXPR.
729         (tree_node_structure): Handle tcc_gimple_stmt.
730         (build2_stat): Abort on MODIFY_EXPR after gimplification.  Handle
731         tcc_gimple_stmt.
732         (build2_gimple_stat): New.
733         (expr_location): New.
734         (set_expr_location): New.
735         (expr_has_location): New.
736         (expr_locus): New.
737         (set_expr_locus): New.
738         (expr_filename): New.
739         (expr_lineno): New.
740         (walk_tree): Handle tcc_gimple_stmt.
741         (tree_block): New.
742         (protected_tree_operand): New.
743         (protected_tree_type): New.
744         (tree_code_kind): Add gimple statements.
745         * tree.h (tree_code_class): Add tcc_gimple_stmt.
746         (IS_GIMPLE_STMT_CODE_CLASS): New.
747         (struct tree_base): New.
748         (struct tree_common): Shrink.
749         (struct gimple_stmt): New.
750         (struct gimple_expr): New.
751         (TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL,
752         CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN,
753         TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED,
754         TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC,
755         TYPE_CACHED_VALUES_P, SAVE_EXPR_RESOLVED_P, TREE_SIDE_EFFECTS,
756         FORCED_LABEL, TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY,
757         TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED,
758         BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN,
759         TREE_USED, TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT,
760         DECL_BY_REFERENCE, CALL_FROM_THUNK_P, TYPE_ALIGN_OK,
761         TREE_PRIVATE, TREE_PROTECTED, TREE_DEPRECATED,
762         IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT,
763         TREE_LANG_FLAG_[0-6], SSA_NAME_CHECK, SSA_NAME_IN_FREE_LIST,
764         TYPE_VOLATILE, TYPE_READONLY, TREE_VISITED, BINFO_VIRTUAL_P):
765         Adjust for new `common' layout.
766         (struct tree_function_decl): Add gimplified_flag.
767         (DECL_GIMPLIFIED): NEW.
768         (EXPR_LOCATION, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LOCUS,
769         SET_EXPR_LOCUS, SET_EXPR_LOCATION, EXPR_LINENO,
770         EXPR_HAS_LOCATION): Call corresponding function.
771         (GIMPLE_STMT_CHECK): New.
772         (TREE_OPERAND_CHECK, TREE_TYPE, TREE_CHAIN): Abort on gimple tuples.
773         (TREE_BLOCK): Call tree_block.
774         (GIMPLE_STMT_P): New.
775         (GIMPLE_TUPLE_P): New.
776         (TREE_TO_GIMPLE_STMT): New.
777         (GIMPLE_STMT_TO_TREE): New.
778         (GIMPLE_STMT_OPERAND): New.
779         (GIMPLE_TUPLE_HAS_LOCUS_P): New.
780         (PROTECTED_TREE_OPERAND): New.
781         (PROTECTED_TREE_TYPE): New.
782         (build2_gimple_stat): Protoize.
783         (build2_gimple): New.
784         (expr_location): Protoize.
785         (set_expr_location): Protoize.
786         (expr_has_location): Protoize.
787         (expr_locus): Protoize.
788         (set_expr_locus): Protoize.
789         (expr_filename): Protoize.
790         (expr_lineno): Protoize.
791         (tree_block): Protoize.
792         (protected_tree_operand): Protoize.
793         (protected_tree_type): Protoize.
794         (enum tree_node_kind): Add gimple_stmt_kind.
795         * c-decl.c (union lang_tree_node): Tuples do not have a
796         TREE_CHAIN.
797         * ipa-cp.c (constant_val_insert): Change uses of MODIFY_EXPR to
798         GIMPLE_MODIFY_STMT and adjust accordingly.
799         * tree-scalar-evolution.c (follow_ssa_edge): Same.
800         (interpret_condition_phi): Same.
801         (pointer_used_p): Same.
802         (analyze_scalar_evolution_1): Same.
803         (scev_const_prop): Same.
804         (interpret_rhs_modify_stmt): Rename from
805         interpret_rhs_modify_expr.
806         * builtins.c (std_expand_builtin_va_start): Change uses of
807         MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
808         (std_gimplify_va_arg_expr): Same.
809         (expand_builtin_va_copy): Same.
810         (integer_valued_real_p): Same.
811         * fold-const.c (maybe_lvalue_p): Same.
812         (fold_unary): Same.
813         (tree_expr_nonnegative_p): Same.
814         (tree_expr_nonzero_p): Same.
815         * omp-low.c (extract_omp_for_data): Same.
816         (lower_rec_input_clauses): Same.
817         (lower_reduction_clauses): Same.
818         (lower_copyprivate_clauses): Same.
819         (lower_send_clauses): Same.
820         (lower_send_shared_vars): Same.
821         (expand_parallel_call): Same.
822         (expand_omp_parallel): Same.
823         (expand_omp_for_generic): Same.
824         (expand_omp_for_static_nochunk): Same.
825         (expand_omp_for_static_chunk): Same.
826         (expand_omp_sections): Same.
827         (lower_omp_single_copy): Same.
828         (lower_omp_parallel): Same.
829         * tree-ssa-dse.c (memory_address_same): Same.
830         (dse_optimize_stmt): Same.
831         * ipa-reference.c (scan_for_static_refs): Same.
832         * tree-gimple.c (is_gimple_reg_rhs): Same.
833         (get_call_expr_in): Same.
834         (recalculate_side_effects): Same.
835         * cgraphunit.c (cgraph_create_edges): Same.
836         * tree-ssa-copyrename.c (rename_ssa_copies): Same.
837         * tree-ssa-ccp.c (get_default_value): Same.
838         (likely_value): Same.
839         (visit_assignment): Same.
840         (ccp_visit_stmt): Same.
841         (get_maxval_strlen): Same.
842         (ccp_fold_builtin): Same.
843         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Same.
844         (find_givs_in_stmt): Same.
845         (find_interesting_uses_op): Same.
846         (find_interesting_uses_stmt): Same.
847         (rewrite_use_nonlinear_expr): Same.
848         * ipa-pure-const.c (scan_function): Same.
849         * tree-stdarg.c (va_list_counter_bump): Same.
850         (check_all_va_list_escapes): Same.
851         (execute_optimize_stdarg): Same.
852         * tree-ssa-math-opts.c (compute_merit): Same.
853         (insert_reciprocals): Same.
854         (execute_cse_reciprocals): Same.
855         * tree-ssa-dom.c (initialize_hash_element): Same.
856         (simple_iv_increment_p): Same.
857         (record_equivalences_from_stmt): Same.
858         (optimize_stmt): Same.
859         (remove_stmt_or_phi): Same.
860         (get_rhs_or_phi_arg): Same.
861         (get_lhs_or_phi_result): Same.
862         (propagate_rhs_into_lhs): Same.
863         * tree-nrv.c (tree_nrv): Same.
864         (execute_return_slot_opt): Same.
865         * tree-ssa-propagate.c (get_rhs): Same.
866         (set_rhs): Same.
867         (stmt_makes_single_load): Same.
868         (stmt_makes_single_store): Same.
869         (replace_vuses_in): Same.
870         (fold_predicate_in): Same.
871         (substitute_and_fold): Same.
872         * tree-ssa-alias.c (compute_call_clobbered): Same.
873         (recalculate_used_alone): Same.
874         (count_uses_and_derefs): Same.
875         (is_escape_site): Same.
876         (find_used_portions): Same.
877         * gimple-low.c (lower_stmt): Same.
878         (block_may_fallthru): Same.
879         (lower_return_expr): Same.
880         * tree-ssa-sink.c (is_hidden_global_store): Same.
881         (statement_sink_location): Same.
882         * dwarf2out.c (loc_descriptor_from_tree_1): Same.
883         * expr.c (safe_from_p): Same.
884         (expand_expr_real): Same.
885         (expand_expr_real_1): Same.
886         * tree-ssa-loop-ivcanon.c (empty_loop_p): Same.
887         * predict.c (expr_expected_value): Same.
888         (strip_builtin_expect): Same.
889         (apply_return_prediction): Same.
890         (tree_bb_level_predictions): Same.
891         (tree_estimate_probability): Same.
892         * tree-vn.c (vn_compute): Same.
893         * tree-eh.c (add_stmt_to_eh_region_fn): Same.
894         (remove_stmt_from_eh_region_fn): Same.
895         (do_return_redirection): Same.
896         (honor_protect_cleanup_actions): Same.
897         (lower_try_finally_switch): Same.
898         (lower_eh_constructs_1): Same.
899         (tree_could_throw_p): Same.
900         (verify_eh_throw_stmt_node): Same.
901         * function.c (gimplify_parameters): Same.
902         * tree-vectorizer.c (vect_is_simple_use): Same.
903         (vect_is_simple_reduction): Same.
904         * ipa-type-escape.c (scan_for_refs): Same.
905         * tree-if-conv.c (tree_if_conversion): Same.
906         (tree_if_convert_stmt): Same.
907         (if_convertible_gimplify_modify_stmt_p): Rename from
908         if_convertible_modify_expr_p.
909         (if_convertible_stmt_p): Adjust for GIMPLE_MODIFY_STMT.
910         (ifc_temp_var): Same.
911         (replace_phi_with_cond_modify_stmt): Rename from
912         replace_phi_with_cond_modify_expr.
913         (process_phi_nodes): Call replace_phi_with_cond_modify_stmt.
914         * tree.def (DEFTREECODE): Add GIMPLE_MODIFY_STMT.
915         * tree-data-ref.c (find_data_references_in_loop): Adjust for
916         GIMPLE_MODIFY_STMT.
917         * tree-flow-inline.h (var_ann): Same.
918         (function_ann): Same.
919         (stmt_ann): Same.
920         (mark_non_addressable): Same.
921         * tree-vect-analyze.c (vect_determine_vectorization_factor): Same.
922         * gimplify.c (tree_to_gimple_tuple): New.
923         (build_stack_save_restore): Adjust for GIMPLE_MODIFY_STMT.
924         (gimplify_return_expr): Same.
925         (gimplify_decl_expr): Same.
926         (gimplify_self_mod_expr): Same.
927         (gimplify_cond_expr): Same.
928         (gimplify_init_constructor): Same.
929         (gimplify_modify_expr): Same.
930         (gimplify_expr): Same.
931         (gimplify_function_tree): Same.
932         (force_gimple_operand): Same.
933         * tree-ssa-phiopt.c (conditional_replacement): Same.
934         (minmax_replacement): Same.
935         (abs_replacement): Same.
936         * tree-dfa.c (create_var_ann): Same.
937         (create_function_ann): Same.
938         (create_stmt_ann): Same.
939         (create_tree_ann): Same.
940         (collect_dfa_stats_r): Same.
941         * tree-ssa-pre.c (find_or_generate_expression): Same.
942         (create_expression_by_pieces): Same.
943         (try_look_through_load): Same.
944         (insert_fake_stores): Same.
945         (realify_fake_stores): Same.
946         (compute_avail): Same.
947         (eliminate): Same.
948         (init_pre): Same.
949         (poolify_modify_stmt): Rename from poolify_modify_stmt.
950         Adjust for GIMPLE_MODIFY_STMT.
951         (NECESSARY): Adjust for new `common' layout.
952         * tree-ssa-live.c (build_tree_conflict_graph): Adjust for
953         GIMPLE_MODIFY_STMT.
954         * tree-sra.c (sra_walk_modify_stmt): Rename from
955         sra_walk_modify_expr.
956         (sra_walk_function): Adjust for GIMPLE_MODIFY_STMT.
957         (generate_copy_inout): Same.
958         (generate_element_copy): Same.
959         (generate_element_zero): Same.
960         (scalarize_copy): Same.
961         * tree-mudflap.c (mf_decl_cache_locals): Same.
962         (mf_build_check_statement_for): Same.
963         (mf_xform_derefs): Same.
964         * ipa-prop.c (ipa_method_modify_stmt): Same.
965         * print-tree.c (print_node): Handle gimple tuples.
966         Add case for tcc_gimple_stmt.
967         * tree-ssa-copy.c (stmt_may_generate_copy): Adjust for
968         GIMPLE_MODIFY_STMT.
969         (copy_prop_visit_assignment): Same.
970         (copy_prop_visit_stmt): Same.
971         (init_copy_prop): Same.
972         * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): Same.
973         (forward_propagate_into_cond_1): Same.
974         (find_equivalent_equality_comparison): Same.
975         (tidy_after_forward_propagate_addr): Same.
976         (forward_propagate_addr_expr_1): Same.
977         (simplify_not_neg_expr): Same.
978         (simplify_switch_expr): Same.
979         * tree-ssa-dce.c (find_pdom): Same.
980         (mark_stmt_if_obviously_necessary): Same.
981         (NECESSARY): Adjust for new `common' layout.
982         * tree-flow.h: Same.
983         * tree-vect-patterns.c (widened_name_p): Adjust for
984         GIMPLE_MODIFY_STMT.
985         (vect_recog_dot_prod_pattern): Same.
986         (vect_recog_widen_sum_pattern): Same.
987         (vect_pattern_recog_1): Same.
988         * tree-nested.c (init_tmp_var): Same.
989         (save_tmp_var): Same.
990         (walk_stmts): Same.
991         (convert_call_expr): Same.
992         (finalize_nesting_tree_1): Same.
993         * tree-ssa.c (verify_ssa): Same.
994         (delete_tree_ssa): Same.
995         * lambda-code.c (lbv_to_gcc_expression): Same.
996         (lle_to_gcc_expression): Same.
997         (lambda_loopnest_to_gcc_loopnest): Same.
998         (can_put_in_inner_loop): Same.
999         (can_convert_to_perfect_nest): Same.
1000         (perfect_nestify): Same.
1001         * tree-ssa-loop-prefetch.c (gather_memory_references): Same.
1002         * tree-inline.c (copy_body_r): Same.
1003         (setup_one_parameter): Same.
1004         (initialize_inlined_parameters): Same.
1005         (estimate_num_insns_1): Same.
1006         (expand_call_inline): Same.
1007         (gimple_expand_calls_inline): Same.
1008         (copy_tree_r): Same.
1009         * tree-optimize.c (execute_free_cfg_annotations): Same.
1010         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same.
1011         (vect_align_data_ref): Same.
1012         (vect_create_data_ref_ptr): Same.
1013         (vect_init_vector): Same.
1014         (vect_create_epilog_for_reduction): Same.
1015         (vectorizable_reduction): Same.
1016         (vectorizable_assignment): Same.
1017         (vectorizable_operation): Same.
1018         (vectorizable_store): Same.
1019         (vectorizable_load): Same.
1020         (vectorizable_live_operation): Same.
1021         (vectorizable_condition): Same.
1022         (vect_generate_tmps_on_preheader): Same.
1023         (vect_create_cond_for_align_checks): Same.
1024         * tree-object-size.c (collect_object_sizes_for): Same.
1025         (check_for_plus_in_loops_1): Same.
1026         (check_for_plus_in_loops): Same.
1027         * tree-outof-ssa.c (insert_copy_on_edge): Same.
1028         (replace_use_variable): Same.
1029         (check_replaceable): Same.
1030         (rewrite_trees): Same.
1031         (identical_copies_p): Same.
1032         (insert_backedge_copies): Same.
1033         * tree-profile.c (tree_gen_edge_profiler): Same.
1034         * tree-vect-generic.c (expand_vector_operations_1): Same.
1035         * tree-ssa-structalias.c (update_alias_info): Same.
1036         (find_func_aliases): Same.
1037         * tree-cfg.c (factor_computed_gotos): Same.
1038         (make_edges): Same.
1039         (make_goto_expr_edges): Same.
1040         (tree_merge_blocks): Same.
1041         (remove_useless_stmts_cond): Same.
1042         (remove_useless_stmts_1): Same.
1043         (tree_find_edge_insert_loc): Same.
1044         (verify_expr): Same.
1045         (gimplify_val): Same.
1046         (verify_gimple_tuples_1): New.
1047         (verify_gimple_tuples): New.
1048         (verify_stmts): Call verify_gimple_tuples.
1049         * tree-ssa-reassoc.c (get_rank): Adjust for GIMPLE_MODIFY_STMT.
1050         (get_unary_op): Same.
1051         (linearize_expr): Same.
1052         (get_single_immediate_use): Same.
1053         (negate_value): Same.
1054         (should_break_up_subtract): Same.
1055         (break_up_subtract): Same.
1056         (repropagate_negates): Same.
1057         (break_up_subtract_bb): Same.
1058         (reassociate_bb): Same.
1059         * config/i386/i386.c (ix86_va_start): Same.
1060         (ix86_gimplify_va_arg): Same.
1061         * stmt.c (expand_expr_stmt): Same.
1062         (warn_if_unused_value): Same.
1063         (expand_return): Same.
1064         * tree-ssanames.c (make_ssa_name): Same.
1065         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Same.
1066         * tree-ssa-operands.c (finalize_ssa_defs): Same.
1067         (add_virtual_operand): Same.
1068         (get_expr_operands): Same.
1069         (parse_ssa_operands): Same.
1070         (get_modify_stmt_operands): Rename from get_modify_expr_operands.
1071
1072 2006-12-05  H.J. Lu  <hongjiu.lu@intel.com>
1073
1074         * config.host: Remove extra blank line.
1075
1076 2006-12-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1077
1078         * config.host (i[34567]86-*-*, x86-64-*-*): Use driver-i386.o only if
1079         target is also an x86 variant.
1080
1081 2006-12-05  Richard Guenther  <rguenther@suse.de>
1082
1083         * config/i386/i386.c (ix86_builtin_vectorized_function): Declare.
1084         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
1085         (ix86_builtin_vectorized_function): New function to vectorize
1086         sqrt.
1087
1088 2006-12-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1089
1090         * config/bfin/bfin.c (output_file_start): Fix comment which referred to
1091         ia64_override_options.
1092
1093 2006-12-04  Jan Hubicka  <jh@suse.cz>
1094
1095         * cfgexpand.c (expand_one_var): Guard expand_one_stack_var by
1096         really_expand.
1097
1098 2006-12-04  Bernd Schmidt  <bernd.schmidt@analog.com>
1099
1100         * rtlanal.c (note_uses): Deal with SEQUENCEs.
1101         * config/bfin/bfin.c: Include "timevar.h".
1102         (bfin_flag_schedule_insns2, splitting_for_sched,
1103         bfin_flag_var_tracking): New variables.
1104         (print_operand): Handle '%!'.
1105         (override_options): Disable normal sched2 pass, instead set
1106         bfin_flag_schedule_insns2 for reorg to handle it.
1107         (output_file_start): Likewise for var-tracking.
1108         (bfin_optimize_loop): Take some care not to stumble over SEQUENCEs.
1109         (gen_one_bundle, bfin_gen_bundles, type_for_anomaly, trapping_loads_p):
1110         New functions.
1111         (bfin_reorg): Do second scheduling pass here, and call
1112         bfin_gen_bundles.  Use type_for_anomaly and trapping_loads_p instead
1113         of examining insns directly.  If bfin_flag_var_tracking, call
1114         var-tracking pass when done with everything else.
1115         * config/bfin/bfin.h (PRINT_OPERAND_PUNCT_VALID_P): '!' is valid.
1116         * config/bfin/bfin.md (UNSPEC_32BIT): New constant.
1117         (movsi_insn32): New pattern, with two new splits to create it
1118         before the final scheduling pass.
1119         (neghi2): Not a dsp32 insn, rather alu0.
1120         (movbi, pushsi_insn, popsi_insn, movsi_insn, movv2hi_insn, movhi_insn,
1121         movqi_insn, movsf_insn, movsi_insv, extendhisi2, zero_extendhisi2,
1122         extendqihi2, extendqisi2, zero_extendqihi2, zero_extendqisi2,
1123         mulhisi3, umulhisi3, ssadsi3, sssubsi3, smaxsi3, sminsi3, abssi2,
1124         ssnegsi2, signbitssi2, smaxhi3, sminhi3, abshi2, ssneghi2, signbitshi2,
1125         movhi_low2high, movhi_high2high, movhi_low2low, movhi_high2low,
1126         movhiv2hi_low, movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi,
1127         ssaddhi3, sssubhi3, addv2hi3, ssaddv2hi3, subv2hi3, sssubv2hi3,
1128         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3, sublohiv2hi3,
1129         subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3, addlohiv2hi3,
1130         addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3, sminv2hi3, smaxv2hi3,
1131         flag_mulhi, flag_mulhisi, flag_mulhisi_parts, flag_machi,
1132         flag_machi_acconly, flag_macinithi, flag_macinit1hi, mulv2hi3,
1133         flag_mulv2hi, flag_mulv2hi_parts, flag_macv2hi_parts,
1134         flag_macv2hi_parts_acconly, flag_macinitv2hi_parts,
1135         flag_macinit1v2hi_parts, mulhisi_ll, mulhisi_lh, mulhisi_hl,
1136         mulhisi_hh, ssnegv2hi2, absv2hi2, ssashiftv2hi3, ssashifthi3,
1137         lshiftv2hi3, lshifthi3): Use '%!' to terminate all dsp32/load/store
1138         variants instead of ';'.
1139         (ror_one, rol_one): Likewise.  Make them dsp32 insns.
1140         (ashlsi3_insn, ashrsi3, lshrsi3): Add dsp32 variants.
1141         (align8, align16, align24): Now named patterns; also using '%!'.
1142         (mnop): New insn.
1143
1144 2006-12-05  Kazu Hirata  <kazu@codesourcery.com>
1145
1146         * config/i386/darwin.h, config/spu/spu.c, tree-ssa-live.c,
1147         tree-vect-generic.c, tree-vect-transform.c: Fix comment typos.
1148
1149 2006-12-04  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1150
1151         * config/spu/spu-protos.c (spu_split_address): Add.
1152         * config/spu/spu.c (spu_split_address): Add.
1153         (print_operand): Handle HIGH.
1154         (spu_legitimate_address):  Don't test for aligned CONST.
1155         (spu_expand_mov):  Don't split addresses here.
1156         * config/spu/constraints.md (A): Don't test legitimate_const.
1157         * config/spu/spu.md: Add split of movsi patterns for PIC mode.
1158         (ceq_di): Use correct predicates.
1159
1160 2006-12-04  Eric Christopher  <echristo@apple.com>
1161
1162         * config/darwin.h: Update copyright notice.
1163         * config/i386/darwin.h: Ditto.
1164
1165 2006-12-04  Jan Hubicka  <jh@suse.cz>
1166
1167         * builtins.c (fold_builtin_memory_op): Check that expr_size match.
1168         * explow.c (expr_size, int_expr_size): Assert that size is non_NULL.
1169
1170 2006-12-04  Daniel Berlin  <dberlin@dberlin.org>
1171
1172         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Call
1173         set_used_smts.
1174         * tree-ssa-structalias.c (set_used_smts): Export.
1175         (find_what_p_points_to): Don't call set_used_smts here.
1176         * tree-ssa-structalias.h (set_used_smts): Add prototype.
1177
1178 2006-12-04  Daniel Berlin  <dberlin@dberlin.org>
1179
1180         * tree-ssa-alias.c (compute_may_aliases):
1181         Compute flow sensitive before flow insensitive.
1182         (compute_flow_sensitive_aliasing): Don't try to add
1183         a symbol memory tag to itself.
1184
1185         * alias.h (alias_set_subset_of): New prototype.
1186
1187         * alias.c (alias_set_subset_of): New function.
1188
1189         * tree-ssa-structalias.c: Update comments.
1190         (struct variable_info): Add finished_solution.
1191         (new_varinfo): Set finished solution to NULL.
1192         (var_escaped_vars): Remove.
1193         (escaped_vars_tree): Remove.
1194         (escaped_vars_id): Remove.
1195         (nonlocal_vars_id): Remove.
1196         (constraint_expr_type): Add INCLUDES.
1197         (graph_size): Removed.
1198         (dump_constraint): Support INCLUDES.
1199         (build_constraint_graph): Ditto.
1200         (collapse_nodes): Add merge_solutions argument.
1201         Don't merge attributes.
1202         (process_unification_queue): Just use collapse_nodes.
1203         (perform_var_substitution): Update call to collapse_nodes.
1204         (get_constraint_exp_from_ssa_var): Use INCLUDES.
1205         (process_constraint): Fix non-field sensitive handling
1206         Handle includes.
1207         (get_constraint_for): Use INCLUDES.
1208         (make_constraint_from_anything): Renamed from
1209         make_constraint_from_escaped.
1210         (make_constraint_to_escaped): Removed.
1211         (find_global_initializers): Removed.
1212         (create_variable_info_for): Do not make constraints to escaped
1213         vars anymore.
1214         (dump_solution_for_var): Don't print out the equivalent points-to
1215         sets, just use the name of the variable it shares it with.
1216         (intra_create_variable_infos): Use INCLUDES.
1217         Change nonlocal variable sets to anything sets.
1218         (init_base_vars): Remove escaped_vars and nonlocal_var
1219         initialization.
1220         (find_escape_constraints): Removed.
1221         (delete_points_to_sets): Remove dead code.
1222         (used_smt_calculated): New variable.
1223         (set_used_smts): New function.
1224         (merge_smts_into): New function.
1225         (find_what_p_points_to): Modify to use SMTs.
1226         (create_nonlocal_var): Remove.
1227
1228         * tree-ssa-operands.c (access_can_touch_variable): Remove
1229         reference to nonlocal_all.
1230
1231         * tree-ssa.c (verify_name_tags): Remove.
1232
1233 2006-12-04  Carlos O'Donell  <carlos@codesourcery.com>
1234
1235         * config/arm/unwind-arm.c: Adjust __cxa_type_match declaration.
1236         (__gnu_unwind_pr_common): Pass is_reference to __cxa_type_match.
1237
1238 2006-12-04  Andrew MacLeod  <amacleod@redhat.com>
1239
1240         * tree-outof-ssa.c (coalesce_ssa_name): Use calculate_live_ranges.
1241         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info): Update.
1242         (add_livein_if_notdef): Delete.
1243         (loe_visit_block): New.  Propogate live on entry info for a block into
1244         each predecessor.  If it changes, make sure it is visited again.
1245         (live_worklist): Visit every block and update the live on entry info
1246         for preds.  Iterate over any that changed.
1247         (set_var_live_on_entry): Populate the live on entry blocks with bits
1248         based on the immediate uses of a var.
1249         (calculate_live_on_entry): Remove.
1250         (calculate_live_on_exit): Calculate live on exit based on the newly
1251         oriented live on entry bits.
1252         (calculate_live_ranges): Build live on entry and exit vectors.
1253         (dump_live_info): Use new orientation of live on entry bitmaps.
1254         (verify_live_on_entry): New.  Split out verification code from old
1255         calculate_live_on_entry routine.
1256         * tree-ssa-live.h (struct tree_live_info_d): Add Working stack.
1257         (live_entry_blocks): Rename to live_on_entry and return bitmap for a
1258         basic_block instead of for a partition.
1259         (live_merge_and_clear): Add asserts.
1260         (make_live_on_entry): Set partition bit in basic block vector.
1261
1262 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
1263
1264         PR libgomp/29947
1265         * omp-low.c (expand_omp_for_static_nochunk,
1266         expand_omp_for_static_chunk): Do all arithmetics in signed rather than
1267         unsigned type.
1268
1269         PR middle-end/29965
1270         * omp-low.c (determine_parallel_type): Don't try to optimize combined
1271         parallels if region->exit or region->inner->exit is NULL.
1272         (expand_omp_parallel): Handle NULL region->exit even if cfg is already
1273         built.
1274         (expand_omp_for_generic): Handle NULL region->cond and region->exit.
1275         (expand_omp_for): Use expand_omp_for_generic if either region->cond
1276         or region->exit is NULL.
1277         (expand_omp_sections): Handle NULL region->cond or region->exit.
1278         (expand_omp_synch):
1279
1280 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1281
1282         * config/sparc/sp64-elf.h (JUMP_TABLES_IN_TEXT_SECTION): Delete.
1283         * config/sparc/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
1284
1285 2006-12-04  Eric Botcazou  <ebotcazou@adacore.com>
1286
1287         * tree.c (walk_type_fields): Do not handle TYPE_MIN_VALUE and
1288         TYPE_MAX_VALUE for scalar types here but...
1289         (walk_tree): ...there instead.  Return NULL_TREE if the TYPE_DECL
1290         is attached an error mark, and the return value of the callback
1291         if it is not NULL_TREE.
1292
1293 2006-12-04  Ben Elliston  <bje@au.ibm.com>
1294
1295         * config/spu/spu.md (_mulv4si3): Remove unused local variables.
1296
1297 2006-12-03  Eric Christopher  <echristo@apple.com>
1298
1299         PR target/24598
1300         * config/t-slibgcc-darwin: Pass -install_name.
1301         * config/darwin.h (LINK_COMMAND_SPEC): Remove use of
1302         libtool. Only pass through options that the linker recognizes.
1303         (LINK_SPEC): Update comment. Translate options.
1304         (STARTFILE_SPEC): Add dylib1.o for shared libraries.
1305         * config/darwin9.h (LINK_COMMAND_SPEC): Ditto above.
1306
1307 2006-12-03  Dorit Nuzman  <dorit@il.ibm.com>
1308
1309         * config/spu/spu.md (smaxv4sf3, sminv4sf3): New.
1310
1311 2006-12-03  Uros Bizjak  <ubizjak@gmail.com>
1312
1313         PR target/30041
1314         * config/i386/sse.md ("*sse3_movddup"): Use operands[0] and
1315         operands[1] in insn constraint.  Correct type attribute to sselog1.
1316
1317 2006-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1318
1319         PR target/30040
1320         * config/i386/driver-i386.c: Include "coretypes.h" and "tm.h".
1321         (bit_SSSE3): New.
1322         (host_detect_local_cpu): Check -mtune= vs. -march=. Rewrite
1323         processor detection.
1324
1325         * config/i386/i386.h (CC1_CPU_SPEC): Add -mtune=native for
1326         -march=native if there is no -mtune=*.
1327
1328         * config/i386/x-i386 (driver-i386.o): Also depend on $(TM_H)
1329         coretypes.h.
1330
1331 2006-12-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1332
1333         * doc/install.texi: Update recommended MPFR version.  Remove
1334         obsolete reference to cumulative patch.
1335
1336 2006-12-02  Lee Millward  <lee.millward@codesourcery.com>
1337
1338         PR c/27953
1339         * c-decl.c (store_parm_decls_oldstyle): Robustify.
1340
1341 2006-11-30  Jan Hubicka  <jh@suse.cz>
1342             Uros Bizjak  <ubizjak@gmail.com>
1343
1344         * config/i386/i386.c (pentium4_cost, nocona_cost): Update
1345         32bit memcpy/memset decriptors.
1346         (decide_alg): With -minline-all-stringops and sizes that are best
1347         to be copied via libcall still work hard enough to pick non-libcall
1348         strategy.
1349
1350 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
1351
1352         * doc/extend.texi, doc/invoke.texi, doc/md.texi: Fix typos.
1353
1354         * builtins.c, cfgloop.h, cgraph.h, config/arm/arm.c,
1355         config/i386/i386.c, config/i386/i386.h, config/mips/mips.h,
1356         config/rs6000/cell.md, config/rs6000/rs6000.c, config/sh/sh.c,
1357         config/sh/sh4-300.md, config/spu/spu-builtins.def,
1358         config/spu/spu-c.c, config/spu/spu-modes.def,
1359         config/spu/spu.c, config/spu/spu.md,
1360         config/spu/spu_internals.h, config/spu/vmx2spu.h,
1361         fold-const.c, fwprop.c, predict.c, tree-data-ref.h,
1362         tree-flow.h, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
1363         tree-ssa-pre.c, tree-vect-analyze.c, tree-vect-transform.c,
1364         tree-vectorizer.c, tree-vrp.c: Fix comment typos.  Follow
1365         spelling conventions.
1366
1367         * config/i386/i386.c: Fix a comment typo.
1368
1369 2006-12-01  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1370
1371         * config/spu/spu.c (spu_immediate): Remove trailing comma.
1372         (reloc_diagnostic): Call warning when -mwarn-reloc is specified.
1373         * config/spu/spu.md: (zero_extendhisi2): Expand instead of split for
1374         better optimization.
1375         (floatv4siv4sf2): New.
1376         (fix_truncv4sfv4si2): New.
1377         (floatunsv4siv4sf2): New.
1378         (fixuns_truncv4sfv4si2): New.
1379         (addv16qi3): New.
1380         (subv16qi3): New.
1381         (negv16qi2): New.
1382         (mulv8hi3): New.
1383         (mulsi3): Remove.
1384         (mul<mode>3): New.
1385         (_mulv4si3): New.
1386         (cmp<mode>): Don't accept constant arguments for DI, TI and SF.
1387         * config/spu/spu_internals.h: Handle overloaded intrinsics in C++ with
1388         spu_resolve_overloaded_builtin instead of static inline functions.
1389
1390 2006-12-01  Eric Botcazou  <ebotcazou@adacore.com>
1391
1392         * fold-const.c (fold_binary) <LT_EXPR>: Use the precision of the
1393         type instead of the size of its mode to compute the highest and
1394         lowest possible values.  Still check the size of the mode before
1395         flipping the signedness of the comparison.
1396
1397 2006-12-01  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1398
1399         * config/spu/predicates.md (spu_mov_operand): Add.
1400         * config/spu/spu.c (spu_expand_extv): Remove unused code.
1401         (print_operand_address, print_operand): Handle addresses containing AND.
1402         (spu_split_load, spu_split_store): Use updated movti pattern.
1403         * config/spu/spu.md: (_mov<mode>, _movdi, _movti): Handle loads and
1404         stores in mov patterns for correct operation of reload.
1405         (lq, lq_<mode>, stq, stq_<mode>): Remove.
1406
1407 2006-12-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1408
1409         PR c++/30021
1410         * c-common.c (check_main_parameter_types): Check for error_mark_node.
1411
1412 2006-12-01  Andrew MacLeod  <amacleod@redhat.com>
1413
1414         * common.opt (ftree-combine-temps): Remove.
1415         * tree-outof-ssa.c (SSANORM_COMBINE_TEMPS): Remove.
1416         (coalesce_ssa_name): Don't check for combine-temps.
1417         (coalesce_vars): Remove.
1418         (check_replaceable): Use num_imm_uses.
1419         (remove_ssa_form, insert_backedge_copies, rewrite_out_of_ssa): Don't
1420         check for combine-temps.
1421         (rewrite_out_of_ssa): Never create a ref_count in the var_map.
1422         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Change parms
1423         to register_ssa_partition calls.
1424         * tree-ssa-live.c (register_ssa_partition): Remove prototype.
1425         (init_var_map, delete_var_map): remove refernces to ref_count.
1426         (create_ssa_var_map): Never calculate a ref count.
1427         (type_var_init): Remove.
1428         * tree-ssa-live.h (typedef struct _var_map): Remove ref_count.
1429         (SSA_VAR_MAP_REF_COUNT): Delete.
1430         (create_ssa_var_map): Change Prototype to have no parameters.
1431         (version_ref_count): Delete.
1432         (register_ssa_partition): Remove 'is_use' paramater and don't set the
1433         ref_count vector.
1434         (type_var_num, type_var, type_var_first_partition,
1435         type_var_next_partition, type_var_dump, type_var_delete,
1436         type_var_remove_partition, type_var_find, type_var_compact,
1437         type_var_decompact): Remove.
1438
1439 2006-12-01  Bernd Schmidt  <bernd.schmidt@analog.com>
1440
1441         * config/bfin/bfin.md (pushsi_insn, popsi_insn): Set correct addrtype
1442         attribute.
1443
1444 2006-12-01  Richard Guenther  <rguenther@suse.de>
1445
1446         PR c++/29433
1447         * dwarf2out.c (struct pubname_struct): Make name const.
1448         (add_pubtype): Do not xstrdup identifiers.
1449
1450 2006-12-01  Bernd Schmidt  <bernd.schmidt@analog.com>
1451
1452         * config/bfin/bfin.c (bfin_valid_add): Fix the logic that ensures
1453         multiword accesses are in range.
1454
1455 2006-12-01  Zdenek Dvorak <dvorakz@suse.cz>
1456
1457         PR tree-optimization/29921
1458         * tree-ssa-ccp.c (canonicalize_float_value): New function.
1459         (set_lattice_value): Use canonicalize_float_value.
1460
1461 2006-11-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1462
1463         * config/spu/spu.c (spu_builtin_range): Move from spu-c.c
1464         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Delete.
1465         (spu_cpu_cpp_builtins): Remove.
1466         (spu_override_options): Don't set warn_main.
1467         (spu_force_reg): Move from spu-c.c.
1468         (spu_check_builtin_parm): Likewise.
1469         (expand_builtin_args): Likewise.
1470         (spu_expand_builtin_1): Likewise.
1471         (spu_expand_builtin): Likewise.
1472         * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Define, set
1473         warn_main and targetm.resolve_overloaded_builtin.
1474         * config/spu/spu-c.c (spu_builtin_range): Remove.
1475         (spu_check_builtin_parm): Remove.
1476         (expand_builtin_args): Remove.
1477         (spu_expand_builtin_1): Remove.
1478         (spu_expand_builtin): Remove.
1479         (spu_cpu_cpp_builtins): Moved from spu.c
1480         (spu_force_reg): Remove.
1481
1482 2006-12-01  Joseph Myers  <joseph@codesourcery.com>
1483             David Edelsohn  <edelsohn@gnu.org>
1484
1485         PR target/24036
1486         * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
1487         HARD_REGNO_NREGS_WITH_PADDING): Document new target macros.
1488         * defaults.h (HARD_REGNO_NREGS_HAS_PADDING,
1489         HARD_REGNO_NREGS_WITH_PADDING): Define.
1490         * config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING,
1491         HARD_REGNO_NREGS_WITH_PADDING): Define.
1492         * rtlanal.c (subreg_regno_offset, subreg_offset_representable_p):
1493         Use new macros to detect modes with holes; do not look at integer
1494         units.
1495         (subreg_offset_representable_p): Check for and disallow cases
1496         where the modes use different numbers of bits from registers.
1497         * config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode
1498         constant for soft-float.
1499         (rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs
1500         containing doubles.
1501         (rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves
1502         in E500 double case.
1503         * config/rs6000/rs6000.md (movtf): Allow soft-float.
1504         (movtf_softfloat): New.
1505
1506 2006-11-30  Richard Sandiford  <richard@codesourcery.com>
1507
1508         * simplify-rtx.c (simplify_rtx): Use simplify_subreg rather than
1509         simplify_gen_subreg.
1510
1511 2006-11-30  Andrew Macleod  <amacleod@redhat.com>
1512
1513         * tree-ssa-live.c (create_coalesce_list): Create a hash table.
1514         (COALESCE_HASH_FN): New.  Define hash function.
1515         (partition_pair_map_hash): New.  Hash value for a partition pair.
1516         (partition_pair_map_eq): New.  Equality for hash pairs.
1517         (create_coalesce_list): Create hash table.
1518         (delete_coalesce_list): Free hash table.
1519         (find_partition_pair): Find/create pairs in hash table.
1520         (compare_pairs):  Sort pairs in ascending order now.
1521         (num_coalesce_pairs): New.  Number of pairs in hash table.
1522         (struct partition_pair_iterator): Iterator struct for pair table.
1523         (first_partition_pair): Iterator function for first pair.
1524         (end_partition_pair_p): Iterator function for end of iteration.
1525         (next_partition_pair): Iterator function for next pair.
1526         (FOR_EACH_PARTITION_PAIR): Macro for iterating over pairs.
1527         (sort_coalesce_list): Sort pairs from hash table into an array.
1528         (pop_best_coalesce): Take pairs from the array.
1529         (dump_coalesce_list): Update to use hash table or sorted array.
1530         * tree-ssa-live.h (struct partition_pair_d): Remove next field.
1531         (struct coalesce_list_d): Add hash table related fields.
1532
1533 2006-11-30  Jan Hubicka  <jh@suse.cz>
1534
1535         PR middle-end/30028
1536         * builtins.c (fold_builtin_memory_op): Fix typo in the check for
1537         memmove/bcopy->memcpy conversion.
1538
1539 2006-11-30  Carlos O'Donell  <carlos@codesourcery.com>
1540
1541         * doc/tm.texi (MAX_OFILE_ALIGNMENT): Document default.
1542         * config/elfos.h [!MAX_OFILE_ALIGNMENT] (MAX_OFILE_ALIGNMENT):
1543         Default is the largest alignment supported for 32-bit ELF and
1544         representable on a 32-bit host.
1545
1546 2006-11-30  Janis Johnson  <janis187@us.ibm.com>
1547
1548         * config/dfp-bit.c (DFP_TO_INT): Use wider precision.
1549
1550 2006-11-30  Jan Hubicka  <jh@suse.cz>
1551
1552         * tree-ssa-operands.h (struct ssa_operands): New.
1553         * tree-flow-inline.h (gimple_ssa_operands): New function.
1554         * tree-flow.h: (struct gimple_df): Add ssa_operands.
1555         * Makefile.in: Remove gt-tree-ssa-operands.h
1556         * tree-ssa-operands.c: Do not include gt-tree-ssa-operands.h
1557         (free_defs, free_uses, free_vuses, free_maydefs, free_mustdefs,
1558         operand_memory, operand_memory_index, ops_active): Remove statics.
1559         (ALLOC_OPTYPE): Update.
1560         (operand_build_sort_virtual): Update.
1561         (ssa_operands_active): Update.
1562         (init_ssa_operands): Update.
1563         (fini_ssa_operands): Update.
1564         (ssa_operand_alloc): Update.
1565         (INITIALIZE_USE): Update.
1566         (finalize_ssa_use_ops): Update.
1567         (finalize_ssa_v_may_def_ops): Update.
1568         (finalize_ssa_vuse_ops): Update.
1569         (finalize_ssa_v_must_def_ops): Update.
1570
1571 2006-11-30  Richard Guenther  <rguenther@suse.de>
1572
1573         * tree-vectorizer.h (vectorizable_function): Export.
1574         * tree-vect-transform.c (vectorizable_function): Likewise.
1575         * tree-vect-patterns.c (vect_recog_pow_pattern): Set
1576         type_in to scalar type in recognition of squaring.
1577         Make sure the target can vectorize sqrt in recognition
1578         of sqrt, set type_in to vector type in this case.
1579
1580 2006-11-30  Uros Bizjak  <ubizjak@gmail.com>
1581
1582         * config/i386/i386.md (R10_REG): New constant.
1583         * config/i386/i386.c (pro_epilogue_adjust_stack): Use R11_REG.
1584         (ix86_emit_restore_regs_using_mov): Ditto.
1585         (ix86_expand_call): Ditto.
1586         (x86_output_mi_thunk): Ditto. Also use R10_REG.
1587
1588 2006-11-30  Steven Bosscher  <steven@gcc.gnu.org>
1589
1590         * cselib.c (cselib_init): Use special MEM rtx form for callmem.
1591         * alias.c (canon_true_dependence): Update comment.
1592
1593 2006-11-30  Steven Bosscher  <steven@gcc.gnu.org>
1594
1595         * cgraphunit.c (cgraph_finalize_compilation_unit): Add a newline
1596         at the end of a diagnostics message.
1597
1598         * alloc-pool.c (pool_free): Postpone clearing the pool entry
1599         until after asserting that it was allocated in the right pool.
1600
1601         * cfgrtl.c (print_rtl_with_bb): Print predecessor and
1602         successor edge information as well.  Make output of live regs
1603         on exit consistent with live regs on entry.
1604
1605 2006-11-30  Uros Bizjak  <ubizjak@gmail.com>
1606
1607         PR target/29852
1608         * config/i386/i386.md (*truncxfsf2_mixed, *truncxfdf2_mixed): Enable
1609         insn patterns for TARGET_80387.
1610         (*truncxfsf2_i387, *truncxfdf2_i387): Remove.
1611         (*truncxfsf2_i387_1): Rename to *truncxfsf2_i387.
1612         (*truncxfdf2_i387_1): Rename to *truncxfdf2_i387.
1613         (fmod<mode>3, remainder<mode>3): Enable expaders for SSE math.
1614         Generate truncxf<mode>2 insn patterns for strict SSE math.
1615
1616 2006-11-30  Uros Bizjak  <ubizjak@gmail.com>
1617
1618         * config/i386/i386.md (movsf_1): Enable pattern for standard
1619         80387 constants before reload when optimizing for size.
1620         (*movdf_nointeger, *movdf_integer): Ditto.
1621         (*movxf_nointeger, *movxf_integer): Disable patterns for standard
1622         80387 constants before reload when not optimizing for size.
1623
1624         (*fop_xf_4_i387, *fop_xf_5_i387, *fop_xf_6_i387): Avoid float
1625         extension of XFmode input operands.
1626
1627 2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1628
1629         * config/spu/crt0.c (__dso_handle): Define.
1630
1631 2006-11-30  Kaz Kojima  <kkojima@gcc.gnu.org>
1632
1633         * emit-rtl.c (verify_rtl_sharing): Handle SEQUENCE specially
1634         when clearing the used flags.
1635
1636 2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1637
1638         * config/spu/spu.md (extend_compare): Fix whitespace formatting.
1639
1640 2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1641
1642         PR target/29945
1643         * config/spu/spu.md  (extend_compare<mode>): New pattern.
1644         (extend_compare): Change to expand and use the above pattern.
1645
1646 2006-11-29  Janis Johnson  <janis187@us.ibm.com>
1647
1648         * config/dfp-bit.c (DFP_TO_INT): Fix rounding mode.
1649
1650         * config/dfp-bit.h (CONTEXT_ROUND): Delete.
1651         (DFP_INIT_ROUNDMODE): Define.
1652         * config/dfp-bit.c: Replace CONTEXT_ROUND with DFP_INIT_ROUNDMODE.
1653         * mklibgcc.in: Fix dependencies for dfp-bit.c.
1654
1655 2006-11-29  Tehila Meyzels  <tehila@il.ibm.com>
1656
1657         * haifa-sched.c: Remove define LINE_NOTE(INSN).  Remove line_note_head.
1658         Update documentation.
1659         (associate_line_notes_with_blocks): Kill.
1660         (extend_bb): Remove basic block argument, put void instead.
1661         Remove line number handling for each bb.
1662         (save_line_notes): Kill.
1663         (restore_line_notes): Kill.
1664         (sched_init): Remove line_note_head initialization.
1665         Change extend_bb call.
1666         (sched_finish): Remove free of line_note_head.
1667         (add_block): Change extend_bb call.
1668         * sched-ebb.c (schedule_ebb): Remove save_line_notes,
1669         rm_line_notes and restore_line_notes calls.
1670         (schedule_ebbs): Remove rm_redundant_line_notes.
1671         * sched-int.h (struct haifa_insn_data): Remove line_note.
1672         (save_line_notes): Remove declaration.
1673         (restore_line_notes): Remove declaration.
1674         * modulo-sched.c (loop_canon_p): Update debug info printing
1675         by using insn locators instead of line note.
1676         (sms_schedule): Update debug info printing, by using insn
1677         locators instead of line note.
1678         * sched-rgn.c (debug_dependencies): Remove handling of case
1679         n>0 (line number), since it's a dead code.
1680         (schedule_region): Remove save_line_notes and
1681         restore_line_notes calls.
1682
1683 2006-11-29  Joseph Myers  <joseph@codesourcery.com>
1684
1685         * config/rs6000/predicates.md (gpc_reg_operand): Check
1686         invalid_e500_subreg.
1687         * config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any
1688         SImode subregs of SPE vectors.
1689         * config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs.
1690         * jump.c (true_regnum): Require subregs to satisfy
1691         subreg_offset_representable_p.
1692
1693 2006-11-29  Daniel Berlin  <dberlin@dberlin.org>
1694             Steven Bosscher <stevenb.gcc@gmail.com>
1695
1696         * Makefile.in (tree-ssanames.o): Remove gt-tree-ssanames.h,
1697         since it no longer exists.
1698
1699 2006-11-29  Duncan Sands  <baldrick@free.fr>
1700
1701         PR tree-optimization/23744
1702         * tree-vrp.c (vrp_meet): do not require ranges to intersect.
1703
1704 2006-11-29  Duncan Sands  <baldrick@free.fr>
1705
1706         PR tree-optimization/23744
1707         * testsuite/gcc.dg/tree-ssa/pr23744.c: new test.
1708
1709 2006-11-29  Duncan Sands  <baldrick@free.fr>
1710
1711         PR tree-optimization/23744
1712         * testsuite/gcc.dg/tree-ssa/update-threading.c: xfail.
1713
1714 2006-11-29  Jie Zhang  <jie.zhang@analog.com>
1715
1716         * doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately.
1717
1718 2006-11-29  J"orn Rennecke  <joern.rennecke@st.com>
1719
1720         * sh.opt (minline-ic_invalidate): New option.
1721         (musermode): Adjust comment.
1722         * sh.c (sh_initialize_trampoline): Emit library call unless
1723         is set; if it is set, don't emit library call if we can use icbi
1724         instead.
1725         * sh.md (ic_invalidate_line, ic_invalidate_line_sh4a): Also use
1726         icbi for TARGET_SH4_300.
1727         * t-sh (LIB1ASMFUNCS_CACHE): Set.
1728         * doc/invoke.texi: Document -minline-ic_invalidate; Update
1729         -musermode documentation.
1730
1731 2006-11-29  Jim Tison  <jtison@us.ibm.com>
1732
1733         * gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
1734         __gthread_recursive_mutex_init): Define.
1735
1736 2006-11-29  Joseph Myers  <joseph@codesourcery.com>
1737
1738         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If
1739         STRICT_ALIGNMENT and the type is more aligned than the saved
1740         registers, copy via a temporary.
1741
1742 2006-11-28  Andrew Pinski  <pinskia@gmail.com>
1743
1744         PR tree-opt/29984
1745         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR
1746         and MIN_EXRP.
1747
1748 2006-11-28  Bob Wilson  <bob.wilson@acm.org>
1749
1750         * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a12-a15 on exit.
1751
1752 2006-11-28  Jan Hubicka  <jh@suse.cz>
1753
1754         Privatize SSA variables into gimple_df.
1755         * tree-flow-inline.h
1756         (gimple_in_ssa_p, gimple_aliases_computed_p, gimple_addressable_vars,
1757         gimple_call_clobbered_vars, gimple_referenced_vars, gimple_global_var,
1758         gimple_nonlocal_all): New accessors.
1759         (first_referenced_var): Update.
1760         (mark_stmt_modified): Update.
1761         (is_call_clobbered): Update.
1762         (mark_call_clobbered): Update.
1763         (clear_call_clobbered): Update.
1764         (mark_non_addressable): Update.
1765         * tree-vrp.c (get_value_range): Update.
1766         * tree-into-ssa.c (in_ssa_p): Kill.
1767         (get_default_def_for): Update.
1768         (rewrite_into_ssa): Update.
1769         * tree-complex.c (init_parameter_lattice_values): Update.
1770         (update_complex_assignment): Update.
1771         (update_parameter_components): Update.
1772         (expand_complex_libcall): Update.
1773         (expand_complex_operations_1): Update.
1774         * tree-tailcall.c (arg_needs_copy_p): Update.
1775         (add_virtual_phis): Update.
1776         (tree_optimize_tail_calls_1): Update.
1777         * tree-ssa-dse.c (memory_ssa_name_same): Update.
1778         * tree-ssa-copyrename.c
1779         (copy_rename_partition_coalesce): Update.
1780         * tree-ssa-math-opts.c (execute_cse_reciprocals): Update.
1781         * tree-ssa-propagate.c (set_rhs): Update.
1782         * tree-ssa-alias.c (aliases_computed_p, call_clobbered_vars,
1783         addressable_vars, global_var):Kill.
1784         (set_initial_properties): Update.
1785         (init_alias_info): Update.
1786         (finalize_ref_all_pointers): Update.
1787         (setup_pointers_and_addressables): Update.
1788         (maybe_create_global_var): Update.
1789         (create_global_var): Update.
1790         (dump_points_to_info): Update.
1791         * function.h (struct gimple_df): Forward declare.
1792         (struct function): Add GIMPLE_DF field.
1793         * gimplify.c (force_gimple_operand): Update.
1794         * tree-dfa.c (referenced_vars, default_defs): KIll.
1795         (make_rename_temp): Update.
1796         (dump_variable): Update.
1797         (referenced_var_lookup): Update.
1798         (referenced_var_check_and_insert): Update.
1799         (default_def): Rename to ...
1800         (gimple_default_def): ... this one; accept cfun argument.
1801         (set_default_def): Update.
1802         * tree-cfgcleanup.c (modified_noreturn_calls): Kill.
1803         (cleanup_control_flow): Update.
1804         * tree-ssa-pre.c (compute_avail): Update
1805         * tree-ssa-live.c (calculate_live_on_entry): Update.
1806         * tree-ssa.c (verify_use): Update.
1807         (verify_call_clobbering): Update.
1808         (verify_call_clobbering): Update.
1809         (init_tree_ssa): Update.
1810         (delete_tree_ssa): Update.
1811         * tree-outof-ssa.c (coalesce_ssa_name): Update.
1812         (rewrite_out_of_ssa): Update.
1813         * tree-flow.h (gimple_df): New structure collecting dataflow variables.
1814         (FREE_SSANAMES, SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS): New
1815         private accessors.
1816         (in_ssa_p, modified_noreturn_calls, referenced_vars, default_defs,
1817         ssa_names, global_var, nonlocal_all, call_clobbered_vars,
1818         addressable_vars, aliases_computed_p): Kill.
1819         (default_def): Rename to...
1820         (gimple_default_def): ... this one.
1821         (defaule_def_fn): Kill.
1822         (num_referenced_vars, ssa_names, num_ssa_names): Update.
1823         * tree-ssa-structalias.c (nonlocal_all): Kill.
1824         (get_constraint_exp_from_ssa_var): Update.
1825         (create_nonlocal_var): Update.
1826         (get_constraint_for): Update.
1827         (update_alias_info): Update.
1828         (find_global_initializers): Update.
1829         (intra_create_variable_infos): Update.
1830         (intra_create_variable_infos):
1831         (find_what_p_points_to): Update.
1832         (init_alias_heapvars): Update.
1833         * tree-cfg.c (remove_bb): Update.
1834         (gimplify_val): Update.
1835         * tree-ssa-reassoc.c (get_rank): Update.
1836         (init_reassoc): Update.
1837         * tree-ssanames.c: Do not include gt-tree-ssanames.h
1838         (ssa_names, free_ssanames): Kill.
1839         (init_ssanames): Update.
1840         (make_ssa_name): Update.
1841         (release_ssa_name): Update.
1842         (release_defs): Update.
1843         (replace_ssa_name_symbol): Update.
1844         * tree-ssa-operands.c (access_can_touch_variable): Update.
1845         (add_virtual_operand): Update.
1846         (add_call_clobber_ops): Update.
1847         (add_call_read_ops): Update.
1848         (get_call_expr_operands): Update.
1849         (get_asm_expr_operands): Update.
1850
1851 2006-11-28  Jan Hubicka  <jh@suse.cz>
1852
1853         * builtins.c: Include tree-flow.h.
1854         (fold_builtin_memory_op): Be more aggressive on converting memcpy to
1855         assignment; convert memmove to memcpy for sizes greater than 1 where
1856         alignment of operands prohibit the partial overlap.
1857
1858 2006-11-28  Jan Hubicka  <jh@suse.cz>
1859
1860         * invoke.texi (large-stack-frame, large-stack-frame-growth): New params.
1861         * cgraph.c (dump_cgraph_node): Dump stack usage.
1862         * cgraph.h (cgraph_local_info): Add estimated_self_stack_size.
1863         (cgraph_global_info): Add estimated_stack_size and stack_frame_offset.
1864         * cgraphunit.c (cgraph_analyze_function): Analyze stack sizes.
1865         * ipa-inline.c (cgraph_clone_inlined_nodes): Propagate stack usage.
1866         (cgraph_check_inline_limits): Limit stack growth.
1867         * cfgexpand.c: Include tree-inline.h.
1868         (account_stack_vars): New function.
1869         (expand_one_var): New param to just account the stack; return estimated
1870         size.
1871         (expand_used_vars_for_block): Update call of expand_one_var.
1872         (account_used_vars_for_block): New function.
1873         (estimated_stack_frame_size): Likewise.
1874         (init_vars_expansion, fini_vars_expansion): Break out from..
1875         (expand_used_vars): ... here.
1876         * tree-inline.h (estimated_stack_frame_size): Declare.
1877         * params.def (PARAM_LARGE_STACK_FRAME, PARAM_STACK_FRAME_GROWTH): New.
1878
1879 2006-11-28  Richard Guenther  <rguenther@suse.de>
1880
1881         * ggc-page.c (ggc_print_statistics): Use %ul and a cast to
1882         unsigned long for printing OBJECT_SIZE.
1883
1884 2006-11-27  Steven Bosscher  <steven@gcc.gnu.org>
1885
1886         * alias.c (init_alias_analysis): Remove simplification loop
1887         after propagating pointers.
1888
1889 2006-11-27  Uros Bizjak  <ubizjak@gmail.com>
1890
1891         * config/i386/i386.c (x86_ext_80387_constants): Add m_K8, m_CORE2
1892         and m_GENERIC64.
1893
1894 2006-11-27  Bob Wilson  <bob.wilson@acm.org>
1895
1896         * config/xtensa/xtensa.h (XCHAL_HAVE_MUL32_HIGH): Provide default.
1897
1898 2006-11-27  Roger Sayle  <roger@eyesopen.com>
1899             Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1900
1901         * c-common.c (constant_fits_type_p): Delete.
1902         (unsigned_conversion_warning): Delete.
1903         (conversion_warning): Integrate Wconversion warning from
1904         unsigned_conversion_warning.
1905         (convert_and_check): Integrate Woverflow warning from
1906         unsigned_conversion_warning.  Reorganize and simplify to avoid
1907         dependence upon the middle-end setting TREE_OVERFLOW on integral
1908         conversions, by using int_fits_type_p directly.
1909
1910 2006-11-27  Tobias Burnus  <burnus@net-b.de>
1911
1912         * doc/invoke.texi: Fixed typo.
1913
1914 2006-11-27  Michael Matz  <matz@suse.de>
1915             Andreas Krebbel  <krebbel1@de.ibm.com>
1916
1917         PR target/29319
1918         * config/s390/predicates.md (larl_operand): Check addend of larl
1919         operand to be in range of -/+2GB.
1920         * config/s390/s390.c (legitimize_pic_address): Likewise.
1921         Changed type of variable even to HOST_WIDE_INT.
1922
1923 2006-11-27  Jan Hubicka  <jh@suse.cz>
1924
1925         * expr.c (emit_block_move_via_libcall): Export.
1926         (clear_storage_via_libcall): Rename to ...
1927         (set_storage_via_libcall): ... this one; handle arbitrary value to set.
1928         (clear_storage): Update to set_storage_via_libcall.
1929         * expr.h (emit_block_move_via_libcall): Declare
1930         * config/i386/i386.h (stringop_alg): New enum.
1931         (MAX_STRINGOP_ALGS): New constant.
1932         (stringop_algs): New struct.
1933         (processor_costs): Add memcpy/memset descriptors.
1934         (TARGET_REP_MOVEL_OPTIMAL): Remove.
1935         * config/i386/i386.md (movsi_insv_1_rex64): New pattern.
1936         (strmovsi, strmovdi, strsetsi, strsetdi): Update; accept all operands
1937         for memset.
1938         * config/i386/i386.opt (minline-stringops-dynamically,
1939         mstringop-strategy): New
1940         parameters.
1941         * config/i386/i386-prostos.h (ix86_expand_movmem): Update prototype.
1942         (ix86_expand-clrmem): Rename to ...
1943         (ix86_expand_setmem): ... this one; update prototype.
1944         * config/i386/i386.c (DUMMY_STRINGOP_ALGS): New constant.
1945         (size_cost, i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
1946         geode_cost, k6_cost, athlon_cost, k8_cost, pentium4_cost,
1947         nocona_cost, core2_cost, generic_cost, generic64_cost,
1948         generic32_cost): Add memcpy/memset descriptors.
1949         (x86_rep_movl_optimal): Remove.
1950         (stringop_alg): New static variable.
1951         (ix86_expand_aligntest): Handle predictions.
1952         (override_options): Add strgop_alg handling.
1953         (predict_jump): New function.
1954         (scale_counter): New function.
1955         (expand_set_or_movmem_via_loop): New function.
1956         (expand_movmem_via_rep_mov): New function.
1957         (expand_setmem_via_rep_stots): New function.
1958         (emit_strmov): New function.
1959         (expand_movmem_epilogue): New function.
1960         (expand_setmem_epilogue_via_loop): New function.
1961         (expand_setmem_epilogue): New function.
1962         (expand_movmem_prologue): New function.
1963         (expand_setmem_prologue): New function.
1964         (decide_alg): New function.
1965         (decide_alignment): New function.
1966         (ix86_exand_movmem): Rewrite.
1967         (promote_duplicated_reg): New function.
1968         (ix86_expand_clrmem): Rename to ...
1969         (ix86_expand_setmem): ... this one. Rewrite.
1970
1971         * invoke.texi (minline-stringops-dynamically): New command line option.
1972         (mstringop-strategy): Likewise.
1973
1974 2006-11-27  Jan Hubicka  <jh@suse.cz>
1975
1976         * cfgexpand.c (construct_exit_block): Don't disturb end of last BB.
1977         * rtl.texi (NOTE_INSN_FUNCTION_END): Remove.
1978         * final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END.
1979         * insn-notes.def (FUNCTION_END): Remove.
1980         * jump.c (delete_related_insns): Don't worry about FUNCTION_END.
1981         (redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END
1982         note.
1983         * ifcvt.c (dead_or_predictable): Update call of redirect_jump_2.
1984         * function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END
1985         * cfglayout.c (duplicate_insn_chain): Don't worry about
1986         NOTE_FUNCTION_END.
1987
1988 2006-11-27  Richard Guenther  <rguenther@suse.de>
1989             Zdenek Dvorak <dvorakz@suse.cz>
1990
1991         * target.h (struct gcc_target): Add builtin_vectorized_function
1992         target hook.
1993         * target-def.h (TARGET_VECTORIZE): Likewise.
1994         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
1995         Document new target hook.
1996         * targhooks.h (default_builtin_vectorized_function): Declare.
1997         * targhooks.c (default_builtin_vectorized_function): Define.
1998         * tree-vectorizer.h (stmt_vec_info_type): Add call_vec_info_type.
1999         (vectorizable_call): Declare.
2000         * tree-vect-analyze.c (vect_analyze_operations): Call
2001         vectorizable_call.
2002         * tree-vect-transform.c (vectorizable_function): New static function.
2003         (build_vectorized_function_call): Likewise.
2004         (vectorizable_call): New function.
2005         (vect_transform_stmt): Handle vectorizable calls.
2006
2007 2006-11-27  Richard Guenther  <rguenther@suse.de>
2008
2009         PR middle-end/25620
2010         * builtins.c (expand_builtin_pow): Optimize non integer valued
2011         constant exponents using sqrt or cbrt if possible.  Always fall back
2012         to expanding via optabs.
2013
2014 2006-11-27  Ira Rosen  <irar@il.ibm.com>
2015
2016         PR tree-optimization/22372
2017         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Convert
2018         the type of the base address.
2019         (vect_create_data_ref_ptr): Add an argument, type of the data-ref. Use
2020         it in the data-ref pointer creation.
2021         (vect_init_vector): Add an argument, type of the init vector. Use it in
2022         the stmt creation.
2023         (vect_get_vec_def_for_operand): Fix calls to vect_init_vector.
2024         (get_initial_def_for_reduction): Likewise.
2025         (vect_create_epilog_for_reduction): Change type of MODIFY_EXPR to
2026         void_type_node.
2027         (vectorizable_assignment, vect_permute_store_chain): Likewise.
2028         (vectorizable_store): Fix call to vect_create_data_ref_ptr. Use the
2029         correct type in stmt creation.
2030         (vect_setup_realignment): Use the correct type in stmt creation.
2031         (vect_permute_load_chain): Change type of MODIFY_EXPR to
2032         void_type_node.
2033         (vectorizable_load): Fix calls to vect_create_data_ref_ptr. Change type
2034         of MODIFY_EXPR to void_type_node.
2035         (vectorizable_condition): Change type of MODIFY_EXPR to
2036         void_type_node.
2037         (vect_update_ivs_after_vectorizer): Use the correct type in stmt
2038         creation.
2039
2040 2006-11-27  Uros Bizjak  <ubizjak@gmail.com>
2041
2042         Revert:
2043         2006-05-08  Uros Bizjak  <uros@kss-loka.si>
2044         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
2045         standard 80387 constants, raise the cost to prevent
2046         compress_float_constant() to generate load from memory.
2047
2048         * config/i386/i386.md: Add new splitter pattern to split
2049         float_extended load of constant from constant pool into
2050         pure constant load.
2051
2052 2006-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2053
2054         * doc/install.texi: Move GMP/MPFR configure options from Fortran
2055         section to general section.  Remove documentation for
2056         --with-mpfr-dir and --with-gmp-dir, add documentation for
2057         --with-mpfr-include, --with-mpfr-lib, --with-gmp-include and
2058         --with-gmp-lib.
2059
2060         * builtins.c (fold_builtin_fmin_fmax): Handle NaN arguments.
2061
2062 2006-11-26  Razya Ladklesky  <razya@il.ibm.com>
2063
2064         * testsuite/gcc.dg/ipa/ipa-6.c: New.
2065
2066 2006-11-26  Razya Ladklesky  <razya@il.ibm.com>
2067
2068         PR tree-optimization/29122
2069         * tree-inline.c (tree_function_versioning): Update DECL_ASSEMBLER_NAME
2070         for the new version.  Assign NULL to DECL_RTL of the new version.
2071
2072 2006-11-25  Uros Bizjak  <ubizjak@gmail.com>
2073
2074         * reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling.
2075
2076 2006-11-25  Steven Bosscher  <steven@gcc.gnu.org>
2077
2078         * cse.c (cse_altered): Remove.
2079         (record_jump_equiv): Make true/false argument a bool instead
2080         of an int.
2081         (cse_insn): Don't set cse_altered.  Use delete_insn_and_edges
2082         where appropriate.  Emit a new jump before the existing one
2083         instead of after so that delete_insn_and_edges removes the
2084         dead edges properly.  Check any_condjump_p before calling
2085         record_jump_equiv.
2086         (cse_basic_block): Check any_condjump_p before calling
2087         record_jump_equiv.
2088         (cse_main): Don't set/check cse_altered.  Remove USE_C_ALLOCA.
2089
2090 2006-11-25  Brooks Moses  <brooks.moses@codesourcery.com>
2091
2092         * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
2093         -ffixed-line-length-* options.
2094
2095 2006-11-25  Uros Bizjak  <ubizjak@gmail.com>
2096
2097         * config/i386/i386.md (fpremxf4): Rename to fpremxf4_i387.
2098         (fprem1xf4): Rename to fprem1xf4_i387.
2099
2100         (fmodsf3, fmoddf3): Macroize patterns using X87MODEF12 mode macro.
2101         Rename patterns to fmod<mode>3.  Use general_operand operand
2102         constraint for operands 1 and 2.  Use SSE_FLOAT_MODE_P to disable
2103         patterns for SSE math.
2104         (remaindersf3, remainderdf3): Ditto.
2105
2106 2006-11-25  Joseph Myers  <joseph@codesourcery.com>
2107
2108         * function.c (instantiate_virtual_regs_in_insn): Call force_reg
2109         inside start_sequence / end_sequence pair.
2110
2111 2006-11-25  Steven Bosscher  <steven@gcc.gnu.org>
2112
2113         * jump.c (mark_all_labels): Work in cfglayout mode.
2114         * cfgcleanup.c (cleanup_cfg): Do not call delete_dead_jumptables
2115         when in cfglayout mode, because there are no dead jumptables
2116         visible.
2117         * cfgrtl.c (commit_one_edge_insertion): Don't set bb->aux when
2118         in cfglayout mode.
2119         (commit_edge_insertions): Do not allow insertion of instructions
2120         with control flow insns when in cfglayout mode.
2121
2122 2006-11-25  Zdenek Dvorak <dvorakz@suse.cz>
2123
2124         * tree-vrp.c (execute_vrp): Do not pass loops structure through
2125         arguments.
2126         * loop-unswitch.c (unswitch_loops, unswitch_single_loop,
2127         unswitch_loop): Ditto.
2128         * tree-loop-linear.c (linear_transform_loops): Ditto.
2129         * tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize,
2130         tree_ssa_lim): Ditto.
2131         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
2132         free_numbers_of_iterations_estimates): Ditto.
2133         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops,
2134         tree_unswitch_single_loop, tree_unswitch_loop): Ditto.
2135         * cfgloopmanip.c (fix_bb_placement, fix_bb_placements,
2136         remove_path, add_loop, loopify, unloop, fix_loop_placements,
2137         place_new_loop, duplicate_loop, duplicate_subloops,
2138         update_single_exit_for_duplicated_loops, copy_loops_to,
2139         duplicate_loop_to_header_edge, create_preheaders,
2140         force_single_succ_latches, loop_version, fix_loop_structure):
2141         Ditto.
2142         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge,
2143         tree_unroll_loop): Ditto.
2144         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2145         * tree-scalar-evolution.c (select_loops_exit_conditions,
2146         scev_initialize, scev_analysis): Ditto.
2147         * tree-scalar-evolution.h (scev_initialize): Ditto.
2148         * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto.
2149         * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
2150         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
2151         * modulo-sched.c (sms_schedule): Ditto.
2152         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
2153         * loop-init.c (loop_optimizer_init, rtl_move_loop_invariants,
2154         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto.
2155         * ifcvt.c (if_convert): Ditto.
2156         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely,
2157         canonicalize_loop_induction_variables,
2158         canonicalize_induction_variables,
2159         tree_unroll_loops_completely, remove_empty_loops): Ditto.
2160         * tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im,
2161         tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform,
2162         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
2163         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts,
2164         tree_ssa_loop_done): Ditto.
2165         * predict.c (predict_loops, tree_estimate_probability, estimate_loops,
2166         estimate_bb_frequencies): Ditto.
2167         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
2168         slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto.
2169         * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
2170         decide_unrolling_and_peeling, peel_loop_completely,
2171         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
2172         peel_loop_simple, unroll_loop_stupid): Ditto.
2173         * loop-doloop.c (doloop_optimize_loops): Ditto.
2174         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto.
2175         * loop-invariant.c (move_loop_invariants): Ditto.
2176         * tree-ssa-dce.c (tree_ssa_dce_loop): Ditto.
2177         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays,
2178         tree_ssa_prefetch_arrays): Ditto.
2179         * lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify):
2180         Ditto.
2181         * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
2182         vect_do_peeling_for_alignment, vect_transform_loop): Ditto.
2183         * cfgloop.c (flow_loops_cfg_dump, flow_loops_dump,
2184         mark_single_exit_loops, cancel_loop, cancel_loop_tree,
2185         verify_loop_structure): Ditto.
2186         * tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops,
2187         canonicalize_induction_variables, tree_unroll_loops_completely,
2188         tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize,
2189         estimate_numbers_of_iterations, free_numbers_of_iterations_estimates,
2190         tree_duplicate_loop_to_header_edge, tree_ssa_loop_version,
2191         tree_unroll_loop, linear_transform_loops): Declaration changed.
2192         * basic-block.h: Remove declaration of struct loops.
2193         * cfghooks.h (struct cfg_hooks): Change type of
2194         cfg_hook_duplicate_loop_to_header_edge.
2195         (cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
2196         * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge,
2197         vect_transform_loop): Declaration changed.
2198         * lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed.
2199         * cfgloop.h (flow_loops_dump, fix_loop_structure,
2200         mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges,
2201         cancel_loop_tree, create_preheaders, force_single_succ_latches,
2202         verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge,
2203         loopify, loop_version, remove_path, unswitch_loops,
2204         unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants):
2205         Declaration changed.
2206
2207 2006-11-24  Uros Bizjak  <ubizjak@gmail.com>
2208
2209         * config/i386/i386.md (UNSPEC_TRUNC_NOOP): New unspec definition.
2210         (X87MODEF): New mode macro.
2211         (ssemodefsuffix): New mode attribute.
2212         (truncxf<mode>2_i387_noop_unspec): New insn pattern.
2213         (sqrt_extend<mode>xf2_i387): New insn pattern.
2214         (sqrt<mode>2): For non-SSE sqrt, emit sqrt_extend<mode>xf2_i387
2215         insn and truncate result back to original mode using
2216         UNSPEC_TRUNC_NOOP truncation.
2217         (*sqrt<mode>2_sse): Implement using SSEMODEF mode macro and
2218         ssemodefsuffix mode attribute.
2219         (*sqrtsf2_mixed, *sqrtsf2_i387, *sqrtdf2_mixed, *sqrtdf2_i387)
2220         (*sqrtextendsfdf2_i387, *sqrtextendsfxf2_i387)
2221         (*sqrtextenddfxf2_i387): Remove insn patterns.
2222
2223         (fmodsf3, fmoddf3, remaindersf3, remainderdf3): Use noop
2224         truncation patterns.
2225
2226         * reg-stack.c (get_true_reg): Handle UNSPEC_TRUNC_NOOP.
2227
2228 2006-11-24  Jakub Jelinek  <jakub@redhat.com>
2229
2230         PR c/29955
2231         * c-tree.h (c_maybe_initialize_eh): New prototype.
2232         * c-decl.c (finish_decl): Move EH initialization...
2233         (c_maybe_initialize_eh): ... here.  New function.
2234         * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh
2235         if not #pragma omp atomic.
2236
2237         PR c/29736
2238         * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE
2239         or UNION_TYPE inner types.
2240
2241 2006-11-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2242
2243         PR tree-opt/29964
2244         * ipa-pure-const.c (check_tree): If the original tree
2245         is volatile return early and say the function is not pure
2246         nor const.  Remove the volatile check for writes.
2247         (analyze_function): Print out the result of the local
2248         analysis pass.
2249
2250 2006-11-24  Joseph Myers  <joseph@codesourcery.com>
2251
2252         * config/rs6000/eabispe.h (TARGET_DEFAULT): Include
2253         MASK_STRICT_ALIGN.
2254         * config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise.
2255         * config/rs6000/rs6000.c (rs6000_override_options): Use
2256         MASK_STRICT_ALIGN for 8540 and 8548.  Add MASK_STRICT_ALIGN to
2257         POWERPC_MASKS.
2258
2259 2006-11-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2260
2261         * config/s390.c (s390_emit_compare_and_swap): New function.
2262         (s390_expand_cs_hqi, s390_expand_atomic): Call
2263         s390_emit_compare_and_swap.
2264
2265 2006-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2266
2267         * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.
2268
2269 2006-11-24  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2270
2271         PR c/2707
2272         PR c++/26167
2273         * c-common.c (conversion_warning): New.
2274         (convert_and_check): Call conversion_warning unless there is an
2275         overflow warning.
2276         * doc/invoke.texi (-Wconversion): Update description.
2277
2278 2006-11-23  Daniel Berlin  <dberlin@dberlin.org>
2279
2280         * tree-ssa-alias.c (tree_pointer_compare): New function.
2281         (compact_name_tags): New function.
2282         (group_aliases): Call compact_name_tags.
2283
2284 2006-11-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2285
2286         * real.h (real_isinteger): Declare.
2287         * real.c (real_isinteger): Define.
2288         * builtins.c (integer_valued_real_p): Use it.
2289
2290 2006-11-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2291
2292         PR c/9072
2293         * c.opt (Wtraditional-conversion): New.
2294         (Wconversion): Update description.
2295         * c-typeck.c (convert_arguments): Warnings for prototypes causing
2296         type conversions different from what would happen in the absence
2297         of prototype are now handled by Wtraditional-conversion.
2298         * doc/invoke.texi (Wtraditional-conversion): New.
2299         (Wconversion): Update description.
2300         * doc/trouble.texi (Wconversion): Replace Wconversion by
2301         Wtraditional-conversion.
2302
2303 2006-11-23  Andrew Pinski  <pinskia@gmail.com>
2304
2305         * predict.c (tree_estimate_probability): Check to make
2306         sure current_loops is non null before calling flow_loops_dump.
2307
2308 2006-11-23  Bernd Schmidt  <bernd.schmidt@analog.com>
2309
2310         * var-tracking.c (emit_note_insn_var_location): Revert previous patch.
2311
2312 2006-11-23  David Ung  <davidu@mips.com>
2313
2314         * config/mips/mips.h (ISA_HAS_FP4): Add MIPS32R2 + 64bit fpu
2315         combination.
2316         (ISA_HAS_MXHC1): True if ISA supports mfhc1 and mthc1 opcodes.
2317         (ASM_SPEC): Pass along -mfp32 and -mfp64.
2318         * config/mips/mips.c (mips_split_64bit_move): Use gen_mthc1 to set
2319         high part of FP register when in 64-bit FP register mode.  Similarly
2320         use gen_mfhc1 to load high part of FP register.
2321         (override_options): Allow -mgp32 and -mfp64 combination if
2322         ISA_HAS_MXHC1 (currently for O32 only).
2323         (mips_cannot_change_mode_class): If floating-point registers are
2324         bigger than word size. disallow conversion of float register from a
2325         large integer mode to a float mode smaller than the float register
2326         size.
2327         (mips_class_max_nregs): Handle float registers case seperately.
2328         * config/mips/mips.md (define_constants): Add UNSPEC_MFHC1,
2329         UNSPEC_MTHC1.
2330         (movdi_32bit): Use !TARGET_FLOAT64 in condition pattern.
2331         (movdf_hardfloat_32bit): Similarly.
2332         (movdi_gp32_fp64): New DImode pattern for MIPS32R2 which optionally
2333         support a full 64-bit fpu.
2334         (mthc1): New pattern to generate MTHC1 instruction.
2335         (mfhc1): New pattern to generate MFHC1 instruction.
2336         * doc/invoke.texi (MIPS Options): Document the -mgp32 -mfp64
2337         option for the MIPS32R2 and mention its use under O32 ABI.
2338
2339 2006-11-23  Bernd Schmidt  <bernd.schmidt@analog.com>
2340
2341         * var-tracking.c (emit_note_insn_var_location): Take care not to
2342         cause verify_flow_info failures.
2343
2344 2006-11-22  Daniel Berlin  <dberlin@dberlin.org>
2345
2346         * tree-ssa-structalias.c: Remove edge weights in favor of just
2347         processing them as complex constraints.
2348         (struct constraint_graph): Remove weighted succs and preds. Rename
2349         nonweighted succs and preds.
2350         (constraint_edge): Removed.
2351         (constraint_edge_t): Ditto.
2352         (constraint_edge_pool): Ditto.
2353         (new_constraint_edge): Ditto.
2354         (constraint_edge_equal): Ditto.
2355         (constraint_edge_less): Ditto.
2356         (constraint_edge_vec_find): Ditto.
2357         (erase_self_graph_edge): Ditto.
2358         (add_graph_edge): Removed.
2359         (get_graph_weights): Ditto.
2360         (allocate_graph_weights): Ditto.
2361         (valid_weighted_graph_edge): Ditto
2362         (bitmap_other_than_zero_bit_set): Ditto.
2363         (int_add_graph_edge): Renamed to add_graph_edge.
2364         (clear_edges_for_node): Remove support for weighted edges.
2365         (merge_graph_nodes): Ditto.
2366         (valid_graph_edge): Ditto.
2367         (build_constraint_graph): Ditto.
2368         (scc_visit): Ditto.
2369         (collapse_nodes): Ditto.
2370         (process_unification_queue): Ditto.
2371         (topo_visit): Ditto.
2372         (do_ds_constraint): Ditto.
2373         (perform_var_subsitution): Ditto.
2374         (solve_graph): Ditto.
2375         (init_alias_vars): Ditto.
2376         (delete_points_to_sets): Ditto.
2377         (do_complex_constraint): Support offsetted copies here.
2378
2379 2006-11-23  Ulrich Weigand  <uweigand@de.ibm.com>
2380
2381         * config/spu/spu_intrinsics.h (SPU_RdEventStatMask): Rename to
2382         SPU_RdEventMask.
2383         * config/spu/spu_mfcio.h (spu_read_event_mask): Update.
2384
2385         * config/spu/spu_mfcio.h (struct mfc_list_element): Change width
2386         of size bitfield.
2387
2388 2006-11-23  Ben Elliston  <bje@au.ibm.com>
2389
2390         * config/spu/spu-elf.h (LIB_SPEC): Do not link with -lc_p.
2391
2392 2006-11-23  Zdenek Dvorak <dvorakz@suse.cz>
2393
2394         PR tree-optimization/29921
2395         * fold-const.c (operand_equal_p): Without HONOR_SIGNED_ZEROS, consider
2396         signed and unsigned zero equal.
2397
2398 2006-11-22  Peter Bergner  <bergner@vnet.ibm.com>
2399
2400         * config/rs6000/rs6000.c (get_store_dest): New.
2401         (adjacent_mem_locations): Use get_store_dest() to get
2402         the rtl of the store destination.
2403
2404 2006-11-22  Joseph Myers  <joseph@codesourcery.com>
2405
2406         * config/rs6000/spe.md (SPE64): New mode macro.
2407         (mov_sidf_e500_subreg0): Change to mov_si<mode>_e500_subreg0.  Add
2408         memory load.
2409         (mov_si<mode>_e500_subreg0_2): New.
2410         (mov_sidf_e500_subreg4): Change to mov_si<mode>_e500_subreg4.  Add
2411         memory load.
2412         (mov_si<mode>_e500_subreg4_2): New.
2413         * config/rs6000/predicates.md (input_operand): Do not allow
2414         invalid E500 subregs.
2415         (rs6000_nonimmediate_operand): Check for invalid E500 subregs also
2416         if TARGET_SPE.
2417         * config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs
2418         involving DFmode if TARGET_E500_DOUBLE.  Check for subregs
2419         involving vector modes if TARGET_SPE.
2420
2421 2006-11-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2422
2423         Revert
2424         2006-11-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2425         * reorg.c (emit_delay_sequence): Copy the delay slot insn.
2426
2427 2006-11-22  Bernd Schmidt  <bernd.schmidt@analog.com>
2428
2429         * config/bfin/predicates.md (d_register_operand, mem_p_address_operand,
2430         mem_i_address_operand): New predicates.
2431         * config/bfin/bfin.c (bfin_issue_rate): New function.
2432         (TARGET_SCHED_ISSUE_RATE): New macro.
2433         * config/bfin/bfin.md (addrtype): New attribute.
2434         (slot0, slot1, slot2, store, pregs): New cpu_units.
2435         (core): Now a define_reservation.
2436         (alu): Remove some insn types from this reservation.
2437         (dsp32, load32, loadp, loadi, store32, storep, storei, multi): New
2438         insn reservations.
2439         (dummy reservation): Don't trigger for mcld insns.
2440         (absence_sets): Two new absence sets to enforce slot ordering.
2441         (popsi_insn): Set addrtype.
2442
2443 2006-11-22  Ira Rosen  <irar@il.ibm.com>
2444
2445         * doc/c-tree.texi: Document new tree codes.
2446         * doc/md.texi: Document new optabs.
2447         * tree-pretty-print.c (dump_generic_node): Handle print of new tree
2448         codes.
2449         * optabs.c (optab_for_tree_code, init_optabs): Handle new optabs.
2450         * optabs.h (optab_index): Add new.
2451         (vec_extract_even_optab, vec_extract_odd_optab,
2452         vec_interleave_high_optab, vec_interleave_low_optab): New optabs.
2453         * genopinit.c (vec_extract_even_optab, vec_extract_odd_optab,
2454         vec_interleave_high_optab, vec_interleave_low_optab): Initialize
2455         new optabs.
2456         * expr.c (expand_expr_real_1): Add implementation for new tree codes.
2457         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
2458         * tree-vectorizer.h (stmt_vec_info): Add new fields for interleaving
2459         along with macros for their access.
2460         * tree-data-ref.h (first_location_in_loop, data_reference): Update
2461         comment.
2462         * tree-vect-analyze.c (toplev.h): Include.
2463         (vect_determine_vectorization_factor): Fix indentation.
2464         (vect_insert_into_interleaving_chain,
2465         vect_update_interleaving_chain, vect_equal_offsets): New functions.
2466         (vect_analyze_data_ref_dependence): Add argument for interleaving
2467         check. Check for interleaving if it's true.
2468         (vect_check_dependences): New function.
2469         (vect_analyze_data_ref_dependences): Call vect_check_dependences for
2470         every ddr. Call vect_analyze_data_ref_dependence with new argument.
2471         (vect_update_misalignment_for_peel): Update for interleaving.
2472         (vect_verify_datarefs_alignment): Check only first data-ref for
2473         interleaving.
2474         (vect_enhance_data_refs_alignment): Update for interleaving. Check
2475         only first data-ref for interleaving.
2476         (vect_analyze_data_ref_access): Check interleaving, update
2477         interleaving data.
2478         (vect_analyze_data_refs): Call compute_data_dependences_for_loop
2479         with different parameters.
2480         * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR,
2481         VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): New tree codes.
2482         * tree-inline.c (estimate_num_insns_1): Add cases for new codes.
2483         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
2484         Update step in case of interleaving.
2485         (vect_strided_store_supported, vect_permute_store_chain): New
2486         functions.
2487         (vectorizable_store): Handle strided stores.
2488         (vect_strided_load_supported, vect_permute_load_chain,
2489         vect_transform_strided_load): New functions.
2490         (vectorizable_load): Handle strided loads.
2491         (vect_transform_stmt): Add argument. Handle strided stores. Check
2492         that vectorized stmt exists for patterns.
2493         (vect_gen_niters_for_prolog_loop): Update calculation for
2494         interleaving.
2495         (vect_transform_loop): Remove stmt_vec_info for strided stores after
2496         whole chain vectorization.
2497         * config/rs6000/altivec.md (UNSPEC_EXTEVEN, UNSPEC_EXTODD,
2498         UNSPEC_INTERHI, UNSPEC_INTERLO): New constants.
2499         (vpkuhum_nomode, vpkuwum_nomode, vec_extract_even<mode>,
2500         vec_extract_odd<mode>, altivec_vmrghsf, altivec_vmrglsf,
2501         vec_interleave_high<mode>, vec_interleave_low<mode>): Implement.
2502
2503 2006-11-22  Steven Bosscher  <steven@gcc.gnu.org>
2504
2505         * cse.c (enum taken): Remove PATH_AROUND.
2506         (addr_affects_sp_p, invalidate_skipped_set,
2507         invalidate_skipped_block): Remove.
2508         (cse_end_of_basic_block): Remove skip_blocks and related code.
2509         (cse_main): Don't test for flag_cse_skip_blocks.
2510         Update cse_end_of_basic_block call.
2511         (cse_basic_block): Likewise.  Remove PATH_AROUND case.  Remove
2512         code to lengthen the path if a jump was simplified.
2513
2514 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
2515
2516         PR rtl-optimization/29924
2517         * loop-unroll.c (split_edge_and_insert): Handle the case insns is NULL.
2518         (unroll_loop_runtime_iterations): Assert that the argument passed to
2519         split_edge_and_insert is not NULL.
2520         * loop-doloop.c (add_test): Ditto.
2521
2522 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
2523
2524         * tree-loop-linear.c (linear_transform_loops): Use single_exit accessor
2525         functions.
2526         * tree-ssa-loop-niter.c (loop_only_exit_p): Ditto.
2527         * cfgloopmanip.c (update_single_exits_after_duplication,
2528         update_single_exit_for_duplicated_loop, loop_version): Ditto.
2529         * tree-scalar-evolution.c (get_loop_exit_condition,
2530         get_exit_conditions_rec, loop_closed_phi_def,
2531         number_of_iterations_in_loop, scev_const_prop): Ditto.
2532         * tree-ssa-loop-ivopts.c (single_dom_exit): Ditto.
2533         * modulo-sched.c (generate_prolog_epilog, loop_canon_p, sms_schedule):
2534         Ditto.
2535         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
2536         Ditto.
2537         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
2538         slpeel_update_phi_nodes_for_guard1, slpeel_update_phi_nodes_for_guard2,
2539         slpeel_make_loop_iterate_ntimes,
2540         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_can_duplicate_loop_p,
2541         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
2542         Ditto.
2543         * tree-if-conv.c (if_convertible_loop_p): Ditto.
2544         * tree-vect-analyze.c (vect_analyze_operations, vect_stmt_relevant_p,
2545         vect_analyze_loop_form): Ditto.
2546         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, exit_phi_for_loop_p,
2547         can_convert_to_perfect_nest, perfect_nestify): Ditto.
2548         * tree-vect-transform.c (vect_create_epilog_for_reduction,
2549         vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
2550         vect_transform_loop): Ditto.
2551         * cfgloop.c (mark_single_exit_loops, verify_loop_structure): Ditto.
2552         (single_exit, set_single_exit): New functions.
2553         * cfgloop.h (struct loop): Rename single_exit field to single_exit_.
2554         (single_exit, set_single_exit): Declare.
2555         * doc/loop.texi: Undocument single_exit field.  Document single_exit
2556         accessor function.
2557
2558 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
2559
2560         PR tree-optimization/29902
2561         * tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if
2562         any involved ssa name appears in abnormal phi node.
2563
2564 2006-11-21  Bob Wilson  <bob.wilson@acm.org>
2565
2566         * config/xtensa/xtensa.c (xtensa_char_to_class): Delete.
2567         (xtensa_const_ok_for_letter_p): Delete.
2568         (xtensa_extra_constraint): Delete.
2569         (override_options): Delete xtensa_char_to_class initialization.
2570         * config/xtensa/xtensa.h (REG_CLASS_FROM_LETTER): Delete.
2571         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2572         (EXTRA_CONSTRAINT): Delete.
2573         * config/xtensa/xtensa.md: Include constraints.md.
2574         (call_internal): Combine alternatives.
2575         (call_value_internal): Likewise, and remove invalid constraints.
2576         * config/xtensa/constraints.md: New file.
2577         * config/xtensa/xtensa-protos.h (xtensa_const_ok_for_letter_p): Delete.
2578         (xtensa_extra_constraint): Delete.
2579         * doc/md.texi (Machine Constraints): Refer to constraints.md for
2580         Xtensa constraints.
2581
2582 2006-11-21  Janis Johnson  <janis187@us.ibm.com>
2583
2584         * config/dfp-bits.c (DFP_TO_INT): Remove code to saturate result
2585         of conversion that doesn't fit.
2586
2587         * config/dfp-bit.h (CONTEXT_TRAPS, CONTEXT_ERRORS, DFP_RAISE): Delete.
2588         * config/dfp-bit.c (dfp_unary_op, dfp_binary_op, dfp_compare_op,
2589         DFP_TO_DFP, INT_TO_DFP, BFP_TO_DFP): Remove calls to DFP_RAISE.
2590
2591         * config/dfp-bit.c (dfp_binary_func): Fix typedef.
2592
2593 2006-11-21  Douglas Gregor <doug.gregor@gmail.com>
2594
2595         * c-common.h (enum rid): Add RID_STATIC_ASSERT.
2596
2597 2006-11-21  Richard Guenther  <rguenther@suse.de>
2598
2599         * tree-vectorizer.h (NUM_PATTERNS): Increase.
2600         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
2601         vect_recog_pow_pattern.
2602         (vect_recog_pow_pattern): New function.
2603
2604 2006-11-21  Bernd Schmidt  <bernd.schmidt@analog.com>
2605
2606         * config/bfin/bfin.opt (mstack-check-l1): New.
2607         * doc/invoke.texi (Blackfin Options): Document it.
2608         * config/bfin/bfin.c (bfin_expand_prologue): Generate code to use
2609         stack bounds in L1 memory if the new option is enabled.
2610         (override_options): Don't allow combinations of -fstack-limit and
2611         -mstack-check-l1.
2612         (add_to_reg): Renamed from add_to_sp.  All callers changed.  Lose some
2613         dead code.
2614
2615         * config/bfin/bfin.c (hard_regno_mode_ok): Only allow first 31
2616         regs for DImode.
2617         (bfin_register_move_cost): Bump costs if trying to move plain
2618         integer values through accumulators.
2619
2620 2006-11-21  Ben Elliston  <bje@au.ibm.com>
2621
2622         * config/spu/spu.c (spu_expand_vector_init): Initialise x.
2623
2624 2006-11-20  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2625             Russell Olsen <Russell_Olsen@playstation.sony.com>
2626             Dmitri Makarov <Dmitri_Makarov@playstation.sony.com>
2627             Yukishige Shibata <shibata@rd.scei.sony.co.jp>
2628             Nobuhisa Fujinami <fnami@rd.scei.sony.co.jp>
2629             Takeaki Fukuoka <fukuoka@rd.scei.sony.co.jp>
2630             Andrew Pinski <Andrew_Pinski@playstation.sony.com>
2631
2632         * config.gcc: Add target for SPU.
2633         * config/spu/constraints.md: New file.
2634         * config/spu/crt0.c: New file.
2635         * config/spu/crtend.c: New file.
2636         * config/spu/crti.asm: New file.
2637         * config/spu/crtn.asm: New file.
2638         * config/spu/float_unsdidf.c: New file.
2639         * config/spu/float_unssidf.c: New file.
2640         * config/spu/predicates.md: New file.
2641         * config/spu/spu-builtins.def: New file.
2642         * config/spu/spu-builtins.h: New file.
2643         * config/spu/spu-builtins.md: New file.
2644         * config/spu/spu-c.c: New file.
2645         * config/spu/spu-elf.h: New file.
2646         * config/spu/spu-modes.def: New file.
2647         * config/spu/spu-protos.h: New file.
2648         * config/spu/spu.c: New file.
2649         * config/spu/spu.h: New file.
2650         * config/spu/spu.md: New file.
2651         * config/spu/spu.opt: New file.
2652         * config/spu/spu_internals.h: New file.
2653         * config/spu/spu_intrinsics.h: New file.
2654         * config/spu/spu_mfcio.h: New file.
2655         * config/spu/t-spu-elf: New file.
2656         * config/spu/vec_types.h: New file.
2657         * config/spu/vmx2spu.h: New file.
2658         * doc/contrib.texi: Document SPU contributor.
2659         * doc/extend.texi: Document SPU extensions.
2660         * doc/invoke.texi: Document SPU options.
2661         * doc/md.texi: Document SPU constraints.
2662
2663 2006-11-21  Zdenek Dvorak <dvorakz@suse.cz>
2664
2665         * cfgloopmanip.c (add_loop, duplicate_loop): Do not set level
2666         of the loop.
2667         * cfgloop.c (flow_loop_level_compute, flow_loops_level_compute):
2668         Removed.
2669         (flow_loop_dump): Do not dump loop level.
2670         (flow_loops_find): Do not call flow_loops_level_compute.
2671         * cfgloop.h (struct loop): Remove level field.
2672
2673 2006-11-21  Zdenek Dvorak <dvorakz@suse.cz>
2674
2675         * tree-ssa-loop-im.c (schedule_sm, determine_lsm_ref,
2676         hoist_memory_references, loop_suitable_for_sm, determine_lsm_loop):
2677         Use vector of edges instead of array.
2678         * tree-ssa-loop-niter.c (find_loop_niter, find_loop_niter_by_eval,
2679         estimate_numbers_of_iterations_loop): Ditto.
2680         * predict.c (predict_loops): Ditto.
2681         * loop-unroll.c (analyze_insns_in_loop): Ditto.
2682         * tree-ssa-threadupdate.c: Remove declaration of heap allocation for
2683         edge vectors.
2684         * basic-block.h: Declare heap allocation for edge vectors.
2685         * tree-outof-ssa.c: Ditto.
2686         * cfgloop.c (get_loop_exit_edges): Return vector of edges.
2687         * cfgloop.h (get_loop_exit_edges): Declaration changed.
2688
2689 2006-11-20  Zack Weinberg  <zackw@panix.com>
2690
2691         * gengtype.c (process_gc_options): Remove unnecessary forward decl.
2692         Add another out parameter, "skip".
2693         (set_gc_used_type): Adjust calls to process_gc_options.  If a field
2694         is tagged "skip", do not mark its type used.
2695
2696 2006-11-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2697
2698         PR tree-opt/25500
2699         * tree-sra.c (single_scalar_field_in_record_p): New function.
2700         (decide_block_copy): Use it.
2701
2702 2006-11-20  David Daney  <ddaney@avtrex.com>
2703
2704         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
2705         PC to point to following instruction.
2706
2707 2006-11-20  Anatoly Sokolov <aesok@post.ru>
2708
2709         PR target/18553
2710         PR target/29449
2711         * config/avr/avr.h (OBJECT_FORMAT_ELF): Define.
2712
2713         * config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define.
2714
2715 2006-11-20  J"orn Rennecke  <joern.rennecke@st.com>
2716
2717         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
2718         Add sh/superh.h to tm_file.
2719
2720 2006-11-20  Carlos O'Donell  <carlos@codesourcery.com>
2721             Mark Mitchell  <mark@codesourcery.com>
2722
2723         * cppdefault.c: Define cpp_PREFIX, cpp_PREFIX_len, and
2724         gcc_exec_prefix.
2725         (cpp_relocated): New function.
2726         * cppdefault.h: Declare cpp_PREFIX, cpp_PREFIX_len, gcc_exec_prefix
2727         and cpp_relocated.
2728         * Makefile.in (PREPROCESSOR_DEFINES): Add -DPREFIX option.
2729         * c-incpath.c (add_standard_paths): Call cpp_relocated. If relocated,
2730         replace configured prefix with gcc_exec_prefix.
2731
2732 2006-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
2733
2734         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Call
2735         bfin_legitimate_constant_p.
2736         * config/bfin/bfin.md (movsi expander): Check return value of
2737         expand_mvoe.
2738         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Declare.
2739         (expand_move): Adjust prototype.
2740         * config/bfin/bfin.c (expand_move): Now returns bool.  Handle
2741         invalid constants specially.
2742         (bfin_cannot_force_const_mem, bfin_legitimate_constant_p): New
2743         functions.
2744         (TARGET_CANNOT_FORCE_CONST_MEM): New macro.
2745
2746         * config/bfin/bfin.md (call_symbol, call_value_symbol, sibcall_symbol,
2747         sibcall_value_symbol): Allow these patterns if
2748         TARGET_LEAF_ID_SHARED_LIBRARY.
2749         * config/bfin/bfin.c (bfin_expand_call): Allow them here as well.
2750         (override_options): Turn on id shared library flags if -msep-data,
2751         but disallow the combination of these options on the command line.
2752         * config/bfin/bfin.h (TARGET_LEAF_ID_SHARED_LIBRARY, MASK_SEP_DATA
2753         MASK_LEAF_ID_SHARED_LIBRARY, TARGET_SEP_DATA): New macros.
2754         (DRIVER_SELF_SPECS): -mleaf-id-shared-library implies
2755         -mid-shared-library.
2756         (TARGET_SWITCHES): Add -mleaf-id-shared-library and -msep-data.
2757         * doc/invoke.texi (Blackfin Options): Document new switches.
2758
2759         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Handle some
2760         edge cases with local functions and TARGET_ID_SHARED_LIBRARY.
2761
2762         * tree-ssa-loop-ivopts.c (get_address_cost): Do not artificially
2763         inflate costs for addresses with an out-of-bounds address.
2764
2765 2006-11-19  Andrew Pinski  <pinskia@gmail.com>
2766
2767         PR rtl-opt/29879
2768         * fwprop.c (loops): Remove.
2769         (forward_propagate_into): Use current_loops instead of
2770         loops.
2771         (fwprop_init): Call loop_optimizer_init instead of
2772         flow_loops_find.
2773         (fwprop_done): Call loop_optimizer_finalize instead of
2774         flow_loops_free.
2775         (fwprop): Use current_loops instead of loops.
2776
2777 2006-11-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2778
2779         PR c++/8586
2780         * c-opts.c (c_common_handle_option): Enable -Wwrite-strings if -Wall.
2781
2782 2006-11-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2783
2784         PR target/29114
2785         * pa.c (emit_move_sequence): Don't split constants with PLUS for modes
2786         larger than BITS_PER_WORD.
2787
2788 2006-11-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2789
2790         PR fortran/27885
2791         PR middle-end/28176
2792         * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types
2793         to MAX_FIXED_MODE_SIZE.
2794
2795 2006-11-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2796
2797         * builtins.c (integer_valued_real_p): Handle fmin/fmax.
2798         (fold_builtin_fmin_fmax): New.
2799         (fold_builtin_1): Use it.
2800
2801         * fold-const.c (fold_strip_sign_ops): Handle copysign.
2802
2803 2006-11-18  Richard Guenther  <rguenther@suse.de>
2804
2805         * config/i386/i386.c (ix86_builtins): New array for ix86
2806         builtin function decls.
2807         (def_builtin): New function.
2808         (def_builtin_const): Likewise.
2809         (ix86_init_mmx_sse_builtins): Mark sqrt and cvt builtins const.
2810
2811 2006-11-18  Vladimir Makarov  <vmakarov@redhat.com>
2812
2813         * doc/invoke.texi (core2): Add item.
2814
2815         * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New
2816         macros.
2817         (TARGET_CPU_CPP_BUILTINS): Add code for core2.
2818         (TARGET_CPU_DEFAULT_generic): Change value.
2819         (TARGET_CPU_DEFAULT_NAMES): Add core2.
2820         (processor_type): Add new constant PROCESSOR_CORE2.
2821
2822         * config/i386/i386.md (cpu): Add core2.
2823
2824         * config/i386/i386.c (core2_cost): New initialized variable.
2825         (m_CORE2): New macro.
2826         (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
2827         x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop,
2828         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
2829         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
2830         x86_partial_reg_dependency, x86_memory_mismatch_stall,
2831         x86_accumulate_outgoing_args, x86_prologue_using_move,
2832         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
2833         x86_sse_partial_reg_dependency, x86_rep_movl_optimal,
2834         x86_use_incdec, x86_four_jump_limit, x86_schedule,
2835         x86_pad_returns): Add m_CORE2.
2836         (override_options): Add entries for Core2.
2837         (ix86_issue_rate): Add case for Core2.
2838
2839 2006-11-18  Aldy Hernandez  <aldyh@redhat.com>
2840
2841         * doc/invoke.texi: Fix mno-isel typo.
2842
2843 2006-11-18  Joseph Myers  <joseph@codesourcery.com>
2844
2845         * config/rs6000/spe.md (movv4hi_internal): Add alternative for
2846         easy vector constant loads.
2847
2848 2006-11-18  Joseph Myers  <joseph@codesourcery.com>
2849
2850         * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
2851         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2852         __NO_LWSYNC__ if TARGET_NO_LWSYNC.
2853         * config/rs6000/sync.md (lwsync): Emit plain sync if
2854         TARGET_NO_LWSYNC.
2855
2856 2006-11-17  DJ Delorie  <dj@redhat.com>
2857
2858         * reload1.c (reloads_unique_chain): New.
2859         (reloads_conflict): Call it.
2860
2861 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
2862
2863         * config/xtensa/predicates.md (addsubx_operand): New.
2864         * config/xtensa/xtensa.c (xtensa_emit_branch): New.
2865         (xtensa_emit_bit_branch): New.
2866         (xtensa_emit_movcc): New.
2867         * config/xtensa/xtensa.md (any_minmax): New code macro.
2868         (minmax): New code attribute.
2869         (any_cond, any_scc, any_scc_sf): New code macros.
2870         (*addx2, *addx4, *addx8): Delete.
2871         (*addx): New.
2872         (*subx2, *subx4, *subx8): Delete.
2873         (*subx): New.
2874         (sminsi3, uminsi3, smaxsi3, umaxsi3): Use any_minmax macro.
2875         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Use any_cond.
2876         (*btrue, *bfalse, *ubtrue, *ubfalse): Use xtensa_emit_branch.
2877         (*bittrue, *bitfalse): Use xtensa_emit_bit_branch.
2878         (seq, sne, sgt, sge, slt, sle): Use any_scc macro.
2879         (movsicc_internal0, movsicc_internal1): Use xtensa_emit_movcc.
2880         (movsfcc_internal0, movsfcc_internal1): Likewise.
2881         (seq_sf, slt_sf, sle_sf): Use any_scc_sf macro.
2882         * config/xtensa/xtensa-protos.h: (xtensa_emit_branch): New.
2883         (xtensa_emit_bit_branch): New.
2884         (xtensa_emit_movcc): New.
2885         (function_arg_boundary): Add missing prototype.
2886
2887 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
2888
2889         * config/xtensa/xtensa.md (tstsi): Delete
2890
2891 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
2892
2893         * config/xtensa/xtensa.md (entry): Do not emit .frame directive.
2894
2895 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
2896
2897         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2898
2899 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
2900
2901         * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a0 on exit.
2902
2903 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
2904
2905         * tree-vrp.c (execute_vrp): Do not update current_loops.
2906         * loop-unswitch.c (unswitch_loop): Do not use loop_split_edge_with.
2907         * doc/loop.texi: Remove documentation for cancelled functions.
2908         * tree-ssa-loop-im.c (loop_commit_inserts): Removed.
2909         (move_computations, determine_lsm): Use bsi_commit_edge_inserts
2910         instead.
2911         * cfgloopmanip.c (remove_bbs): Do not update loops explicitly.
2912         (remove_path): Ensure that in delete_basic_blocks, the loops
2913         are still allocated.
2914         (add_loop): Work on valid loop structures.
2915         (loopify): Modify call of add_loop.
2916         (mfb_update_loops): Removed.
2917         (create_preheader): Do not update loops explicitly.
2918         (force_single_succ_latches, loop_version): Do not use
2919         loop_split_edge_with.
2920         (loop_split_edge_with): Removed.
2921         * tree-ssa-loop-manip.c (create_iv, determine_exit_conditions):
2922         Do not use bsi_insert_on_edge_immediate_loop.
2923         (split_loop_exit_edge, tree_unroll_loop): Do not use
2924         loop_split_edge_with.
2925         (bsi_insert_on_edge_immediate_loop): Removed.
2926         * tree-ssa-loop-ch.c (copy_loop_headers): Use current_loops.  Do not
2927         use loop_split_edge_with.
2928         * cfghooks.c: Include cfgloop.h.
2929         (verify_flow_info): Verify that loop_father is filled iff current_loops
2930         are available.
2931         (redirect_edge_and_branch_force, split_block, delete_basic_block,
2932         split_edge, merge_blocks, make_forwarder_block, duplicate_block):
2933         Update cfg.
2934         * cfgloopanal.c (mark_irreducible_loops): Work if the function contains
2935         no loops.
2936         * modulo-sched.c (generate_prolog_epilog, canon_loop): Do not use
2937         loop_split_edge_with.
2938         (sms_schedule): Use current_loops.
2939         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Use current_loops.
2940         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Set
2941         current_loops.
2942         (rtl_loop_init, rtl_loop_done): Do not set current_loops.
2943         * tree-ssa-sink.c (execute_sink_code): Use current_loops.
2944         * ifcvt.c (if_convert): Ditto.
2945         * predict.c (predict_loops): Do not clear current_loops.
2946         (tree_estimate_probability): Use current_loops.
2947         (propagate_freq): Receive head of the region to propagate instead of
2948         loop.
2949         (estimate_loops_at_level): Do not use shared to_visit bitmap.
2950         (estimate_loops): New function.  Handle case current_loops == NULL.
2951         (estimate_bb_frequencies): Do not allocate tovisit.  Use
2952         estimate_loops.
2953         * tree-ssa-loop.c (current_loops): Removed.
2954         (tree_loop_optimizer_init): Do not return loops.
2955         (tree_ssa_loop_init, tree_ssa_loop_done): Do not set current_loops.
2956         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard1,
2957         slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge):
2958         Do not update loops explicitly.
2959         * function.h (struct function): Add x_current_loops field.
2960         (current_loops): New macro.
2961         * tree-if-conv.c (combine_blocks): Do not update loops explicitly.
2962         * loop-unroll.c (split_edge_and_insert): New function.
2963         (unroll_loop_runtime_iterations, analyze_insns_in_loop): Do not
2964         use loop_split_edge_with.
2965         * loop-doloop.c (add_test, doloop_modify): Ditto.
2966         * tree-ssa-pre.c (init_pre, fini_pre): Do not set current_loops.
2967         * cfglayout.c (copy_bbs): Do not update loops explicitly.
2968         * lambda-code.c (perfect_nestify): Do not use loop_split_edge_with.
2969         * tree-vect-transform.c (vect_transform_loop): Do not update loops
2970         explicitly.
2971         * cfgloop.c (flow_loops_cfg_dump): Do not dump dfs_order and rc_order.
2972         (flow_loops_free): Do not free dfs_order and rc_order.
2973         (flow_loops_find): Do not set dfs_order and rc_order in loops
2974         structure.  Do not call loops and flow info verification.
2975         (add_bb_to_loop, remove_bb_from_loops): Check whether the block
2976         already belongs to some loop.
2977         * cfgloop.h (struct loops): Remove struct cfg.
2978         (current_loops, loop_split_edge_with): Declaration removed.
2979         (loop_optimizer_init, loop_optimizer_finalize): Declaration changed.
2980         * tree-flow.h (loop_commit_inserts, bsi_insert_on_edge_immediate_loop):
2981         Declaration removed.
2982         * Makefile.in (cfghooks.o): Add CFGLOOP_H dependency.
2983         * basic-block.h (split_edge_and_insert): Declare.
2984         * tree-cfg.c (remove_bb): Do not update loops explicitly.
2985
2986 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
2987
2988         PR tree-optimization/29801
2989         * tree-ssa-ccp.c (get_symbol_constant_value): New function.
2990         (get_default_value): Use get_symbol_constant_value.
2991         (set_lattice_value): ICE when the value of the constant is
2992         changed.
2993         (visit_assignment): Ignore VDEFs of read-only variables.
2994
2995 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
2996
2997         * tree-vect-transform.c (vect_create_epilog_for_reduction): Fix
2998         formating.
2999         (vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
3000         vect_gen_niters_for_prolog_loop): Fold the emited expressions.
3001
3002 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
3003
3004         * tree-ssa-alias.c (new_type_alias): Do not use offset of expr to
3005         select subvars of var.
3006
3007 2006-11-17  Jakub Jelinek  <jakub@redhat.com>
3008
3009         PR middle-end/29584
3010         * tree-ssa-forwprop.c (simplify_switch_expr): Don't
3011         optimize if DEF doesn't have integral type.
3012
3013 2006-11-16  Mike Stump  <mrs@apple.com>
3014
3015         * config/darwin.h (LINK_COMMAND_SPEC): Don't do dwarf stuff on
3016         pre-darwin9 system, unless the user asks for it directly.
3017         (PREFERRED_DEBUGGING_TYPE): Likewise.
3018         * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Likewise.
3019         * config.gcc: Add suppport for darwin9.h.
3020         * config/darwin9.h: Add.
3021         * doc/install.texi (Specific): Clarify darwin documentation.
3022
3023 2006-11-16  Richard Earnshaw  <rearnsha@arm.com>
3024
3025         * arm.h (CONSTANT_ALIGNMENT): Don't over-align strings when
3026         optimizing for size.
3027
3028 2006-11-16  Mike Stump  <mrs@apple.com>
3029
3030         * Makefile.in (targhooks.o): Add $(OPTABS_H).
3031
3032 2006-11-16  Dirk Mueller  <dmueller@suse.de>
3033
3034         * tree-vrp.c (get_value_range): Use XCNEW instead
3035         of XNEW and memset.
3036         (insert_range_assertions): Use XCNEWVEC instead
3037         of XNEWVEC and memset.
3038         (vrp_initialize): Same.
3039         (vrp_finalize): Same.
3040         * tree-ssa-ccp.c (ccp_initialize): Same.
3041         * predict.c (tree_bb_level_predictions): Same.
3042         * calls.c (expand_call): Same.
3043         * tree-ssa-copy.c (init_copy_prop): Same.
3044         (fini_copy_prop): Same.
3045         * tree-ssa-alias.c (get_ptr_info): Use GGC_CNEW instead
3046         of GGC_NEW and memset.
3047
3048 2006-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3049
3050         PR middle-end/26306
3051         * gimplify.c (gimplify_expr): Only force a load for references to
3052         non-BLKmode volatile values.
3053         * doc/implement-c.texi (Qualifiers implementation): Document the
3054         interpretation of what a volatile access is.
3055         * doc/extend.texi (C++ Extensions): Rework same documentation.
3056
3057 2006-11-16  Joseph Myers  <joseph@codesourcery.com>
3058
3059         * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable
3060         memory operand.
3061
3062 2006-11-16  Richard Earnshaw  <rearnsha@arm.com>
3063
3064         * arm.md (abssi2): Allow Thumb as well.  Use an SImode scratch for
3065         Thumb.
3066         (arm_neg_abssi2): Renamed from neg_abssi2.
3067         (thumb_abssi2, thumb_neg_abssi2): New patterns with splitters.
3068
3069 2006-11-16  Uros Bizjak  <ubizjak@gmail.com>
3070
3071         * config/i386/i386.c (ix86_function_sseregparm): Fix comment:
3072         number of arguments passed to local functions in SSE registers is 3.
3073
3074         * doc/invoke.texi (Function Attributes) [sseregparm]: Correct
3075         number of arguments passed in SSE registers to 3.
3076
3077 2006-11-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3078
3079         PR target/29201
3080         * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
3081         bb to ...
3082         (get_last_bb_insn): ... new global function.
3083         (basic_block.h): Declare it.
3084         * haifa-sched.c (create_recovery_block): Use it.
3085
3086 2006-11-15  H.J. Lu  <hongjiu.lu@intel.com>
3087
3088         PR middle-end/29862
3089         * real.c (mpfr_from_real): Call mpfr_set_str before gcc_assert.
3090
3091 2006-11-15  Paul Brook  <paul@codesourcery.com>
3092
3093         * config/arm/unwind-arm.c (_Unwind_GetDataRelBase,
3094         _Unwind_GetTextRelBase): Move from here ...
3095         * config/arm/pr-support.c (_Unwind_GetDataRelBase,
3096         _Unwind_GetTextRelBase): ... To here.
3097
3098 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3099
3100         * tree-ssa-loop-ivopts.c (get_address_cost): Make sure memory
3101         addresses we generate for testing are aligned.
3102
3103 2006-11-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3104
3105         PR tree-opt/29788
3106         * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
3107         to what is the const decl is a place holder for.
3108
3109 2006-11-15  Uros Bizjak  <ubizjak@gmail.com>
3110
3111         * config/i386/i386.opt: New target option -mx87regparm.
3112
3113         * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno
3114         and float_in_x87 variables. mmx_words, sse_words: Remove.
3115         (X87_REGPARM_MAX): Define.
3116
3117         * config/i386/i386.c (override_options): Error out for
3118         -mx87regparm but no 80387 support.
3119         (ix86_attribute_table): Add x87regparm.
3120         (ix86_handle_cconv_attribute): Update comments for x87regparm.
3121         (ix86_comp_type_attributes): Check for mismatched x87regparm types.
3122         (ix86_function_x87regparm): New function.
3123         (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
3124         point registers.
3125         (init_cumulative_args): Initialize x87_nregs and float_in_x87
3126         variables.
3127         (function_arg_advance): Process x87_nregs and x87_regno when
3128         floating point argument is to be passed in 80387 register.
3129         (function_arg): Pass XFmode arguments in 80387 registers for local
3130         functions.  Pass SFmode and DFmode arguments to local functions
3131         in 80387 registers when flag_unsafe_math_optimizations is set.
3132
3133         * reg-stack.c (convert_regs_entry): Disable NaN load for
3134         stack registers that are used for argument passing.
3135
3136         * doc/extend.texi: Document x87regparm function attribute.
3137         * doc/invoke.texi: Document -mx87regparm.
3138
3139 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3140
3141         * tree-flow.h (multiplier_allowed_in_address_p): Adjust prototype.
3142         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): New
3143         arg MODE; all callers changed.  Use it to determine validity per
3144         machine mode instead of using Pmode for all memory references.
3145         (get_address_cost): Likewise add and use new arg MEM_MODE.
3146
3147 2006-11-15  Rask Ingemann Lambertsen <rask@sygehus.dk>
3148             J"orn Rennecke <joern.rennecke@st.com>
3149
3150         * combine.c (likely_spilled_retval_1): Fix masking operation.
3151         (likely_spilled_retval_p): Use proper pattern for call to
3152         likely_spilled_retval_1.
3153
3154 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3155
3156         * tree-ssa-loop-ivopts.c (determine_iv_costs): Fix formatting.
3157
3158         * config/bfin/bfin.c (legitimize_pic_address): Lose dead code
3159         that tests for CONSTANT_POOL_ADDRESS_P.
3160
3161 2006-11-15  Jakub Jelinek  <jakub@redhat.com>
3162
3163         PR tree-optimization/29581
3164         * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
3165         REPLACEMENTS, FIRSTBSI arguments.  If initial condition or
3166         type is different between Y and USE, create a temporary
3167         variable, initialize it at the beginning of the body bb
3168         and use it as replacement instead of Y.
3169
3170 2006-11-15  Paolo Bonzini  <bonzini@gnu.org>
3171
3172         PR middle-end/29753
3173         * gimplify.c (fold_indirect_ref_rhs): Use
3174         STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
3175
3176 2006-11-14  Richard Earnshaw  <rearnsha@arm.com>
3177
3178         * expmed.c (emit_store_flag_1): New function.
3179         (emit_store_flag): Call it.  If we can't find a suitable scc insn,
3180         try a cstore insn.
3181         * expr.c (do_store_flag): If we can't find a scc insn, try cstore.
3182         Use do_compare_rtx_and_jump.
3183         * arm.h (BRANCH_COST): Increase to 2 on Thumb.
3184         * arm.md (cstoresi4): New define_expand.
3185         (cstoresi_eq0_thumb, cstoresi_ne0_thumb): Likewise.
3186         (cstoresi_eq0_thumb_insn, cstore_ne0_thumb_insn): New patterns.
3187         (cstoresi_nltu_thumb, thumb_addsi3_addgeu): New patterns.
3188
3189 2006-11-14  Caroline Tice  <ctice@apple.com>
3190
3191         * dwarf2out.c (debug_pubtypes_section): New static global variable.
3192         (pubname_entry):  Add DEF_VEC_O and DEF_VEC_ALLOC_O statements for
3193         this type.
3194         (pubname_table):  Redefine as a vector.
3195         (pubtype_table):  New static global variable, defined as a vector.
3196         (pubname_table_allocated): Remove static global variable.
3197         (pubname_table_in_use): Remove static global variable.
3198         (PUBNAME_TABLE_INCREMENT): Remove constant.
3199         (size_of_pubnames): Add parameter to deal with either pubnames or
3200         pubtypes, and change code to deal with table being a vector.
3201         (add_pubname):  Change to deal with table being a vector.
3202         (add_pubtype):  New function.
3203         (output_pubnames): Add parameter to deal with either pubnames or
3204         pubtypes, and change code to deal with table being a vector.
3205         (gen_array_type_die):  Add call to add_pubtype.
3206         (gen_enumeration_type_die): Add call to add_pubtype.
3207         (gen_struct_or_union_type_die): Add call to add_pubtype.
3208         (gen_subroutine_type_die): Add call to add_pubtype.
3209         (gen_typedef_die):  Add call to add_pubtype.
3210         (dwarf2out_init): Add code to initialize pubname_table and
3211         pubtype_table vectors; also initialize debug_pubtypes_section.
3212         (prune_unused_types):  Change to deal with pubnames being a vector.
3213         (dwarf2out_finish): Change to deal with pubnames being a vector; add
3214         pubnames table to call to output_pubnames;  Add code to output pubtypes
3215         table if DEBUG_PUBTYPES_SECTION is defined.
3216         * config/darwin.c (darwin_file_start):  Add DEBUG_PUBTYPES_SECTION to
3217         debugnames.
3218         * config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable.
3219
3220 2006-11-14  Joseph Myers  <joseph@codesourcery.com>
3221
3222         * config/arm/arm.h (FUNCTION_ARG_ADVANCE): Only adjust
3223         iwmmxt_nregs if TARGET_IWMMXT_ABI.
3224         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
3225         movv2si_internal): Support moves between core registers.
3226
3227 2006-11-14  Eric Christopher  <echristo@apple.com>
3228
3229         * configure: Regenerate with autoconf 2.59.
3230
3231 2006-11-14  Daniel Berlin  <dberlin@dberlin.org>
3232
3233         Fix PR tree-optimization/27755
3234
3235         * tree-ssa-pre.c: Update comments.
3236         (bb_bitmap_sets): Add pa_in and  deferred member.
3237         (BB_DEFERRED): New macro.
3238         (maximal_set): New variable.
3239         (pre_stats): Add pa_insert member.
3240         (bitmap_set_and): Short circuit orig == dest.
3241         (bitmap_set_subtract_values): New function.
3242         (bitmap_set_contains_expr): Ditto.
3243         (translate_vuses_through_block): Add phiblock argument.
3244         (dependent_clean): New function.
3245         (compute_antic_aux): Update for maximal_set changes.
3246         (compute_partial_antic_aux): New function.
3247         (compute_antic): Handle partial anticipation.
3248         (do_partial_partial_insertion): New function.
3249         (insert_aux): Handle partial anticipation.
3250         (add_to_sets): Add to maximal set.
3251         (compute_avail): Ditto.
3252         (init_pre): Initialize maximal_set.
3253         (execute_pre): Do partial anticipation if -O3+.
3254
3255 2006-11-14  Paolo Bonzini  <bonzini@gnu.org>
3256
3257         PR rtl-optimization/29798
3258
3259         * fwprop.c (use_killed_between): Check that DEF_INSN dominates
3260         TARGET_INSN before any other check.
3261         (fwprop_init): Always calculate dominators.
3262         (fwprop_done): Always free them.
3263
3264 2006-11-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3265
3266         * fold-const.c (fold_strip_sign_ops): Handle COMPOUND_EXPR and
3267         COND_EXPR.
3268
3269 2006-11-13  DJ Delorie  <dj@redhat.com>
3270
3271         * config/m32c/m32c.c (m32c_prepare_shift): Use a separate
3272         temporary for intermediates.
3273
3274 2006-11-13  Kaz Kojima  <kkojima@gcc.gnu.org>
3275
3276         * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label.
3277         (sh_optimize_target_register_callee_saved): #if 0 the code
3278         using NOTE_INSN_LOOP_{BEG,END}.
3279
3280 2006-11-13  Roger Sayle  <roger@eyesopen.com>
3281
3282         * fold-const.c (optimize_bit_field_compare): Recursively call
3283         fold when simplifying non-constant comparisons between bit-fields.
3284
3285 2006-11-13  Jakub Jelinek  <jakub@redhat.com>
3286
3287         * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
3288         test.
3289         * configure: Rebuilt.
3290
3291 2006-11-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3292
3293         * config/rs6000/cell.md: New file.
3294         * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New
3295         variable.
3296         (ppccell_cost): New cost matrix.
3297         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
3298         (rs6000_override_options): Set rs6000_always_hint to false
3299         for cell. Also align functions/lables/loops to 8byte
3300         for the Cell. Use PROCESSOR_CELL.
3301         (rs6000_emit_epilogue): Rename using_mfcr_multiple to
3302         using_mtcr_multiple.
3303         (rs6000_variable_issue): If the insn is a nonpipelined instruction
3304         on the Cell, return 0.
3305         (rs6000_adjust_cost): Add Cell cost adjustments.
3306         (is_microcoded_insn): Return true for Cell microcoded
3307         instructions.
3308         (is_nonpipeline_insn): New function.
3309         (rs6000_issue_rate): Add PROCESSOR_CELL.
3310         (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8
3311         instructions.
3312         (rs6000_use_sched_lookahead_guard): New function.
3313         (rs6000_sched_reorder):  Reorder the ready list, if the second
3314         to last ready insn is a nonepipeline insn on the Cell.
3315         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL.
3316         (ASM_CPU_SPEC): Add Cell.
3317         * config/rs6000/rs6000.md (cpu): Add Cell.
3318         (cell_micro): New Attr.
3319         Include cell.md
3320
3321 2006-11-13  Jakub Jelinek  <jakub@redhat.com>
3322
3323         * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
3324         style versions.
3325         * configure: Rebuilt.
3326
3327 2006-11-13  Richard Guenther  <rguenther@suse.de>
3328
3329         * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
3330         return value.
3331         (ix86_expand_lfloorceil): Likewise.
3332         (ix86_expand_rint): Likewise.
3333         (ix86_expand_floorceildf_32): Likewise.
3334         (ix86_expand_floorceil): Likewise.
3335         (ix86_expand_rounddf_32): Likewise.
3336         (ix86_expand_truncdf_32): Likewise.
3337         (ix86_expand_round): Likewise.
3338
3339 2006-11-13  Carlos O'Donell  <carlos@codesourcery.com>
3340             Mark Mitchell  <mark@codesourcery.com>
3341
3342         * gcc.c: Organize search path variables into $prefix relative,
3343         and well-known native. Add comments.
3344         (add_sysrooted_prefix): Add comment.
3345         (process_command): If !gcc_exec_prefix add $prefix based paths.
3346         If *cross_compile == '0', add native well-known paths.
3347         Assert tooldir_base_prefix is always relative.
3348         (main): If print_search_dirs, and if gcc_exec_prefix is set,
3349         use this value for 'install:' path.
3350         * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.
3351
3352 2006-11-13  H.J. Lu  <hongjiu.lu@intel.com>
3353
3354         * config/i386/i386.c: Fix a typo in comment.
3355
3356 2006-11-13  Michael Matz  <matz@suse.de>
3357
3358         * genemit.c (gen_expand): Allocate enough memory.
3359
3360 2006-11-13  Joseph Myers  <joseph@codesourcery.com>
3361
3362         * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
3363         __GXX_TYPEINFO_EQUALITY_INLINE but not
3364         __GXX_MERGED_TYPEINFO_NAMES.
3365         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
3366         __GXX_MERGED_TYPEINFO_NAMES.
3367         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
3368         __GXX_TYPEINFO_EQUALITY_INLINE.
3369
3370 2006-11-13  H.J. Lu  <hongjiu.lu@intel.com>
3371             Zdenek Dvorak <dvorakz@suse.cz>
3372
3373         PR tree-optimization/29680
3374         * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
3375         PR 14784.
3376
3377 2006-11-12  Jason Merrill  <jason@redhat.com>
3378             Andrew Pinski <pinskia@physics.uc.edu>
3379
3380         PR middle-end/28915
3381         * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
3382         vector ctors.
3383         * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
3384         vector ctors.
3385         * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
3386         * tree.c (build_vector): Handle non-_CST elements.
3387
3388 2006-11-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3389
3390         * genemit.c (gen_insn): Call gen_exp with a non-null used
3391         when handling multiple insns.
3392         (gen_expand): Likewise.
3393         * reorg.c (emit_delay_sequence): Copy the delay slot insn.
3394         * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
3395         (movsi_const_16bit+1): Copy operands[1].
3396         (call_pcrel): Copy the call_site pattern.
3397         (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
3398
3399 2006-11-12  Roger Sayle  <roger@eyesopen.com>
3400
3401         * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
3402         condition for transformations.  Use !HONOR_SIGN_DEPENDENT_ROUNDING
3403         && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
3404         (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
3405
3406 2006-11-12  Daniel Berlin  <dberlin@dberlin.org>
3407
3408         Fix PR tree-optimization/29587
3409         * tree-ssa-structalias.c (process_constraint): Don't
3410         mark address taken due only to escaped vars constraint.
3411
3412 2006-11-12  Michael Matz  <matz@suse.de>
3413             Roger Sayle  <roger@eyesopen.com>
3414
3415         PR rtl-optimization/29797
3416         * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
3417         BITS_BIG_ENDIAN targets.
3418
3419 2006-11-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3420
3421         * builtins.c (fold_builtin_cosh): New.
3422         (fold_builtin_1): Use it.
3423         * fold-const.c (negate_mathfn_p): Add llround, lround, round,
3424         trunc to the list of "odd" functions.  Also add llrint, lrint,
3425         rint and nearbyint when flag_rounding_math is false.
3426
3427 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
3428
3429         * tree-flow.h (name_mappings_registered_p): Declare.
3430         * tree-into-ssa.c (name_mappings_registered_p): New function.
3431         * tree-cfg.c (tree_can_merge_blocks_p): Check
3432         name_mappings_registered_p instead of need_ssa_update_p.
3433
3434 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
3435
3436         * tree-ssa-loop.c (tree_vectorize): Return the result of
3437         vectorize_loops.
3438         * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
3439         if anything changed.
3440         * tree-vectorizer.h (vectorize_loops): Declaration removed.
3441         * tree-flow.h (vectorize_loops): Declaration changed.
3442
3443 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
3444
3445         * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
3446         comments.
3447         (issue_prefetch_ref): Move assignment to write_p out of loop.
3448         (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
3449         SIMULTANEOUS_PREFETCHES into account.
3450         (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
3451         * lambda-code.c (lcm): Renamed to ...
3452         (least_common_multiple): ... and exported.
3453         * tree-flow.h (least_common_multiple): Declare.
3454
3455 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
3456
3457         * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
3458         * tree-ssa-loop-niter.c (derive_constant_upper_bound):  Follow
3459         ud-chains.  Handle AND_EXPR.
3460         (record_estimate): Record whether the estimate is realistic
3461         and whether it is derived from a loop exit.
3462         (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
3463         infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
3464         functions.
3465         (compute_estimated_nb_iterations): Take only realistic bounds into
3466         account.  Set estimate_state.  Use double_ints.
3467         (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
3468         and infer_loop_bounds_from_signedness.  Do not consider basic blocks
3469         that do not have to be always executed.
3470         (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
3471         to determine whether to call infer_loop_bounds_from_undefined
3472         and compute_estimated_nb_iterations.
3473         (n_of_executions_at_most): Use double_ints.
3474         (free_numbers_of_iterations_estimates_loop): Set estimate_state.
3475         (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
3476         * double-int.c (double_int_to_tree): Improve comment.
3477         (double_int_fits_to_tree_p): New function.
3478         * double-int.h (double_int_fits_to_tree_p): Declare.
3479         * tree-data-ref.c: Include langhooks.h.
3480         (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
3481         (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
3482         (analyze_array): Do not pass estimate_only argument to
3483         analyze_array_indexes.
3484         (get_number_of_iters_for_loop): Build tree from the stored double_int
3485         value.
3486         (get_references_in_stmt, find_data_references_in_stmt): New functions.
3487         (find_data_references_in_loop): Use find_data_references_in_stmt.
3488         * tree-data-ref.h (struct data_ref_loc_d): New.
3489         (get_references_in_stmt): Declare.
3490         (estimate_iters_using_array): Declaration removed.
3491         * cfgloop.h (struct nb_iter_bound): Change type of bound to
3492         double_int.  Improve comments.  Add is_exit and realistic
3493         fields.
3494         (struct loop): Changed type of estimated_nb_iterations to double_int.
3495         Added estimate_state field.
3496         (record_estimate): Declaration removed.
3497
3498 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
3499
3500         * params.c (set_param_value): Initialize the "set" field.
3501         * params.h (struct param_info): Add "set" field.
3502         (PARAM_SET_P): New macro.
3503         (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
3504         L1_CACHE_LINE_SIZE): New macros.
3505         * toplev.c (DEFPARAM): Initialize the "set" field.
3506         * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
3507         SIMULTANEOUS_PREFETCHES): Removed.
3508         (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
3509         (tree_ssa_prefetch_arrays): Dump the values of the parameters.
3510         * config/sparc/sparc.c: Include params.h.
3511         (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
3512         L1_CACHE_LINE_SIZE parameters.
3513         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
3514         Removed.
3515         * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
3516         Removed.
3517         * config/i386/i386.c: Include params.h.
3518         (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
3519         (override_options): Set SIMULTANEOUS_PREFETCHES and
3520         L1_CACHE_LINE_SIZE parameters.
3521         * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
3522         (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
3523         L1_CACHE_LINE_SIZE parameters.
3524         * config/ia64/ia64.c (ia64_optimization_options): Set
3525         SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
3526         * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
3527         Removed.
3528         * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
3529         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
3530         * doc/invoke.texi: Document new params.
3531
3532 2006-11-12  Roger Sayle  <roger@eyesopen.com>
3533
3534         PR tree-optimization/13827
3535         * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
3536         as ((X^Y)&C) op 0.
3537
3538 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
3539
3540         * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
3541         update_single_exit_for_duplicated_loops): New functions.
3542         (duplicate_loop_to_header_edge): Use
3543         update_single_exit_for_duplicated_loops.
3544         * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
3545         functions only with ENABLE_CHECKING.
3546
3547 2006-11-12  Andreas Schwab  <schwab@suse.de>
3548
3549         * except.c (sjlj_emit_function_enter): Remove unused variable.
3550
3551 2006-11-11  Roger Sayle  <roger@eyesopen.com>
3552
3553         * fold-const.c (int_binop_types_match_p): New function.
3554         (size_binop): Relax constraint that both arguments must both have
3555         exactly the same sizetype type.  Instead use int_binop_types_match_p.
3556         (size_diffop): Likewise.
3557
3558         (make_range): Use build_int_cst instead of fold_convert.
3559         (fold_cond_expr_with_comparison): Use build_int_cst to construct
3560         integer constants of the correct type.
3561         (fold_div_compare): Likewise.
3562         (fold_single_bit_test): Likewise.
3563         (fold_binary): Likewise.
3564         * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
3565         has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
3566
3567 2006-11-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3568
3569         PR rtl-opt/28812
3570         * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
3571         non null value if the struct memory access is in the 0th
3572         aliasing set.
3573
3574 2006-11-12  Jie Zhang  <jie.zhang@analog.com>
3575
3576         Revert
3577         2006-11-11  Jie Zhang  <jie.zhang@analog.com>
3578         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
3579         and __BFIN__.
3580
3581         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
3582         instead of builtin_define for bfin and BFIN.
3583
3584 2006-11-11  Jie Zhang  <jie.zhang@analog.com>
3585
3586         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
3587         and __BFIN__.
3588
3589 2006-11-11  Jan Hubicka  <jh@suse.cz>
3590
3591         * extend.texi (__builtin_expect): We no longer require second argument
3592         to be constant.
3593         * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
3594         * builtins.c (expand_builtin_expect): Simplify.
3595         (expand_builtin_expect_jump): Kill.
3596         * final.c (final_scan_insn): Do not skip the removed notes.
3597         * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
3598         EXPECTED_VALUE): Remove.
3599         * dojump.c (do_jump): Do not care about __builtin_expect.
3600         * predict.c (expected_value_to_br_prob): Kill.
3601         * function.c (expand_function_end): Do not expand
3602         NOTE_INSN_REPEATED_LINE_NUMBER.
3603         * print-rtl.c (print_rtx): Do not pretty print the removed notes.
3604         * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
3605         * cfgexpand.c (add_reg_br_prob_note): Export.
3606         * cfgcleanup.c (rest_of_handle_jump2): Do not call
3607         expected_value_to_br_prob.
3608         * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
3609         * rtl.h (add_reg_br_prob_note): Declare.
3610
3611 2006-11-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3612
3613         * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
3614
3615 2006-11-11  Jan Hubicka  <jh@suse.cz>
3616
3617         * predict.c (predict_loops): Kill RTL variant.
3618
3619 2006-11-11  Jan Hubicka  <jh@suse.cz>
3620
3621         * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
3622         * modulo-sched.c (find_line_note): Remove.
3623         (loop_canon_p): Do not worry about line number notes.
3624         (sms_schedule): Likewise.
3625         * cse.c (cse_main): Likewise.
3626         * regmove.c (fixup_match_1): Likewise
3627         * function.c (emit_return_info_block): Likewise.
3628         (expand_function_end): Likewise.
3629         (thread_prologue_an_epilogue_insns): Likewise.
3630         * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
3631         Likewise.
3632         * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
3633         emit_note_copy_after): Kill.
3634         (emit_note_copy): Do not worry about line numbers.
3635         * jump.c (purge_line_number_notes): Kill.
3636         (pass_purge_lineno_notes): Kill.
3637         * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
3638         call.
3639         * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
3640         * passes.c (init_optimization_passes): Don't purge_lineno_notes.
3641         * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
3642         * tree-pass.h (pass_purge_lineno_notes): Kill.
3643         * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
3644         rm_redundant_line_notes.
3645         * sched-rgb.c (schedule_region): Don't rm_line_notes,
3646         rm_redundant_line_notes.
3647         * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
3648         * haifa-sched.c: Update comment about handling notes.
3649         (unlink_line_notes): Kill.
3650         (rm_line_notes): Kill.
3651         (save_line_notes): Simplify.
3652         (rm_redundant_line_notes): Kill.
3653
3654 2006-11-11  Richard Guenther  <rguenther@suse.de>
3655
3656         * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
3657         Remove unused tree codes.
3658         * tree-vrp.c (extract_range_from_unary_expr): Remove handling
3659         of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
3660         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3661         * tree.c (stabilize_reference): Likewise.
3662         * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
3663         fold_unary): Likewise.
3664         * tree-gimple.c (is_gimple_cast): Likewise.
3665         * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
3666         * expr.c (expand_expr_real_1): Likewise.
3667         * tree-eh.c (tree_could_trap_p): Likewise.
3668         * gimplify.c (gimplify_expr): Likewise.
3669         * tree-inline.c (estimate_num_insns_1): Likewise.
3670         * tree-cfg.c (verify_expr): Likewise.
3671
3672 2006-11-11  Zdenek Dvorak <dvorakz@suse.cz>
3673
3674         * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
3675         * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
3676         (tree_ssa_prefetch_arrays): Do not dump for removed loops.
3677
3678 2006-11-11  Richard Sandiford  <richard@codesourcery.com>
3679
3680         PR middle-end/27528
3681         * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
3682         constraints accept neither registers or memories.
3683
3684 2006-11-11  Jie Zhang  <jie.zhang@analog.com>
3685
3686         * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
3687         (NO_PROFILE_COUNTERS): Define as 1.
3688
3689 2006-11-10  Roger Sayle  <roger@eyesopen.com>
3690
3691         * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
3692         Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
3693
3694 2006-11-10  Peter Bergner  <bergner@vnet.ibm.com>
3695
3696         * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
3697
3698 2006-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3699
3700         * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
3701         (fold_builtin_hypot): Likewise.
3702         * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
3703
3704         * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
3705
3706 2006-11-10  Roger Sayle  <roger@eyesopen.com>
3707
3708         * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
3709         when attempting to build INTEGER_CSTs of non-integral types.
3710         * expmed.c (make_tree): Use the correct type, i.e. the inner
3711         type, when constructing the individual elements of a CONST_VECTOR.
3712
3713 2006-11-10  Jan Hubicka  <jh@suse.cz>
3714
3715         * cse.c (cse_process_notes): Copy the propagated value.
3716         * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
3717         in REG_EQUIV notes.
3718         * gcse.c (try_replace_reg): Copy the replacement.
3719         * i386.c (emit_i387_cw_initialization): Copy stored_mode.
3720         (assign_386_stack_local): Always return copied memory expression
3721         * function.c (instantiate_virtual_regs_in_insn): Copy the operand
3722         duplicates.
3723
3724 2006-11-10  Jan Hubicka  <jh@suse.cz>
3725
3726         * final.c (final): Walk from first instruction.
3727         * cfglayout.c (insn_locators_initialize): Remove line number notes.
3728
3729 2006-11-10  Uros Bizjak  <ubizjak@gmail.com>
3730
3731         PR target/29777
3732         * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn
3733         to define_expand.
3734         (umulv8hi3_highpart): Ditto.
3735         (vec_widen_smult_hi_v8hi): New expander.
3736         (vec_widen_smult_lo_v8hi): Ditto.
3737
3738 2006-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3739
3740         PR middle-end/29335
3741         * builtins.c (do_mpfr_arg3): New.
3742         (fold_builtin_1): Handle builtins fma, fmin and fmax.
3743
3744 2006-11-09  Eric Christopher  <echristo@apple.com>
3745
3746         PR bootstrap/26892
3747         PR bootstrap/27814
3748         PR other/28994
3749         * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
3750         * config.gcc (powerpc64-*-darwin*): New target.
3751         * config.host: Ditto.
3752         * config/rs6000/darwin64.h: New file.
3753         * config/rs6000/x-darwin64: Ditto.
3754         * config/rs6000/host-ppc64-darwin.c: Ditto.
3755
3756 2006-11-09  Steve Ellcey  <sje@cup.hp.com>
3757
3758         * config/ia64/ia64.c (ia64_hpux_init_libfuncs):  Use HP-UX millicode
3759         routines for integer division.
3760
3761 2006-11-09  Daniel Jacobowitz  <dan@codesourcery.com>
3762
3763         * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete.
3764
3765 2006-11-09  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
3766
3767         PR middle-end/29726
3768         * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
3769
3770 2006-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
3771
3772         * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
3773         simplify_subreg with BLKmode outer mode.
3774
3775 2006-11-08  Brooks Moses  <brooks.moses@codesourcery.com>
3776
3777         * doc/invoke.texi: Minor formatting fixes in option lists.
3778
3779 2006-11-08  Zdenek Dvorak <dvorakz@suse.cz>
3780
3781         PR tree-optimization/29738
3782         * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments.
3783         (ccp_lattice_t): Remove UNKNOWN_VAL.
3784         (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node):
3785         Do not handle UNKNOWN_VAL.
3786         (get_default_value): Set initial value of virtual operands to
3787         VARYING.
3788         (get_value): Always use get_default_value on uninitialized
3789         operands.
3790         (set_value_varying, surely_varying_stmt_p): New functions.
3791         (set_lattice_value): Do not pass argument to get_value.
3792         Do not handle UNKNOWN_VAL.
3793         (likely_value): Follow the semantics described in the comment.
3794         (ccp_initialize): Use surely_varying_stmt_p.  Do not mark
3795         phi nodes DONT_SIMULATE_AGAIN.
3796         (ccp_fold): Do not pass argument to get_value.
3797         (fold_const_aggregate_ref, visit_assignment): Ditto.  Do not
3798         handle UNKNOWN_VAL.
3799
3800 2006-11-08  Andrew Pinski  <Andrew_Pinski@playstation.sony.com>
3801
3802         * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
3803         HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer.
3804
3805 2006-11-08  Roger Sayle  <roger@eyesopen.com>
3806
3807         * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a
3808         test for inclusion rather than as a test for exclusion.
3809         * tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
3810         the condition after calling fold_binary.
3811         * fold-const.c (fold_inf_compare): Remove in_gimple_form check.
3812         (fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
3813         * builtins.c (fold_builtin_isascii): Likewise.
3814         (fold_builtin_isdigit): Likewise.
3815
3816 2006-11-08  Carlos O'Donell  <carlos@codesourcery.com>
3817
3818         * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE.
3819         * configure: Regenerate.
3820
3821 2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
3822
3823         * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take
3824         enum argument instead of bool.
3825         (vect_analyze_operations): Call vectorizable_type_promotion.
3826         * tree-vectorizer.h (type_promotion_vec_info_type): New enum
3827         stmt_vec_info_type value.
3828         (supportable_widening_operation, vectorizable_type_promotion): New
3829         function declarations.
3830         * tree-vect-transform.c (vect_gen_widened_results_half): New function.
3831         (vectorizable_type_promotion): New function.
3832         (vect_transform_stmt): Call vectorizable_type_promotion.
3833         * tree-vect-analyze.c (supportable_widening_operation): New function.
3834         * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
3835         Add implementation.
3836         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
3837         mode.
3838
3839         * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
3840         (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes.
3841         * tree-inline.c (estimate_num_insns_1): Add cases for above new
3842         tree-codes.
3843         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3844         * expr.c (expand_expr_real_1): Likewise.
3845         * optabs.c (optab_for_tree_code): Likewise.
3846         (init_optabs): Initialize new optabs.
3847         * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab,
3848         vec_widen_smult_hi_optab, vec_widen_smult_lo_optab,
3849         vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab,
3850         vec_unpacku_lo_optab): Initialize new optabs.
3851         * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo):
3852         (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi,
3853         OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New
3854         optab indices.
3855         (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab):
3856         (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab):
3857         (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab):
3858         (vec_unpacku_lo_optab): New optabs.
3859         * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi):
3860         (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo):
3861         (vec_widen_smult_hi, vec_widen_smult_lo): New.
3862         * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR):
3863         (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR):
3864         (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New.
3865
3866         * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
3867         (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
3868         (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New.
3869         (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New.
3870         (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to
3871         implement the unsigned unpacking patterns.
3872         (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi):
3873         (vec_unpacks_lo_v8hi): New signed unpacking patterns.
3874         (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi):
3875         (vec_unpacku_lo_v8hi): New unsigned unpacking patterns.
3876         (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi):
3877         (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi):
3878         (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi):
3879         (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening
3880         multiplication patterns.
3881
3882         * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New.
3883         * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
3884         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
3885         * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New.
3886         (rs6000_builtin_mul_widen_odd): New.
3887         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
3888         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
3889         * tree-vectorizer.h (enum vect_relevant): New enum type.
3890         (_stmt_vec_info): Field relevant chaned from bool to enum
3891         vect_relevant.
3892         (STMT_VINFO_RELEVANT_P): Updated.
3893         (STMT_VINFO_RELEVANT): New.
3894         * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT
3895         instead of STMT_VINFO_RELEVANT_P.
3896         * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p):
3897         Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT,
3898         and boolean variable with enum vect_relevant.
3899         (vect_mark_stmts_to_be_vectorized): Likewise + update documentation.
3900         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
3901         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
3902
3903         2006-11-08  Richard Henderson  <rth@redhat.com>
3904
3905         * config/i386/sse.md (vec_widen_umult_hi_v8hi,
3906         vec_widen_umult_lo_v8hi): New.
3907         (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si,
3908         vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New.
3909
3910         * config/i386/i386.c (ix86_expand_sse_unpack): New.
3911         * config/i386/i386-protos.h (ix86_expand_sse_unpack): New.
3912         * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi,
3913         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi,
3914         vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi,
3915         vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si,
3916         vec_unpacks_lo_v4si): New.
3917
3918         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
3919
3920         * tree-vect-transform.c (vectorizable_type_demotion): New function.
3921         (vect_transform_stmt): Add case for type_demotion_vec_info_type.
3922         (vect_analyze_operations): Call vectorizable_type_demotion.
3923         * tree-vectorizer.h (type_demotion_vec_info_type): New enum
3924         stmt_vec_info_type value.
3925         (vectorizable_type_demotion): New function declaration.
3926         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
3927         mode.
3928
3929         * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes.
3930         * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and
3931         VEC_PACK_SAT_EXPR.
3932         * tree-iniline.c (estimate_num_insns_1): Likewise.
3933         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3934         * optabs.c (optab_for_tree_code): Likewise.
3935
3936         * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode
3937         compared against the predicate of the result is not 'mode' (the input
3938         to the function) but a mode with half the size of 'mode'.
3939         (init_optab): Initialize new optabs.
3940         * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat):
3941         New optab indices.
3942         (vec_pack_mod_optab, vec_pack_ssat_optab,  vec_pack_usat_optab): New
3943         optabs.
3944         * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab):
3945         (vec_pack_usat_optab): Initialize new optabs.
3946         * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New.
3947         * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New.
3948
3949         2006-11-08  Richard Henderson  <rth@redehat.com>
3950
3951         * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si):
3952         (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi):
3953         (vec_interleave_highv8hi, vec_interleave_lowv8hi):
3954         (vec_interleave_highv4si, vec_interleave_lowv4si):
3955         (vec_interleave_highv2di, vec_interleave_lowv2di): New.
3956
3957         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
3958
3959         * tree-vect-transform.c (vectorizable_reduction): Support multiple
3960         datatypes.
3961         (vect_transform_stmt): Removed redundant code.
3962
3963         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
3964
3965         * tree-vect-transform.c (vectorizable_operation): Support multiple
3966         datatypes.
3967
3968         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
3969