OSDN Git Service

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