OSDN Git Service

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