OSDN Git Service

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