OSDN Git Service

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