OSDN Git Service

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