OSDN Git Service

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