OSDN Git Service

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