OSDN Git Service

* c.opt (Wimport): Mark as undocumented.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-21  Tom Tromey  <tromey@redhat.com>
2
3         * c.opt (Wimport): Mark as undocumented.
4         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
5         -Wno-import.
6         (Warning Options): Likewise.
7         * doc/cppopts.texi: Don't mention -Wimport.
8
9 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
10
11         PR tree-optimization/36287
12         PR tree-optimization/36286
13         * lambda-code.c (build_access_matrix): Do not use the loop->num
14         for computing the number of induction variables: use the loop depth
15         instead.
16
17 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
18
19         PR/36280
20         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
21         option -f(no-)leading-underscore.
22
23 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
24
25         * config/i386/i386.c (ix86_expand_vector_init_general): Use
26         GET_MODE_NUNITS (mode).
27
28 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
29
30         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
31         (-mmulhw): Add 464 to description.
32         (-mdlmzb): Likewise.
33         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
34         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
35         464fp entries.
36         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
37         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
38         * config/rs6000/rs6000.md: Update comments for 464.
39
40 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
41
42         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
43
44 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
45
46         * config/i386/sse.md (vec_extractv4sf): Removed.
47         (vec_extractv2df): Likewise.
48         (vec_extractv2di): Likewise.
49         (vec_extractv4si): Likewise.
50         (vec_extractv8hi): Likewise.
51         (vec_extractv16qi): Likewise.
52         (vec_extract<mode>): New.
53
54 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
55
56         * config/i386/sse.md (vec_setv4sf): Removed.
57         (vec_setv2df): Likewise.
58         (vec_setv2di): Likewise.
59         (vec_setv4si): Likewise.
60         (vec_setv8hi): Likewise.
61         (vec_setv16qi): Likewise.
62         (vec_set<mode>): New.
63
64 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
65
66         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
67         goto for vec_concat and vec_interleave.
68
69 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
70
71         * config/i386/sse.md (vec_initv4sf): Removed.
72         (vec_initv2df): Likewise.
73         (vec_initv2di): Likewise.
74         (vec_initv4si): Likewise.
75         (vec_initv8hi): Likewise.
76         (vec_initv16qi): Likewise.
77         (vec_init<mode>): New.
78
79 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
80
81         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
82
83 2008-05-21  Tom Tromey  <tromey@redhat.com>
84
85         * ggc-zone.c (lookup_page_table_if_allocated): New function.
86         (zone_find_object_offset): Likewise.
87         (gt_ggc_m_S): Likewise.
88         (highest_bit): Likewise.
89         * ggc-page.c (gt_ggc_m_S): New function.
90         * stringpool.c (string_stack): Remove.
91         (init_stringpool): Update.
92         (ggc_alloc_string): Use ggc_alloc.
93         (maybe_delete_ident): New function.
94         (ggc_purge_stringpool): Likewise.
95         (gt_ggc_m_S): Remove.
96         * ggc-common.c (ggc_protect_identifiers): New global.
97         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
98         ggc_protect_identifiers.
99         * ggc.h (ggc_protect_identifiers): Declare.
100         (gt_ggc_m_S): Update.
101         (ggc_purge_stringpool): Declare.
102         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
103         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
104         special case.
105         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
106
107 2008-05-21  David S. Miller  <davem@davemloft.net>
108
109         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
110         tmake_file.
111
112 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
113
114         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
115         once finished.
116
117 2008-05-20  David Daney  <ddaney@avtrex.com>
118
119         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
120         UNSPEC_SYNC_OLD_OP_12,
121         UNSPEC_SYNC_EXCHANGE_12): New define_constants.
122         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER,
123         UNSPEC_SET_GOT_VERSION,
124         UNSPEC_UPDATE_GOT_VERSION): Renumber.
125         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
126         (atomic_hiqi_op): New define_code_iterator.
127         (sync_compare_and_swap<mode>): Call
128         mips_expand_atomic_qihi instead of
129         mips_expand_compare_and_swap_12.
130         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
131         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to
132         MIPS_COMPARE_AND_SWAP_12.
133         (sync_<optab><mode>, sync_old_<optab><mode>,
134         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
135         sync_new_nand<mode>): New define_expands for HI and QI mode
136         operands.
137         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
138         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
139         (sync_lock_test_and_set<mode>): New define_expand for HI and QI
140         modes.
141         (test_and_set_12): New insn.
142         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
143         sync_new_<optab><mode>, sync_old_nand<mode>,
144         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
145         clobber to operand 0 for SI and DI mode insns.
146         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
147         mips_gen_fn_4): New typedefs.
148         (mips_gen_fn_ptrs): Define new union type.
149         (mips_expand_compare_and_swap_12): Remove declaration.
150         (mips_expand_atomic_qihi): Declare function.
151         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
152         (mips_expand_atomic_qihi): ... this.  Use new generator function
153         parameter.
154         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
155         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
156         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP,
157         MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
158         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
159         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
160         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
161         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
162         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
163         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
164         MIPS_SYNC_EXCHANGE_12_ZERO_OP,
165         MIPS_SYNC_EXCHANGE_12_NONZERO_OP): New macros.
166
167 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
168
169         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
170         the missing break.
171
172 2008-05-20  Anatoly Sokolov <aesok@post.ru>
173
174         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
175         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
176         (avr_attribute_table): Add 'OS_main' function attribute.
177         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
178         functions with 'OS_main' attribute.
179
180 2008-05-20  Richard Guenther  <rguenther@suse.de>
181
182         PR tree-optimization/35204
183         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
184         helper, split out from ...
185         (DFS): ... here.  Make the DFS walk non-recursive.
186
187 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
188             Jan Sjodin  <jan.sjodin@amd.com>
189
190         PR tree-optimization/36181
191         * tree-parloops.c (loop_has_vector_phi_nodes): New.
192         (parallelize_loops): Don't parallelize when the loop has vector
193         phi nodes.
194
195 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
196             Sebastian Pop  <sebastian.pop@amd.com>
197
198         * tree-loop-linear.c (gather_interchange_stats): Look in the access matrix,
199         and never look at the tree representation of the memory accesses.
200         (linear_transform_loops): Computes parameters and access matrices.
201         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false when fails.
202         (access_matrix_get_index_for_parameter): New.
203         * tree-data-ref.h (struct access_matrix): New.
204         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
205         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
206         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
207         am_vector_index_for_loop): New.
208         (struct data_reference): Add field access_matrix.
209         (DR_ACCESS_MATRIX): New.
210         (compute_data_dependences_for_loop): Update declaration.
211         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
212         * lambda.h (lambda_vector_vec_p): Declared.
213         * lambda-code.c: Depend on pointer-set.h.
214         (lambda_collect_parameters_from_af, lambda_collect_parameters,
215         av_for_af_base, av_for_af, build_access_matrix,
216         lambda_compute_access_matrices): New.
217         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
218
219 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
220
221         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
222         $SOURCEDIR/include.
223
224 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
225             Sebastian Pop  <sebastian.pop@amd.com>
226
227         PR tree-optimization/36206
228         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
229         FOLD_CONVERSIONS.
230         (instantiate_scev_1): Rename flags to fold_conversions.
231         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
232         outeside instantiation_loop.
233         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
234         (evolution_function_is_affine_or_constant_p): Removed.
235         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
236         instantiate_scev.
237         (analyze_siv_subscript): Pass in the loop nest number.
238         Call evolution_function_is_affine_in_loop instead of 
239         evolution_function_is_affine_p.
240         (analyze_overlapping_iterations): Pass in the loop nest number.
241
242 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
243             Sebastian Pop  <sebastian.pop@amd.com>
244
245         PR tree-optimization/36206
246         * tree-chrec.h (chrec_fold_op): New.
247         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR, and
248         other trees.
249
250 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
251
252         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
253         (DIRS_EQ): New.
254         (remove_duplicates): Do not set inode on non-inode systems.  Use
255         DIRS_EQ.
256
257 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
258
259         * config.gcc (tm_file): Update comments about relative pathnames.
260
261 2008-05-20  Richard Guenther  <rguenther@suse.de>
262
263         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics
264         infrastructure.
265         * tree-ssa-sccvn.c (process_scc): Likewise.
266         * tree-ssa-sink.c (execute_sink_code): Likewise.
267         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
268         * tree-vrp.c (process_assert_insertions): Likewise.
269         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
270         (perform_tree_ssa_dce): Likewise.
271         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
272         (dump_dominator_optimization_stats): Likewise.
273         * tree-vectorizer.c (vectorize_loops): Likewise.
274
275 2008-05-20  Richard Guenther  <rguenther@suse.de>
276
277         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
278
279 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
280
281         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
282         (ix86_i386elf_return_in_memory): Likewise.
283         (ix86_i386interix_return_in_memory): Likewise.
284         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
285         (SUBTARGET_RETURN_IN_MEMORY): New.
286         * config/i386/i386elf.h: Likewise.
287         * config/i386/ptx4-i.h: Likewise.
288         * config/i386/sol2-10.h: Likewise.
289         * config/i386/sysv4.h: Likewise.
290         * config/i386/vx-common.h: Likewise.
291         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
292         * config/i386/i386.c (ix86_return_in_memory): Made static and
293         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
294         (ix86_i386elf_return_in_memory): Removed.
295         (ix86_i386interix_return_in_memory): Removed.
296         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
297         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
298
299 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
300
301         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
302
303 2008-05-19  Xinliang David Li  <davidxl@google.com>
304
305         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
306         * opts.c: Ditto.
307         * common.opt: Ditto.
308         * doc/invoke.texi: Ditto.
309
310 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
311
312         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
313         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
314
315 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
316
317         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
318         sizes of operand array from 8/4 to 4/2.
319         (ix86_expand_vector_init_general): Change size of operand array
320         from 32 to 16.  Remove op0, op1 and half_mode.
321
322 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
323
324         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
325         (ix86_expand_vector_init_interleave): Likewise.
326         (ix86_expand_vector_init_general): Use them.  Assert word_mode
327         == SImode when n_words == 4.
328
329 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
330
331         * config/i386/i386.c (ix86_secondary_reload): New static function.
332         (TARGET_SECONDARY_RELOAD): New define.
333         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
334         * config/i386/i386.md (reload_outqi): Remove.
335
336 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
337
338         PR middle-end/35509
339         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
340         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
341         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
342         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
343         (fold_builtin_1): Likewise.
344         * builtins.def (BUILT_IN_ISINF_SIGN): New.
345         c-common.c (check_builtin_function_arguments): Handle
346         BUILT_IN_ISINF_SIGN.
347         * doc/extend.texi: Document __builtin_isinf_sign.
348         * fold-const.c (operand_equal_p): Handle COND_EXPR.
349
350 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
351
352         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
353         EH cleanup at the end of the pass, search for those that have been
354         turned into forwarder blocks and do the cleanup on their successor.
355
356 2008-05-18  Richard Guenther  <rguenther@suse.de>
357
358         * tree-cfg.c (verify_gimple_expr): Allow conversions from
359         pointers to sizetype and vice versa.
360
361 2008-05-18 Xinliang David Li   <davidxl@google.com>
362
363         * gcc/tree-ssa-dce.c: Coding style fix.
364         (check_pow): Documentation comment. 
365         (check_log): Documenation comment. Coding style fix.
366         (is_unnecessary_except_errno_call): Ditto.
367         (gen_conditions_for_pow): Ditto.
368         (gen_conditions_for_log): Ditto.
369         (gen_shrink_wrap_conditions): Ditto.
370         (shrink_wrap_one_built_in_calls): Ditto.
371         * gcc/doc/invoke.texi: Better documentation string.
372         * ChangeLog: Fix wrong change log entries from 
373         May 17 checkin on function call DCE.
374
375 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
376
377         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
378
379 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
380
381         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
382         * df-problems.c (simulation routines): Fixed block comment to
383         properly say how to add forwards scanning functions.
384         
385 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
386
387         * tree-inline.c (setup_one_parameter): Remove dead code.
388
389 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
390
391         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
392         a BIT_AND_EXPR only for an INTEGER_TYPE.
393
394 2008-05-17 Xinliang David Li   <davidxl@google.com>
395
396         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
397         (check_pow, check_log, is_unnecessary_except_errno_call): New 
398         functions to check for eliminating math functions that are pure 
399         except for setting errno.
400         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
401         general condition expressions for shrink-wrapping pow/log calls.
402         (gen_shrink_wrap_conditions): Ditto.
403         (shrink_wrap_one_built_in_call): Ditto.
404         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
405         (mark_operand_necessary): If debugging, output if OP is necessary.
406         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
407         unnecessary.
408         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
409         opt level >= 2.
410         * gcc/common.opt: New user flag -ftree-builtin-dce.
411         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
412
413 2008-05-16  David S. Miller  <davem@davemloft.net>
414
415         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
416         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
417
418 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
419
420         PR target/36246
421         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
422
423 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
424
425         * ifcvt.c (dead_or_predicable): Rename
426         df_simulate_one_insn_backwards to df_simulate_one_insn.
427         * recog.c (peephole2_optimize): Ditto.
428         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
429         Ditto.
430         * df.h: Rename df_simulate_one_insn_backwards to
431         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
432         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
433         scanning of defs and uses.
434         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
435         (df_simulate_one_insn_forwards): Removed.
436
437 2008-05-16  Doug Kwan  <dougkwan@google.com>
438
439         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
440         QNaN & SNaN.
441         (real_from_string): Handle NaNs and Inf as approriate.
442
443 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
444
445         * doc/gty.texi (Source Files Containing Type Information): Note
446         that headers should appear first in the gtfiles list.
447
448 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
449
450         * tree.def (COND_EXEC): Properly documented this code.
451
452 2008-05-16  Diego Novillo  <dnovillo@google.com>
453
454         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
455         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
456         the new field.
457
458 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
459
460         * tree-ssa-dse (max_stmt_uid): Removed.
461         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
462         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
463         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
464         * function.h (cfun.last_stmt_uid): New field.
465         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
466         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
467         New functions.
468         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
469         (create_stmt_ann): Initialize the ann->uid field.
470         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
471         with new calls.
472         * tree-flow.h (renumber_gimple_stmt_uids): New function.
473
474 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
475
476         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
477         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
478         (init_empty_tree_cfg): Call it.
479
480 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
481
482         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
483         Update all users.
484
485 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
486
487         * doc/invoke.text (-fdump-tree-*-verbose): New option.
488         * tree-dump.c (dump_options): New verbose option.
489         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
490         Add verbose dump.
491         * tree-pass.h (TDF_VERBOSE): New dump flag.
492         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
493         (tree-flow.h): Added include.
494         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
495
496 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
497
498         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
499
500         From Jie Zhang  <jie.zhang@analog.com>
501         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
502         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
503         mcpu=bf561-none and mcpu=bf561-0.2.
504         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
505         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
506         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
507         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
508         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
509         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
510         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
511         option.
512         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
513         (cputype_selected): Remove.
514         (bfin_handle_option): Don't use cputype_selected.
515         (override_options): When no mcpu option, enable all workarounds.
516         Don't use bfin_workarounds.
517         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
518         processor type.
519         (DEFAULT_CPU_TYPE): Don't define.
520
521 2008-05-16  Richard Guenther  <rguenther@suse.de>
522
523         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
524         on deletion of the last stmt.
525
526 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
527
528         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
529         V8HImode for SSE2 and V16QImode for SSE4.1.
530
531 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
532
533         * cgraph.h (compute_inline_parameters): Made public.
534         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
535         variable_generate_summary, function_write_summary,
536         variable_write_summary, variable_read_summary.  Added generate_summary,
537         write_summary, read_summary.
538         * cgraphunit.c (cgraph_process_new_functions): Changed call from
539         pass_ipa_inline.function_generate_summary, to
540         compute_inline_parameters. 
541         * ipa-inline.c (compute_inline_parameters): Made public and added
542         node parameter.
543         (compute_inline_parameters_for_current): New function.
544         (pass_inline_param): Now calls compute_inline_parameters_for_current.
545         (inline_generate_summary): Removed parameter and made to loop over
546         all cgraph nodes.
547         (pass_ipa_inline): Updated for new IPA_PASS structure.
548         * passes.c (execute_ipa_summary_passes): Now is called once per
549         pass rather than once per node*pass.
550         
551 2008-05-15  Anatoly Sokolov <aesok@post.ru>
552
553         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
554         avr_have_mul_p, avr_asm_only_p): Remove variables.
555         (avr_override_options): Remove initialization of removed variables.
556         (avr_file_start):  Convert removed variables to fields of 
557         'struct base_arch_s *avr_current_arch'. 
558         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
559         (AVR_HAVE_MUL): (Ditto.).
560         (AVR_HAVE_MOVW): (Ditto.).
561         (AVR_HAVE_LPMX): (Ditto.). 
562         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
563         avr_asm_only_p): Remove declaration.
564
565 2008-05-15  Diego Novillo  <dnovillo@google.com>
566
567         * config/arm/arm.c (arm_return_in_memory): Fix return type.
568         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
569
570 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
571
572         PR middle-end/36194
573         * combine.c (check_conversion): Rename back to check_promoted_subreg.
574         Don't call record_truncated_value from here.
575         (record_truncated_value): Turn it into a for_each_rtx callback.
576         (record_truncated_values): New function.
577         (combine_instructions): Call note_uses with record_truncated_values.
578         Change name of check_conversion to check_promoted_subreg. 
579
580 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
581
582         * doc/sourcebuild.texi: Document support for torture tests.
583
584 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
585
586         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
587         to alternative 4 of operand 2.
588
589 2008-05-15  Richard Guenther  <rguenther@suse.de>
590
591         * tree-pass.h (current_pass): Declare.
592         (get_pass_for_id): Likewise.
593         * passes.c (passes_by_id, passes_by_id_size): New globals.
594         (set_pass_for_id): New function.
595         (get_pass_for_id): Likewise.
596         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
597         (execute_function_todo): Flush per function statistics.
598         * toplev.c (compile_file): Init statistics.
599         (general_init): Do early statistics initialization.
600         (finalize): Finish statistics.
601         * statistics.h (statistics_early_init): Declare.
602         (statistics_init): Likewise.
603         (statistics_fini): Likewise.
604         (statistics_fini_pass): Likewise.
605         (statistics_counter_event): Likewise.
606         (statistics_histogram_event): Likewise.
607         * statistics.c: New file.
608         * Makefile.in (OBJS-common): Add statistics.o.
609         (statistics.o): Add dependencies.
610         * doc/invoke.texi (-fdump-statistics): Document.
611
612         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
613         (insert): Likewise.
614         (execute_pre): Use statistics_counter_event.
615         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
616         (substitute_and_fold): Increment it.  Use statistics_counter_event.
617
618 2008-05-15  Diego Novillo  <dnovillo@google.com>
619
620         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
621
622         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
623         * tree-ssa-alias.c (new_type_alias): Remove references to
624         sub-variables from comment.
625         * tree-ssa-operands.c (swap_tree_operands): Likewise.
626
627 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
628
629         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
630         attribute to 1 only for insertps alternative.
631
632 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
633
634         * config/bfin/bfin.md (loadbytes): New pattern.
635         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
636         (bfin_init_builtins): Initialize it.
637         (bdesc_1arg): Add it.
638
639 2008-05-15  Sa Liu  <saliu@de.ibm.com>
640
641         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
642         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
643         * testsuite/lib/target-supports.exp: Add
644         check_effective_target_fortran_integer_16.
645
646 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
647
648         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
649         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
650         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
651         (TARGET_RETURN_IN_MEMORY): Define.
652
653 2008-05-15  Richard Guenther  <rguenther@suse.de>
654
655         PR middle-end/36244
656         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
657         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
658         represent unmodifiable vars.
659
660 2008-05-15  Richard Guenther  <rguenther@suse.de>
661
662         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
663         INDIRECT_REF and TARGET_MEM_REF.
664         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
665         TARGET_MEM_REF.
666
667 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
668             H.J. Lu  <hongjiu.lu@intel.com>
669
670         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
671         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
672         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
673         insn alternatives.  Add missing alternatives.
674         (*vec_concatv2di_rex64_sse4_1): Likewise.
675         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
676         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
677         Require TARGET_SSE.
678
679 2008-05-15  Richard Guenther  <rguenther@suse.de>
680
681         PR tree-optimization/36009
682         PR tree-optimization/36204
683         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
684         (determine_invariantness_stmt): Record the loop a store is
685         always executed in.
686         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
687         dependency.
688
689 2008-05-15  Richard Guenther  <rguenther@suse.de>
690
691         PR tree-optimization/34330
692         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
693         through the pointer will alias the SMT.
694
695 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
696
697         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
698
699 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
700
701         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
702
703 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
704             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
705
706         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
707         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
708         (vashl_optab): New optab for vector/vector shifts.
709         (vashr_optab): Ditto.
710         (vlshr_optab): Ditto.
711         (vrotl_optab): Ditto.
712         (vrotr_optab): Ditto.
713         (optab_subtype): New enum for optab_for_tree_code call.
714         (optab_for_tree_code): Add enum optab_subtype argument.
715
716         * optabs.c (optab_for_tree_code): Take an additional argument to
717         distinguish between a vector shift by a scalar and vector shift by
718         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
719         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
720         vector shift by a vector.
721         (expand_widen_pattern_expr): Pass additional argument to
722         optab_for_tree_code.
723
724         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
725         vrotl_optab, vrotr_optab.
726
727         * expr.c (expand_expr_real_1): Update calls to
728         optab_for_tree_code to distinguish between vector shifted by a
729         scalar and vector shifted by a vector.
730         * tree-vectorizer.c (supportable_widening_operation): Ditto.
731         (supportable_narrowing_operation): Ditto.
732         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
733         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
734         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
735         (vect_create_epilog_for_reduction): Ditto.
736         (vectorizable_reduction): Ditto.
737         (vectorizable_operation): Ditto.
738         (vect_strided_store_supported): Ditto.
739         (vect_strided_load_supported): Ditto.
740         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
741         * expmed.c (expand_shift): Ditto.
742
743         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
744         scalar type.
745         (ashr@var{m}3): Ditto.
746         (vashl@var{m}3): Document new vector/vector shift standard name.
747         (vashr@var{m}3): Ditto.
748         (vlshr@var{m}3): Ditto.
749         (vrotl@var{m}3): Ditto.
750         (vrotr@var{m}3): Ditto.
751
752         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
753         (PPERM_INVERT): Ditto.
754         (PPERM_REVERSE): Ditto.
755         (PPERM_REV_INV): Ditto.
756         (PPERM_ZERO): Ditto.
757         (PPERM_ONES): Ditto.
758         (PPERM_SIGN): Ditto.
759         (PPERM_INV_SIGN): Ditto.
760         (PPERM_SRC1): Ditto.
761         (PPERM_SRC2): Ditto.
762
763         * config/i386/sse.md (mulv2di3): Add SSE5 support.
764         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
765         allows a memory operand to be the value being added, and split it
766         to improve vectorization.
767         (sse5_pmacsdqh_mem): Ditto.
768         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
769         (sse5_mulv2div2di3_high): Ditto.
770         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
771         (vec_pack_trunc_v4si): Ditto.
772         (vec_pack_trunc_v2di): Ditto.
773         (sse5_pcmov_<mode>): Remove code that tried to use use
774         andps/andnps instead of pcmov.
775         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
776         pmacsdqh instructions.
777         (vec_widen_smult_lo_v4si): Ditto.
778
779         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
780         (PPERM_INVERT): Ditto.
781         (PPERM_REVERSE): Ditto.
782         (PPERM_REV_INV): Ditto.
783         (PPERM_ZERO): Ditto.
784         (PPERM_ONES): Ditto.
785         (PPERM_SIGN): Ditto.
786         (PPERM_INV_SIGN): Ditto.
787         (PPERM_SRC1): Ditto.
788         (PPERM_SRC2): Ditto.
789         (ix86_expand_sse_movcc): Move the SSE5 test after the if
790         true/false tests.
791         (ix86_expand_int_vcond): If SSE5 generate all possible integer
792         comparisons.
793         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
794         says ignore whether the last reference is a memory operand.
795
796 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
797             Paolo Bonzini <bonzini at gnu dot org>
798
799         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
800         shift patterns.
801
802         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
803         (vlshr<mode>3): Rename from vlshr<mode>3.
804         (vashr<mode>3): Rename from vashr<mode>3.
805         (mulv4sf3): Change the names of vector shift patterns.
806         (mulv4si3): Ditto.
807         (negv4sf2): Ditt.
808
809         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
810         shift insns.
811
812         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
813         (SI_SHLHI): Ditto.
814         (SI_SHL): Ditto.
815         (SI_SHLI): Ditto.
816         (SI_ROTH): Ditto.
817         (SI_ROTHI): Ditto.
818         (SI_ROT): Ditto.
819         (SI_ROTI): Ditto.
820         (SPU_RL_0): Ditto.
821         (SPU_RL_1): Ditto.
822         (SPU_RL_2): Ditto.
823         (SPU_RL_3): Ditto.
824         (SPU_RL_4): Ditto.
825         (SPU_RL_5): Ditto.
826         (SPU_RL_6): Ditto.
827         (SPU_RL_7): Ditto.
828         (SPU_SL_0): Ditto.
829         (SPU_SL_1): Ditto.
830         (SPU_SL_2): Ditto.
831         (SPU_SL_3): Ditto.
832         (SPU_SL_4): Ditto.
833         (SPU_SL_5): Ditto.
834         (SPU_SL_6): Ditto.
835         (SPU_SL_7): Ditto.
836
837         * config/spu/spu.md (v): New iterator macro to add v for vector types.
838         (floatunssidf2_internal): Change vector/vector shift names.
839         (floatunsdidf2_internal): Ditto.
840         (mulv8hi3): Ditto.
841         (ashrdi3): Ditto.
842         (ashrti3): Ditto.
843         (cgt_df): Ditto.
844         (cgt_v2df): Ditto.
845         (dftsv): Ditto.
846         (vashl<mode>3): Rename from ashl<mode>3.
847         (vashr<mode>3): Rename from ashr<mode>3.
848         (vlshr<mode>3): Rename from lshr<mode>3.
849         (vrotl<mode>3): Rename from rotl<mode>3.
850
851 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
852
853         PR target/36224
854         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
855         multiply gives the wrong value when doing widening multiplies.
856         (vec_widen_smult_lo_v4si): Ditto.
857
858 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
859
860         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
861         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
862         emit_library_call_value. 
863         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
864         * tree.h (ECF_LIBCALL_BLOCK): Removed.
865         * calls.c (initialize_argument_information, precompute_arguments, 
866         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
867         (precompute_arguments): Removed flags parameter.
868         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
869         
870 2008-05-14  Richard Guenther  <rguenther@suse.de>
871
872         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
873         Make sure to register the store if the use is a PHI_NODE.
874
875 2008-05-14  Olivier Hainque  <hainque@adacore.com>
876
877         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
878         memory if the component is to be referenced in BLKmode according
879         to get_inner_reference.
880
881 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
882
883         * calls.c (emit_library_call_value_1): Restore code clearing
884         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
885
886 2008-05-14  Olivier Hainque  <hainque@adacore.com>
887             Nicolas Roche  <roche@adacore.com>
888
889         * configure.ac: Add support for a "gcc_subdir" variable in
890         config-lang.in, to denote a subdirectory where the language/GCC
891         integration files are to be found.
892         * configure: Regenerate.
893
894 2008-05-14  Ira Rosen  <irar@il.ibm.com>
895
896         PR tree-optimization/36098
897         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
898         value for the first load in the group in case of a gap.
899         (vect_build_slp_tree): Check that there are no gaps in loads.
900
901 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
902
903         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
904         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
905         expand_copysign_bit, ): Change call to emit_no_conflict_block to
906         emit_insn and remove unneeded code to construct extra args.
907         (emit_no_conflict_block): Removed.
908         * optabls.h: (emit_no_conflict_block): Removed.
909         * cse.c (cse_extended_basic_block): Remove search for
910         REG_NO_CONFLICT note.
911         * global.c: Removed incorrect comment added in revision 117.
912         * expr.c (convert_move): Change call to emit_no_conflict_block to
913         emit_insn.
914         * recog.c: Change comments so that they do not mention
915         REG_NO_CONFLICT.
916         * local_alloc.c (combine_regs): Removed last parameter.
917         (no_conflict_p): Removed.
918         (block_alloc): Removed note, no_conflict_combined_regno and set
919         local vars. Removed all code to process REG_NO_CONFLICT blocks.
920         (combine_regs): Removed already_dead and code to look for
921         REG_NO_CONFLICT notes.
922         * lower_subreg (remove_retval_note): Removed code to look for
923         REG_NO_CONFLICT block.
924         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
925         (resolve_clobber): Remove code to process libcalls that have
926         REG_NO_CONFLICT notes.
927         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
928         case.
929         * combine.c (can_combine_p, distribute_notes):  Removed
930         REG_NO_CONFLICT case.
931         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
932         to emit_insns.
933         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
934         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
935         Ditto.
936         * reg-notes.def (NO_CONFLICT): Removed.
937
938 2008-05-14  David S. Miller  <davem@davemloft.net>
939
940         * config/sparc/sparc.c (sparc_profile_hook): If
941         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
942         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
943         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
944
945 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
946
947         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
948
949 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
950
951         PR target/36222
952         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
953         and op1 expansion before vector concat to have less live pseudos.
954
955 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
956
957         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
958         ix86_expand_vector_set if supported.
959
960 2008-05-13  Diego Novillo  <dnovillo@google.com>
961             Kenneth Zadeck  <zadeck@naturalbridge.com>
962
963         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
964
965         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
966         phinodes_print_statistics, init_ssanames, fini_ssanames,
967         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
968         release_ssa_name, release_defs, replace_ssa_name_symbol,
969         ssanames_print_statistics): Move ...
970         * tree-flow.h: ... here.
971         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
972         Use FN instead of cfun.
973         (make_ssa_name_fn): Rename from make_ssa_name.
974         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
975         * tree-flow-inline.h (make_ssa_name): Move from
976         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
977         * omp-low.c (expand_omp_parallel):
978         * tree-flow-inline.h (redirect_edge_var_map_result):
979         * tree-ssa.c (init_tree_ssa): Add argument FN.
980         Use it instead of cfun.  Update all users.
981
982 2008-05-13  Tom Tromey  <tromey@redhat.com>
983
984         PR preprocessor/22168:
985         * doc/cpp.texi (Top): Update menu.
986         (Alternatives to Wrapper #ifndef): New node.
987         (Other Directives): Document deprecation.
988         (Obsolete Features): Remove menu.
989         (Assertions): Merge node into Obsolete Features.
990         (Obsolete once-only headers): Move earlier; rename to Alternatives
991         to Wrapper #ifndef.
992         * doc/cppopts.texi: Update.
993         * c.opt (Wdeprecated): Enable for C and ObjC.
994         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
995         (C++ Dialect Options): Move -Wno-deprecated from here to...
996         (Warning Options): ... here.
997
998 2008-05-13  Richard Guenther  <rguenther@suse.de>
999
1000         PR middle-end/36227
1001         * fold-const.c (fold_sign_changed_comparison): Do not allow
1002         changes in pointer-ness.
1003
1004 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1005
1006         PR target/24713
1007         * config/sh/sh.c (sh_expand_prologue): Don't clear
1008         RTX_FRAME_RELATED_P for push insns.
1009
1010 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1011
1012         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1013
1014 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1015
1016         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1017         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1018         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1019
1020 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1021
1022         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1023         (*vec_concatv4sf_sse): This.
1024         (*sse2_concatv2si): Renamed to ...
1025         (*vec_concatv2si_sse2): This.
1026         (*sse1_concatv2si): Renamed to ...
1027         (*vec_concatv2si_sse): This.
1028         (*vec_concatv2di_rex): Renamed to ...
1029         (*vec_concatv2di_rex64): This.
1030         (*vec_concatv2si_sse4_1): New.
1031         (*vec_concatv2di_rex64_sse4_1): Likewise.
1032
1033 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1034
1035         PR rtl-optimization/36111
1036         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1037         that was created for swappable operands.
1038
1039 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1040
1041         PR ada/36001
1042         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1043         * configure.ac: Add call to ACX_PROG_GNAT.
1044
1045 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1046
1047         * optc-gen.awk: Fix comment typo.
1048
1049 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1050
1051         * pretty-print.c (pp_integer_with_precision): Use
1052         HOST_LONG_LONG_FORMAT.
1053
1054 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1055
1056         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1057                 
1058 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1059
1060         * config/i386/i386.c (bdesc_ptest): Removed.
1061         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1062         (bdesc_args): Add __builtin_ia32_ptestz128,
1063         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1064         (ix86_init_mmx_sse_builtins): Updated.
1065         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1066         (ix86_expand_builtin): Updated.
1067
1068 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
1069
1070         * tree-cfg.c (valid_fixed_convert_types_p): New function.
1071         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1072
1073 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
1074
1075         * value-prof.c (interesting_stringop_to_profile): Do not
1076         return early for BUILT_IN_MEMPCPY.
1077
1078 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1079
1080         * calls.c (expand_call): Don't use callgraph to increase
1081         preferred_stack_boundary.
1082
1083         * cgraph.h (cgraph_rtl_info): Use unsigned on
1084         preferred_incoming_stack_boundary.
1085
1086         * final.c (rest_of_clean_state): Use unsigned on
1087         preferred_stack_boundary.
1088
1089 2008-05-09  Tom Tromey  <tromey@redhat.com>
1090
1091         PR preprocessor/22231:
1092         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1093         proceeding.
1094
1095 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
1096
1097         PR tree-optimization/36129
1098         * tree-ssa-ccp.c: Include value-prof.h.
1099         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1100         built-in function was folded to a constant.
1101         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
1102
1103 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
1104             Sebastian Pop  <sebastian.pop@amd.com>
1105
1106         * tree-scalar-evolution.c: Document instantiate_scev.
1107         (instantiate_parameters_1): Renamed instantiate_scev_1.
1108         Don't use the same loop for instantiation_loop and evolution_loop.
1109         (instantiate_scev): New.
1110         (instantiate_parameters): Moved...
1111         (resolve_mixers): Update call to instantiate_scev_1 to pass the
1112         same loop twice.  Maintains the semantics for this function.
1113         * tree-scalar-evolution.h (instantiate_scev): Declare.
1114         (instantiate_parameters): ...here.  Now static inline.
1115         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1116         instead of resolve_mixers.
1117
1118 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1119
1120         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1121
1122 2008-05-09  Tomas Bily  <tbily@suse.cz>
1123
1124         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1125         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1126         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1127         * c-common.c (c_common_truthvalue_conversion): Likewise.
1128         * tree-object-size.c (compute_object_offset): Likewise.
1129         * tree-inline.c (estimate_num_insns_1): Likewise.
1130         * varasm.c (const_hash_1, compare_constant, copy_constant)
1131         (compute_reloc_for_constant, output_addressed_constants)
1132         (initializer_constant_valid_p): Likewise.
1133         * c-omp.c (check_omp_for_incr_expr): Likewise.
1134         * gimplify.c (gimplify_expr): Likewise.
1135         * c-typeck.c (c_finish_return): Likewise.
1136         * tree-vectorizer.c (supportable_widening_operation)
1137         (supportable_narrowing_operation): Likewise.
1138         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1139         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1140         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1141         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1142         (descr_info_loc): Likewise.
1143         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1144         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1145         (fold_unary): Likewise.
1146         * builtins.c (get_pointer_alignment): Likewise.
1147         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1148         (instantiate_parameters_1): Likewise.
1149         * tree.c (expr_align, stabilize_reference): Likewise.
1150         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1151         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1152         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1153         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1154         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
1155         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1156         Likewise.
1157         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1158         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1159         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1160         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1161         (forward_propagate_comparison)
1162         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1163         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1164         * emit-rtl.c (component_ref_for_mem_expr)
1165         (set_mem_attributes_minus_bitpos): Likewise.
1166         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1167         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1168         Likewise.
1169         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1170         (build_function_call, pointer_diff, build_compound_expr)
1171         (c_finish_return): Likewise.
1172         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
1173         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1174         Likewise.
1175         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1176         * expr.c (is_aligning_offset): Likewise.
1177         * tree-ssa-alias.c (is_escape_site): Likewise.
1178         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1179         (check_all_va_list_escapes): Likewise.
1180         * tree-ssa-loop-ivopts.c (determine_base_object)
1181         (determine_common_wider_type): Likewise.
1182         * dojump.c (do_jump): Likewise.
1183         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1184         * tree-gimple.c (is_gimple_cast): Likewise.
1185         * fold-const.c (decode_field_reference, )
1186         (fold_sign_changed_comparison, fold_unary, fold_comparison)
1187         (fold_binary): Likewise.
1188         * tree-ssa-alias-warnings.c (find_alias_site_helper)
1189         (already_warned_in_frontend_p): Likewise.
1190         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1191         * tree.c (really_constant_p, get_unwidened): Likewise.
1192         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1193         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1194         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
1195         Likewise.
1196         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
1197         CONVERT_EXPR_P.
1198         (CONVERT_EXPR_P): Define.
1199         (CASE_CONVERT): Define.
1200         
1201 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
1202
1203         PR middle-end/36117
1204         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
1205         (delete_unmarked_insns): When deleting a call, call
1206         delete_unreachable_blocks.
1207         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1208         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
1209
1210 2008-05-08  Richard Guenther  <rguenther@suse.de>
1211
1212         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
1213         (-ftree-salias): Likewise.
1214         (salias-max-implicit-fields): Remove param documentation.
1215         (salias-max-array-elements): Likewise.
1216         * tree-pass.h (pass_create_structure_vars): Remove.
1217         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1218         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1219         * tree-ssa-alias.c (create_structure_vars): Remove.
1220         (gate_structure_vars): Likewise.
1221         (pass_create_structure_vars): Likewise.
1222         (gate_build_alias): Likewise.
1223         (pass_build_alias): Adjust to run always and dump the function.
1224         * common.opt (ftree-salias): Hide.
1225         * passes.c (init_optimization_passes): Remove
1226         pass_create_structure_vars, adjust comment.
1227         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1228         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1229         * opts.c (decode_options): Do not set flag_tree_salias.
1230         (common_handle_option): Add OPT_ftree_salias to the backward
1231         compatibility section.
1232
1233 2008-05-08  Richard Guenther  <rguenther@suse.de>
1234
1235         * tree-flow-inline.h (var_can_have_subvars): Move ...
1236         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
1237         * tree-flow.h (var_can_have_subvars): Remove.
1238         (push_fields_onto_fieldstack): Remove.
1239         (sort_fieldstack): Likewise.
1240         (struct fieldoff): Move ...
1241         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
1242         alias_set and base_for_components fields.
1243         (sort_fieldstack): Make static.
1244         (push_fields_onto_fieldstack): Likewise.  Remove code that
1245         handles anything but RECORD_TYPEs.  Remove alias_set and
1246         base_for_components handling.
1247         (create_variable_info_for): Adjust.
1248
1249 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
1250
1251         * common.opt (Wframe-larger-than=): Shorten the help message
1252         to one line.
1253         * doc/invoke.texi (Wframe-larger-than=): Add more description.
1254
1255 2008-05-08  Rafael Espindola  <espindola@google.com>
1256
1257         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
1258         trap.
1259         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
1260         trap and that both operands are gimple values.
1261         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
1262         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
1263         is a fp operation.
1264
1265 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1266
1267         * read-rtl.c (join_c_conditions): Return the first string if the
1268         two strings are equal.
1269
1270 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1271
1272         * gensupport.h (pred_data): Add a "num_codes" field.
1273         (add_predicate_code): Declare.
1274         * gensupport.c (add_predicate_code): New function.
1275         (std_pred_table): Add an "allows_const_p" field.
1276         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
1277         Remove the (incomplete) list of such codes from the codes field.
1278         (init_predicate_table): Use add_predicate_code.  Add all
1279         RTX_CONST_OBJs if allows_const_p is true.
1280         * genrecog.c (process_define_predicate): Use add_predicate_code.
1281
1282 2008-05-08  David Daney  <ddaney@avtrex.com>
1283             Richard Sandiford  <rsandifo@nildram.co.uk>
1284         
1285         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
1286         special case of constant zero operands.
1287         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
1288         old and new values.  Special case constant zero values.
1289         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
1290         fails.
1291         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
1292         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
1293
1294 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
1295
1296         PR target/36090
1297         * simplify-rtx.c (simplify_plus_minus): Create CONST of
1298         similar RTX_CONST_OBJ before CONST_INT.
1299
1300 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
1301
1302         * stmt.c (expand_stack_restore): Change sa mode if needed.
1303
1304 2008-05-08  Richard Guenther  <rguenther@suse.de>
1305
1306         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
1307         return type to bool.
1308         (ix86_sol10_return_in_memory): Likewise.
1309         (ix86_i386elf_return_in_memory): Likewise.
1310         (ix86_i386interix_return_in_memory): Likewise.
1311         * config/i386/i386.c (ix86_return_in_memory): Likewise.
1312         (ix86_sol10_return_in_memory): Likewise.
1313         (ix86_i386elf_return_in_memory): Likewise.
1314         (ix86_i386interix_return_in_memory): Likewise.
1315
1316 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1317
1318         PR bootstrap/36180
1319         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
1320         fndecl argument.
1321         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
1322         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
1323         declared in front.
1324
1325 2008-05-08  Richard Guenther  <rguenther@suse.de>
1326
1327         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
1328         * tree-data-ref.h (struct dr_alias): Remove subvars field.
1329         (DR_SUBVARS): Remove.
1330         * tree-dfa.c (dump_subvars_for): Remove.
1331         (debug_subvars_for): Likewise.
1332         (dump_variable): Do not dump subvars.
1333         (remove_referenced_var): Do not remove subvars.
1334         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
1335         (lookup_subvars_for_var): Remove.
1336         (get_subvars_for_var): Likewise.
1337         (get_subvars_at): Likewise.
1338         (get_first_overlapping_subvar): Likewise.
1339         (overlap_subvar): Likewise.
1340         * tree-flow.h (subvar_t): Remove.
1341         (struct var_ann_d): Remove subvars field.
1342         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
1343         argument.  Remove special handling of SFTs.
1344         (compute_tag_properties): Likewise.
1345         (set_initial_properties): Likewise.
1346         (compute_call_clobbered): Likewise.
1347         (count_mem_refs): Likewise.
1348         (compute_memory_partitions): Likewise.
1349         (compute_flow_insensitive_aliasing): Likewise.
1350         (setup_pointers_and_addressables): Likewise.
1351         (new_type_alias): Likewise.
1352         (struct used_part): Remove.
1353         (used_portions): Likewise.
1354         (struct used_part_map): Likewise.
1355         (used_part_map_eq): Likewise.
1356         (used_part_map_hash): Likewise.
1357         (free_used_part_map): Likewise.
1358         (up_lookup): Likewise.
1359         (up_insert): Likewise.
1360         (get_or_create_used_part_for): Likewise.
1361         (create_sft): Likewise.
1362         (create_overlap_variables_for): Likewise.
1363         (find_used_portions): Likewise.
1364         (create_structure_vars): Likewise.
1365         * tree.def (STRUCT_FIELD_TAG): Remove.
1366         * tree.h (MTAG_P): Adjust.
1367         (struct tree_memory_tag): Remove base_for_components and
1368         unpartitionable flags.
1369         (struct tree_struct_field_tag): Remove.
1370         (SFT_PARENT_VAR): Likewise.
1371         (SFT_OFFSET): Likewise.
1372         (SFT_SIZE): Likewise.
1373         (SFT_NONADDRESSABLE_P): Likewise.
1374         (SFT_ALIAS_SET): Likewise.
1375         (SFT_UNPARTITIONABLE_P): Likewise.
1376         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
1377         (union tree_node): Remove sft field.
1378         * alias.c (get_alias_set): Remove special handling of SFTs.
1379         * print-tree.c (print_node): Remove handling of SFTs.
1380         * tree-dump.c (dequeue_and_dump): Likewise.
1381         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
1382         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
1383         * tree-predcom.c (set_alias_info): Do not set subvars.
1384         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
1385         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
1386         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
1387         (add_vars_for_offset): Remove.
1388         (add_virtual_operand): Remove special handling of SFTs.
1389         (add_call_clobber_ops): Likewise.
1390         (add_call_read_ops): Likewise.
1391         (get_asm_expr_operands): Likewise.
1392         (get_modify_stmt_operands): Likewise.
1393         (get_expr_operands): Likewise.
1394         (add_to_addressable_set): Likewise.
1395         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
1396         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1397         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
1398         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
1399         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
1400         (tree_node_structure): Likewise.
1401         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
1402         handling of SFTs.
1403         (find_what_p_points_to): Likewise.
1404
1405 2008-05-08  Sa Liu  <saliu@de.ibm.com>
1406
1407         * config/spu/spu.md: Fixed subti3 pattern.
1408
1409 2008-05-08  Richard Guenther  <rguenther@suse.de>
1410
1411         PR middle-end/36154
1412         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
1413         sure to create a representative for trailing arrays for PTA.
1414
1415 2008-05-08  Richard Guenther  <rguenther@suse.de>
1416
1417         PR middle-end/36172
1418         * fold-const.c (operand_equal_p): Two objects which types
1419         differ in pointerness are not equal.
1420
1421 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1422
1423         * calls.c (compute_argument_block_size): Add argument tree fndecl.
1424         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
1425         (emit_library_call_value_1): Add new variable fndecl initialized by
1426         NULL_TREE. It should be the decl type of orgfun, but this information
1427         seems not to be available here, so it uses the default calling abi.
1428         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
1429         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
1430         by TARGET_RETURN_IN_MEMORY.
1431         * config/i386/i386-interix.h: Likewise.
1432         * config/i386/i386.h: Likewise.
1433         * config/i386/i386elf.h: Likewise.
1434         * config/i386/ptx4-i.h: Likewise.
1435         * config/i386/sol2-10.h: Likewise.
1436         * config/i386/sysv4.h: Likewise.
1437         * config/i386/vx-common.h: Likewise.
1438         * config/cris/cris.h: Removed #if 0 clause.
1439         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
1440         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
1441         argument.
1442         (ix86_sol10_return_in_memory): Likewise.
1443         (ix86_i386elf_return_in_memory): New.
1444         (ix86_i386interix_return_in_memory): New.
1445         * config/mt/mt-protos.h (mt_return_in_memory): New.
1446         * config/mt/mt.c: Likewise.
1447         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
1448         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
1449         * config/bfin/bfin.h: Likewise.
1450         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
1451         argument.
1452         * config/bfin/bfin.c: Likewise.
1453         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
1454         * config/alpha/unicosmk.h: Likewise.
1455         * config/i386/cygming.h: Likewise.
1456         * config/iq2000/iq2000.h: Likewise.
1457         * config/mips/mips.h: Likewise.
1458         * config/mn10300/mn10300.h: Likewise.
1459         * config/rs6000/rs6000.h: Likewise.
1460         * config/score/score.h: Likewise.
1461         * config/spu/spu.h: Likewise.
1462         * config/v850/v850.h: Likewise.
1463         * defaults.h: Likewise.
1464         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
1465         * expr.c (emit_block_move): Adjust use of
1466         OUTGOING_REG_PARM_STACK_SPACE.
1467         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
1468         OUTGOING_REG_PARM_STACK_SPACE.
1469         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
1470
1471 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
1472
1473         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
1474         on OMP_RETURN for OMP_FOR.
1475
1476         PR debug/35896
1477         * dwarf2out.c (dw_expand_expr, common_check): Removed.
1478         (fortran_common): New function.
1479         (gen_variable_die): Call fortran_common instead of common_check,
1480         adjust for it returning tree instead of rtx.  Formatting.
1481
1482 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
1483
1484         PR rtl/7335
1485         PR rtl/33826
1486         * see.c (see_copy_insn): Copy new pure const attributes for new call.
1487         * c-decl.c (merge_decls): Ditto.
1488         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
1489         to RTL_CONST_OR_PURE_CALL_P.
1490         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
1491         Initialized DECL_LOOPING_CONST_PURE.
1492         (process_call_operands): Set tree_side_effects properly.
1493         * tree.h (TREE_READONLY_DECL_P): Removed.
1494         (DECL_IS_PURE): Renamed to DECL_PURE_P.
1495         (DECL_LOOPING_OR_CONST_P): New macro.
1496         (struct tree_function_decl): Added looping_const_or_pure_p.
1497         (ECF_*) Renumbered.
1498         (ECF_LOOPING_OR_CONST_P): New macro.
1499         * rtlanal.c (pure_const_p): Removed.
1500         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
1501         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
1502         to RTL_CONST_CALL_P.
1503         * ipa-pure-const.c (pure_const_state_e): Added looping field.
1504         (check_decl, check_tree, check_call, scan_function): Initialize
1505         looping.
1506         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
1507         (static_execute): Set looping true for recursive functions.
1508         Undo setting state to IPA_NEITHER for recursive functions.
1509         * cse.c (cse_insn): 
1510         * ifcvt.c (noce_can_store_speculate_p): Changed
1511         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
1512         RTL_CONST_OR_PURE_CALL_P.
1513         * dse.c (scan_insn): Ditto.
1514         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
1515         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
1516         RTL_CONST_OR_PURE_CALL_P.
1517         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
1518         pure_call_p to RTL_CONST_CALL_P.
1519         * gimplify.c (gimplify_call_expr): Clear side effects for
1520         non-looping pure and constant calls.
1521         * calls.c (emit_call_1): Set rtl flags from ecf flags.
1522         (flags_from_decl_or_type): Set ecf flags from decl flags.
1523         (initialize_argument_information): Turn off
1524         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
1525         Change const to pure if callee_copies is true rather than just
1526         turning off const.
1527         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
1528         way of marking pure calls.
1529         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
1530         Remove hack that was supposed to fix pr7335 and remove old
1531         way of marking pure calls.
1532         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
1533         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
1534         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
1535         RTL_CONST_OR_PURE_CALL_P.
1536         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
1537         * loop-invariant.c (find_exits, find_invariant_bb): Changed
1538         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
1539         * sched-deps.c (schedule_analyze): Ditto.
1540         * rtl.h (struct rtx_def): Use call field, unchanging field, and
1541         return_val field of calls to represent pure and const function info.
1542         (CONST_OR_PURE_CALL_P): Deleted macro.
1543         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1544         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
1545         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
1546         TREE_READONLY.
1547         * tree-optimize.c (execute_fixup_cfg): Added test for
1548         ECF_LOOPING_CONST_OR_PURE.
1549         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
1550         DECL_PURE_P.
1551         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
1552         effects for looping pure or const calls.
1553         (verify_gimple_expr): Added verification code. 
1554         * config/alpha/alpha.c (alpha_legitimize_address,
1555         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
1556         RTL_CONST_CALL_P.
1557         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
1558         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
1559         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
1560         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
1561         RTL_CONST_OR_PURE_CALL_P.
1562         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
1563         and const calls to be deleted.
1564
1565 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
1566
1567         PR target/35714
1568         * config/i386/mmx.md (mmx_subv2sf3): New expander.
1569         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
1570         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
1571         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
1572         to handle nonimmediate operands.
1573         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
1574         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
1575         to handle nonimmediate operands.
1576         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
1577         (mmx_pmulhrwv4hi3): New expander.  Use
1578         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1579         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
1580         (sse2_umulv1siv1di3): New expander.  Use
1581         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1582         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
1583         (mmx_eq<mode>3): New expander.  Use
1584         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1585         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
1586         (mmx_uavgv8qi3): New expander.  Use
1587         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1588         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
1589         (mmx_uavgv4hi3): New expander.  Use
1590         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1591
1592         * config/i386/sse.md
1593         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
1594         to handle nonimmediate operands.
1595         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
1596         to handle nonimmediate operands.
1597         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
1598         to handle nonimmediate operands.
1599         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
1600         to handle nonimmediate operands.
1601         (sse2_unpckhpd_exp): New expander.  Use
1602         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1603         (sse2_unpcklpd_exp): New expander.  Use
1604         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1605         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
1606         to handle nonimmediate operands.
1607         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
1608         to handle nonimmediate operands.
1609         (*sse2_<plusminus_insn><mode>3): Rename from
1610         sse2_<plusminus_insn><mode>3 insn pattern.
1611         (sse2_<plusminus_insn><mode>3): New expander.  Use
1612         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1613         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
1614         (sse2_umulv2siv2di3): New expander.  Use
1615         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1616         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
1617         (sse4_1_mulv2siv2di3): New expander.  Use
1618         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1619         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
1620         (sse2_pmaddwd): New expander.  Use
1621         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1622         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
1623         (sse2_eq<mode>3): New expander.  Use
1624         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1625         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
1626         (sse4_1_eqv2di3): New expander.  Use
1627         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1628         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
1629         (sse2_uavgv16qi3): New expander.  Use
1630         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1631         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
1632         (sse2_uavgv16qi3): New expander.  Use
1633         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1634         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
1635         (sse2_uavgv8hi3): New expander.  Use
1636         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1637         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
1638         (ssse3_pmulhrswv8hi3): New expander.  Use
1639         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1640         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
1641         (ssse3_pmulhrswv4hi3): New expander.  Use
1642         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1643
1644         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
1645         (<sse>_vmmul<mode>3): Ditto.
1646         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
1647         (divv2df3): Ditto.
1648         (ssse3_pmaddubsw128): Use register_operand for operand 1.
1649         (ssse3_pmaddubsw): Ditto.
1650
1651         * config/i386/i386.c (struct_builtin_description)
1652         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
1653         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
1654         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
1655         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
1656         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
1657         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
1658         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
1659         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
1660         (ix86_fixup_binary_operands): Assert that src1
1661         and src2 must have the same mode when swapped.
1662         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
1663         and ix86_binary_operator_ok.  Do not force operands in registers
1664         when optimizing.
1665
1666 2008-05-07  Jan Hubicka  <jh@suse.cz>
1667
1668         * cgraph.c (dump_cgraph_node): Update.
1669         * cgraph.h (cgraph_local_info): Break out inline summary.
1670         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
1671         hook.
1672         * ipa-inline (inline_summary): New accestor function.
1673         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
1674         cgraph_decide_inlining, compute_inline_parameters): Update.
1675         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
1676
1677 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1678
1679         Cleanup ColdFire scheduling support and add V4 pipeline model.
1680
1681         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
1682         (define_attr cpu): Add cfv4 value.
1683         (define_attr type, define_attr type1): Merge into a single 'type'
1684         attribute.  Update all uses.
1685         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
1686         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
1687         Update all uses.
1688         (define_attr opx_mem, define_attr opy_mem): Remove.
1689         (define_attr op_mem): Clean up, update comment.
1690         (define_attr size): Use specific values instead of general int.
1691         (define_attr guess, define_attr split): Remove.  Update all uses.
1692         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
1693         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
1694         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
1695         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
1696         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
1697         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
1698         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
1699         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
1700         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
1701         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
1702         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
1703         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
1704         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
1705         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
1706         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
1707         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
1708         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
1709         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
1710         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
1711         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
1712         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
1713         Update or set attributes.
1714         (stack_tie): New fake instruction.
1715
1716         * config/m68k/m68k.h (TUNE_CFV4): New macro.
1717         (m68k_sched_attr_size): Update declaration.
1718         (m68k_sched_attr_type2): Remove.
1719         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
1720         Declare new bypass predicates.
1721
1722         * config/m68k/m68k.c (m68k_sched_issue_rate,
1723         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
1724         implementations.
1725         (TARGET_SCHED_ISSUE_RATE,
1726         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
1727         (override_options): Handle scheduling for ColdFire V4 core.
1728         (m68k_expand_prologue): Emit stack_tie.
1729         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
1730         'OP_TYPE_FPN'.  Update all uses.
1731         (sched_guess_p): Remove.
1732         (sched_address_type): Handle symbolic addresses.
1733         (sched_get_operand): New static function.
1734         (sched_operand_type): Merge into sched_attr_op_type.
1735         (sched_attr_op_type): Handle FP registers, handle quick constants,
1736         update.
1737         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
1738         (m68k_sched_attr_size): Update.  Move logic to ...
1739         (sched_get_attr_size_int): New static function.
1740         (sched_get_opxy_mem_type): New static function.
1741         (m68k_sched_attr_op_mem): Update.
1742         (m68k_sched_attr_type2): Remove.
1743         (sched_cfv4_bypass_data): New static variable.
1744         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
1745         (m68k_sched_issue_rate): Implement scheduler hook.
1746         (struct _sched_ib: enabled_p): New field.
1747         (m68k_sched_variable_issue): Update.  Handle V4.
1748         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
1749         sched_dump_class_func_t, sched_dump_split_class,
1750         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
1751         sched_dump_dfa_class, m68k_sched_dump): Remove.
1752         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
1753         hook.
1754         (m68k_sched_init_global): Remove statisctics dumping, introduce
1755         sanity check that all instructions have pipeline reservations.  Handle
1756         ColdFire V4 core.
1757         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
1758         Handle ColdFire V4 core.
1759         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
1760         New static functions.
1761         (m68k_sched_address_bypass_p): New bypass predicate.
1762         (sched_get_indexed_address_scale): New static function.
1763         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
1764
1765         * cf.md: Update comments.
1766         (define_attr type2): Remove.  Use 'type' attribute instead.
1767         Update all uses.
1768         (cf_ib): Rename to cfv123_ib.  Update all uses.
1769         (cf_oep): Rename to cfv123_oep.  Update all uses.
1770         (cf_chr): Rename to cfv123_chr.  Update all uses.
1771         (cf_mem): Rename to cfv123_mem.  Update all uses.
1772         (cf_mac): Move to more appropriate place.
1773         (cfv123_guess): New automaton and cpu_unit.
1774         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
1775         Update uses of 'size' attribute.  Handle before reload scheduling.
1776         (cfv123_guess): New dummy reservation for unhandled instructions.
1777         (cfv4_*): Pipeline description of ColdFire V4 core.
1778         (ignore): New reservation to handle 'ignore' type.
1779
1780 2008-05-07  Ian Lance Taylor  <iant@google.com>
1781
1782         PR middle-end/36013
1783         * gimplify.c (find_single_pointer_decl_1): Don't look through
1784         indirections.
1785         (find_single_pointer_decl): Adjust comments.
1786
1787 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
1788
1789         PR middle-end/36137
1790         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
1791         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
1792
1793         PR middle-end/36106
1794         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
1795         integral type rather than floating point, then VIEW_CONVERT_EXPR
1796         to the floating point type.
1797
1798 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
1799
1800         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
1801         TFmode op0 to register.
1802
1803 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
1804
1805         * c-decl.c (grokdeclarator): Comment typo.
1806
1807 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
1808
1809         * tree-flow.h: Remove prototype for computed_goto_p.
1810         * tree-cfg.c (computed_goto_p): Make static.
1811
1812 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1813
1814         PR target/35657
1815         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
1816         (contains_aligned_value_p): This.  Handle _Decimal128.
1817         (ix86_function_arg_boundary): Only align _Decimal128 to its
1818         natural boundary and handle it properly.
1819
1820 2008-05-06  Martin Jambor  <mjambor@suse.cz>
1821
1822         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
1823         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
1824         (ipcp_method_set_orig_node): Removed.
1825         (ipcp_cval_get_cvalue_type): Removed.
1826         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
1827         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
1828         (ipcp_cval_set_cvalue_type): Removed.
1829         (ipcp_cval_get_cvalue): Removed.
1830         (ipcp_cval_set_cvalue): Removed.
1831         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
1832         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
1833         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
1834         (ipcp_cval_meet): Renamed to ipa_lattice_meet
1835         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
1836         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
1837         (ipcp_get_ith_lattice): Changed parameters.
1838         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
1839         (ipcp_lattice_from_jfunc): Changed parameters.
1840         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
1841         (ipcp_method_cval_print): Added temporary variable info.
1842         (ipcp_redirect): Removed already unused local variable caller.
1843         (ipcp_redirect): New temporary variable orig_callee_info
1844         (ipcp_redirect): Removed newly unused local variable callee.
1845         (ipcp_redirect): Removed (a bit confusing) local variable type.
1846         (ipcp_insert_stage): Added local variable info.
1847         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
1848         renamed too
1849         (ipcp_formal_create): Removed.
1850         (ipcp_method_cval_set): Removed.
1851         (ipcp_propagate_stage): Renamed lattice variables.
1852         (ipcp_method_cval_set_cvalue_type): Removed.
1853         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
1854         (ipcp_print_all_lattices): Changed printed strings to refer to 
1855         lattices rather than cvals.
1856         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
1857         (ipcp_propagate_const): Changed formal parameters.
1858         (build_const_val): Changed formal parameters.
1859         (ipcp_insert_stage): Removed useless variable cvalue
1860         (build_const_val): Changed formal parameters.
1861         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
1862         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
1863         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
1864         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
1865         (ipcp_print_func_profile_counts): Changed string from "method" to 
1866         "function"
1867         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
1868         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
1869         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
1870         (ipcp_structures_print): Renamed to ipcp_print_all_structures
1871         (ipcp_profile_print): Renamed to ipcp_print_profile_data
1872         (ipcp_lat_is_const): Changed parameters and made inline.
1873         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
1874         (ipcp_redirect): Renamed to ipcp_need_redirect_p
1875         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
1876         the predicate condition directly
1877         (ipcp_propagate_stage): Added local variable args. Removed local
1878         variable callee.  (Both are mere code simplifications.)
1879         (ipcp_method_dont_insert_const): Renamed to
1880         ipcp_node_not_modifiable_p.
1881         (ipcp_node_not_modifiable_p): Made inline.
1882         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
1883         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
1884         (ipcp_print_all_lattices): Removed variable cvalue
1885         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
1886         Updated comments.
1887
1888 2008-05-06  Olivier Hainque  <hainque@adacore.com>
1889
1890         * tree-sra.c (try_instantiate_multiple_fields): Early return
1891         if field has POINTER_TYPE.
1892
1893 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
1894
1895         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
1896         by using 'q' specifier for instruction.
1897         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
1898
1899 2008-05-06  Anatoly Sokolov <aesok@post.ru>
1900
1901         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1902         Change mode of zero_extract from QImode to HImode.
1903         (sign bit tests peepholes): (Ditto.).
1904
1905 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
1906
1907         * config/i386/mmx.md: Remove double backslashes from asm templates.
1908         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
1909         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
1910         to handle nonimmediate operands.
1911         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
1912         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
1913         to handle nonimmediate operands.
1914         (*mmx_<code>v2sf3_finite): New insn pattern.
1915         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
1916         (mmx_<code>v2sf3): New expander.  Use
1917         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1918         (mmx_<plusminus_insn><mode>3): New expander.  Use
1919         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1920         (*mmx_<plusminus_insn><mode>3): New insn pattern.
1921         (mmx_add<mode>3): Removed.
1922         (mmx_ssadd<mode>3): Ditto.
1923         (mmx_usadd<mode>3): Ditto.
1924         (mmx_sub<mode>3): Ditto.
1925         (mmx_sssub<mode>3): Ditto.
1926         (mmx_ussub<mode>3): Ditto.
1927         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
1928         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
1929         to handle nonimmediate operands.
1930         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
1931         insn pattern.
1932         (mmx_smulv4hi3_highpart): New expander.  Use
1933         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1934         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
1935         insn pattern.
1936         (mmx_umulv4hi3_highpart): New expander.  Use
1937         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1938         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
1939         (mmx_<code>v4hi3): New expander.  Use
1940         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1941         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
1942         (mmx_<code>v8qi3): New expander.  Use
1943         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1944         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
1945         (mmx_<code><mode>3): New expander.  Use
1946         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1947
1948 2008-05-05  Jan Hubicka  <jh@suse.cz>
1949
1950         PR tree-optimization/36118
1951         * passes.c (pass_init_dump_file): Fix dump header.
1952
1953 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1954
1955         PR middle-end/36141
1956         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
1957         VCE for function decls.
1958
1959 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1960
1961         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
1962
1963 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1964
1965         * config/i386/i386.md (sat_plusminus): New.
1966         (plusminus_insn): Likewise.
1967         (plusminus_mnemonic): Likewise.
1968         (addsub): Removed.
1969         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
1970         (*<addsub><mode>3_cc_overflow): Renamed to ...
1971         (*<plusminus_insn><mode>3_cc_overflow): This.
1972         (*<addsub>si3_zext_cc_overflow): Renamed to ...
1973         (*<plusminus_insn>si3_zext_cc_overflow): This.
1974
1975         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
1976         (<plusminus_insn><mode>3): This.
1977         (*<addsub><mode>3): Renamed to ...
1978         (*<plusminus_insn><mode>3): This.
1979         (<sse>_vm<addsub><mode>3): Renamed to ...
1980         (<sse>_vm<plusminus_insn><mode>3): This.
1981         (sse3_h<addsub>v4sf3): Renamed to ...
1982         (sse3_h<plusminus_insn>v4sf3): This.
1983         (sse3_h<addsub>v2df3): Renamed to ...
1984         (sse3_h<plusminus_insn>v2df3): This.
1985         (<plusminus_insn><mode>3): New.
1986         (*<plusminus_insn><mode>3): Likewise.
1987         (sse2_<plusminus_insn><mode>3): Likewise.
1988         (add<mode>): Removed.
1989         (*add<mode>3): Likewise.
1990         (sse2_ssadd<mode>3): Likewise.
1991         (sse2_usadd<mode>3): Likewise.
1992         (sub<mode>3): Likewise.
1993         (*sub<mode>3): Likewise.
1994         (sse2_sssub<mode>3): Likewise.
1995         (sse2_ussub<mode>3): Likewise.
1996
1997 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
1998
1999         * gthr-single.h: Add in required interface elements as per gthr.h.
2000         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2001         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2002         Generalize UNUSED macro. 
2003         (__gthread_once): Add.
2004         (__gthread_key_create): Add.
2005         (__gthread_key_delete): Add.
2006         (__gthread_getspecific): Add.
2007         (__gthread_setspecific): Add.
2008         
2009 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2010
2011         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2012         the same size types for the indirect reference on the rhs, then
2013         create a VCE.
2014
2015 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2016
2017         * config/i386/i386.md
2018         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2019         one insn template instead of template series.
2020         (*xordi_1_rex64): Ditto.
2021         (*xordi_2_rex64): Ditto.
2022
2023 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2024
2025         PR tree-optimization/36119
2026         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2027         in case of SLP.
2028
2029 2008-06-04  Jan Hubicka  <jh@suse.cz>
2030
2031         tree-optimization/36100
2032         * tree-pass.h (pass_O0_always_inline): Declare.
2033         * ipa-inline.c (inline_transform): Remove dead code.
2034         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2035         pass_O0_always_inline): New.
2036         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2037
2038 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2039
2040         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2041         mnemonic in this_param move for TARGET_64BIT.
2042
2043 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2044
2045         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2046         (*strmovsi_rex_1): Ditto.
2047         (*strsetsi_1): Ditto.
2048         (*strsetsi_rex_1): Ditto.
2049
2050         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2051         adddicc expanders using SWI mode iterator.
2052
2053 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2054
2055         PR target/36121
2056         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2057         argument handling.
2058
2059 2008-05-04  David S. Miller  <davem@davemloft.net>
2060
2061         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2062         (sparc*-*-linux*): Use linux.h in tm_file.
2063         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2064         compiler defaulting to 32-bit.
2065         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2066         no longer needed.
2067         * config/sparc/linux.h: Remove definitions now obtained
2068         properly from linux.h
2069         * config/sparc/linux64.h: Likewise.
2070         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2071         don't want this setting for 32-bit builds in a biarch compiler.
2072         * doc/install.texi: Add sparc-linux to list of targets
2073         supporting --enable-targets=all.
2074
2075 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
2076
2077         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2078
2079 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
2080
2081         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2082         after V4SI_FTYPE_V8HI.
2083         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2084         case V4SI_FTYPE_V2DF.
2085
2086 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
2087
2088         * doc/invoke.texi (max-flow-memory-locations): Removed.
2089         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2090         
2091 2008-05-03  Richard Guenther  <rguenther@suse.de>
2092
2093         PR middle-end/34973
2094         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2095
2096 2008-05-02  David S. Miller  <davem@davemloft.net>
2097
2098         * config.gcc (need_64bit_hwint): Document libcpp dependency.
2099
2100 2008-05-02  Simon Baldwin <simonb@google.com>
2101
2102         PR bootstrap/36108
2103         * c-common.h (warn_array_subscript_range): Removed.
2104         * c-common.c (warn_array_subscript_range): Ditto.
2105         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2106         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2107
2108 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2109
2110         * config/i386/i386.c (ix86_special_builtin_type): New.
2111         (bdesc_special_args): Likewise.
2112         (ix86_expand_special_args_builtin): Likewise.
2113         (ix86_init_mmx_sse_builtins): Updated.
2114         (ix86_expand_builtin): Updated.
2115         (ix86_expand_store_builtin): Removed.
2116         (ix86_expand_unop_builtin): Likewise.
2117
2118         * config/i386/mm3dnow.h (__v2sf): Moved to ...
2119         * config/i386/mmintrin.h (__v2sf): Here.
2120
2121         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2122         const __v2sf.
2123         (_mm_loadl_pi): Likewise.
2124         (_mm_storeh_pi): Replace __v2si with __v2sf.
2125         (_mm_storel_pi): Likewise.
2126
2127         * doc/extend.texi: Correct __builtin_ia32_loadhps,
2128         __builtin_ia32_loadlps, __builtin_ia32_storehps,
2129         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2130         __builtin_ia32_loadlpd.
2131
2132 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2133
2134         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2135         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2136         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
2137         (ix86_init_mmx_sse_builtins): Updated.
2138         (ix86_expand_args_builtin): Likewise.
2139         (ix86_expand_builtin): Likewise.
2140         (ix86_expand_unop1_builtin): Renamed to ...
2141         (ix86_expand_unop_vec_merge_builtin): This.
2142
2143 2008-05-01  Jan Hubicka  <jh@suse.cz>
2144
2145         PR bootstrap/36100
2146         * ipa-inline.c (inline_generate_summary): Make static.
2147         (inline_transform): Do not call inlining at -O0; make static.
2148         * passes.c (execute_todo): Add sanity check.
2149         (execute_one_ipa_transform_pass): Execute proper flags.
2150
2151 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2152
2153         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2154         (DECL_NONADDRESSABLE_P): Likewise.
2155         * alias.c (record_component_aliases): Fix comment.
2156
2157 2008-05-01  Simon Baldwin <simonb@google.com>
2158
2159         * c-common.h (warn_array_subscript_range): New function.
2160         * c-common.c (warn_array_subscript_range): Ditto.
2161         * tree-vrp.c (check_array_ref): Corrected code to agree with
2162         comment, ignoring only arrays of size 0 or size 1.
2163         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2164
2165 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2166
2167         * config/i386/i386.c (ix86_builtin_type): Replace
2168         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2169         (bdesc_args): Updated.
2170         (ix86_init_mmx_sse_builtins): Likewise.
2171         (ix86_expand_args_builtin): Likewise.
2172
2173         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2174         with __v1di.
2175
2176         * doc/extend.texi: Correct __builtin_ia32_palignr.
2177
2178 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2179
2180         PR target/36095
2181         * config/i386/i386.c (bdesc_crc32): Removed.
2182         (ix86_expand_crc32): Likewise.
2183         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2184         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2185         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
2186         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2187         UINT_FTYPE_UINT_UCHAR.
2188         (bdesc_args): Updated. Add crc32 builtins.
2189         (ix86_init_mmx_sse_builtins): Updated.
2190         (ix86_expand_args_builtin): Updated to support subreg.
2191
2192         * doc/extend.texi: Correct __builtin_ia32_crc32di.
2193
2194 2008-05-01  Jan Hubicka  <jh@suse.cz>
2195
2196         * tree-pass.h (opt_pass): Add IPA_PASS.
2197         (varpool_node, cgraph_node): Forward declare.
2198         (ipa_opt_pass): Define.
2199         (pass_ipa_inline): Turn into ipa_opt_pass.
2200         (pass_apply_inline): Remove.
2201         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
2202         (apply_inline): Turn into ....
2203         (inline_transform): ... this one.
2204         (inline_generate_summary): New function.
2205         (pass_apply_inline): Remove.
2206         * function.h (ipa_opt_pass): Forward declare structure; typedef;
2207         vector.
2208         (struct function): Add ipa_transforms_to_apply.
2209         * passes.c (register_one_dump_file): Work on IPA_PASS.
2210         (init_optimization_passes): Remove pass_inline_parameters and
2211         pass_apply_inline.
2212         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
2213         (execute_one_pass) ... here; apply transforms when possible.
2214         (add_ipa_transform_pass, execute_ipa_summary_asses,
2215         execute_one_ipa_transform_pass): New.
2216         (execute_ipa_pass_list): Update for IPA_PASS type.
2217
2218 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2219
2220         * config/i386/i386.c (ix86_builtin_type): Add
2221         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
2222         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
2223         (bdesc_args): Add SSE4a builtins.
2224         (ix86_init_mmx_sse_builtins): Updated.
2225         (ix86_expand_args_builtin): Likewise.
2226         (ix86_expand_builtin): Likewise.
2227
2228 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2229
2230         * config/i386/i386.c (ix86_builtin_type): Add
2231         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
2232         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
2233         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
2234         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
2235         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
2236         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
2237         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
2238         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
2239         and DI_FTYPE_DI_DI_INT.
2240         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
2241         (ix86_init_mmx_sse_builtins): Updated.
2242         (ix86_expand_args_builtin): Likewise.
2243         (ix86_expand_builtin): Likewise.
2244         (ix86_expand_binop_imm_builtin): Removed.
2245
2246         * doc/extend.texi: Correct __builtin_ia32_palignr128.
2247
2248 2008-04-30  Richard Guenther  <rguenther@suse.de>
2249
2250         PR tree-optimization/32921
2251         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
2252
2253 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
2254
2255         * config/arm/arm.c (arm_unwind_emit): Use
2256         crtl->all_throwers_are_sibcalls instead of
2257         cfun->all_throwers_are_sibcalls.
2258         (arm_output_fn_unwind): Likewise.
2259         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
2260         instead of cfun->uses_pic_offset_table.
2261         (frv_expand_prologue): Likewise.
2262         (frv_frame_pointer_required): Likewise.
2263         (frv_expand_fdpic_call): Likewise.
2264         (frv_emit_movsi): Likewise.
2265         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
2266         cfun->returns_pcc_struct instead of
2267         current_function_returns_pcc_struct.
2268         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
2269         instead of cfun->calls_eh_return.
2270         (m32c_pushm_popm): Likewise.
2271         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
2272         "extern" declaration.
2273
2274 2008-04-30  Richard Guenther  <rguenther@suse.de>
2275
2276         PR tree-optimization/21636
2277         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
2278         constant address.
2279         (evaluate_stmt): Print the likely value.
2280         (ccp_visit_stmt): Avoid excessive vertical spacing.
2281
2282 2008-04-30  Rafael Espindola  <espindola@google.com>
2283
2284         * builtins.c (fold_call_expr): Return realret.
2285         * tree-ssa-threadedge.c
2286         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2287         __builtin_object_size.
2288
2289 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
2290
2291         * gcc.c (wrapper_string): New variable.
2292         (insert_wrapper): New function.
2293         (execute): New option -wrapper.
2294         * doc/invoke.texi (Overall Options): New driver option -wrapper.
2295
2296 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
2297
2298         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
2299         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
2300         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
2301         from...
2302         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
2303         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
2304         config/rs6000/e500crtres64gprctr.asm,
2305         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
2306         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
2307         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
2308         config/rs6000/e500crtsav64gprctr.asm,
2309         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
2310         config/rs6000/e500crtsavg64gprctr.asm: New files.
2311         * config/rs6000/t-ppccomm: Add build rules for new files.
2312         (LIB2FUNCS_STATIC_EXTRA): Add new files.
2313         * config/rs6000/t-netbsd: Add build rules for new files.
2314         (LIB2FUNCS_STATIC_EXTRA): New variable.
2315         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
2316         (CRTSAVRES_DEFAULT_SPEC): Likewise.
2317         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
2318
2319 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
2320
2321         * config/i386/i386.c (ix86_builtin_type): Add
2322         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
2323         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
2324         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
2325         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
2326         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
2327         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
2328         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
2329         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
2330         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
2331         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
2332         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
2333         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
2334         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
2335         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
2336         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
2337         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
2338         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
2339         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
2340         V1DI_FTYPE_V2SI_V2SI.
2341         (bdesc_2arg): Moved to ...
2342         (bdesc_args): Here.
2343         (ix86_init_mmx_sse_builtins): Updated.
2344         (ix86_expand_args_builtin): Updated.  Take a pointer
2345         to const struct builtin_description.  Handle comparison
2346         builtin functions.
2347         (ix86_expand_sse_compare): Take a new argument for swapping operands.
2348         (ix86_expand_builtin): Updated.
2349
2350         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
2351         (ssse3_pmaddubsw128): This.
2352         (ssse3_pmaddubswv4hi3): Renamed to ...
2353         (ssse3_pmaddubsw): This.
2354
2355         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
2356         (__builtin_ia32_packssdw128): Likewise.
2357         (__builtin_ia32_packuswb128): Likewise.
2358         (__builtin_ia32_pmaddubsw): Likewise.
2359         (__builtin_ia32_pmaddubsw128): Likewise.
2360
2361 2008-04-30  Richard Guenther  <rguenther@suse.de>
2362
2363         PR tree-optimization/14847
2364         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
2365         (recognize_bits_test): Use it.
2366         (recognize_single_bit_test): Likewise.
2367
2368 2008-04-30  Martin Jambor  <mjambor@suse.cz>
2369
2370         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
2371         instead of setting number of formal parameters to zero.
2372         (ipcp_init_stage): Do not set the number of actual parameters to zero 
2373         either.
2374         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
2375         which are called with variable number of arguments.
2376         (ipcp_insert_stage): Explicitely skipping all nodes which are
2377         called with variable number of arguments.
2378         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
2379         number of parameters.
2380
2381         * ipa-prop.h (struct ipa_node_params): Added flag
2382         called_with_var_arguments
2383         (ipa_set_param_count): Added.  Changed sole setter to use it.
2384         (ipa_get_param_count): Added.  All readers of param_count
2385         converted to use it instead.
2386         (ipa_set_called_with_variable_arg): Added.
2387         (ipa_is_called_with_var_arguments): Added.
2388         (ipa_get_ith_param): Added.  All readers of param_decls converted
2389         to use it instead.
2390         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
2391         changed to use it. 
2392         (ipa_get_cs_argument_count): Added, all readers of argument_count
2393         changed to cal it.
2394         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
2395         to use it.
2396         
2397         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
2398         (struct ipcp_lattice): Renamed cval_type to type
2399         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
2400
2401         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
2402         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
2403         (ipcp_insert_stage): Changed the type of variable cvalue to tree
2404         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
2405         (build_const_val): Changed the type of parameter cvalue to tree
2406         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
2407         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
2408         
2409         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
2410         constant 
2411
2412         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
2413         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
2414         (ipa_add_method): Renamed to ipa_push_func_to_list
2415         (ipa_remove_method): Renamed to ipa_pop_func_from_list
2416         (ipa_callsite_param_count): Removed.
2417         (ipa_callsite_param_count_set): Removed.
2418         (ipa_callsite_param): Removed.
2419         (ipa_callsite_callee): Removed.
2420         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
2421         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
2422         (ipa_method_formal_count): Removed.
2423         (ipa_method_formal_count_set): Removed.
2424         (ipa_method_get_tree): Removed.
2425         (ipa_method_tree_map_create): Removed.
2426         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
2427         (ipa_create_param_decls_array): Creates the array itself
2428         (ipa_create_param_decls_array): Temporary variable info instead of 
2429         a few dereferences.
2430         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
2431         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
2432         (get_type): Removed.
2433         (ipa_jf_get_info_type): Removed.
2434         (ipa_node_create): Renamed to ipa_create_node_params
2435         (ipa_free): Renamed to ipa_free_all_node_params
2436         (ipa_nodes_create): Renamed to ipa_create_all_node_params
2437         (ipa_edges_create): Renamed to ipa_create_all_edge_args
2438         (ipa_edges_free): Renamed to ipa_free_all_edge_args
2439         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
2440         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
2441         ipa_free_all_edge_args
2442         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
2443         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
2444         (ipa_create_methodlist_node): Removed.
2445         (ipa_methodlist_method): Removed.
2446         (ipa_methodlist_method_set): Removed.
2447         (ipa_methodlist_next_method): Removed.
2448         (ipa_methodlist_next_method_set): Removed.
2449         (ipa_method_is_modified): Removed.
2450         (ipa_method_modify_create): Removed.
2451         (ipa_method_modify_init): Temporary variable info instead of a few 
2452         dereferences.
2453         (ipa_detect_param_modifications): Temporary variable info instead of 
2454         a few dereferences.
2455         (ipa_compute_jump_functions): Temporary variable info instead of 
2456         a few dereferences.
2457         (ipa_method_modify_set): Removed.
2458         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
2459         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
2460         than craph_node as the first parameter.
2461         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
2462         (ipa_method_modify_init): Removed.
2463         (ipa_compute_jump_functions): Added a temp variable instead of 
2464         repeatadly dereferencing the cgraph_edge.aux pointer
2465         (ipa_callsite_param_set_type): Removed.
2466         (ipa_compute_jump_functions): i renamed to index and moved to 
2467         an inner block
2468         (ipa_callsite_param_set_info_type_formal): Removed.
2469         (ipa_callsite_param_set_info_type): Removed.
2470         (ipa_callsite_param_map_create): Removed.
2471         (ipa_callsite_tree): Removed.
2472         (ipa_callsite_caller): Removed.
2473         (ipa_pop_func_from_list): return_method removed to return_func
2474
2475         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
2476         prefixed all values with IPA_. Changed all users.
2477         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
2478         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
2479         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
2480         (union parameter_info): Renamed to jump_func_value.
2481         (union jump_func_value): Renamed value to constant
2482         (struct ipa_jump_func): Renamed info_type to value
2483         (struct ipa_node): Renamed to ipa_node_params
2484         (struct ipa_node_params): Renamed ipa_arg_num to param_count
2485         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
2486         (struct ipa_node_params): Renamed ipa_mod to modified_flags
2487         (struct ipa_edge): Renamed to ipa_edge_args
2488         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
2489         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
2490         (struct ipa_methodlist): Renamed to ipa_func_list
2491         (struct ipa_func_list): method_p renamed to node, next_method
2492         renamed to next
2493         (ipa_methodlist_p): Removed, switched all users to struct pointer
2494         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
2495
2496 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
2497
2498         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
2499         (rs6000_emit_epilogue): Use backchain to restore only when we
2500         have a large frame.  Make use of frame pointer to restore if we
2501         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
2502
2503 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
2504
2505         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2506         Add mode to zero_extract.
2507         (sign bit tests peepholes): (Ditto.).
2508
2509 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
2510
2511         * config/i386/i386.c (ix86_builtins): Replace Prescott New
2512         Instructions in comments with SSE3.
2513         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
2514         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
2515         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
2516         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
2517         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
2518         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
2519         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
2520         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
2521         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
2522         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
2523         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
2524         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
2525         (bdesc_sse_args): Renamed to ...
2526         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
2527         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
2528         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
2529         IX86_BUILTIN_FABSQ.
2530         (bdesc_1arg): Moved to ...
2531         (bdesc_args): Here.
2532         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
2533         Instructions in comments with SSE3.
2534         (ix86_expand_sse_operands_builtin): Renamed to ...
2535         (ix86_expand_args_builtin): This.  Updated.
2536         (ix86_expand_unop1_builtin): Update comments.
2537         (ix86_expand_builtin): Updated.
2538
2539 2008-04-29  Richard Guenther  <rguenther@suse.de>
2540
2541         PR tree-optimization/36078
2542         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
2543         Update virtual SSA form after cleaning up the CFG.
2544
2545 2008-04-29  Richard Guenther  <rguenther@suse.de>
2546
2547         PR middle-end/15255
2548         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
2549
2550 2008-04-29  Richard Guenther  <rguenther@suse.de>
2551
2552         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
2553         (compute_may_aliases): Do not call finalize_ref_all_pointers.
2554         (compute_flow_insensitive_aliasing): Do not treat
2555         PTR_IS_REF_ALL pointers special.
2556         (get_smt_for): Likewise.
2557         (may_alias_p): Re-structure.
2558         (is_escape_site): A ref-all pointer conversion is not an escape site.
2559         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
2560         PTR_IS_REF_ALL pointers special.
2561         * tree-ssa-structalias.h (struct alias_info): Remove
2562         ref_all_symbol_mem_tag field.
2563         (PTR_IS_REF_ALL): Remove.
2564
2565 2008-04-29  Richard Guenther  <rguenther@suse.de>
2566
2567         PR middle-end/36077
2568         * fold-const.c (extract_muldiv_1): In combining division constants
2569         make sure to never overflow.
2570
2571 2008-04-29  Nick Clifton  <nickc@redhat.com>
2572
2573         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
2574
2575 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2576
2577         PR bootstrap/35169
2578         * optc-gen.awk: Work around HP-UX/IA awk bug.
2579
2580 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
2581
2582         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
2583         2008-04-25 commit.
2584
2585 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
2586
2587         PR target/36073
2588         * config/i386/i386.md
2589         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
2590         Change operand 1 predicate to nonimmediate_operand.
2591
2592 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
2593
2594         PR debug/36060
2595         * dwarf2out.c (struct die_struct): Mark as chain_circular through
2596         die_sub field.
2597         * gengtype.c (walk_type, write_func_for_structure): Handle
2598         chain_circular.
2599         * doc/gty.texi: Document chain_circular.
2600
2601 2008-04-28  Richard Guenther  <rguenther@suse.de>
2602
2603         PR tree-optimization/36066
2604         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
2605         SCEV and loop.
2606
2607 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
2608
2609         PR target/36064
2610         * config/i386/i386.md
2611         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
2612         Use match_scratch instead of match_operand for operands 3 and 4.
2613
2614 2008-04-27  Richard Guenther  <rguenther@suse.de>
2615
2616         PR tree-optimization/18754
2617         PR tree-optimization/34223
2618         * tree-pass.h (pass_complete_unrolli): Declare.
2619         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
2620         loop size before and after unconditionally of UL_NO_GROWTH in effect.
2621         Rewrite loop into loop closed SSA form if it is not already.
2622         (tree_unroll_loops_completely): Re-structure to iterate over
2623         innermost loops with intermediate CFG cleanups.
2624         Unroll outermost loops only if requested or the code does not grow
2625         doing so.
2626         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
2627         loops are available.
2628         (tree_vectorize): Instead do so here.
2629         (tree_complete_unroll): Also unroll outermost loops.
2630         (tree_complete_unroll_inner): New function.
2631         (gate_tree_complete_unroll_inner): Likewise.
2632         (pass_complete_unrolli): New pass.
2633         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
2634         uses outside of the loop.
2635         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
2636         form if it is available.  
2637         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
2638         * passes.c (init_optimization_passes): Schedule complete inner
2639         loop unrolling pass before the first CCP pass after final inlining.
2640
2641 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2642
2643         * targhooks.h (default_emutls_var_fields,
2644         default_emutls_var_init): Declare.
2645         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
2646         * target.h (struct gcc_target): Add struct emutls member.
2647         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
2648         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
2649         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
2650         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
2651         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
2652         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
2653         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
2654         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
2655         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
2656         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
2657         emit debug information.
2658         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
2659         * varasm.c: Include targhooks.h.
2660         (emutls_object_section, emutls_tmpl_section): New.
2661         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
2662         (EMUTLS_SEPARATOR): New.
2663         (prefix_name): New.
2664         (get_emutls_object_name): New.
2665         (default_emutls_var_fields): New, broken out of ...
2666         (get_emutls_object_type): ... here.  Adjust to use target hooks.
2667         (get_emutls_init_templ_addr): Adjust to use target hooks.
2668         (emutls_decl): Adjust to use target hooks.
2669         (emutls_finish): Likewise.
2670         (default_emutls_var_init): New, broken out of ...
2671         (assemble_variable): ... here.  Adjust to use target hooks.
2672         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
2673         SECCAT_EMUTLS_TMPL.
2674         * c-common.c (handle_section_attribute): Prevent overriding
2675         sections for emulated tls with special sections.
2676         * config/i386/i386.c (x86_64_elf_select_section): Add
2677         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
2678         (x86_64_elf_unique_section): Likewise.
2679         * config/vxworks.c: Include tree.h.
2680         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
2681         (vxworks_override_options): Set TLS scheme.
2682         * doc/tm.texi (Emulated TLS): New node.
2683
2684 2008-04-26  Simon Baldwin <simonb@google.com>
2685
2686         PR c/35652
2687         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
2688         with propagated string constants.
2689
2690 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
2691
2692         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
2693         constraint for operand 2 when operand 0 is memory operand.
2694         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
2695         operand 0 is memory operand.
2696         (fix_trunc<mode>_i387_with_temp): Ditto.
2697         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
2698         operand 2 when operand 1 is memory operand.
2699         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
2700         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
2701         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
2702         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
2703         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
2704         operands 2,3 and 4 when operand 1 is memory operand.
2705         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
2706         is memory operand.
2707         (fistdi2_floor_with_temp): Ditto.
2708         (fist<mode>2_floor_with_temp): Ditto.
2709         (fistdi2_ceil_with_temp): Ditto.
2710         (fist<mode>2_ceil_with_temp): Ditto.
2711         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
2712
2713 2008-04-26  David Daney  <ddaney@avtrex.com>
2714
2715         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
2716         unspec_volitile.
2717         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
2718         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2719         UNSPEC_UPDATE_GOT_VERSION): Renumber.
2720         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
2721         (compare_and_swap_12): New insn.
2722         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
2723         * config/mips/mips.c (mips_force_binary): New function.
2724         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
2725         (mips_expand_compare_and_swap_12): New function.
2726         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
2727
2728 2008-04-25  Jan Hubicka  <jh@suse.cz>
2729
2730         PR testsuite/35843
2731         * cfgexpand.c (pass_expand): Turn into RTL pass.
2732         * passes.c (execute_one_pass): Do pass typechecking after execution.
2733         * tree-pass.h (pass_expand): Turn into RTL pass.
2734
2735         * function.h (struct rtl_data): Move here fields
2736         accesses_prior_frames, calls_eh_return, saves_all_registers,
2737         has_nonlocal_goto, has_asm_statement, is_thunk,
2738         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
2739         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
2740         arg_pointer_save_area_init from struct function; turn into bool.
2741         (struct function): Move
2742         calls_eh_return, saves_all_registers, has_nonlocal_goto,
2743         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
2744         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
2745         tail_call_emit, arg_pointer_save_area_init
2746         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
2747         (current_function_returns_struct, current_function_returns_pcc_struct,
2748         current_function_calls_setjmp, current_function_calls_alloca,
2749         current_function_accesses_prior_frames,
2750         current_function_calls_eh_return, current_function_is_thunk,
2751         current_function_stdarg, current_function_profile,
2752         current_function_limit_stack, current_function_uses_pic_offset_table,
2753         current_function_uses_const_pool, current_function_has_nonlocal_label,
2754         current_function_saves_all_registers,
2755         current_function_has_nonlocal_goto,
2756         current_function_has_asm_statement): Remove accesor macros.
2757         * ra-conflict.c (global_conflicts): Update.
2758         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
2759         (suitable_for_tail_call_opt_p): Update.
2760         * builtins.c (expand_builtin_return_addr): Update.
2761         (expand_builtin_setjmp_setup): Update.
2762         (expand_builtin_nonlocal_goto): Update.
2763         * final.c (final_start_function): Update.
2764         (profile_function): Update.
2765         (leaf_function_p): Update.
2766         (only_leaf_regs_used): Update.
2767         * df-scan.c (df_get_exit_block_use_set): Update.
2768         * dojump.c (clear_pending_stack_adjust): Update.
2769         * tree-stdarg.c (gate_optimize_stdarg): Update.
2770         * gimple-low.c (lower_function_body): Update.
2771         * global.c (compute_regsets): Update.
2772         (global_alloc): Update.
2773         * dwarf2out.c (dwarf2out_begin_prologue): Update.
2774         * expr.c (expand_assignment): Update.
2775         * dse.c (dse_step0): Update.
2776         (dse_step1): Update.
2777         * c-decl.c (store_parm_decls): Update.
2778         * local-alloc.c (combine_regs): Update.
2779         (find_free_reg): Update.
2780         * function.c (assign_parms_augmented_arg_list): Update.
2781         (assign_parm_find_data_types): Update.
2782         (assign_parms): Update.
2783         (allocate_struct_function): Update.
2784         (expand_function_start): Update.
2785         (expand_function_end): Update.
2786         (get_arg_pointer_save_area): Update.
2787         (thread_prologue_and_epilogue_insns): Update.
2788         (rest_of_match_asm_constraints): Update.
2789         * stor-layout.c (variable_size): Update.
2790         * gcse.c (gcse_main): Update.
2791         (bypass_jumps): Update.
2792         * gimplify.c (gimplify_function_tree): Update.
2793         * calls.c (emit_call_1): Update.
2794         (expand_call): Update.
2795         * bt-load.c (compute_defs_uses_and_gen): Update.
2796         * except.c (sjlj_assign_call_site_values): Update.
2797         (sjlj_emit_function_enter): Update.
2798         (can_throw_external): Update.
2799         (set_nothrow_function_flags): Update.
2800         (expand_builtin_unwind_init): Update.
2801         (expand_eh_return): Update.
2802         (convert_to_eh_region_ranges): Update.
2803         (output_function_exception_table): Update.
2804         * emit-rtl.c (gen_tmp_stack_mem): Update.
2805         * cfgexpand.c (expand_used_vars): Update.
2806         (tree_expand_cfg): Update.
2807         * cfgcleanup.c (rest_of_handle_jump): Update.
2808         * explow.c (allocate_dynamic_stack_space): Update.
2809         * varasm.c (assemble_start_function): Update.
2810         (force_const_mem): Update.
2811         (mark_constant_pool): Update.
2812         * tree-optimize.c (tree_rest_of_compilation): Update.
2813         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
2814         * tree-cfg.c (notice_special_calls): Update.
2815         (is_ctrl_altering_stmt): Update.
2816         (tree_can_make_abnormal_goto): Update.
2817         (tree_purge_dead_abnormal_call_edges): Update.
2818         * config/alpha/predicates.md: Update.
2819         * config/alpha/alpha.c (alpha_sa_mask): Update.
2820         (alpha_sa_size): Update.
2821         (alpha_does_function_need_gp): Update.
2822         (alpha_expand_prologue): Update.
2823         (alpha_start_function): Update.
2824         (alpha_output_function_end_prologue): Update.
2825         (alpha_expand_epilogue): Update.
2826         * config/frv/frv.c (frv_stack_info): Update.
2827         (frv_expand_epilogue): Update.
2828         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
2829         (s390_register_info): Update.
2830         (s390_frame_info): Update.
2831         (s390_init_frame_layout): Update.
2832         (s390_can_eliminate): Update.
2833         (save_gprs): Update.
2834         * config/spu/spu.c (spu_split_immediate): Update.
2835         (need_to_save_reg): Update.
2836         (spu_expand_prologue): Update.
2837         (spu_expand_epilogue): Update.
2838         * config/sparc/sparc.md: Update.
2839         * config/sparc/sparc.c (eligible_for_return_delay): Update.
2840         (sparc_tls_got): Update.
2841         (legitimize_pic_address): Update.
2842         (sparc_emit_call_insn): Update.
2843         (sparc_expand_prologue): Update.
2844         (output_return): Update.
2845         (print_operand): Update.
2846         (sparc_function_ok_for_sibcall): Update.
2847         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
2848         * config/m32r/m32r.md: Update.
2849         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
2850         (m32r_compute_frame_size): Update.
2851         (m32r_expand_prologue): Update.
2852         (m32r_expand_epilogue): Update.
2853         (m32r_legitimize_pic_address): Update.
2854         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
2855         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
2856         * config/i386/i386.c (ix86_frame_pointer_required): Update.
2857         (gen_push): Update.
2858         (ix86_save_reg): Update.
2859         (ix86_compute_frame_layout): Update.
2860         (ix86_expand_prologue): Update.
2861         (ix86_expand_epilogue): Update.
2862         * config/sh/sh.c (output_stack_adjust): Update.
2863         (calc_live_regs): Update.
2864         (sh5_schedule_saves): Update.
2865         (sh_expand_prologue): Update.
2866         (sh_expand_epilogue): Update.
2867         (sh_setup_incoming_varargs): Update.
2868         (sh_allocate_initial_value): Update.
2869         (sh_get_pr_initial_val): Update.
2870         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
2871         * config/sh/sh.md (label:): Update.
2872         * config/avr/avr.c (out_movhi_mr_r): Update.
2873         * config/crx/crx.h (enum): Update.
2874         * config/xtensa/xtensa.h (along): Update.
2875         * config/stormy16/stormy16.c Update.
2876         (xstormy16_compute_stack_layout): Update.
2877         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
2878         (fr30_expand_prologue): Update.
2879         * config/cris/cris.c (cris_conditional_register_usage): Update.
2880         (cris_reg_saved_in_regsave_area): Update.
2881         (cris_initial_frame_pointer_offset): Update.
2882         (cris_simple_epilogue): Update.
2883         (cris_expand_prologue): Update.
2884         (cris_expand_epilogue): Update.
2885         (cris_expand_pic_call_address): Update.
2886         (cris_asm_output_symbol_ref): Update.
2887         (cris_asm_output_label_ref): Update.
2888         * config/cris/cris.md Update.
2889         * config/iq2000/iq2000.c (compute_frame_size): Update.
2890         (iq2000_expand_epilogue): Update.
2891         * config/mt/mt.h (save_direction): Update.
2892         * config/mn10300/mn10300.c (mn10300_function_value): Update.
2893         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
2894         (ia64_secondary_reload_class): Update.
2895         * config/m68k/m68k.c (m68k_save_reg): Update.
2896         (m68k_expand_prologue): Update.
2897         (m68k_expand_epilogue): Update.
2898         (legitimize_pic_address): Update.
2899         * config/rs6000/rs6000.c (rs6000_got_register): Update.
2900         (first_reg_to_save): Update.
2901         (first_altivec_reg_to_save): Update.
2902         (compute_vrsave_mask): Update.
2903         (compute_save_world_info): Update.
2904         (rs6000_stack_info): Update.
2905         (spe_func_has_64bit_regs_p): Update.
2906         (rs6000_ra_ever_killed): Update.
2907         (rs6000_emit_eh_reg_restore): Update.
2908         (rs6000_emit_allocate_stack): Update.
2909         (rs6000_emit_prologue): Update.
2910         (rs6000_emit_epilogue): Update.
2911         (rs6000_output_function_epilogue): Update.
2912         (output_profile_hook): Update.
2913         (rs6000_elf_declare_function_name): Update.
2914         * config/rs6000/rs6000.h (rs6000_args): Update.
2915         * config/rs6000/rs6000.md: Update.
2916         * config/mcore/mcore.c (mcore_expand_prolog): Update.
2917         * config/arc/arc.c (arc_output_function_epilogue): Update.
2918         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
2919         * config/darwin.c (machopic_function_base_name): Update.
2920         * config/score/score3.c (score3_compute_frame_size): Update.
2921         (rpush): Update.
2922         (rpop): Update.
2923         (score3_epilogue): Update.
2924         * config/score/score7.c (score7_compute_frame_size): Update.
2925         (score7_prologue): Update.
2926         (score7_epilogue): Update.
2927         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
2928         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
2929         * config/arm/arm.c (use_return_insn): Update.
2930         (require_pic_register): Update.
2931         (arm_load_pic_register): Update.
2932         (arm_compute_save_reg0_reg12_mask): Update.
2933         (arm_compute_save_reg_mask): Update.
2934         (thumb1_compute_save_reg_mask): Update.
2935         (output_return_instruction): Update.
2936         (arm_output_function_prologue): Update.
2937         (arm_output_epilogue): Update.
2938         (arm_get_frame_offsets): Update.
2939         (arm_expand_prologue): Update.
2940         (thumb_pushpop): Update.
2941         (thumb_exit): Update.
2942         (thumb1_expand_prologue): Update.
2943         (thumb1_expand_epilogue): Update.
2944         (arm_unwind_emit): Update.
2945         (arm_output_fn_unwind): Update.
2946         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
2947         * config/arm/arm.md: Update.
2948         * config/pa/pa.md: Update.
2949         * config/pa/pa.c (legitimize_pic_address): Update.
2950         (compute_frame_size): Update.
2951         (hppa_expand_prologue): Update.
2952         (hppa_expand_epilogue): Update.
2953         (borx_reg_operand): Update.
2954         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
2955         (HARD_REGNO_RENAME_OK): Update.
2956         * config/mips/mips.c (mips_global_pointer): Update.
2957         (mips_save_reg_p): Update.
2958         (mips_compute_frame_info): Update.
2959         (mips_frame_pointer_required): Update.
2960         (mips_expand_prologue): Update.
2961         (mips_expand_epilogue): Update.
2962         (mips_can_use_return_insn): Update.
2963         (mips_reorg_process_insns): Update.
2964         * config/v850/v850.c (compute_register_save_size): Update.
2965         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
2966         * config/mmix/mmix.c (along): Update.
2967         (mmix_expand_epilogue): Update.
2968         * config/bfin/bfin.c (legitimize_pic_address): Update.
2969         (must_save_p): Update.
2970         (stack_frame_needed_p): Update.
2971         (add_to_reg): Update.
2972         (bfin_expand_prologue): Update.
2973         * stmt.c (expand_asm_operands): Update.
2974         * reload1.c (reload): Update.
2975         (init_elim_table): Update.
2976
2977 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
2978         
2979         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
2980         
2981 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
2982
2983         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
2984         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
2985         (mov<mode>): Removed.
2986         (*movv4sf_internal): Likewise.
2987         (*movv2df_internal): Likewise.
2988
2989 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
2990
2991         * config.gcc (crx-*-elf): Remove deprecation.
2992
2993 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
2994
2995         * config/i386/cygming-crtend.c (register_frame_ctor): Register
2996         __gcc_deregister_frame with atexit.
2997         (deregister_frame_dtor): Remove.
2998
2999 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3000             Nathan Sidwell  <nathan@codesourcery.com>
3001
3002         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3003         (misel): Likewise.
3004         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3005         (rs6000_isel): Likewise.
3006         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3007         (rs6000_isel): New variable.
3008         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3009
3010 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3011
3012         PR c++/35758
3013         * c-common.c (handle_vector_size_attribute): Call
3014         lang_hooks.types.reconstruct_complex_type instead of
3015         reconstruct_complex_type.
3016         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3017         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3018         * langhooks.h (struct lang_hooks_for_types): Add
3019         reconstruct_complex_type hook.
3020         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3021         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3022
3023 2008-04-24  Richard Guenther  <rguenther@suse.de>
3024
3025         * c-common.h (check_builtin_function_arguments): Declare.
3026         * c-common.c (validate_nargs): New function.
3027         (check_builtin_function_arguments): Likewise.
3028         * c-typeck.c (build_function_call): Call
3029         check_builtin_function_arguments.
3030         * builtins.c (fold_builtin_classify): Remove error reporting code.
3031         (fold_builtin_unordered_cmp): Likewise.
3032         (fold_builtin_1): Likewise.
3033         (fold_builtin_n): Likewise.
3034
3035 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3036
3037         PR tree-optimization/36008
3038         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3039         the original op1, rather than delta by step.
3040
3041 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
3042             Sebastian Pop  <sebastian.pop@amd.com>
3043
3044         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3045         eliminate_local_variables_stmt, eliminate_local_variables,
3046         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3047         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3048         of code delimited by two edges in the CFG.
3049         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3050         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3051         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
3052         the case of parallelisation of reductions.
3053         (expr_invariant_in_region_p): New.
3054
3055         * tree-flow.h (gather_blocks_in_sese_region): Declared.
3056         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3057
3058 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3059             Richard Guenther  <rguenther@suse.de>
3060
3061         PR tree-optimization/36034
3062         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3063         incapable of dealing with loads with gaps.
3064
3065 2008-04-24  Rafael Espindola  <espindola@google.com>
3066
3067         * tree-flow.h (vrp_evaluate_conditional): Change signature.
3068         * tree-ssa-propagate.c (fold_predicate_in): Update call to
3069         vrp_evaluate_conditional.
3070         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
3071         (vrp_evaluate_conditional): Split the cond argument.
3072         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
3073         (simplify_stmt_for_jump_threading): Update call to
3074         vrp_evaluate_conditional.
3075
3076 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3077
3078         PR tree-optimization/35982
3079         * tree-vect-analyze.c (vect_check_interleaving): Check that the
3080         interleaved data-refs are of the same type.
3081
3082 2008-04-24  Danny Smith  <dannysmith@users.net>
3083
3084         * c-format.c (check_format_info_main): Use strncmp rather than a
3085         magic prefix to handle multichar length specs.
3086         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
3087         Don't prefix "I64" and "I32" with '\0'.
3088
3089 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3090
3091         PR target/36015
3092         * config/i386/i386.c (init_cumulative_args): Don't pass anything
3093         in registers for -m32 only if stdarg_p (fntype).
3094
3095 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
3096
3097         PR rtl-optimization/36006
3098         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
3099         temp to op0 in order to avoid invalid rtx sharing.
3100
3101 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
3102
3103         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
3104         check TREE_INVARIANT.
3105         * tree-gimple.c (is_gimple_address): New.
3106         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
3107         * tree-gimple.h (is_gimple_address): New.
3108         * tree.h (decl_address_invariant_p): New.
3109         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
3110         (build_string): Likewise.
3111         (decl_address_invariant_p): New, from is_gimple_invariant_address.
3112         (tree_invariant_p_1): Likewise.
3113         (save_expr): Use it.
3114         (tree_invariant_p): New.
3115         (skip_simple_arithmetic): Use it.
3116         (stabilize_reference_1): Use it.
3117         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
3118         simplify.
3119         (build1_stat): Drop code to compute TREE_INVARIANT.
3120         (build2_stat): Drop code to compute TREE_INVARIANT.
3121         (build3_stat): Drop code to compute TREE_INVARIANT.
3122         (build4_stat): Drop code to compute TREE_INVARIANT.
3123         (build5_stat): Drop code to compute TREE_INVARIANT.
3124         (build7_stat): Drop code to compute TREE_INVARIANT.
3125         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
3126         * tree.h (struct tree_base): Remove invariant_flag.
3127         (TREE_INVARIANT): Remove.
3128         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
3129         (fold_builtin_expect): Check TREE_CONSTANT.
3130         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
3131         * c-tree.h (c_expr_to_decl): Drop third parameter.
3132         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
3133         (build_c_cast): Don't set TREE_INVARIANT.
3134         (pop_init_level): Don't set TREE_INVARIANT.
3135         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
3136         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
3137         TREE_CONSTANT.
3138         (gimplify_init_constructor): Don't set TREE_INVARIANT.
3139         (gimplify_addr_expr): Adjust comment.
3140         * tree-mudflap.c (mf_build_string):
3141         * print-tree.c (print_node): Don't print TREE_INVARIANT.
3142         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
3143         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
3144         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
3145         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
3146         * langhooks.h (struct lang_hooks): Drop third parameter from
3147         expr_to_decl.
3148
3149 2008-04-23  Richard Guenther  <rguenther@suse.de>
3150
3151         PR tree-optimization/27799
3152         PR tree-optimization/32921
3153         PR tree-optimization/32624
3154         * tree-ssa-structalias.c (merge_smts_into): Only merge the
3155         SMTs aliases and the tag itself into the solution.
3156         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
3157         merge the points-to solution back into the SMT aliases.
3158         (may_alias_p): Use alias_set_subset_of instead of
3159         aliases_conflict_p.  A pointer which points to
3160         memory with alias set zero may access any variable.
3161
3162 2008-04-23  Richard Guenther  <rguenther@suse.de>
3163
3164         * alias.c (alias_set_subset_of): Correctly handle asking
3165         if zero is a subset of an alias set with zero child.
3166         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
3167         (compute_flow_insensitive_aliasing): Correctly walk all
3168         pointers.  Do not unnecessarily union sets.
3169
3170 2008-04-23  Richard Guenther  <rguenther@suse.de>
3171
3172         PR middle-end/36021
3173         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
3174
3175 2008-04-22  Tomas Bily  <tbily@suse.cz>
3176
3177         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
3178         unreachable case.
3179         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
3180         NON_LVALUE_EXPR.
3181         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3182         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3183         * tree-inline.c (estimate_num_insns_1): Likewise.
3184         * varasm.c (const_hash_1, compare_constant, copy_constant)
3185         (compute_reloc_for_constant, output_addressed_constants): Likewise.
3186         * emit-rtl.c (component_ref_for_mem_expr)
3187         (set_mem_attributes_minus_bitpos): Likewise.
3188         * expr.c (highest_pow2_factor, expand_expr_real_1, )
3189         (is_aligning_offset): Likewise.
3190         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
3191         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3192         * dojump.c (do_jump): Likewise.
3193         * builtins.c (get_pointer_alignment, get_memory_rtx)
3194         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
3195         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
3196
3197 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
3198
3199         PR rtl-optimization/36017
3200         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
3201         expanding the library call.
3202
3203 2008-04-22  Ian Lance Taylor  <iant@google.com>
3204
3205         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
3206         than size_in_bytes.
3207
3208 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
3209
3210         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
3211         of LR/CTR moves for Power6.
3212
3213 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
3214
3215         PR middle-end/36003
3216         * passes.c (init_optimization_passes): Remove
3217         pass_fast_rtl_byte_dce.
3218         
3219 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
3220
3221         PR target/29096
3222         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
3223         builtin functions to generate faster code.
3224         (_mm_cvtpu16_ps): Ditto.
3225         (_mm_cvtpi32x2_ps): Ditto.
3226
3227 2008-04-22  Nick Clifton  <nickc@redhat.com>
3228
3229         * common.opt (ftree-loop-distribution): Add Optimization
3230         attribute.
3231
3232         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
3233         (frv_expand_builtin_va_start): Likewise.
3234
3235         * config/arm/arm.c (thumb_find_work_register): Fix location of
3236         argument register count.
3237
3238 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3239
3240         Support scheduling for ColdFire V1 and V3 microarchitecture.
3241         Improve scheduling of multiplication instructions.
3242
3243         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
3244         (mac): New instruction attribute.
3245         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
3246         (m68k_sched_mac): New variable.
3247         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
3248         Handle cfv1 and cfv3.
3249         (max_insn_size): New static variable.
3250         (struct _sched_ib): New type.
3251         (sched_ib): New static variable.
3252         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
3253         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
3254         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
3255         Update.
3256         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
3257         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
3258         new variables.  Update.
3259         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3260         Add modeling of cfv3 instruction buffer.  Update.
3261         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
3262         * config/m68k/m68k.h (TUNE_CFV3): New macro.
3263         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
3264         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
3265         a particular reservation applies to.
3266         (type2): Reorganize attribute values.  Rename alu to alu_reg,
3267         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
3268         to mul_l and mul_w.
3269         (cf_ib_*): Simplify description of instruction buffer.
3270         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
3271         (cf_mem): Split into cf_mem1 and cf_mem2.
3272         (cf_v2_move_??): Rename to cfv12_alu_??.
3273         (cf_v2_move_l_??): Rename to cfv12_omove_??.
3274         (cf_v2_mul_??): Remove reservations.
3275         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
3276         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
3277         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
3278         appropriate place.
3279         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
3280         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
3281         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
3282         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
3283         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
3284         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
3285         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
3286         expansions of the above reservations for instructions of sizes
3287         1, 2 and 3 words.
3288
3289 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3290
3291         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
3292
3293 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
3294
3295         * coverage.c: Include tree-pass.h.
3296         (coverage_counter_alloc): Print da_file_name to the dump file.
3297
3298 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
3299
3300         * sbitmap.c (sbitmap_range_empty_p): New function.
3301         * sbitmap.h (sbitmap_range_empty_p): New function.
3302         * bitmap.h: Now includes obstack.h.
3303
3304 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3305             Kenneth Zadeck  <zadeck@naturalbridge.com>
3306
3307         * dbgcnt.def (ra_byte_scan): Added.
3308         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
3309         when the last hit happens for a counter.  
3310         * timevar.def (TV_DF_BYTE_LR): New variable.
3311         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
3312         * passes.c (pass_fast_rtl_byte_dce): New pass.
3313         * fwprop.c (update_df): Added mode to call df_ref_create.
3314         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3315         DF_REF_EXTRACT_OFFSET.
3316         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
3317         DF_BYTE_LR_OUT, df_byte_lr): New macro.
3318         (df_mm): New enum.
3319         (df_ref_extract): Added mode field.
3320         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
3321         DF_REF_EXTRACT_OFFSET.
3322         (DF_REF_EXTRACT_MODE): New macro.
3323         (df_byte_lr_bb_info): New structure.
3324         (df_print_byte_regset, df_compute_accessed_bytes, 
3325         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
3326         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
3327         df_byte_lr_simulate_uses,
3328         df_byte_lr_simulate_artificial_refs_at_top,
3329         df_byte_lr_simulate_artificial_refs_at_end,
3330         df_compute_accessed_bytes): New function.
3331         (df_ref_create): Add parameter.
3332         (df_byte_lr_get_bb_info): New inline function.
3333         * df-scan.c (df_ref_record, df_uses_record,
3334         df_ref_create_structure): Added mode parameter.
3335         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
3336         df_defs_record, df_uses_record, df_get_conditional_uses,
3337         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
3338         df_entry_block_defs_collect, df_exit_block_uses_collect):
3339         Added mode parameter to calls to df_ref_record, df_uses_record,
3340         df_ref_create_structure.
3341         (df_ref_equal_p, df_ref_compare): Added test for modes.
3342         (df_ref_create_structure): Added code to set mode.  Renamed
3343         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3344         DF_REF_EXTRACT_OFFSET.
3345         * df-core.c (df_print_byte_regset): New function.
3346         * df-byte-scan.c: New file.
3347         * df-problems.c (df_rd_transfer_function): Removed unnecessary
3348         calls to BITMAP_FREE.  
3349         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
3350         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
3351         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
3352         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
3353         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
3354         df_byte_lr_local_compute, df_byte_lr_init,
3355         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
3356         df_byte_lr_transfer_function, df_byte_lr_free, 
3357         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
3358         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
3359         df_byte_lr_simulate_uses,
3360         df_byte_lr_simulate_artificial_refs_at_top,
3361         df_byte_lr_simulate_artificial_refs_at_end): New function.
3362         * dce.c (byte_dce_process_block): New function.
3363         (dce_process_block): au is now passed in rather than computed
3364         locally.  Changed loops that look at artificial defs to not look
3365         for conditional or partial ones, because there never are any.  
3366         (fast_dce): Now is able to drive byte_dce_process_block or 
3367         dce_process_block depending on the kind of dce being done.
3368         (rest_of_handle_fast_dce): Add parameter to fast_dce.
3369         (rest_of_handle_fast_byte_dce): New function.
3370         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
3371         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
3372
3373 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
3374
3375         PR fortran/35019
3376         * gcc.h: Added fortran options that take arguments to
3377         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
3378         macros.