OSDN Git Service

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