OSDN Git Service

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