OSDN Git Service

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