OSDN Git Service

2008-05-12 Samuel Tardieu <sam@rfc1149.net>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
2
3         PR ada/36001
4         * Makefile.in: Substitute GNATMAKE and GNATBIND.
5         * configure.ac: Add call to ACX_PROG_GNAT.
6
7 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
8
9         * optc-gen.awk: Fix comment typo.
10
11 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
12
13         * pretty-print.c (pp_integer_with_precision): Use
14         HOST_LONG_LONG_FORMAT.
15
16 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
17
18         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
19                 
20 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
21
22         * config/i386/i386.c (bdesc_ptest): Removed.
23         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
24         (bdesc_args): Add __builtin_ia32_ptestz128,
25         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
26         (ix86_init_mmx_sse_builtins): Updated.
27         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
28         (ix86_expand_builtin): Updated.
29
30 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
31
32         * tree-cfg.c (valid_fixed_convert_types_p): New function.
33         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
34
35 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
36
37         * value-prof.c (interesting_stringop_to_profile): Do not
38         return early for BUILT_IN_MEMPCPY.
39
40 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
41
42         * calls.c (expand_call): Don't use callgraph to increase
43         preferred_stack_boundary.
44
45         * cgraph.h (cgraph_rtl_info): Use unsigned on
46         preferred_incoming_stack_boundary.
47
48         * final.c (rest_of_clean_state): Use unsigned on
49         preferred_stack_boundary.
50
51 2008-05-09  Tom Tromey  <tromey@redhat.com>
52
53         PR preprocessor/22231:
54         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
55         proceeding.
56
57 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
58
59         PR tree-optimization/36129
60         * tree-ssa-cpp.c: Include value-prof.h.
61         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
62         built-in function was folded to a constant.
63         * Makefile.in (tree-ssa-cpp.c): Depend on value-prof.h
64
65 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
66             Sebastian Pop  <sebastian.pop@amd.com>
67
68         * tree-scalar-evolution.c: Document instantiate_scev.
69         (instantiate_parameters_1): Renamed instantiate_scev_1.
70         Don't use the same loop for instantiation_loop and evolution_loop.
71         (instantiate_scev): New.
72         (instantiate_parameters): Moved...
73         (resolve_mixers): Update call to instantiate_scev_1 to pass the
74         same loop twice.  Maintains the semantics for this function.
75         * tree-scalar-evolution.h (instantiate_scev): Declare.
76         (instantiate_parameters): ...here.  Now static inline.
77         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
78         instead of resolve_mixers.
79
80 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
81
82         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
83
84 2008-05-09  Tomas Bily  <tbily@suse.cz>
85
86         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
87         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
88         * tree-ssa-structalias.c (get_constraint_for): Likewise.
89         * c-common.c (c_common_truthvalue_conversion): Likewise.
90         * tree-object-size.c (compute_object_offset): Likewise.
91         * tree-inline.c (estimate_num_insns_1): Likewise.
92         * varasm.c (const_hash_1, compare_constant, copy_constant)
93         (compute_reloc_for_constant, output_addressed_constants)
94         (initializer_constant_valid_p): Likewise.
95         * c-omp.c (check_omp_for_incr_expr): Likewise.
96         * gimplify.c (gimplify_expr): Likewise.
97         * c-typeck.c (c_finish_return): Likewise.
98         * tree-vectorizer.c (supportable_widening_operation)
99         (supportable_narrowing_operation): Likewise.
100         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
101         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
102         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
103         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
104         (descr_info_loc): Likewise.
105         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
106         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
107         (fold_unary): Likewise.
108         * builtins.c (get_pointer_alignment): Likewise.
109         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
110         (instantiate_parameters_1): Likewise.
111         * tree.c (expr_align, stabilize_reference): Likewise.
112         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
113         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
114         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
115         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
116         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
117         * c-common.c (c_alignof_expr, check_function_arguments_recurse): Likewise.
118         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
119         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
120         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
121         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
122         (forward_propagate_comparison)
123         (tree_ssa_forward_propagate_single_use_vars): Likewise.
124         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
125         * emit-rtl.c (component_ref_for_mem_expr)
126         (set_mem_attributes_minus_bitpos): Likewise.
127         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
128         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr): Likewise.
129         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
130         (build_function_call, pointer_diff, build_compound_expr)
131         (c_finish_return): Likewise.
132         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
133         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1): Likewise.
134         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
135         * expr.c (is_aligning_offset): Likewise.
136         * tree-ssa-alias.c (is_escape_site): Likewise.
137         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
138         (check_all_va_list_escapes): Likewise.
139         * tree-ssa-loop-ivopts.c (determine_base_object)
140         (determine_common_wider_type): Likewise.
141         * dojump.c (do_jump): Likewise.
142         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
143         * tree-gimple.c (is_gimple_cast): Likewise.
144         * fold-const.c (decode_field_reference, )
145         (fold_sign_changed_comparison, fold_unary, fold_comparison)
146         (fold_binary): Likewise.
147         * tree-ssa-alias-warnings.c (find_alias_site_helper)
148         (already_warned_in_frontend_p): Likewise.
149         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
150         * tree.c (really_constant_p, get_unwidened): Likewise.
151         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
152         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
153         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1): Likewise.
154         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use CONVERT_EXPR_P.
155         (CONVERT_EXPR_P): Define.
156         (CASE_CONVERT): Define.
157         
158 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
159
160         PR middle-end/36117
161         * dce.c (deletable_insn_p): Do not delete calls if 
162         df_in_progress.
163         (delete_unmarked_insns): When deleting a call, call 
164         delete_unreachable_blocks.
165         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
166         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed
167         doc.
168         
169 2008-05-08  Richard Guenther  <rguenther@suse.de>
170
171         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
172         (-ftree-salias): Likewise.
173         (salias-max-implicit-fields): Remove param documentation.
174         (salias-max-array-elements): Likewise.
175         * tree-pass.h (pass_create_structure_vars): Remove.
176         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
177         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
178         * tree-ssa-alias.c (create_structure_vars): Remove.
179         (gate_structure_vars): Likewise.
180         (pass_create_structure_vars): Likewise.
181         (gate_build_alias): Likewise.
182         (pass_build_alias): Adjust to run always and dump the function.
183         * common.opt (ftree-salias): Hide.
184         * passes.c (init_optimization_passes): Remove
185         pass_create_structure_vars, adjust comment.
186         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
187         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
188         * opts.c (decode_options): Do not set flag_tree_salias.
189         (common_handle_option): Add OPT_ftree_salias to the backward
190         compatibility section.
191
192 2008-05-08  Richard Guenther  <rguenther@suse.de>
193
194         * tree-flow-inline.h (var_can_have_subvars): Move ...
195         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
196         * tree-flow.h (var_can_have_subvars): Remove.
197         (push_fields_onto_fieldstack): Remove.
198         (sort_fieldstack): Likewise.
199         (struct fieldoff): Move ...
200         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
201         alias_set and base_for_components fields.
202         (sort_fieldstack): Make static.
203         (push_fields_onto_fieldstack): Likewise.  Remove code that
204         handles anything but RECORD_TYPEs.  Remove alias_set and
205         base_for_components handling.
206         (create_variable_info_for): Adjust.
207
208 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
209
210         * common.opt (Wframe-larger-than=): Shorten the help message
211         to one line.
212         * doc/invoke.texi (Wframe-larger-than=): Add more description.
213
214 2008-05-08  Rafael Espindola  <espindola@google.com>
215
216         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
217         trap.
218         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
219         trap and that both operands are gimple values.
220         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
221         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
222         is a fp operation.
223
224 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
225
226         * read-rtl.c (join_c_conditions): Return the first string if the
227         two strings are equal.
228
229 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
230
231         * gensupport.h (pred_data): Add a "num_codes" field.
232         (add_predicate_code): Declare.
233         * gensupport.c (add_predicate_code): New function.
234         (std_pred_table): Add an "allows_const_p" field.
235         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
236         Remove the (incomplete) list of such codes from the codes field.
237         (init_predicate_table): Use add_predicate_code.  Add all
238         RTX_CONST_OBJs if allows_const_p is true.
239         * genrecog.c (process_define_predicate): Use add_predicate_code.
240
241 2008-05-08  David Daney  <ddaney@avtrex.com>
242             Richard Sandiford  <rsandifo@nildram.co.uk>
243         
244         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
245         special case of constant zero operands.
246         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
247         old and new values.  Special case constant zero values.
248         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
249         fails.
250         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
251         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
252
253 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
254
255         PR target/36090
256         * simplify-rtx.c (simplify_plus_minus): Create CONST of
257         similar RTX_CONST_OBJ before CONST_INT.
258
259 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
260
261         * stmt.c (expand_stack_restore): Change sa mode if needed.
262
263 2008-05-08  Richard Guenther  <rguenther@suse.de>
264
265         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
266         return type to bool.
267         (ix86_sol10_return_in_memory): Likewise.
268         (ix86_i386elf_return_in_memory): Likewise.
269         (ix86_i386interix_return_in_memory): Likewise.
270         * config/i386/i386.c (ix86_return_in_memory): Likewise.
271         (ix86_sol10_return_in_memory): Likewise.
272         (ix86_i386elf_return_in_memory): Likewise.
273         (ix86_i386interix_return_in_memory): Likewise.
274
275 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
276
277         PR bootstrap/36180
278         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
279         fndecl argument.
280         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
281         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
282         declared in front.
283
284 2008-05-08  Richard Guenther  <rguenther@suse.de>
285
286         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
287         * tree-data-ref.h (struct dr_alias): Remove subvars field.
288         (DR_SUBVARS): Remove.
289         * tree-dfa.c (dump_subvars_for): Remove.
290         (debug_subvars_for): Likewise.
291         (dump_variable): Do not dump subvars.
292         (remove_referenced_var): Do not remove subvars.
293         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
294         (lookup_subvars_for_var): Remove.
295         (get_subvars_for_var): Likewise.
296         (get_subvars_at): Likewise.
297         (get_first_overlapping_subvar): Likewise.
298         (overlap_subvar): Likewise.
299         * tree-flow.h (subvar_t): Remove.
300         (struct var_ann_d): Remove subvars field.
301         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
302         argument.  Remove special handling of SFTs.
303         (compute_tag_properties): Likewise.
304         (set_initial_properties): Likewise.
305         (compute_call_clobbered): Likewise.
306         (count_mem_refs): Likewise.
307         (compute_memory_partitions): Likewise.
308         (compute_flow_insensitive_aliasing): Likewise.
309         (setup_pointers_and_addressables): Likewise.
310         (new_type_alias): Likewise.
311         (struct used_part): Remove.
312         (used_portions): Likewise.
313         (struct used_part_map): Likewise.
314         (used_part_map_eq): Likewise.
315         (used_part_map_hash): Likewise.
316         (free_used_part_map): Likewise.
317         (up_lookup): Likewise.
318         (up_insert): Likewise.
319         (get_or_create_used_part_for): Likewise.
320         (create_sft): Likewise.
321         (create_overlap_variables_for): Likewise.
322         (find_used_portions): Likewise.
323         (create_structure_vars): Likewise.
324         * tree.def (STRUCT_FIELD_TAG): Remove.
325         * tree.h (MTAG_P): Adjust.
326         (struct tree_memory_tag): Remove base_for_components and
327         unpartitionable flags.
328         (struct tree_struct_field_tag): Remove.
329         (SFT_PARENT_VAR): Likewise.
330         (SFT_OFFSET): Likewise.
331         (SFT_SIZE): Likewise.
332         (SFT_NONADDRESSABLE_P): Likewise.
333         (SFT_ALIAS_SET): Likewise.
334         (SFT_UNPARTITIONABLE_P): Likewise.
335         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
336         (union tree_node): Remove sft field.
337         * alias.c (get_alias_set): Remove special handling of SFTs.
338         * print-tree.c (print_node): Remove handling of SFTs.
339         * tree-dump.c (dequeue_and_dump): Likewise.
340         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
341         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
342         * tree-predcom.c (set_alias_info): Do not set subvars.
343         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
344         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
345         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
346         (add_vars_for_offset): Remove.
347         (add_virtual_operand): Remove special handling of SFTs.
348         (add_call_clobber_ops): Likewise.
349         (add_call_read_ops): Likewise.
350         (get_asm_expr_operands): Likewise.
351         (get_modify_stmt_operands): Likewise.
352         (get_expr_operands): Likewise.
353         (add_to_addressable_set): Likewise.
354         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
355         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
356         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not
357         set subvars.
358         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
359         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
360         (tree_node_structure): Likewise.
361         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
362         handling of SFTs.
363         (find_what_p_points_to): Likewise.
364
365 2008-05-08  Sa Liu  <saliu@de.ibm.com>
366
367         * config/spu/spu.md: Fixed subti3 pattern.
368
369 2008-05-08  Richard Guenther  <rguenther@suse.de>
370
371         PR middle-end/36154
372         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
373         sure to create a representative for trailing arrays for PTA.
374
375 2008-05-08  Richard Guenther  <rguenther@suse.de>
376
377         PR middle-end/36172
378         * fold-const.c (operand_equal_p): Two objects which types
379         differ in pointerness are not equal.
380
381 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
382
383         * calls.c (compute_argument_block_size): Add argument tree fndecl.
384         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
385         (emit_library_call_value_1): Add new variable fndecl initialized by
386         NULL_TREE. It should be the decl type of orgfun, but this information
387         seems not to be available here, so it uses the default calling abi.
388         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
389         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
390         by TARGET_RETURN_IN_MEMORY.
391         * config/i386/i386-interix.h: Likewise.
392         * config/i386/i386.h: Likewise.
393         * config/i386/i386elf.h: Likewise.
394         * config/i386/ptx4-i.h: Likewise.
395         * config/i386/sol2-10.h: Likewise.
396         * config/i386/sysv4.h: Likewise.
397         * config/i386/vx-common.h: Likewise.
398         * config/cris/cris.h: Removed #if 0 clause.
399         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
400         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
401         argument.
402         (ix86_sol10_return_in_memory): Likewise.
403         (ix86_i386elf_return_in_memory): New.
404         (ix86_i386interix_return_in_memory): New.
405         * config/mt/mt-protos.h (mt_return_in_memory): New.
406         * config/mt/mt.c: Likewise.
407         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
408         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
409         * config/bfin/bfin.h: Likewise.
410         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
411         argument.
412         * config/bfin/bfin.c: Likewise.
413         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
414         * config/alpha/unicosmk.h: Likewise.
415         * config/i386/cygming.h: Likewise.
416         * config/iq2000/iq2000.h: Likewise.
417         * config/mips/mips.h: Likewise.
418         * config/mn10300/mn10300.h: Likewise.
419         * config/rs6000/rs6000.h: Likewise.
420         * config/score/score.h: Likewise.
421         * config/spu/spu.h: Likewise.
422         * config/v850/v850.h: Likewise.
423         * defaults.h: Likewise.
424         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
425         * expr.c (emit_block_move): Adjust use of
426         OUTGOING_REG_PARM_STACK_SPACE.
427         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
428         OUTGOING_REG_PARM_STACK_SPACE.
429         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
430
431 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
432
433         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
434         on OMP_RETURN for OMP_FOR.
435
436         PR debug/35896
437         * dwarf2out.c (dw_expand_expr, common_check): Removed.
438         (fortran_common): New function.
439         (gen_variable_die): Call fortran_common instead of common_check,
440         adjust for it returning tree instead of rtx.  Formatting.
441
442 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
443
444         PR rtl/7335
445         PR rtl/33826
446         * see.c (see_copy_insn): Copy new pure const attributes for new call.
447         * c-decl.c (merge_decls): Ditto.
448         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
449         to RTL_CONST_OR_PURE_CALL_P.
450         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
451         Initialized DECL_LOOPING_CONST_PURE.
452         (process_call_operands): Set tree_side_effects properly.
453         * tree.h (TREE_READONLY_DECL_P): Removed.
454         (DECL_IS_PURE): Renamed to DECL_PURE_P.
455         (DECL_LOOPING_OR_CONST_P): New macro.
456         (struct tree_function_decl): Added looping_const_or_pure_p.
457         (ECF_*) Renumbered.
458         (ECF_LOOPING_OR_CONST_P): New macro.
459         * rtlanal.c (pure_const_p): Removed.
460         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
461         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
462         to RTL_CONST_CALL_P.
463         * ipa-pure-const.c (pure_const_state_e): Added looping field.
464         (check_decl, check_tree, check_call, scan_function): Initialize
465         looping.
466         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
467         (static_execute): Set looping true for recursive functions.
468         Undo setting state to IPA_NEITHER for recursive functions.
469         * cse.c (cse_insn): 
470         * ifcvt.c (noce_can_store_speculate_p): Changed
471         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
472         RTL_CONST_OR_PURE_CALL_P.
473         * dse.c (scan_insn): Ditto.
474         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
475         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
476         RTL_CONST_OR_PURE_CALL_P.
477         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
478         pure_call_p to RTL_CONST_CALL_P.
479         * gimplify.c (gimplify_call_expr): Clear side effects for
480         non-looping pure and constant calls.
481         * calls.c (emit_call_1): Set rtl flags from ecf flags.
482         (flags_from_decl_or_type): Set ecf flags from decl flags.
483         (initialize_argument_information): Turn off
484         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
485         Change const to pure if callee_copies is true rather than just
486         turning off const.
487         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
488         way of marking pure calls.
489         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
490         Remove hack that was supposed to fix pr7335 and remove old
491         way of marking pure calls.
492         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
493         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
494         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
495         RTL_CONST_OR_PURE_CALL_P.
496         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
497         * loop-invariant.c (find_exits, find_invariant_bb): Changed
498         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
499         * sched-deps.c (schedule_analyze): Ditto.
500         * rtl.h (struct rtx_def): Use call field, unchanging field, and
501         return_val field of calls to represent pure and const function info.
502         (CONST_OR_PURE_CALL_P): Deleted macro.
503         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
504         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
505         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
506         TREE_READONLY.
507         * tree-optimize.c (execute_fixup_cfg): Added test for
508         ECF_LOOPING_CONST_OR_PURE.
509         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
510         DECL_PURE_P.
511         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
512         effects for looping pure or const calls.
513         (verify_gimple_expr): Added verification code. 
514         * config/alpha/alpha.c (alpha_legitimize_address,
515         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
516         RTL_CONST_CALL_P.
517         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
518         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
519         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
520         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
521         RTL_CONST_OR_PURE_CALL_P.
522         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
523         and const calls to be deleted.
524
525 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
526
527         PR target/35714
528         * config/i386/mmx.md (mmx_subv2sf3): New expander.
529         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
530         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
531         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
532         to handle nonimmediate operands.
533         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
534         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
535         to handle nonimmediate operands.
536         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
537         (mmx_pmulhrwv4hi3): New expander.  Use
538         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
539         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
540         (sse2_umulv1siv1di3): New expander.  Use
541         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
542         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
543         (mmx_eq<mode>3): New expander.  Use
544         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
545         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
546         (mmx_uavgv8qi3): New expander.  Use
547         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
548         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
549         (mmx_uavgv4hi3): New expander.  Use
550         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
551
552         * config/i386/sse.md
553         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
554         to handle nonimmediate operands.
555         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
556         to handle nonimmediate operands.
557         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
558         to handle nonimmediate operands.
559         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
560         to handle nonimmediate operands.
561         (sse2_unpckhpd_exp): New expander.  Use
562         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
563         (sse2_unpcklpd_exp): New expander.  Use
564         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
565         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
566         to handle nonimmediate operands.
567         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
568         to handle nonimmediate operands.
569         (*sse2_<plusminus_insn><mode>3): Rename from
570         sse2_<plusminus_insn><mode>3 insn pattern.
571         (sse2_<plusminus_insn><mode>3): New expander.  Use
572         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
573         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
574         (sse2_umulv2siv2di3): New expander.  Use
575         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
576         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
577         (sse4_1_mulv2siv2di3): New expander.  Use
578         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
579         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
580         (sse2_pmaddwd): New expander.  Use
581         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
582         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
583         (sse2_eq<mode>3): New expander.  Use
584         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
585         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
586         (sse4_1_eqv2di3): New expander.  Use
587         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
588         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
589         (sse2_uavgv16qi3): New expander.  Use
590         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
591         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
592         (sse2_uavgv16qi3): New expander.  Use
593         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
594         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
595         (sse2_uavgv8hi3): New expander.  Use
596         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
597         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
598         (ssse3_pmulhrswv8hi3): New expander.  Use
599         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
600         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
601         (ssse3_pmulhrswv4hi3): New expander.  Use
602         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
603
604         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
605         (<sse>_vmmul<mode>3): Ditto.
606         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
607         (divv2df3): Ditto.
608         (ssse3_pmaddubsw128): Use register_operand for operand 1.
609         (ssse3_pmaddubsw): Ditto.
610
611         * config/i386/i386.c (struct_builtin_description)
612         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
613         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
614         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
615         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
616         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
617         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
618         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
619         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
620         (ix86_fixup_binary_operands): Assert that src1
621         and src2 must have the same mode when swapped.
622         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
623         and ix86_binary_operator_ok.  Do not force operands in registers
624         when optimizing.
625
626 2008-05-07  Jan Hubicka  <jh@suse.cz>
627
628         * cgraph.c (dump_cgraph_node): Update.
629         * cgraph.h (cgraph_local_info): Break out inline summary.
630         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
631         hook.
632         * ipa-inline (inline_summary): New accestor function.
633         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
634         cgraph_decide_inlining, compute_inline_parameters): Update.
635         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
636
637 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
638
639         Cleanup ColdFire scheduling support and add V4 pipeline model.
640
641         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
642         (define_attr cpu): Add cfv4 value.
643         (define_attr type, define_attr type1): Merge into a single 'type'
644         attribute.  Update all uses.
645         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
646         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
647         Update all uses.
648         (define_attr opx_mem, define_attr opy_mem): Remove.
649         (define_attr op_mem): Clean up, update comment.
650         (define_attr size): Use specific values instead of general int.
651         (define_attr guess, define_attr split): Remove.  Update all uses.
652         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
653         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
654         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
655         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
656         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
657         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
658         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
659         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
660         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
661         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
662         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
663         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
664         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
665         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
666         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
667         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
668         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
669         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
670         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
671         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
672         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
673         Update or set attributes.
674         (stack_tie): New fake instruction.
675
676         * config/m68k/m68k.h (TUNE_CFV4): New macro.
677         (m68k_sched_attr_size): Update declaration.
678         (m68k_sched_attr_type2): Remove.
679         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
680         Declare new bypass predicates.
681
682         * config/m68k/m68k.c (m68k_sched_issue_rate,
683         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
684         implementations.
685         (TARGET_SCHED_ISSUE_RATE,
686         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
687         (override_options): Handle scheduling for ColdFire V4 core.
688         (m68k_expand_prologue): Emit stack_tie.
689         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
690         'OP_TYPE_FPN'.  Update all uses.
691         (sched_guess_p): Remove.
692         (sched_address_type): Handle symbolic addresses.
693         (sched_get_operand): New static function.
694         (sched_operand_type): Merge into sched_attr_op_type.
695         (sched_attr_op_type): Handle FP registers, handle quick constants,
696         update.
697         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
698         (m68k_sched_attr_size): Update.  Move logic to ...
699         (sched_get_attr_size_int): New static function.
700         (sched_get_opxy_mem_type): New static function.
701         (m68k_sched_attr_op_mem): Update.
702         (m68k_sched_attr_type2): Remove.
703         (sched_cfv4_bypass_data): New static variable.
704         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
705         (m68k_sched_issue_rate): Implement scheduler hook.
706         (struct _sched_ib: enabled_p): New field.
707         (m68k_sched_variable_issue): Update.  Handle V4.
708         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
709         sched_dump_class_func_t, sched_dump_split_class,
710         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
711         sched_dump_dfa_class, m68k_sched_dump): Remove.
712         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
713         hook.
714         (m68k_sched_init_global): Remove statisctics dumping, introduce
715         sanity check that all instructions have pipeline reservations.  Handle
716         ColdFire V4 core.
717         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
718         Handle ColdFire V4 core.
719         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
720         New static functions.
721         (m68k_sched_address_bypass_p): New bypass predicate.
722         (sched_get_indexed_address_scale): New static function.
723         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
724
725         * cf.md: Update comments.
726         (define_attr type2): Remove.  Use 'type' attribute instead.
727         Update all uses.
728         (cf_ib): Rename to cfv123_ib.  Update all uses.
729         (cf_oep): Rename to cfv123_oep.  Update all uses.
730         (cf_chr): Rename to cfv123_chr.  Update all uses.
731         (cf_mem): Rename to cfv123_mem.  Update all uses.
732         (cf_mac): Move to more appropriate place.
733         (cfv123_guess): New automaton and cpu_unit.
734         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
735         Update uses of 'size' attribute.  Handle before reload scheduling.
736         (cfv123_guess): New dummy reservation for unhandled instructions.
737         (cfv4_*): Pipeline description of ColdFire V4 core.
738         (ignore): New reservation to handle 'ignore' type.
739
740 2008-05-07  Ian Lance Taylor  <iant@google.com>
741
742         PR middle-end/36013
743         * gimplify.c (find_single_pointer_decl_1): Don't look through
744         indirections.
745         (find_single_pointer_decl): Adjust comments.
746
747 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
748
749         PR middle-end/36137
750         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
751         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
752
753         PR middle-end/36106
754         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
755         integral type rather than floating point, then VIEW_CONVERT_EXPR
756         to the floating point type.
757
758 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
759
760         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
761         TFmode op0 to register.
762
763 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
764
765         * c-decl.c (grokdeclarator): Comment typo.
766
767 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
768
769         * tree-flow.h: Remove prototype for computed_goto_p.
770         * tree-cfg.c (computed_goto_p): Make static.
771
772 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
773
774         PR target/35657
775         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
776         (contains_aligned_value_p): This.  Handle _Decimal128.
777         (ix86_function_arg_boundary): Only align _Decimal128 to its
778         natural boundary and handle it properly.
779
780 2008-05-06  Martin Jambor  <mjambor@suse.cz>
781
782         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
783         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
784         (ipcp_method_set_orig_node): Removed.
785         (ipcp_cval_get_cvalue_type): Removed.
786         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
787         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
788         (ipcp_cval_set_cvalue_type): Removed.
789         (ipcp_cval_get_cvalue): Removed.
790         (ipcp_cval_set_cvalue): Removed.
791         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
792         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
793         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
794         (ipcp_cval_meet): Renamed to ipa_lattice_meet
795         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
796         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
797         (ipcp_get_ith_lattice): Changed parameters.
798         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
799         (ipcp_lattice_from_jfunc): Changed parameters.
800         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
801         (ipcp_method_cval_print): Added temporary variable info.
802         (ipcp_redirect): Removed already unused local variable caller.
803         (ipcp_redirect): New temporary variable orig_callee_info
804         (ipcp_redirect): Removed newly unused local variable callee.
805         (ipcp_redirect): Removed (a bit confusing) local variable type.
806         (ipcp_insert_stage): Added local variable info.
807         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
808         renamed too
809         (ipcp_formal_create): Removed.
810         (ipcp_method_cval_set): Removed.
811         (ipcp_propagate_stage): Renamed lattice variables.
812         (ipcp_method_cval_set_cvalue_type): Removed.
813         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
814         (ipcp_print_all_lattices): Changed printed strings to refer to 
815         lattices rather than cvals.
816         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
817         (ipcp_propagate_const): Changed formal parameters.
818         (build_const_val): Changed formal parameters.
819         (ipcp_insert_stage): Removed useless variable cvalue
820         (build_const_val): Changed formal parameters.
821         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
822         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
823         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
824         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
825         (ipcp_print_func_profile_counts): Changed string from "method" to 
826         "function"
827         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
828         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
829         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
830         (ipcp_structures_print): Renamed to ipcp_print_all_structures
831         (ipcp_profile_print): Renamed to ipcp_print_profile_data
832         (ipcp_lat_is_const): Changed parameters and made inline.
833         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
834         (ipcp_redirect): Renamed to ipcp_need_redirect_p
835         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
836         the predicate condition directly
837         (ipcp_propagate_stage): Added local variable args. Removed local
838         variable callee.  (Both are mere code simplifications.)
839         (ipcp_method_dont_insert_const): Renamed to
840         ipcp_node_not_modifiable_p.
841         (ipcp_node_not_modifiable_p): Made inline.
842         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
843         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
844         (ipcp_print_all_lattices): Removed variable cvalue
845         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
846         Updated comments.
847
848 2008-05-06  Olivier Hainque  <hainque@adacore.com>
849
850         * tree-sra.c (try_instantiate_multiple_fields): Early return
851         if field has POINTER_TYPE.
852
853 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
854
855         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
856         by using 'q' specifier for instruction.
857         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
858
859 2008-05-06  Anatoly Sokolov <aesok@post.ru>
860
861         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
862         Change mode of zero_extract from QImode to HImode.
863         (sign bit tests peepholes): (Ditto.).
864
865 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
866
867         * config/i386/mmx.md: Remove double backslashes from asm templates.
868         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
869         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
870         to handle nonimmediate operands.
871         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
872         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
873         to handle nonimmediate operands.
874         (*mmx_<code>v2sf3_finite): New insn pattern.
875         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
876         (mmx_<code>v2sf3): New expander.  Use
877         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
878         (mmx_<plusminus_insn><mode>3): New expander.  Use
879         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
880         (*mmx_<plusminus_insn><mode>3): New insn pattern.
881         (mmx_add<mode>3): Removed.
882         (mmx_ssadd<mode>3): Ditto.
883         (mmx_usadd<mode>3): Ditto.
884         (mmx_sub<mode>3): Ditto.
885         (mmx_sssub<mode>3): Ditto.
886         (mmx_ussub<mode>3): Ditto.
887         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
888         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
889         to handle nonimmediate operands.
890         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
891         insn pattern.
892         (mmx_smulv4hi3_highpart): New expander.  Use
893         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
894         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
895         insn pattern.
896         (mmx_umulv4hi3_highpart): New expander.  Use
897         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
898         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
899         (mmx_<code>v4hi3): New expander.  Use
900         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
901         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
902         (mmx_<code>v8qi3): New expander.  Use
903         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
904         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
905         (mmx_<code><mode>3): New expander.  Use
906         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
907
908 2008-05-05  Jan Hubicka  <jh@suse.cz>
909
910         PR tree-optimization/36118
911         * passes.c (pass_init_dump_file): Fix dump header.
912
913 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
914
915         PR middle-end/36141
916         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
917         VCE for function decls.
918
919 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
920
921         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
922
923 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
924
925         * config/i386/i386.md (sat_plusminus): New.
926         (plusminus_insn): Likewise.
927         (plusminus_mnemonic): Likewise.
928         (addsub): Removed.
929         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
930         (*<addsub><mode>3_cc_overflow): Renamed to ...
931         (*<plusminus_insn><mode>3_cc_overflow): This.
932         (*<addsub>si3_zext_cc_overflow): Renamed to ...
933         (*<plusminus_insn>si3_zext_cc_overflow): This.
934
935         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
936         (<plusminus_insn><mode>3): This.
937         (*<addsub><mode>3): Renamed to ...
938         (*<plusminus_insn><mode>3): This.
939         (<sse>_vm<addsub><mode>3): Renamed to ...
940         (<sse>_vm<plusminus_insn><mode>3): This.
941         (sse3_h<addsub>v4sf3): Renamed to ...
942         (sse3_h<plusminus_insn>v4sf3): This.
943         (sse3_h<addsub>v2df3): Renamed to ...
944         (sse3_h<plusminus_insn>v2df3): This.
945         (<plusminus_insn><mode>3): New.
946         (*<plusminus_insn><mode>3): Likewise.
947         (sse2_<plusminus_insn><mode>3): Likewise.
948         (add<mode>): Removed.
949         (*add<mode>3): Likewise.
950         (sse2_ssadd<mode>3): Likewise.
951         (sse2_usadd<mode>3): Likewise.
952         (sub<mode>3): Likewise.
953         (*sub<mode>3): Likewise.
954         (sse2_sssub<mode>3): Likewise.
955         (sse2_ussub<mode>3): Likewise.
956
957 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
958
959         * gthr-single.h: Add in required interface elements as per gthr.h.
960         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
961         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
962         Generalize UNUSED macro. 
963         (__gthread_once): Add.
964         (__gthread_key_create): Add.
965         (__gthread_key_delete): Add.
966         (__gthread_getspecific): Add.
967         (__gthread_setspecific): Add.
968         
969 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
970
971         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
972         the same size types for the indirect reference on the rhs, then
973         create a VCE.
974
975 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
976
977         * config/i386/i386.md
978         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
979         one insn template instead of template series.
980         (*xordi_1_rex64): Ditto.
981         (*xordi_2_rex64): Ditto.
982
983 2008-05-05  Ira Rosen  <irar@il.ibm.com>
984
985         PR tree-optimization/36119
986         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
987         in case of SLP.
988
989 2008-06-04  Jan Hubicka  <jh@suse.cz>
990
991         tree-optimization/36100
992         * tree-pass.h (pass_O0_always_inline): Declare.
993         * ipa-inline.c (inline_transform): Remove dead code.
994         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
995         pass_O0_always_inline): New.
996         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
997
998 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
999
1000         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
1001         mnemonic in this_param move for TARGET_64BIT.
1002
1003 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
1004
1005         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
1006         (*strmovsi_rex_1): Ditto.
1007         (*strsetsi_1): Ditto.
1008         (*strsetsi_rex_1): Ditto.
1009
1010         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
1011         adddicc expanders using SWI mode iterator.
1012
1013 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
1014
1015         PR target/36121
1016         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
1017         argument handling.
1018
1019 2008-05-04  David S. Miller  <davem@davemloft.net>
1020
1021         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
1022         (sparc*-*-linux*): Use linux.h in tm_file.
1023         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
1024         compiler defaulting to 32-bit.
1025         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
1026         no longer needed.
1027         * config/sparc/linux.h: Remove definitions now obtained
1028         properly from linux.h
1029         * config/sparc/linux64.h: Likewise.
1030         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
1031         don't want this setting for 32-bit builds in a biarch compiler.
1032         * doc/install.texi: Add sparc-linux to list of targets
1033         supporting --enable-targets=all.
1034
1035 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
1036
1037         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
1038
1039 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
1040
1041         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
1042         after V4SI_FTYPE_V8HI.
1043         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
1044         case V4SI_FTYPE_V2DF.
1045
1046 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
1047
1048         * doc/invoke.texi (max-flow-memory-locations): Removed.
1049         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
1050         
1051 2008-05-03  Richard Guenther  <rguenther@suse.de>
1052
1053         PR middle-end/34973
1054         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
1055
1056 2008-05-02  David S. Miller  <davem@davemloft.net>
1057
1058         * config.gcc (need_64bit_hwint): Document libcpp dependency.
1059
1060 2008-05-02  Simon Baldwin <simonb@google.com>
1061
1062         PR bootstrap/36108
1063         * c-common.h (warn_array_subscript_range): Removed.
1064         * c-common.c (warn_array_subscript_range): Ditto.
1065         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
1066         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
1067
1068 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
1069
1070         * config/i386/i386.c (ix86_special_builtin_type): New.
1071         (bdesc_special_args): Likewise.
1072         (ix86_expand_special_args_builtin): Likewise.
1073         (ix86_init_mmx_sse_builtins): Updated.
1074         (ix86_expand_builtin): Updated.
1075         (ix86_expand_store_builtin): Removed.
1076         (ix86_expand_unop_builtin): Likewise.
1077
1078         * config/i386/mm3dnow.h (__v2sf): Moved to ...
1079         * config/i386/mmintrin.h (__v2sf): Here.
1080
1081         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
1082         const __v2sf.
1083         (_mm_loadl_pi): Likewise.
1084         (_mm_storeh_pi): Replace __v2si with __v2sf.
1085         (_mm_storel_pi): Likewise.
1086
1087         * doc/extend.texi: Correct __builtin_ia32_loadhps,
1088         __builtin_ia32_loadlps, __builtin_ia32_storehps,
1089         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
1090         __builtin_ia32_loadlpd.
1091
1092 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
1093
1094         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
1095         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
1096         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
1097         (ix86_init_mmx_sse_builtins): Updated.
1098         (ix86_expand_args_builtin): Likewise.
1099         (ix86_expand_builtin): Likewise.
1100         (ix86_expand_unop1_builtin): Renamed to ...
1101         (ix86_expand_unop_vec_merge_builtin): This.
1102
1103 2008-05-01  Jan Hubicka  <jh@suse.cz>
1104
1105         PR bootstrap/36100
1106         * ipa-inline.c (inline_generate_summary): Make static.
1107         (inline_transform): Do not call inlining at -O0; make static.
1108         * passes.c (execute_todo): Add sanity check.
1109         (execute_one_ipa_transform_pass): Execute proper flags.
1110
1111 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
1112
1113         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
1114         (DECL_NONADDRESSABLE_P): Likewise.
1115         * alias.c (record_component_aliases): Fix comment.
1116
1117 2008-05-01  Simon Baldwin <simonb@google.com>
1118
1119         * c-common.h (warn_array_subscript_range): New function.
1120         * c-common.c (warn_array_subscript_range): Ditto.
1121         * tree-vrp.c (check_array_ref): Corrected code to agree with
1122         comment, ignoring only arrays of size 0 or size 1.
1123         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
1124
1125 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1126
1127         * config/i386/i386.c (ix86_builtin_type): Replace
1128         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
1129         (bdesc_args): Updated.
1130         (ix86_init_mmx_sse_builtins): Likewise.
1131         (ix86_expand_args_builtin): Likewise.
1132
1133         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
1134         with __v1di.
1135
1136         * doc/extend.texi: Correct __builtin_ia32_palignr.
1137
1138 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1139
1140         PR target/36095
1141         * config/i386/i386.c (bdesc_crc32): Removed.
1142         (ix86_expand_crc32): Likewise.
1143         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
1144         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
1145         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
1146         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
1147         UINT_FTYPE_UINT_UCHAR.
1148         (bdesc_args): Updated. Add crc32 builtins.
1149         (ix86_init_mmx_sse_builtins): Updated.
1150         (ix86_expand_args_builtin): Updated to support subreg.
1151
1152         * doc/extend.texi: Correct __builtin_ia32_crc32di.
1153
1154 2008-05-01  Jan Hubicka  <jh@suse.cz>
1155
1156         * tree-pass.h (opt_pass): Add IPA_PASS.
1157         (varpool_node, cgraph_node): Forward declare.
1158         (ipa_opt_pass): Define.
1159         (pass_ipa_inline): Turn into ipa_opt_pass.
1160         (pass_apply_inline): Remove.
1161         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
1162         (apply_inline): Turn into ....
1163         (inline_transform): ... this one.
1164         (inline_generate_summary): New function.
1165         (pass_apply_inline): Remove.
1166         * function.h (ipa_opt_pass): Forward declare structure; typedef;
1167         vector.
1168         (struct function): Add ipa_transforms_to_apply.
1169         * passes.c (register_one_dump_file): Work on IPA_PASS.
1170         (init_optimization_passes): Remove pass_inline_parameters and
1171         pass_apply_inline.
1172         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
1173         (execute_one_pass) ... here; apply transforms when possible.
1174         (add_ipa_transform_pass, execute_ipa_summary_asses,
1175         execute_one_ipa_transform_pass): New.
1176         (execute_ipa_pass_list): Update for IPA_PASS type.
1177
1178 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1179
1180         * config/i386/i386.c (ix86_builtin_type): Add
1181         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
1182         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
1183         (bdesc_args): Add SSE4a builtins.
1184         (ix86_init_mmx_sse_builtins): Updated.
1185         (ix86_expand_args_builtin): Likewise.
1186         (ix86_expand_builtin): Likewise.
1187
1188 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1189
1190         * config/i386/i386.c (ix86_builtin_type): Add
1191         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
1192         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
1193         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
1194         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
1195         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
1196         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
1197         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
1198         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
1199         and DI_FTYPE_DI_DI_INT.
1200         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
1201         (ix86_init_mmx_sse_builtins): Updated.
1202         (ix86_expand_args_builtin): Likewise.
1203         (ix86_expand_builtin): Likewise.
1204         (ix86_expand_binop_imm_builtin): Removed.
1205
1206         * doc/extend.texi: Correct __builtin_ia32_palignr128.
1207
1208 2008-04-30  Richard Guenther  <rguenther@suse.de>
1209
1210         PR tree-optimization/32921
1211         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
1212
1213 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
1214
1215         * config/arm/arm.c (arm_unwind_emit): Use
1216         crtl->all_throwers_are_sibcalls instead of
1217         cfun->all_throwers_are_sibcalls.
1218         (arm_output_fn_unwind): Likewise.
1219         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
1220         instead of cfun->uses_pic_offset_table.
1221         (frv_expand_prologue): Likewise.
1222         (frv_frame_pointer_required): Likewise.
1223         (frv_expand_fdpic_call): Likewise.
1224         (frv_emit_movsi): Likewise.
1225         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
1226         cfun->returns_pcc_struct instead of
1227         current_function_returns_pcc_struct.
1228         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
1229         instead of cfun->calls_eh_return.
1230         (m32c_pushm_popm): Likewise.
1231         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
1232         "extern" declaration.
1233
1234 2008-04-30  Richard Guenther  <rguenther@suse.de>
1235
1236         PR tree-optimization/21636
1237         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
1238         constant address.
1239         (evaluate_stmt): Print the likely value.
1240         (ccp_visit_stmt): Avoid excessive vertical spacing.
1241
1242 2008-04-30  Rafael Espindola  <espindola@google.com>
1243
1244         * builtins.c (fold_call_expr): Return realret.
1245         * tree-ssa-threadedge.c
1246         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
1247         __builtin_object_size.
1248
1249 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
1250
1251         * gcc.c (wrapper_string): New variable.
1252         (insert_wrapper): New function.
1253         (execute): New option -wrapper.
1254         * doc/invoke.texi (Overall Options): New driver option -wrapper.
1255
1256 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
1257
1258         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
1259         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
1260         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
1261         from...
1262         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
1263         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
1264         config/rs6000/e500crtres64gprctr.asm,
1265         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
1266         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
1267         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
1268         config/rs6000/e500crtsav64gprctr.asm,
1269         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
1270         config/rs6000/e500crtsavg64gprctr.asm: New files.
1271         * config/rs6000/t-ppccomm: Add build rules for new files.
1272         (LIB2FUNCS_STATIC_EXTRA): Add new files.
1273         * config/rs6000/t-netbsd: Add build rules for new files.
1274         (LIB2FUNCS_STATIC_EXTRA): New variable.
1275         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
1276         (CRTSAVRES_DEFAULT_SPEC): Likewise.
1277         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
1278
1279 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
1280
1281         * config/i386/i386.c (ix86_builtin_type): Add
1282         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
1283         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
1284         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
1285         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
1286         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
1287         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
1288         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
1289         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
1290         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
1291         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
1292         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
1293         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
1294         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
1295         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
1296         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
1297         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
1298         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
1299         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
1300         V1DI_FTYPE_V2SI_V2SI.
1301         (bdesc_2arg): Moved to ...
1302         (bdesc_args): Here.
1303         (ix86_init_mmx_sse_builtins): Updated.
1304         (ix86_expand_args_builtin): Updated.  Take a pointer
1305         to const struct builtin_description.  Handle comparison
1306         builtin functions.
1307         (ix86_expand_sse_compare): Take a new argument for swapping operands.
1308         (ix86_expand_builtin): Updated.
1309
1310         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
1311         (ssse3_pmaddubsw128): This.
1312         (ssse3_pmaddubswv4hi3): Renamed to ...
1313         (ssse3_pmaddubsw): This.
1314
1315         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
1316         (__builtin_ia32_packssdw128): Likewise.
1317         (__builtin_ia32_packuswb128): Likewise.
1318         (__builtin_ia32_pmaddubsw): Likewise.
1319         (__builtin_ia32_pmaddubsw128): Likewise.
1320
1321 2008-04-30  Richard Guenther  <rguenther@suse.de>
1322
1323         PR tree-optimization/14847
1324         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
1325         (recognize_bits_test): Use it.
1326         (recognize_single_bit_test): Likewise.
1327
1328 2008-04-30  Martin Jambor  <mjambor@suse.cz>
1329
1330         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
1331         instead of setting number of formal parameters to zero.
1332         (ipcp_init_stage): Do not set the number of actual parameters to zero 
1333         either.
1334         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
1335         which are called with variable number of arguments.
1336         (ipcp_insert_stage): Explicitely skipping all nodes which are
1337         called with variable number of arguments.
1338         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
1339         number of parameters.
1340
1341         * ipa-prop.h (struct ipa_node_params): Added flag
1342         called_with_var_arguments
1343         (ipa_set_param_count): Added.  Changed sole setter to use it.
1344         (ipa_get_param_count): Added.  All readers of param_count
1345         converted to use it instead.
1346         (ipa_set_called_with_variable_arg): Added.
1347         (ipa_is_called_with_var_arguments): Added.
1348         (ipa_get_ith_param): Added.  All readers of param_decls converted
1349         to use it instead.
1350         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
1351         changed to use it. 
1352         (ipa_get_cs_argument_count): Added, all readers of argument_count
1353         changed to cal it.
1354         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
1355         to use it.
1356         
1357         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
1358         (struct ipcp_lattice): Renamed cval_type to type
1359         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
1360
1361         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
1362         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
1363         (ipcp_insert_stage): Changed the type of variable cvalue to tree
1364         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
1365         (build_const_val): Changed the type of parameter cvalue to tree
1366         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
1367         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
1368         
1369         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
1370         constant 
1371
1372         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
1373         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
1374         (ipa_add_method): Renamed to ipa_push_func_to_list
1375         (ipa_remove_method): Renamed to ipa_pop_func_from_list
1376         (ipa_callsite_param_count): Removed.
1377         (ipa_callsite_param_count_set): Removed.
1378         (ipa_callsite_param): Removed.
1379         (ipa_callsite_callee): Removed.
1380         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
1381         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
1382         (ipa_method_formal_count): Removed.
1383         (ipa_method_formal_count_set): Removed.
1384         (ipa_method_get_tree): Removed.
1385         (ipa_method_tree_map_create): Removed.
1386         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
1387         (ipa_create_param_decls_array): Creates the array itself
1388         (ipa_create_param_decls_array): Temporary variable info instead of 
1389         a few dereferences.
1390         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
1391         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
1392         (get_type): Removed.
1393         (ipa_jf_get_info_type): Removed.
1394         (ipa_node_create): Renamed to ipa_create_node_params
1395         (ipa_free): Renamed to ipa_free_all_node_params
1396         (ipa_nodes_create): Renamed to ipa_create_all_node_params
1397         (ipa_edges_create): Renamed to ipa_create_all_edge_args
1398         (ipa_edges_free): Renamed to ipa_free_all_edge_args
1399         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
1400         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
1401         ipa_free_all_edge_args
1402         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
1403         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
1404         (ipa_create_methodlist_node): Removed.
1405         (ipa_methodlist_method): Removed.
1406         (ipa_methodlist_method_set): Removed.
1407         (ipa_methodlist_next_method): Removed.
1408         (ipa_methodlist_next_method_set): Removed.
1409         (ipa_method_is_modified): Removed.
1410         (ipa_method_modify_create): Removed.
1411         (ipa_method_modify_init): Temporary variable info instead of a few 
1412         dereferences.
1413         (ipa_detect_param_modifications): Temporary variable info instead of 
1414         a few dereferences.
1415         (ipa_compute_jump_functions): Temporary variable info instead of 
1416         a few dereferences.
1417         (ipa_method_modify_set): Removed.
1418         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
1419         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
1420         than craph_node as the first parameter.
1421         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
1422         (ipa_method_modify_init): Removed.
1423         (ipa_compute_jump_functions): Added a temp variable instead of 
1424         repeatadly dereferencing the cgraph_edge.aux pointer
1425         (ipa_callsite_param_set_type): Removed.
1426         (ipa_compute_jump_functions): i renamed to index and moved to 
1427         an inner block
1428         (ipa_callsite_param_set_info_type_formal): Removed.
1429         (ipa_callsite_param_set_info_type): Removed.
1430         (ipa_callsite_param_map_create): Removed.
1431         (ipa_callsite_tree): Removed.
1432         (ipa_callsite_caller): Removed.
1433         (ipa_pop_func_from_list): return_method removed to return_func
1434
1435         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
1436         prefixed all values with IPA_. Changed all users.
1437         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
1438         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
1439         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
1440         (union parameter_info): Renamed to jump_func_value.
1441         (union jump_func_value): Renamed value to constant
1442         (struct ipa_jump_func): Renamed info_type to value
1443         (struct ipa_node): Renamed to ipa_node_params
1444         (struct ipa_node_params): Renamed ipa_arg_num to param_count
1445         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
1446         (struct ipa_node_params): Renamed ipa_mod to modified_flags
1447         (struct ipa_edge): Renamed to ipa_edge_args
1448         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
1449         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
1450         (struct ipa_methodlist): Renamed to ipa_func_list
1451         (struct ipa_func_list): method_p renamed to node, next_method
1452         renamed to next
1453         (ipa_methodlist_p): Removed, switched all users to struct pointer
1454         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
1455
1456 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
1457
1458         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
1459         (rs6000_emit_epilogue): Use backchain to restore only when we
1460         have a large frame.  Make use of frame pointer to restore if we
1461         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
1462
1463 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
1464
1465         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1466         Add mode to zero_extract.
1467         (sign bit tests peepholes): (Ditto.).
1468
1469 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1470
1471         * config/i386/i386.c (ix86_builtins): Replace Prescott New
1472         Instructions in comments with SSE3.
1473         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
1474         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
1475         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
1476         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
1477         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
1478         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
1479         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
1480         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
1481         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
1482         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
1483         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
1484         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
1485         (bdesc_sse_args): Renamed to ...
1486         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
1487         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
1488         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
1489         IX86_BUILTIN_FABSQ.
1490         (bdesc_1arg): Moved to ...
1491         (bdesc_args): Here.
1492         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
1493         Instructions in comments with SSE3.
1494         (ix86_expand_sse_operands_builtin): Renamed to ...
1495         (ix86_expand_args_builtin): This.  Updated.
1496         (ix86_expand_unop1_builtin): Update comments.
1497         (ix86_expand_builtin): Updated.
1498
1499 2008-04-29  Richard Guenther  <rguenther@suse.de>
1500
1501         PR tree-optimization/36078
1502         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
1503         Update virtual SSA form after cleaning up the CFG.
1504
1505 2008-04-29  Richard Guenther  <rguenther@suse.de>
1506
1507         PR middle-end/15255
1508         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
1509
1510 2008-04-29  Richard Guenther  <rguenther@suse.de>
1511
1512         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
1513         (compute_may_aliases): Do not call finalize_ref_all_pointers.
1514         (compute_flow_insensitive_aliasing): Do not treat
1515         PTR_IS_REF_ALL pointers special.
1516         (get_smt_for): Likewise.
1517         (may_alias_p): Re-structure.
1518         (is_escape_site): A ref-all pointer conversion is not an escape site.
1519         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
1520         PTR_IS_REF_ALL pointers special.
1521         * tree-ssa-structalias.h (struct alias_info): Remove
1522         ref_all_symbol_mem_tag field.
1523         (PTR_IS_REF_ALL): Remove.
1524
1525 2008-04-29  Richard Guenther  <rguenther@suse.de>
1526
1527         PR middle-end/36077
1528         * fold-const.c (extract_muldiv_1): In combining division constants
1529         make sure to never overflow.
1530
1531 2008-04-29  Nick Clifton  <nickc@redhat.com>
1532
1533         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
1534
1535 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1536
1537         PR bootstrap/35169
1538         * optc-gen.awk: Work around HP-UX/IA awk bug.
1539
1540 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
1541
1542         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
1543         2008-04-25 commit.
1544
1545 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
1546
1547         PR target/36073
1548         * config/i386/i386.md
1549         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
1550         Change operand 1 predicate to nonimmediate_operand.
1551
1552 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
1553
1554         PR debug/36060
1555         * dwarf2out.c (struct die_struct): Mark as chain_circular through
1556         die_sub field.
1557         * gengtype.c (walk_type, write_func_for_structure): Handle
1558         chain_circular.
1559         * doc/gty.texi: Document chain_circular.
1560
1561 2008-04-28  Richard Guenther  <rguenther@suse.de>
1562
1563         PR tree-optimization/36066
1564         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
1565         SCEV and loop.
1566
1567 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
1568
1569         PR target/36064
1570         * config/i386/i386.md
1571         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
1572         Use match_scratch instead of match_operand for operands 3 and 4.
1573
1574 2008-04-27  Richard Guenther  <rguenther@suse.de>
1575
1576         PR tree-optimization/18754
1577         PR tree-optimization/34223
1578         * tree-pass.h (pass_complete_unrolli): Declare.
1579         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
1580         loop size before and after unconditionally of UL_NO_GROWTH in effect.
1581         Rewrite loop into loop closed SSA form if it is not already.
1582         (tree_unroll_loops_completely): Re-structure to iterate over
1583         innermost loops with intermediate CFG cleanups.
1584         Unroll outermost loops only if requested or the code does not grow
1585         doing so.
1586         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
1587         loops are available.
1588         (tree_vectorize): Instead do so here.
1589         (tree_complete_unroll): Also unroll outermost loops.
1590         (tree_complete_unroll_inner): New function.
1591         (gate_tree_complete_unroll_inner): Likewise.
1592         (pass_complete_unrolli): New pass.
1593         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
1594         uses outside of the loop.
1595         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
1596         form if it is available.  
1597         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
1598         * passes.c (init_optimization_passes): Schedule complete inner
1599         loop unrolling pass before the first CCP pass after final inlining.
1600
1601 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
1602
1603         * targhooks.h (default_emutls_var_fields,
1604         default_emutls_var_init): Declare.
1605         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
1606         * target.h (struct gcc_target): Add struct emutls member.
1607         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
1608         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
1609         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
1610         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
1611         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
1612         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
1613         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
1614         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
1615         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
1616         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
1617         emit debug information.
1618         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
1619         * varasm.c: Include targhooks.h.
1620         (emutls_object_section, emutls_tmpl_section): New.
1621         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
1622         (EMUTLS_SEPARATOR): New.
1623         (prefix_name): New.
1624         (get_emutls_object_name): New.
1625         (default_emutls_var_fields): New, broken out of ...
1626         (get_emutls_object_type): ... here.  Adjust to use target hooks.
1627         (get_emutls_init_templ_addr): Adjust to use target hooks.
1628         (emutls_decl): Adjust to use target hooks.
1629         (emutls_finish): Likewise.
1630         (default_emutls_var_init): New, broken out of ...
1631         (assemble_variable): ... here.  Adjust to use target hooks.
1632         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
1633         SECCAT_EMUTLS_TMPL.
1634         * c-common.c (handle_section_attribute): Prevent overriding
1635         sections for emulated tls with special sections.
1636         * config/i386/i386.c (x86_64_elf_select_section): Add
1637         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
1638         (x86_64_elf_unique_section): Likewise.
1639         * config/vxworks.c: Include tree.h.
1640         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
1641         (vxworks_override_options): Set TLS scheme.
1642         * doc/tm.texi (Emulated TLS): New node.
1643
1644 2008-04-26  Simon Baldwin <simonb@google.com>
1645
1646         PR c/35652
1647         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
1648         with propagated string constants.
1649
1650 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
1651
1652         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
1653         constraint for operand 2 when operand 0 is memory operand.
1654         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
1655         operand 0 is memory operand.
1656         (fix_trunc<mode>_i387_with_temp): Ditto.
1657         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
1658         operand 2 when operand 1 is memory operand.
1659         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
1660         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
1661         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
1662         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
1663         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
1664         operands 2,3 and 4 when operand 1 is memory operand.
1665         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
1666         is memory operand.
1667         (fistdi2_floor_with_temp): Ditto.
1668         (fist<mode>2_floor_with_temp): Ditto.
1669         (fistdi2_ceil_with_temp): Ditto.
1670         (fist<mode>2_ceil_with_temp): Ditto.
1671         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
1672
1673 2008-04-26  David Daney  <ddaney@avtrex.com>
1674
1675         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
1676         unspec_volitile.
1677         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
1678         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1679         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1680         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
1681         (compare_and_swap_12): New insn.
1682         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
1683         * config/mips/mips.c (mips_force_binary): New function.
1684         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
1685         (mips_expand_compare_and_swap_12): New function.
1686         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
1687
1688 2008-04-25  Jan Hubicka  <jh@suse.cz>
1689
1690         PR testsuite/35843
1691         * cfgexpand.c (pass_expand): Turn into RTL pass.
1692         * passes.c (execute_one_pass): Do pass typechecking after execution.
1693         * tree-pass.h (pass_expand): Turn into RTL pass.
1694
1695         * function.h (struct rtl_data): Move here fields
1696         accesses_prior_frames, calls_eh_return, saves_all_registers,
1697         has_nonlocal_goto, has_asm_statement, is_thunk,
1698         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
1699         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
1700         arg_pointer_save_area_init from struct function; turn into bool.
1701         (struct function): Move
1702         calls_eh_return, saves_all_registers, has_nonlocal_goto,
1703         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
1704         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
1705         tail_call_emit, arg_pointer_save_area_init
1706         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
1707         (current_function_returns_struct, current_function_returns_pcc_struct,
1708         current_function_calls_setjmp, current_function_calls_alloca,
1709         current_function_accesses_prior_frames,
1710         current_function_calls_eh_return, current_function_is_thunk,
1711         current_function_stdarg, current_function_profile,
1712         current_function_limit_stack, current_function_uses_pic_offset_table,
1713         current_function_uses_const_pool, current_function_has_nonlocal_label,
1714         current_function_saves_all_registers,
1715         current_function_has_nonlocal_goto,
1716         current_function_has_asm_statement): Remove accesor macros.
1717         * ra-conflict.c (global_conflicts): Update.
1718         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
1719         (suitable_for_tail_call_opt_p): Update.
1720         * builtins.c (expand_builtin_return_addr): Update.
1721         (expand_builtin_setjmp_setup): Update.
1722         (expand_builtin_nonlocal_goto): Update.
1723         * final.c (final_start_function): Update.
1724         (profile_function): Update.
1725         (leaf_function_p): Update.
1726         (only_leaf_regs_used): Update.
1727         * df-scan.c (df_get_exit_block_use_set): Update.
1728         * dojump.c (clear_pending_stack_adjust): Update.
1729         * tree-stdarg.c (gate_optimize_stdarg): Update.
1730         * gimple-low.c (lower_function_body): Update.
1731         * global.c (compute_regsets): Update.
1732         (global_alloc): Update.
1733         * dwarf2out.c (dwarf2out_begin_prologue): Update.
1734         * expr.c (expand_assignment): Update.
1735         * dse.c (dse_step0): Update.
1736         (dse_step1): Update.
1737         * c-decl.c (store_parm_decls): Update.
1738         * local-alloc.c (combine_regs): Update.
1739         (find_free_reg): Update.
1740         * function.c (assign_parms_augmented_arg_list): Update.
1741         (assign_parm_find_data_types): Update.
1742         (assign_parms): Update.
1743         (allocate_struct_function): Update.
1744         (expand_function_start): Update.
1745         (expand_function_end): Update.
1746         (get_arg_pointer_save_area): Update.
1747         (thread_prologue_and_epilogue_insns): Update.
1748         (rest_of_match_asm_constraints): Update.
1749         * stor-layout.c (variable_size): Update.
1750         * gcse.c (gcse_main): Update.
1751         (bypass_jumps): Update.
1752         * gimplify.c (gimplify_function_tree): Update.
1753         * calls.c (emit_call_1): Update.
1754         (expand_call): Update.
1755         * bt-load.c (compute_defs_uses_and_gen): Update.
1756         * except.c (sjlj_assign_call_site_values): Update.
1757         (sjlj_emit_function_enter): Update.
1758         (can_throw_external): Update.
1759         (set_nothrow_function_flags): Update.
1760         (expand_builtin_unwind_init): Update.
1761         (expand_eh_return): Update.
1762         (convert_to_eh_region_ranges): Update.
1763         (output_function_exception_table): Update.
1764         * emit-rtl.c (gen_tmp_stack_mem): Update.
1765         * cfgexpand.c (expand_used_vars): Update.
1766         (tree_expand_cfg): Update.
1767         * cfgcleanup.c (rest_of_handle_jump): Update.
1768         * explow.c (allocate_dynamic_stack_space): Update.
1769         * varasm.c (assemble_start_function): Update.
1770         (force_const_mem): Update.
1771         (mark_constant_pool): Update.
1772         * tree-optimize.c (tree_rest_of_compilation): Update.
1773         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
1774         * tree-cfg.c (notice_special_calls): Update.
1775         (is_ctrl_altering_stmt): Update.
1776         (tree_can_make_abnormal_goto): Update.
1777         (tree_purge_dead_abnormal_call_edges): Update.
1778         * config/alpha/predicates.md: Update.
1779         * config/alpha/alpha.c (alpha_sa_mask): Update.
1780         (alpha_sa_size): Update.
1781         (alpha_does_function_need_gp): Update.
1782         (alpha_expand_prologue): Update.
1783         (alpha_start_function): Update.
1784         (alpha_output_function_end_prologue): Update.
1785         (alpha_expand_epilogue): Update.
1786         * config/frv/frv.c (frv_stack_info): Update.
1787         (frv_expand_epilogue): Update.
1788         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
1789         (s390_register_info): Update.
1790         (s390_frame_info): Update.
1791         (s390_init_frame_layout): Update.
1792         (s390_can_eliminate): Update.
1793         (save_gprs): Update.
1794         * config/spu/spu.c (spu_split_immediate): Update.
1795         (need_to_save_reg): Update.
1796         (spu_expand_prologue): Update.
1797         (spu_expand_epilogue): Update.
1798         * config/sparc/sparc.md: Update.
1799         * config/sparc/sparc.c (eligible_for_return_delay): Update.
1800         (sparc_tls_got): Update.
1801         (legitimize_pic_address): Update.
1802         (sparc_emit_call_insn): Update.
1803         (sparc_expand_prologue): Update.
1804         (output_return): Update.
1805         (print_operand): Update.
1806         (sparc_function_ok_for_sibcall): Update.
1807         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
1808         * config/m32r/m32r.md: Update.
1809         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
1810         (m32r_compute_frame_size): Update.
1811         (m32r_expand_prologue): Update.
1812         (m32r_expand_epilogue): Update.
1813         (m32r_legitimize_pic_address): Update.
1814         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
1815         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
1816         * config/i386/i386.c (ix86_frame_pointer_required): Update.
1817         (gen_push): Update.
1818         (ix86_save_reg): Update.
1819         (ix86_compute_frame_layout): Update.
1820         (ix86_expand_prologue): Update.
1821         (ix86_expand_epilogue): Update.
1822         * config/sh/sh.c (output_stack_adjust): Update.
1823         (calc_live_regs): Update.
1824         (sh5_schedule_saves): Update.
1825         (sh_expand_prologue): Update.
1826         (sh_expand_epilogue): Update.
1827         (sh_setup_incoming_varargs): Update.
1828         (sh_allocate_initial_value): Update.
1829         (sh_get_pr_initial_val): Update.
1830         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
1831         * config/sh/sh.md (label:): Update.
1832         * config/avr/avr.c (out_movhi_mr_r): Update.
1833         * config/crx/crx.h (enum): Update.
1834         * config/xtensa/xtensa.h (along): Update.
1835         * config/stormy16/stormy16.c Update.
1836         (xstormy16_compute_stack_layout): Update.
1837         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
1838         (fr30_expand_prologue): Update.
1839         * config/cris/cris.c (cris_conditional_register_usage): Update.
1840         (cris_reg_saved_in_regsave_area): Update.
1841         (cris_initial_frame_pointer_offset): Update.
1842         (cris_simple_epilogue): Update.
1843         (cris_expand_prologue): Update.
1844         (cris_expand_epilogue): Update.
1845         (cris_expand_pic_call_address): Update.
1846         (cris_asm_output_symbol_ref): Update.
1847         (cris_asm_output_label_ref): Update.
1848         * config/cris/cris.md Update.
1849         * config/iq2000/iq2000.c (compute_frame_size): Update.
1850         (iq2000_expand_epilogue): Update.
1851         * config/mt/mt.h (save_direction): Update.
1852         * config/mn10300/mn10300.c (mn10300_function_value): Update.
1853         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
1854         (ia64_secondary_reload_class): Update.
1855         * config/m68k/m68k.c (m68k_save_reg): Update.
1856         (m68k_expand_prologue): Update.
1857         (m68k_expand_epilogue): Update.
1858         (legitimize_pic_address): Update.
1859         * config/rs6000/rs6000.c (rs6000_got_register): Update.
1860         (first_reg_to_save): Update.
1861         (first_altivec_reg_to_save): Update.
1862         (compute_vrsave_mask): Update.
1863         (compute_save_world_info): Update.
1864         (rs6000_stack_info): Update.
1865         (spe_func_has_64bit_regs_p): Update.
1866         (rs6000_ra_ever_killed): Update.
1867         (rs6000_emit_eh_reg_restore): Update.
1868         (rs6000_emit_allocate_stack): Update.
1869         (rs6000_emit_prologue): Update.
1870         (rs6000_emit_epilogue): Update.
1871         (rs6000_output_function_epilogue): Update.
1872         (output_profile_hook): Update.
1873         (rs6000_elf_declare_function_name): Update.
1874         * config/rs6000/rs6000.h (rs6000_args): Update.
1875         * config/rs6000/rs6000.md: Update.
1876         * config/mcore/mcore.c (mcore_expand_prolog): Update.
1877         * config/arc/arc.c (arc_output_function_epilogue): Update.
1878         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
1879         * config/darwin.c (machopic_function_base_name): Update.
1880         * config/score/score3.c (score3_compute_frame_size): Update.
1881         (rpush): Update.
1882         (rpop): Update.
1883         (score3_epilogue): Update.
1884         * config/score/score7.c (score7_compute_frame_size): Update.
1885         (score7_prologue): Update.
1886         (score7_epilogue): Update.
1887         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
1888         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
1889         * config/arm/arm.c (use_return_insn): Update.
1890         (require_pic_register): Update.
1891         (arm_load_pic_register): Update.
1892         (arm_compute_save_reg0_reg12_mask): Update.
1893         (arm_compute_save_reg_mask): Update.
1894         (thumb1_compute_save_reg_mask): Update.
1895         (output_return_instruction): Update.
1896         (arm_output_function_prologue): Update.
1897         (arm_output_epilogue): Update.
1898         (arm_get_frame_offsets): Update.
1899         (arm_expand_prologue): Update.
1900         (thumb_pushpop): Update.
1901         (thumb_exit): Update.
1902         (thumb1_expand_prologue): Update.
1903         (thumb1_expand_epilogue): Update.
1904         (arm_unwind_emit): Update.
1905         (arm_output_fn_unwind): Update.
1906         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
1907         * config/arm/arm.md: Update.
1908         * config/pa/pa.md: Update.
1909         * config/pa/pa.c (legitimize_pic_address): Update.
1910         (compute_frame_size): Update.
1911         (hppa_expand_prologue): Update.
1912         (hppa_expand_epilogue): Update.
1913         (borx_reg_operand): Update.
1914         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
1915         (HARD_REGNO_RENAME_OK): Update.
1916         * config/mips/mips.c (mips_global_pointer): Update.
1917         (mips_save_reg_p): Update.
1918         (mips_compute_frame_info): Update.
1919         (mips_frame_pointer_required): Update.
1920         (mips_expand_prologue): Update.
1921         (mips_expand_epilogue): Update.
1922         (mips_can_use_return_insn): Update.
1923         (mips_reorg_process_insns): Update.
1924         * config/v850/v850.c (compute_register_save_size): Update.
1925         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
1926         * config/mmix/mmix.c (along): Update.
1927         (mmix_expand_epilogue): Update.
1928         * config/bfin/bfin.c (legitimize_pic_address): Update.
1929         (must_save_p): Update.
1930         (stack_frame_needed_p): Update.
1931         (add_to_reg): Update.
1932         (bfin_expand_prologue): Update.
1933         * stmt.c (expand_asm_operands): Update.
1934         * reload1.c (reload): Update.
1935         (init_elim_table): Update.
1936
1937 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
1938         
1939         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
1940         
1941 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
1942
1943         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
1944         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
1945         (mov<mode>): Removed.
1946         (*movv4sf_internal): Likewise.
1947         (*movv2df_internal): Likewise.
1948
1949 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
1950
1951         * config.gcc (crx-*-elf): Remove deprecation.
1952
1953 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
1954
1955         * config/i386/cygming-crtend.c (register_frame_ctor): Register
1956         __gcc_deregister_frame with atexit.
1957         (deregister_frame_dtor): Remove.
1958
1959 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
1960             Nathan Sidwell  <nathan@codesourcery.com>
1961
1962         * config/rs6000/rs6000.opt (mspe): Remove Var property.
1963         (misel): Likewise.
1964         * config/rs6000/rs6000.h (rs6000_spe): Declare.
1965         (rs6000_isel): Likewise.
1966         * config/rs6000/rs6000.c (rs6000_spe): New variable.
1967         (rs6000_isel): New variable.
1968         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
1969
1970 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
1971
1972         PR c++/35758
1973         * c-common.c (handle_vector_size_attribute): Call
1974         lang_hooks.types.reconstruct_complex_type instead of
1975         reconstruct_complex_type.
1976         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
1977         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
1978         * langhooks.h (struct lang_hooks_for_types): Add
1979         reconstruct_complex_type hook.
1980         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
1981         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
1982
1983 2008-04-24  Richard Guenther  <rguenther@suse.de>
1984
1985         * c-common.h (check_builtin_function_arguments): Declare.
1986         * c-common.c (validate_nargs): New function.
1987         (check_builtin_function_arguments): Likewise.
1988         * c-typeck.c (build_function_call): Call
1989         check_builtin_function_arguments.
1990         * builtins.c (fold_builtin_classify): Remove error reporting code.
1991         (fold_builtin_unordered_cmp): Likewise.
1992         (fold_builtin_1): Likewise.
1993         (fold_builtin_n): Likewise.
1994
1995 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
1996
1997         PR tree-optimization/36008
1998         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
1999         the original op1, rather than delta by step.
2000
2001 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
2002             Sebastian Pop  <sebastian.pop@amd.com>
2003
2004         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
2005         eliminate_local_variables_stmt, eliminate_local_variables,
2006         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
2007         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
2008         of code delimited by two edges in the CFG.
2009         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
2010         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
2011         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
2012         the case of parallelisation of reductions.
2013         (expr_invariant_in_region_p): New.
2014
2015         * tree-flow.h (gather_blocks_in_sese_region): Declared.
2016         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
2017
2018 2008-04-24  Ira Rosen  <irar@il.ibm.com>
2019             Richard Guenther  <rguenther@suse.de>
2020
2021         PR tree-optimization/36034
2022         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
2023         incapable of dealing with loads with gaps.
2024
2025 2008-04-24  Rafael Espindola  <espindola@google.com>
2026
2027         * tree-flow.h (vrp_evaluate_conditional): Change signature.
2028         * tree-ssa-propagate.c (fold_predicate_in): Update call to
2029         vrp_evaluate_conditional.
2030         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
2031         (vrp_evaluate_conditional): Split the cond argument.
2032         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
2033         (simplify_stmt_for_jump_threading): Update call to
2034         vrp_evaluate_conditional.
2035
2036 2008-04-24  Ira Rosen  <irar@il.ibm.com>
2037
2038         PR tree-optimization/35982
2039         * tree-vect-analyze.c (vect_check_interleaving): Check that the
2040         interleaved data-refs are of the same type.
2041
2042 2008-04-24  Danny Smith  <dannysmith@users.net>
2043
2044         * c-format.c (check_format_info_main): Use strncmp rather than a
2045         magic prefix to handle multichar length specs.
2046         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
2047         Don't prefix "I64" and "I32" with '\0'.
2048
2049 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
2050
2051         PR target/36015
2052         * config/i386/i386.c (init_cumulative_args): Don't pass anything
2053         in registers for -m32 only if stdarg_p (fntype).
2054
2055 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
2056
2057         PR rtl-optimization/36006
2058         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
2059         temp to op0 in order to avoid invalid rtx sharing.
2060
2061 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
2062
2063         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
2064         check TREE_INVARIANT.
2065         * tree-gimple.c (is_gimple_address): New.
2066         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
2067         * tree-gimple.h (is_gimple_address): New.
2068         * tree.h (decl_address_invariant_p): New.
2069         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
2070         (build_string): Likewise.
2071         (decl_address_invariant_p): New, from is_gimple_invariant_address.
2072         (tree_invariant_p_1): Likewise.
2073         (save_expr): Use it.
2074         (tree_invariant_p): New.
2075         (skip_simple_arithmetic): Use it.
2076         (stabilize_reference_1): Use it.
2077         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
2078         simplify.
2079         (build1_stat): Drop code to compute TREE_INVARIANT.
2080         (build2_stat): Drop code to compute TREE_INVARIANT.
2081         (build3_stat): Drop code to compute TREE_INVARIANT.
2082         (build4_stat): Drop code to compute TREE_INVARIANT.
2083         (build5_stat): Drop code to compute TREE_INVARIANT.
2084         (build7_stat): Drop code to compute TREE_INVARIANT.
2085         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
2086         * tree.h (struct tree_base): Remove invariant_flag.
2087         (TREE_INVARIANT): Remove.
2088         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
2089         (fold_builtin_expect): Check TREE_CONSTANT.
2090         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
2091         * c-tree.h (c_expr_to_decl): Drop third parameter.
2092         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
2093         (build_c_cast): Don't set TREE_INVARIANT.
2094         (pop_init_level): Don't set TREE_INVARIANT.
2095         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
2096         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
2097         TREE_CONSTANT.
2098         (gimplify_init_constructor): Don't set TREE_INVARIANT.
2099         (gimplify_addr_expr): Adjust comment.
2100         * tree-mudflap.c (mf_build_string):
2101         * print-tree.c (print_node): Don't print TREE_INVARIANT.
2102         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
2103         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
2104         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
2105         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
2106         * langhooks.h (struct lang_hooks): Drop third parameter from
2107         expr_to_decl.
2108
2109 2008-04-23  Richard Guenther  <rguenther@suse.de>
2110
2111         PR tree-optimization/27799
2112         PR tree-optimization/32921
2113         PR tree-optimization/32624
2114         * tree-ssa-structalias.c (merge_smts_into): Only merge the
2115         SMTs aliases and the tag itself into the solution.
2116         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
2117         merge the points-to solution back into the SMT aliases.
2118         (may_alias_p): Use alias_set_subset_of instead of
2119         aliases_conflict_p.  A pointer which points to
2120         memory with alias set zero may access any variable.
2121
2122 2008-04-23  Richard Guenther  <rguenther@suse.de>
2123
2124         * alias.c (alias_set_subset_of): Correctly handle asking
2125         if zero is a subset of an alias set with zero child.
2126         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
2127         (compute_flow_insensitive_aliasing): Correctly walk all
2128         pointers.  Do not unnecessarily union sets.
2129
2130 2008-04-23  Richard Guenther  <rguenther@suse.de>
2131
2132         PR middle-end/36021
2133         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
2134
2135 2008-04-22  Tomas Bily  <tbily@suse.cz>
2136
2137         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
2138         unreachable case.
2139         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
2140         NON_LVALUE_EXPR.
2141         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2142         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2143         * tree-inline.c (estimate_num_insns_1): Likewise.
2144         * varasm.c (const_hash_1, compare_constant, copy_constant)
2145         (compute_reloc_for_constant, output_addressed_constants): Likewise.
2146         * emit-rtl.c (component_ref_for_mem_expr)
2147         (set_mem_attributes_minus_bitpos): Likewise.
2148         * expr.c (highest_pow2_factor, expand_expr_real_1, )
2149         (is_aligning_offset): Likewise.
2150         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
2151         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2152         * dojump.c (do_jump): Likewise.
2153         * builtins.c (get_pointer_alignment, get_memory_rtx)
2154         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
2155         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
2156
2157 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
2158
2159         PR rtl-optimization/36017
2160         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
2161         expanding the library call.
2162
2163 2008-04-22  Ian Lance Taylor  <iant@google.com>
2164
2165         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
2166         than size_in_bytes.
2167
2168 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
2169
2170         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
2171         of LR/CTR moves for Power6.
2172
2173 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
2174
2175         PR middle-end/36003
2176         * passes.c (init_optimization_passes): Remove
2177         pass_fast_rtl_byte_dce.
2178         
2179 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
2180
2181         PR target/29096
2182         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
2183         builtin functions to generate faster code.
2184         (_mm_cvtpu16_ps): Ditto.
2185         (_mm_cvtpi32x2_ps): Ditto.
2186
2187 2008-04-22  Nick Clifton  <nickc@redhat.com>
2188
2189         * common.opt (ftree-loop-distribution): Add Optimization
2190         attribute.
2191
2192         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
2193         (frv_expand_builtin_va_start): Likewise.
2194
2195         * config/arm/arm.c (thumb_find_work_register): Fix location of
2196         argument register count.
2197
2198 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2199
2200         Support scheduling for ColdFire V1 and V3 microarchitecture.
2201         Improve scheduling of multiplication instructions.
2202
2203         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
2204         (mac): New instruction attribute.
2205         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
2206         (m68k_sched_mac): New variable.
2207         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
2208         Handle cfv1 and cfv3.
2209         (max_insn_size): New static variable.
2210         (struct _sched_ib): New type.
2211         (sched_ib): New static variable.
2212         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
2213         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
2214         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
2215         Update.
2216         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
2217         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
2218         new variables.  Update.
2219         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2220         Add modeling of cfv3 instruction buffer.  Update.
2221         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
2222         * config/m68k/m68k.h (TUNE_CFV3): New macro.
2223         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
2224         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
2225         a particular reservation applies to.
2226         (type2): Reorganize attribute values.  Rename alu to alu_reg,
2227         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
2228         to mul_l and mul_w.
2229         (cf_ib_*): Simplify description of instruction buffer.
2230         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
2231         (cf_mem): Split into cf_mem1 and cf_mem2.
2232         (cf_v2_move_??): Rename to cfv12_alu_??.
2233         (cf_v2_move_l_??): Rename to cfv12_omove_??.
2234         (cf_v2_mul_??): Remove reservations.
2235         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
2236         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
2237         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
2238         appropriate place.
2239         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
2240         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
2241         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
2242         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
2243         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
2244         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
2245         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
2246         expansions of the above reservations for instructions of sizes
2247         1, 2 and 3 words.
2248
2249 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2250
2251         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
2252
2253 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
2254
2255         * coverage.c: Include tree-pass.h.
2256         (coverage_counter_alloc): Print da_file_name to the dump file.
2257
2258 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
2259
2260         * sbitmap.c (sbitmap_range_empty_p): New function.
2261         * sbitmap.h (sbitmap_range_empty_p): New function.
2262         * bitmap.h: Now includes obstack.h.
2263
2264 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2265             Kenneth Zadeck  <zadeck@naturalbridge.com>
2266
2267         * dbgcnt.def (ra_byte_scan): Added.
2268         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
2269         when the last hit happens for a counter.  
2270         * timevar.def (TV_DF_BYTE_LR): New variable.
2271         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
2272         * passes.c (pass_fast_rtl_byte_dce): New pass.
2273         * fwprop.c (update_df): Added mode to call df_ref_create.
2274         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2275         DF_REF_EXTRACT_OFFSET.
2276         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
2277         DF_BYTE_LR_OUT, df_byte_lr): New macro.
2278         (df_mm): New enum.
2279         (df_ref_extract): Added mode field.
2280         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
2281         DF_REF_EXTRACT_OFFSET.
2282         (DF_REF_EXTRACT_MODE): New macro.
2283         (df_byte_lr_bb_info): New structure.
2284         (df_print_byte_regset, df_compute_accessed_bytes, 
2285         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
2286         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
2287         df_byte_lr_simulate_uses,
2288         df_byte_lr_simulate_artificial_refs_at_top,
2289         df_byte_lr_simulate_artificial_refs_at_end,
2290         df_compute_accessed_bytes): New function.
2291         (df_ref_create): Add parameter.
2292         (df_byte_lr_get_bb_info): New inline function.
2293         * df-scan.c (df_ref_record, df_uses_record,
2294         df_ref_create_structure): Added mode parameter.
2295         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
2296         df_defs_record, df_uses_record, df_get_conditional_uses,
2297         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
2298         df_entry_block_defs_collect, df_exit_block_uses_collect):
2299         Added mode parameter to calls to df_ref_record, df_uses_record,
2300         df_ref_create_structure.
2301         (df_ref_equal_p, df_ref_compare): Added test for modes.
2302         (df_ref_create_structure): Added code to set mode.  Renamed
2303         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2304         DF_REF_EXTRACT_OFFSET.
2305         * df-core.c (df_print_byte_regset): New function.
2306         * df-byte-scan.c: New file.
2307         * df-problems.c (df_rd_transfer_function): Removed unnecessary
2308         calls to BITMAP_FREE.  
2309         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
2310         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
2311         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
2312         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
2313         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
2314         df_byte_lr_local_compute, df_byte_lr_init,
2315         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
2316         df_byte_lr_transfer_function, df_byte_lr_free, 
2317         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
2318         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
2319         df_byte_lr_simulate_uses,
2320         df_byte_lr_simulate_artificial_refs_at_top,
2321         df_byte_lr_simulate_artificial_refs_at_end): New function.
2322         * dce.c (byte_dce_process_block): New function.
2323         (dce_process_block): au is now passed in rather than computed
2324         locally.  Changed loops that look at artificial defs to not look
2325         for conditional or partial ones, because there never are any.  
2326         (fast_dce): Now is able to drive byte_dce_process_block or 
2327         dce_process_block depending on the kind of dce being done.
2328         (rest_of_handle_fast_dce): Add parameter to fast_dce.
2329         (rest_of_handle_fast_byte_dce): New function.
2330         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
2331         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
2332
2333 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
2334
2335         PR fortran/35019
2336         * gcc.h: Added fortran options that take arguments to
2337         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
2338         macros.
2339
2340 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
2341
2342         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
2343         scalarization if on the LHS and not a full access.
2344
2345 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2346
2347         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
2348
2349 2008-04-18  Rafael Espindola  <espindola@google.com>
2350
2351         * tree-vrp.c (find_case_label_index): Fix the binary search.
2352         (find_case_label_range): New.
2353         (vrp_visit_switch_stmt): Use find_case_label_range.
2354         (simplify_switch_using_ranges): Use find_case_label_range.
2355
2356 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2357
2358         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
2359         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
2360
2361 2008-04-18  Tom Tromey  <tromey@redhat.com>
2362
2363         PR libcpp/15500:
2364         * doc/cpp.texi (Implementation-defined behavior): Mention
2365         -finput-charset.
2366
2367 2008-04-18  Ian Lance Taylor  <iant@google.com>
2368
2369         * fold-const.c (pointer_may_wrap_p): New static function.
2370         (fold_comparison): Add another test for pointer overflow.  Use
2371         pointer_may_wrap_p to disable some false positives.
2372
2373 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
2374           
2375         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
2376         (fname_as_string): Match updated cpp_interpret_string prototype.
2377         (fix_string_type): Support char16_t* and char32_t*.
2378         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
2379         derivative) nodes.  Register as builtin if C++0x.
2380         (c_parse_error): Support CPP_CHAR{16,32}.
2381         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
2382         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
2383         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
2384         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
2385         CTI_CHAR32_ARRAY_TYPE>: New elements.
2386         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
2387         char32_type_node, signed_char32_type_node, char16_array_type_node,
2388         char32_array_type_node): New defines.
2389         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
2390         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
2391         (lex_string): Support CPP_STRING{16,32}, match updated
2392         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
2393         (lex_charconst): Support CPP_CHAR{16,32}.
2394         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
2395         and CPP_STRING{16,32}.
2396
2397 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2398
2399         PR bootstrap/35457
2400         * aclocal.m4: Regenerate.
2401         * configure: Regenerate.
2402
2403 2008-04-18  Jan Hubicka  <jh@suse.cz>
2404
2405         * except.c (dw2_size_of_call_site_table,
2406         sjlj_size_of_call_site_table): Use vector API for call_site_record.
2407
2408         * cgraphbuild.c (build_cgraph_edges): Update.
2409         * tree-pass.h: Update comment.
2410         * final.c (leaf_function_p): Update.
2411         (leaf_renumber_regs): Update.
2412         (rest_of_clean_state): Update.
2413         * omp-low.c (expand_omp_parallel): Update.
2414         * ipa-reference.c (analyze_function): Update.
2415         * reorg.c (find_end_label): Update.
2416         (optimize_skip): Update.
2417         (fill_simple_delay_slots): Update.
2418         (fill_simple_delay_slots): Update.
2419         (make_return_insns): Update.
2420         (dbr_schedule): Update.
2421         * gimple-low.c (record_vars_into): Update.
2422         * cfgbuild.c (make_edges): Update.
2423         * function.c (assign_stack_local): Update.
2424         (assign_parm_adjust_stack_rtl): Update.
2425         (locate_and_pad_parm): Update.
2426         (allocate_struct_function): Do not initialize stack_alignment_needed
2427         and preferred_stack_boundary here.
2428         (stack_protect_prologue): Update.
2429         (stack_protect_epilogue): Update.
2430         (expand_function_start): Initialize stack_alignment_needed,
2431         preferred_stack_boundary and max_jumptable_ents.
2432         (expand_function_end): Update.
2433         (free_after_compilation): Do not NULLify epilogue_delay_list.
2434         * function.h (struct rtl_data): Add stack_protect_guard,
2435         stack_alignment_needed,
2436         preferred_stack_boundary, epilogue_delay_list.
2437         (struct function): Remove value_histograms, stack_alignment_needed,
2438         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
2439         last_label_uid,
2440         unexpanded_var_list, stack_protect_guard.
2441         (current_function_epilogue_delay_list): Remove.
2442         * ipa-type-escape.c (analyze_function): Update.
2443         * gimplify.c (pop_gimplify_context): Update comment.
2444         * calls.c (expand_call): Update.
2445         (emit_library_call_value_1): Update.
2446         * except.c (set_nothrow_function_flags): Update.
2447         * cfgexpand.c (get_decl_align_unit): Update.
2448         (create_stack_guard): Update.
2449         (estimated_stack_frame_size): Update.
2450         (expand_used_vars): Update.
2451         (tree_expand_cfg): Free histogram earliers, init expansion variables.
2452         * explow.c (allocate_dynamic_stack_space): Update.
2453         * tree-ssa-live.c (remove_unused_locals): Update.
2454         * varasm.c (mark_constant_pool): Update.
2455         * tree-inline.c (remap_decls): Update.
2456         (initialize_cfun): Update.
2457         (declare_return_variable): Update.
2458         (inline_forbidden_p): Update.
2459         (expand_call_inline): Update.
2460         (declare_inline_vars): Update.
2461         (tree_function_versioning): Update.
2462         * tree-flow.h (value_histograms): New.
2463         (VALUE_HISTOGRAMS): New macro.
2464         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
2465         last_label_uid.
2466         * tree-cfg.c (set_bb_for_stmt): Update.
2467         (replace_by_duplicate_decl): Update.
2468         (move_block_to_fn): Update.
2469         (new_label_mapper): Update.
2470         (dump_function_to_file): Update.
2471         * ipa-struct-reorg.c (build_data_structure): Update.
2472         * cfgrtl.c (print_rtl_with_bb): Update.
2473         * reload1.c (reload): Update.
2474         (reload): Update.
2475         * config/i386/i386.c (setup_incoming_varargs_64,
2476         ix86_compute_frame_layout): Update.
2477         * config/arc/arc.c (arc_output_function_epilogue): Update.
2478
2479 2008-04-18  Marius Strobl <marius@FreeBSD.org>
2480
2481         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
2482         for FreeBSD as well.
2483         * gthr-posix95.h: Likewise.
2484
2485 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
2486
2487         PR rtl-optimization/35838
2488         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
2489         out the byte offset of the first subreg.
2490
2491 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
2492
2493         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
2494         to split_ti instead of three separate calls with single member arrays.
2495         (subti3 splitter): Ditto.
2496         (adddi3 splitter): Ditto with split_di.
2497         (subdi3 splitter): Ditto.
2498         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
2499         two separate calls with single member arrays.  Swap match_dup
2500         operands 1 and 2 to better fit into the array.
2501         (negdi2 splitter): Ditto with split_di.
2502         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
2503         two separate calls with single member arrays.  Swap match_dup operands
2504         6 and 7 to better fit into the array.
2505
2506 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
2507
2508         * config/i386/i386.c (sse_builtin_type): New.
2509         (bdesc_sse_args): Likewise.
2510         (bdesc_sse_3arg): Removed.
2511         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2512         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
2513         IX86_BUILTIN_ROUNDPS.
2514         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
2515         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
2516         IX86_BUILTIN_ROUNDPS.
2517         (ix86_expand_sse_4_operands_builtin): Removed.
2518         (ix86_expand_sse_operands_builtin): New.
2519         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
2520         and CODE_FOR_sse4_1_roundps.
2521         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2522         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
2523
2524 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
2525
2526         PR target/35907
2527         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
2528         regs before frame pop when needed.  If use_backchain_to_restore_sp
2529         then load backchain into a temp reg to restore vr and vrsave.  Add
2530         code to restore vr after frame pop if possible.
2531
2532 2008-04-17  Richard Guenther  <rguenther@suse.de>
2533
2534         * tree-vn.c (expressions_equal_p): Do not check type
2535         equality or compatibility before calling operand_equal_p.
2536         * fold-const.c (operand_equal_p): Check equivalence of
2537         integer constants before bailing out due to signedness or
2538         precision differences.
2539         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
2540         spurious differences in type qualification.  Ignore types
2541         for COMPONENT_REFs at all.
2542
2543 2008-04-17  Christian Bruel  <christian.bruel@st.com>
2544
2545         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
2546         msw_skip comparison.
2547         
2548 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
2549
2550         PR c/35739
2551         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
2552         reg type.
2553
2554         PR tree-optimization/35899
2555         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
2556         rather than TREE_OPERAND.
2557
2558 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
2559
2560         PR target/35944
2561         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
2562         temporary registers.  Change operand predicate to general_operand.
2563         (remainderxf3): Ditto.
2564
2565 2008-04-16  Richard Guenther  <rguenther@suse.de>
2566
2567         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
2568         * tree-affine.c (aff_combination_expand): Look through some
2569         conversions.
2570
2571 2008-04-15  Doug Kwan  <dougkwan@google.com>
2572
2573         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
2574         for hex printing.
2575         * tree-pretty-print.c (dump_generic_node): Ditto.
2576         * final.c (output_addr_const): Ditto.
2577         * dwarf2out.c (output_cfi): Ditto.
2578         * c-pretty-print.c (pp_c_integer_constant): Ditto.
2579         * print-rtl.c (print_rtx): Ditto.
2580         * print-tree.c (print_node_brief, print_node): Ditto.
2581         * c-common.c (match_case_to_enum_1): Ditto.
2582         * sched-vis.c (print_value): Ditto.
2583         * config/i386/i386.c (print_operand): Cast to long unsigned int
2584         for hex printing.
2585
2586 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
2587         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
2588         MS Windows VirtualProtect function.
2589
2590 2008-04-15  Jan Hubicka  <jh@suse.cz>
2591
2592         * gengtype.c (write_root): Param_is argument is OK.
2593         * expr.c (expand_expr_real_1): Update call of get_exception_*.
2594         * function.h: Include varray.h
2595         (rtl_eh): New stucture based on except.c one.
2596         (call_site_record): New forward declaration and vector type.
2597         * calls.c (emit_call_1): Do not call
2598         note_current_region_may_contain_throw.
2599         * except.c (eh_status): Remove cur_region, try_region since they are
2600         unused.
2601         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
2602         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
2603         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
2604         Remove call_site_data_used, call_site_data_size.
2605         Turn call_site_record into vector in function.h.
2606         (note_current_region_may_contain_throw): Remove.
2607         (get_exception_pointer, get_exception_filter): Do not take struct
2608         function argument; update.
2609         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
2610         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
2611         build_post_landing_pads, dw2_build_landing_pads,
2612         sjlj_assign_call_site_values, sjlj_mark_call_sites,
2613         sjlj_emit_function_enter, sjlj_emit_function_enter, 
2614         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
2615         sjlj_build_landing_pads, finish_eh_generation,
2616         remove_exception_handler_label, remove_eh_handler,
2617         maybe_remove_eh_handler, add_reachable_handler,
2618         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
2619         add_action_record, collect_one_action_chain, add_call_site,
2620         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
2621         sjlj_output_call_site_table, output_function_exception_table,
2622         * except.h (note_current_region_may_contain_throw): Remove
2623         (get_exception_pointer, get_exception_filter): Do not take struct
2624         function argument.
2625         * Makefile.in (GTFILES): Put varargs before struct function.
2626
2627 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
2628
2629         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
2630         punt for STRING_CST.
2631         (get_constraint_for): Deal with STRING_CST here instead.
2632
2633 2008-04-15  Richard Guenther  <rguenther@suse.de>
2634
2635         * tree-ssa-propagate.c (substitute_and_fold): Substitute
2636         statements in a basic-block with a backward walk.  Do not
2637         substitute into dead statements but instead remove those.
2638
2639 2008-04-15  Richard Guenther  <rguenther@suse.de>
2640
2641         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
2642         to zero, thus disable creation of SFTs.
2643
2644 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
2645
2646         * tree-predcom.c (suitable_reference_p): Return false if the
2647         reference can throw.
2648
2649 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
2650
2651         PR c/35751
2652         * c-decl.c (finish_decl): If extern or static var has variable
2653         size, set TREE_TYPE (decl) to error_mark_node.
2654
2655 2008-04-15  Rafael Espindola  <espindola@google.com>
2656
2657         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
2658         variable arg1.
2659
2660 2008-04-15  Richard Guenther  <rguenther@suse.de>
2661
2662         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
2663         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
2664         (visit_reference_op_load): Do walk vuse-vdef chains on
2665         vn_reference_lookup.
2666         (visit_reference_op_store): But do not here.
2667         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
2668         vn_reference_lookup.
2669         (vn_lookup_with_vuses): But do so here.
2670
2671 2008-04-14  Ian Lance Taylor  <iant@google.com>
2672
2673         * fold-const.c (fold_overflow_warning): Remove assertion.
2674
2675 2008-04-15  Ben Elliston  <bje@au.ibm.com>
2676
2677         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
2678         temp1 local variables.
2679
2680 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
2681
2682         PR target/35661
2683         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
2684         ".text.unlikely" section as executable.
2685
2686 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
2687
2688         * config/ia64/ia64.c (rtx_needs_barrier): Handle
2689         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
2690         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
2691         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
2692         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
2693         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
2694         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
2695
2696 2008-04-14  Ian Lance Taylor  <iant@google.com>
2697
2698         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
2699         * fold-const.c (fold_comparison): If appropriate, test
2700         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
2701         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
2702         reassociating a pointer type.
2703         * doc/invoke.texi (Optimize Options): Document that
2704         -fstrict-overflow applies to pointer wraparound.
2705
2706 2008-04-13  Jan Hubicka  <jh@suse.cz>
2707
2708         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
2709
2710 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
2711
2712         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
2713         we are going to "save the world".
2714
2715 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
2716
2717         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
2718         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
2719         operand 0 constraint, not "=".
2720
2721 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
2722
2723         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
2724
2725 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
2726
2727         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
2728         of size of positions_needed * CHAR_BIT.
2729
2730 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
2731
2732         PR middle-end/35897
2733         * dse.c (store_info): Change positions_needed to unsigned
2734         HOST_WIDE_INT.
2735         (lowpart_bitmask): New.
2736         (record_store): Cast to unsigned HOST_WIDE_INT for
2737         positions_needed.  Assert width <= size of positions_needed *
2738         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
2739         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
2740         lowpart_bitmask to set mask.
2741
2742 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
2743
2744         * config/bfin/constraints.md: New file.
2745         * config/bfin/bfin.md: Include it.
2746         (adddi3): Use satisfies_constraint functions instead of the old macros.
2747         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
2748         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
2749         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
2750         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
2751         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
2752         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
2753         EXTRA_CONSTRAINT): Delete.
2754         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
2755         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
2756         of the old macros.
2757         * config/bfin/bfin.c: Include "tm-constrs.h".
2758         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
2759         Use satisfies_constraint functions instead of the old macros.
2760         * doc/md.texi (Blackfin Constraints): Update file name reference.
2761
2762 2008-04-11  Richard Guenther  <rguenther@suse.de>
2763
2764         PR tree-optimization/35869
2765         * tree-vrp.c (execute_vrp): Move switch statement update after
2766         jump threading.  Schedule another cfg cleanup run.
2767
2768 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
2769
2770         PR c/35744
2771         * attribs.c (decl_attributes): Return early on errorneous node.
2772
2773 2008-04-10  Oleg Ryjkov  <olegr@google.com>
2774
2775         * tree.h (struct tree_base): Added a new flag default_def_flag.
2776         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
2777
2778 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2779
2780         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
2781
2782 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2783
2784         PR target/35768
2785         * pa.md: Define mode iterator P.  Define mode attribute dwc.
2786         (dcacheflush): Update pattern to use iterator P and attribute dwc.
2787         (icacheflush): Likewise.
2788         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
2789         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
2790
2791 2008-04-11  Ben Elliston  <bje@au.ibm.com>
2792
2793         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
2794
2795 2008-04-10  Rafael Espindola  <espindola@google.com>
2796
2797         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
2798         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
2799         (extract_range_from_expr): The same.
2800
2801 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
2802
2803         * config/mips/mips.md (GPR2): New mode iterator.
2804         (seq): Add comment.
2805         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
2806         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
2807         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
2808         Rewrite these to take two modes, the mode of comparison and the
2809         mode of the destination.
2810         * config/mips/mips.c (mips_expand_scc): Instead of having
2811         paradoxical subreg as destination, expand "narrowing" scc if mode
2812         of comparison is SI and target is requested in DI mode.
2813         (mips_emit_int_order_test): Update comment.  Make mode of
2814         comparison match CMP0 rather than TARGET.  When creating inverse
2815         target use mode of TARGET.
2816
2817 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
2818
2819         * gcov-dump.c (tag_summary): Only print summaries for the first
2820         GCOV_COUNTERS_SUMMABLE counters.
2821
2822 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
2823
2824         * config/i386/i386.md (absneg): New code iterator.
2825         (absnegprefix): New code attribute.
2826         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
2827         patterns using absneg code iterator.
2828         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
2829         using absneg code iterator.
2830         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
2831         *neg<mode>2 patterns using absneg code iterator.
2832         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
2833         *negextendsfdf2 patterns using absneg code iterator.
2834         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
2835         *negextendsfxf2 patterns using absneg code iterator.
2836         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
2837         *negextendsfdf2 patterns using absneg code iterator.
2838         * config/i386/sse.md (<code><mode>2): Macroize expander from
2839         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
2840
2841 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
2842
2843         * config/s390/s390.h: Remove the remains of the recent search
2844         & replace action of current_function_outgoing_args_size.
2845
2846 2008-04-10  Ira Rosen  <irar@il.ibm.com>
2847
2848         PR tree-optimization/35821
2849         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
2850         NEW_STMT_LIST is not NULL.
2851
2852 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
2853
2854         PR libstdc++/35597
2855         * toplev.c (process_options): Remove -ffunction-sections debugging
2856         warning.
2857
2858 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
2859
2860         PR middle-end/PR28690
2861         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
2862         than gen_rtx_fmt_ee to perform more canonicalizations.
2863
2864 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2865
2866         PR driver/35665
2867         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
2868
2869 2008-04-09  Richard Guenther  <rguenther@suse.de>
2870
2871         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
2872         (dump_function_to_file): Dump function arguments with types.
2873
2874 2008-04-08  Richard Guenther  <rguenther@suse.de>
2875
2876         * fold-const.c (fold_widened_comparison): Do not allow
2877         sign-changes that change the result.
2878
2879 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
2880
2881         PR target/35839
2882         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
2883         kinds of indirect references.
2884
2885 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
2886
2887         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
2888         GNU Fortran language string.
2889
2890 2008-04-08  Rafael Espindola  <espindola@google.com>
2891
2892         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
2893         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
2894         * tree.h (tree_call_nonnegative_warnv_p): New.
2895
2896 2008-04-08  Jan Hubicka  <jh@suse.cz>
2897
2898         * function.c (free_after_compilation): Clear out regno_reg_rtx
2899         pointer.
2900
2901 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
2902
2903         Revert
2904         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
2905
2906         PR middle-end/PR28690
2907         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
2908         same precedence as REG_POINTER and MEM_POINTER operands.
2909
2910 2008-04-08  Richard Guenther  <rguenther@suse.de>
2911
2912         PR middle-end/35834
2913         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
2914         for adding index to base.
2915
2916 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
2917
2918         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
2919         (MINGW_ENABLE_EXECUTE_STACK): New.
2920         (IN_LIBGCC2): For libgcc include windows.h file for
2921         function declarations.
2922
2923 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
2924
2925         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
2926         and tem2 if tem1 is not a REG or MULT.
2927
2928 2008-04-08  Jan Hubicka  <jh@suse.cz>
2929
2930         * function.h (incomming_args): Break out of struct function.
2931         (function_subsections): Break out of struct function.
2932         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
2933         return_rtx and hard_reg_initial_vals from struct function.
2934         Kill inl_max_label_num.
2935         (current_function_pops_args, current_function_args_info,
2936         current_function_args_size, current_function_args_size,
2937         current_function_pretend_args_size,
2938         current_function_outgoing_args_size,
2939         current_function_internal_arg_pointer, current_function_return_rtx):
2940         Kill compatibility accestor macros.
2941         * builtins.c (expand_builtin_apply_args_1): Update.
2942         (expand_builtin_next_arg): Update.
2943         * df-scan.c (df_get_call_refs): Update.
2944         * dbxout.c (dbxout_function_end): Update.
2945         * dwarf2out.c (dwarf2out_switch_text_section): Update.
2946         (output_line_info): Update.
2947         (secname_for_decl): Update.
2948         (dwarf2out_var_location): Update.
2949         * function.c (free_after_compilation): Update.
2950         (assign_parm_find_stack_rtl): Update.
2951         (assign_parms): Update.
2952         (expand_dummy_function_end): Update.
2953         (expand_function_end): Update.
2954         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
2955         (expand_call): Update.
2956         (emit_library_call_value_1): Update.
2957         (store_one_arg): Update.
2958         * varasm.c (initialize_cold_section_name): Update.
2959         (unlikely_text_section): Update.
2960         (unlikely_text_section_p): Update.
2961         (assemble_start_function): Update.
2962         (assemble_end_function): Update.
2963         (default_section_type_flags): Update.
2964         (switch_to_section): Update.
2965         * integrate.c (set_decl_abstract_flags): Update.
2966         (get_hard_reg_initial_val): Update.
2967         (has_hard_reg_initial_val): Update.
2968         (allocate_initial_values): Update.
2969         * resource.c (init_resource_info): Update.
2970         * config/alpha/alpha.c (NUM_ARGS): Update.
2971         (direct_return): Update.
2972         (alpha_va_start): Update.
2973         (alpha_sa_size): Update.
2974         (alpha_initial_elimination_offset): Update.
2975         (alpha_expand_prologue): Update.
2976         (alpha_start_function): Update.
2977         (alpha_expand_epilogue): Update.
2978         (unicosmk_initial_elimination_offset):
2979         * config/alpha/alpha.md (call expander): Update.
2980         * config/s390/s390.c (s390_register_info): Update.
2981         (s390_register_info): Update.
2982         (s390_frame_info): Update.
2983         (s390_initial_elimination_offset): Update.
2984         (s390_build_builtin_va_list): Update.
2985         (s390_va_start): Update.
2986         * config/spu/spu.c (direct_return): Update.
2987         (spu_expand_prologue): Update.
2988         (spu_initial_elimination_offset): Update.
2989         (spu_build_builtin_va_list): Update.
2990         (spu_va_start): Update.
2991         * config/sparc/sparc.c (sparc_init_modes): Update.
2992         (sparc_compute_frame_size): Update.
2993         (function_value): Update.
2994         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
2995         * config/i386/i386.md (return expander): Update.
2996         * config/i386/i386.c (ix86_va_start): Update.
2997         (ix86_can_use_return_insn_p): Update.
2998         (ix86_compute_frame_layout): Update.
2999         (ix86_expand_epilogue): Update.
3000         * config/sh/sh.c (output_stack_adjust): Update.
3001         (calc_live_regs): Update.
3002         (sh_expand_prologue): Update.
3003         (sh_builtin_saveregs): Update.
3004         (sh_va_start): Update.
3005         (initial_elimination_offset): Update.
3006         (sh_allocate_initial_value): Update.
3007         (sh_function_ok_for_sibcall): Update.
3008         (sh_get_pr_initial_val): Update.
3009         * config/sh/sh.md (return expander): Update.
3010         * config/avr/avr.c (frame_pointer_required_p): UPdate.
3011         * config/crx/crx.c (crx_compute_frame): UPdate.
3012         (crx_initial_elimination_offset): UPdate.
3013         * config/xtensa/xtensa.c (compute_frame_size): Update
3014         (xtensa_builtin_saveregs): Update.
3015         (xtensa_va_start): Update.
3016         (order_regs_for_local_alloc): Update.
3017         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
3018         (xstormy16_expand_builtin_va_start): Update.
3019         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
3020         * config/m68hc11/m68hc11.md (return expanders): Update.
3021         * config/m68hc11/m68hc11.c (expand_prologue): Update.
3022         (expand_epilogue): Update.
3023         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
3024         (cris_simple_epilogue): Update.
3025         (cris_expand_prologue): Update.
3026         (cris_expand_epilogue): Update.
3027         * config/iq2000/iq2000.c (iq2000_va_start): Update.
3028         (compute_frame_size): Update.
3029         * config/mt/mt.c (mt_compute_frame_size): Update.
3030         * config/mn10300/mn10300.c (expand_prologue): Update.
3031         (expand_epilogue): Update.
3032         (initial_offset): Update.
3033         (mn10300_builtin_saveregs):
3034         * config/mn10300/mn10300.md (return expander): Update.
3035         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3036         (ia64_initial_elimination_offset): Update.
3037         (ia64_initial_elimination_offset): Update.
3038         (ia64_expand_prologue): Update.
3039         * config/m68k/m68k.md (return expander): Update.
3040         * config/rs6000/rs6000.c (rs6000_va_start): Update.
3041         (rs6000_stack_info): Update.
3042         * config/mcore/mcore.c (layout_mcore_frame): Update.
3043         (mcore_expand_prolog): Update.
3044         * config/arc/arc.c (arc_compute_frame_size): Update.
3045         * config/score/score3.c (score3_compute_frame_size): Update.
3046         * config/score/score7.c (score7_compute_frame_size): Update.
3047         * config/arm/arm.c (use_return_insn): Update.
3048         (thumb_find_work_register): Update.
3049         (arm_compute_save_reg_mask): Update.
3050         (arm_output_function_prologue): Update.
3051         (arm_output_epilogue): Update.
3052         (arm_size_return_regs): Update.
3053         (arm_get_frame_offsets): Update.
3054         (arm_expand_prologue): Update.
3055         (thumb_exit): Update.
3056         (thumb_unexpanded_epilogue): Update.
3057         (thumb1_output_function_prologue): Update.
3058         * config/pa/pa.md (return expander): Update.
3059         * config/pa/pa.c (compute_frame_size): Update.
3060         (hppa_builtin_saveregs): Update.
3061         * config/mips/mips.c (mips_va_start): Update.
3062         (mips16_build_function_stub): Update.
3063         (mips_compute_frame_info): Update.
3064         (mips_restore_gp): Update.
3065         (mips_output_function_prologue): Update.
3066         (mips_expand_prologue): Update.
3067         * config/v850/v850.c (compute_frame_size): Update.
3068         (expand_prologue): * config/mmix/mmix.c (along): update.
3069         (mmix_initial_elimination_offset): update.
3070         (mmix_reorg): update.
3071         (mmix_use_simple_return): update.
3072         (mmix_expand_prologue): update.
3073         (mmix_expand_epilogue): Update.
3074         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
3075         (emit_link_insn): Update.
3076
3077 2008-04-08  Anatoly Sokolov <aesok@post.ru>
3078
3079         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
3080         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
3081         instructions.
3082         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
3083         atmega103 device.
3084
3085 2008-04-07  Jan Hubicka  <jh@suse.cz>
3086
3087         * function.h (rtl): Rename to x_rtl.
3088         (crtl): New define.
3089         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
3090         frame_offset, stack_check_probe_note, arg_pointer_save_area,
3091         used_temp_slots avail_temp_slots, temp_slot_level,
3092         nonlocal_goto_handler_labels): Update accesstors.
3093         (rtl): New global variable.
3094         (struct function): Move some fileds to rtl_data.
3095         (get_arg_pointer_save_area): Update prototype.
3096         * builtins.c (expand_builtin_setjmp_receiver): Update call of
3097         get_arg_pointer_save_area.
3098         * expr.c (init_expr): Update
3099         * function.c (get_frame_size): Update
3100         (assign_stack_local): Update
3101         (expand_function_end): Update.
3102         (get_art_pointer_save_area): Update
3103         * function.h 
3104         * emit-rtl.c (rtl): Declare.
3105         (regno_reg_rtx): Declare.
3106         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
3107         Update.
3108         (gen_reg_rtx): Update.
3109         * varasm.c (n_deferred_constatns): Update accestor.
3110         (init_varasm_status): Do not allocate varasm_status.
3111         (force_const_mem, get_pool_size, output_constant_pool): Update.
3112         * stmt.c (force_label_rtx): Do not use x_ prefixes.
3113         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
3114         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
3115         * sparc/sparc.h (INIT_EXPANDERS): Update.
3116         * ia64/ia64.h (INIT_EXPANDERS): Update.
3117
3118 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
3119
3120         * reload.c (push_secondary_reload): Add missing break to for loop.
3121
3122 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
3123
3124         PR middle-end/PR28690
3125         * rtlanal.c: Update copyright years.
3126         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
3127         as REG_POINTER and MEM_POINTER operands.
3128         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
3129         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
3130         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
3131         * gcse.c: Update copyright years.
3132         (pre_delete): Call gen_reg_rtx_and_attrs.
3133         (hoist_code): Likewise.
3134         (build_store_vectors): Likewise.
3135         (delete_store): Likewise.
3136         * loop-invariant.c (move_invariant_reg): Likewise.
3137         Update copyright years.
3138
3139 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
3140
3141         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
3142         control string instead of quoted.
3143
3144 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
3145
3146         * doc/rtl.texi: Rewrite of subreg section.
3147
3148 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
3149
3150         PR/35842
3151         * config/i386/i386.c (legitimize_pic_address): Add treating
3152         of dllimport SYM_REF's.
3153         (legitimize_dllimport_symbol): Add prototype.
3154
3155 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3156
3157         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
3158         reference in constructor with non self-referential type.
3159
3160 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3161
3162         Removal of Return with Depressed Stack Pointer support
3163         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
3164         (ECF_SP_DEPRESSED): Likewise.
3165         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
3166         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
3167         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3168         (expand_call): Do not test ECF_SP_DEPRESSED.
3169         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3170         * function.c (keep_stack_depressed): Delete.
3171         (handle_epilogue_set): Likewise.
3172         (update_epilogue_consts): Likewise.
3173         (emit_equiv_load): Likewise.
3174         (thread_prologue_and_epilogue_insns): Remove support for Return with
3175         Depressed Stack Pointer.
3176         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3177
3178 2008-04-06  Richard Guenther  <rguenther@suse.de>
3179
3180         PR tree-optimization/35400
3181         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
3182         information from SSA_NAMEs.
3183
3184 2008-04-06  Anatoly Sokolov <aesok@post.ru>
3185
3186         * config/avr/avr.h (avr_mega_p): Remove declaration.
3187         (AVR_MEGA): Remove macro.
3188         * config/avr/avr.c (avr_mega_p): Remove variable.
3189         (avr_override_options): Remove inicializion of avr_mega_p.
3190         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
3191         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
3192         (avr_jump_mode): (Ditto.).
3193         (avr_output_progmem_section_asm_op): (Ditto.).
3194         (avr_asm_init_sections): (Ditto.).
3195         (avr_asm_init_sections): (Ditto.).
3196         (avr_rtx_costs): (Ditto.).
3197         * config/avr/avr.md: (Ditto.).
3198         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
3199         '__AVR_MEGA__'.
3200
3201 2008-04-06  Richard Guenther  <rguenther@suse.de>
3202
3203         PR tree-optimization/35842
3204         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
3205         is_gimple_invariant_address.
3206
3207 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3208
3209         * gcc.c (default_compilers): Sync Fortran extensions list with
3210         that in fortran/lang-specs.h.
3211         * doc/invoke.texi: Likewise.
3212         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
3213         * dwarf2out.c (gen_compile_unit_die): Likewise.
3214
3215 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
3216
3217         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
3218
3219 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
3220
3221         PR target/12329
3222         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
3223         attribute is used for nested functions.
3224
3225 2008-04-05  Jan Hubicka  <jh@suse.cz>
3226
3227         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
3228
3229         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
3230         letter argument.
3231         (dump_files): Update.
3232         (enable_rtl_dump_file): Do not accept letter argument.
3233         * tree-pass.h (dump_file_info): Remove letter argument.
3234         * toplev.c (decode_d_option): Update -da handling.
3235         * toplev.h (enable_rtl_dump_file): Update prototype.
3236         * passes.c (register_one_dump_file): Do not accept IPA argument; work
3237         it out based on pass type.
3238         (register_dump_files_1): Likewise.
3239         (init_optimization_passes): Update register_one_dump_file calls.
3240         (execute_one_pass): Sanity check that IPA passes are called at IPA
3241         level and RTL passes at RTL level.
3242         (execute_pass_list): IPA pass can not be after or subpass of
3243         GIMPLE/RTL pass.
3244         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
3245         disallov RTL subpasses of IPA subpasses.
3246
3247 2008-04-05  Ben Elliston  <bje@au.ibm.com>
3248
3249         * tree-cfg.c (need_fake_edge_p): Return false for calls to
3250         builtins that return exactly once and do not throw. Cache call to
3251         call_expr_flags.
3252
3253 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
3254
3255         PR rtl-optimization/34916
3256         PR middle-end/35519
3257         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
3258         between instruction pairs.
3259
3260 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
3261
3262         * doc/invoke.texi: Document -mbitops for SH.
3263         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
3264         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
3265         * config/sh/sh.c (print_operand): Add %t operand code.
3266         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
3267         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
3268         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
3269         (extendqihi2): Likewise.
3270         (movqi_i): Likewise.
3271         (insv): Use bset, bclr and bst instructions for SH2A if possible.
3272         (extv): Use bld instruction for SH2A if possible.
3273         (extzv): Likewise.
3274         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
3275         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
3276         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
3277         (bset.b, bclr.b): Define peepholes.
3278         * config/sh/sh.opt (mbitops): New option.
3279
3280 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
3281
3282         PR target/35620
3283         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
3284         and view convert expression.
3285
3286 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
3287
3288         PR target/35364
3289         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
3290
3291 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
3292
3293         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
3294
3295         * config/i386/cpuid.h (bit_AES): New.
3296         (bit_PCLMUL): Likewise.
3297
3298         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
3299         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
3300         SSE2 if AES or PCLMUL is enabled.
3301         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
3302         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
3303         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
3304         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
3305         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
3306         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
3307         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
3308         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
3309         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
3310         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
3311         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
3312         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
3313         __builtin_ia32_aeskeygenassist128 and
3314         __builtin_ia32_pclmulqdq128.
3315         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
3316         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
3317         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
3318
3319         * config/i386/i386.h (TARGET_AES): New.
3320         (TARGET_PCLMUL): Likewise.
3321         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
3322
3323         * config/i386/i386.md (UNSPEC_AESENC): New.
3324         (UNSPEC_AESENCLAST): Likewise.
3325         (UNSPEC_AESDEC): Likewise.
3326         (UNSPEC_AESDECLAST): Likewise.
3327         (UNSPEC_AESIMC): Likewise.
3328         (UNSPEC_AESKEYGENASSIST): Likewise.
3329         (UNSPEC_PCLMUL): Likewise.
3330
3331         * config/i386/i386.opt (maes): New.
3332         (mpclmul): Likewise.
3333
3334         * config/i386/sse.md (aesenc): New pattern.
3335         (aesenclast): Likewise.
3336         (aesdec): Likewise.
3337         (aesdeclast): Likewise.
3338         (aesimc): Likewise.
3339         (aeskeygenassist): Likewise.
3340         (pclmulqdq): Likewise.
3341
3342         * config/i386/wmmintrin.h: New.
3343
3344         * doc/extend.texi: Document AES and PCLMUL built-in function.
3345
3346         * doc/invoke.texi: Document -maes and -mpclmul.
3347
3348 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
3349
3350         * function.c (free_after_parsing): Replace with
3351         cxx_push_function_context from C++ front-end.
3352         (allocate_struct_function): Don't call langhook.
3353         * langhooks.h (struct lang_hooks_for_functions): Delete.
3354         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
3355         member "function".
3356         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
3357         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
3358         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3359         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
3360         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
3361         remove LANG_HOOKS_FUNCTION_INITIALIZER.
3362         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
3363
3364         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
3365         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
3366         
3367 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
3368
3369         PR c/35440
3370         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
3371         for all types.
3372
3373 2008-04-04  Richard Guenther  <rguenther@suse.de>
3374
3375         PR middle-end/35823
3376         * fold-const.c (optimize_minmax_comparison): Use the correct
3377         type for the constant in the simplified comparison.
3378
3379 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
3380
3381         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
3382         Pass L2 size as "--param l2-cache-size" to the compiler.
3383         (decode_l2_cache): New function to decode L2 cache parameters using
3384         0x8000006 extended cpuid function.
3385         (detect_caches_amd): Determine parameters of L2 cache using
3386         decode_l2_caches function.
3387         (decode_caches_intel): Decode L2 cache parameters.
3388         (detect_caches_intel): Determine L2 cache parameters using
3389         decode_caches_intel and decode_l2_caches functions.
3390
3391 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
3392
3393         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
3394         secondary input reload for subword loads from the constant pool.
3395
3396 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
3397
3398         PR target/35713
3399         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
3400           constants of the appropriate size for runtime calculations.
3401
3402         PR c/35712
3403         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
3404           decimal-float literal constant zero.
3405
3406 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
3407
3408         PR c/35738
3409         * c-parser.c (c_parser_omp_atomic): Call
3410         default_function_array_conversion on the RHS.
3411
3412         PR middle-end/35818
3413         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
3414         call is_variable_sized if decl has incomplete type.
3415
3416 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
3417
3418         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
3419
3420 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
3421
3422         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
3423         iterators.
3424         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
3425         (sgt<u>): Merge sgt and sgtu into new expander.
3426         (sgt, sgtu): Remove expanders.
3427         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
3428         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
3429         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
3430         *sgtu_<mode>_mips16 into new pattern.
3431         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
3432         (sge<u>): Merge sge and sgeu into new expander.
3433         (sge, sgeu): Remove expanders.
3434         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
3435         new pattern.
3436         (*sge_<mode>, second *sge_<mode>): Remove patterns.
3437         (slt<u>): Merge slt and sltu into new expander.
3438         (slt, sltu): Remove expanders.
3439         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
3440         (*slt_<mode>, *sltu_<mode>): Remove patterns.
3441         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
3442         *sltu_<mode>_mips16 into new pattern.
3443         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
3444         (sle<u>): Merge sle and sleu into new expander.
3445         (sle, sleu): Remove expanders.
3446         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
3447         (*sle_<mode>, *sleu_<mode>): Remove patterns.
3448         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
3449         *sleu_<mode>_mips16 into new pattern.
3450         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
3451
3452 2008-04-03  Jan Hubicka  <jh@suse.cz>
3453
3454         PR tree-optimization/35795
3455         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
3456         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3457         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3458         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
3459         * score/score3.c (score3_output_mi_thunk): Likewise.
3460         * score/score7.c (score7_output_mi_thunk): Likewise.
3461         * mips/mips.c (mips_output_mi_thunk): Likewise.
3462
3463 2008-04-03  Richard Guenther  <rguenther@suse.de>
3464
3465         * tree-vrp.c (extract_range_from_unary_expr): Handle all
3466         conversions.  Simplify code.
3467
3468 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3469
3470         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
3471
3472 2008-04-03  Tom Tromey  <tromey@redhat.com>
3473             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3474
3475         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
3476         * config/bfin/t-bfin-linux (generated_files): Add
3477         linux-sysroot-suffix.h.
3478         * doc/install.texi (Prerequisites): Require make 3.80.
3479         * doc/sourcebuild.texi (Front End Directory): Document new
3480         variable.
3481         * Makefile.in (generated_files): New variable.
3482         (ALL_HOST_OBJS): New variable.
3483         ($(ALL_HOST_OBJS)): New target.
3484
3485 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
3486
3487         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
3488         (remap_block): Call id->transform_lang_insert_block instead
3489         of langhook.
3490         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
3491         Set id.transform_lang_insert_block to NULL.
3492         (clone_body): Move to cp/optimize.c
3493         * tree-inline.h (struct copy_body_data): Change
3494         transform_lang_insert_block to function pointer.
3495         (copy_generic_body, copy_decl_no_change): Export.
3496         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
3497         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
3498         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
3499
3500         * c-tree.h (insert_block): Kill.
3501         * c-decl.c (insert_block): Kill.
3502
3503 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
3504
3505         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3506         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
3507         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
3508         argument.
3509         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
3510         argument, call {push,pop}_function_context from here.
3511         * c-parser.c: Use c_{push,pop}_function_context.
3512
3513         * function.c (push_function_context_to): Move meat ...
3514         (push_function_context): ... here.  Simplify.
3515         * function.c (pop_function_context_from): Move meat ...
3516         (pop_function_context): ... here.  Simplify.
3517         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
3518         leave_nested).
3519         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3520         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
3521         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
3522         * tree.h (push_function_context_to, pop_function_context_from): Remove.
3523
3524 2008-04-03  Ben Elliston  <bje@au.ibm.com>
3525
3526         * expmed.c (extract_force_align_mem_bit_field): Remove.
3527
3528 2008-04-03  Richard Guenther  <rguenther@suse.de>
3529
3530         PR middle-end/35800
3531         * expr.h (try_casesi): Adjust prototype.
3532         * expr.c (try_casesi): Take fallback label as extra parameter.
3533         Use that for gen_casesi if default_label is NULL.
3534         * stmt.c (expand_case): Pass fallback label to try_casesi,
3535         make sure to fill gaps with a fallback label if default_label
3536         is not present.
3537
3538 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
3539
3540         PR target/35801
3541         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
3542
3543 2008-04-03  Ben Elliston  <bje@au.ibm.com>
3544
3545         * expmed.c (extract_split_bit_field): Remove if (0) code.
3546         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
3547         (do_ds_constraint): Likewise.
3548
3549 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
3550
3551         * doc/cppopts.texi (-dU): Document.
3552         * c-common.h (flag_dump_macros): Update comment.
3553         * c-opts.c (handle_OPT_d): Handle -dU.
3554         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
3555         dump_queued_macros, cb_used_define, cb_used_undef): New.
3556         (init_pp_output): Handle -dU.
3557         (cb_line_change): Call dump_queued_macros.
3558         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
3559
3560 2008-04-02  Anatoly Sokolov <aesok@post.ru>
3561
3562         * config/avr/predicates.md (io_address_operand): New predicate. 
3563         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
3564         * config/avr/avr.c (avr_io_address_p): Remove function.
3565         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
3566         'avr_io_address_p' function.
3567         (out_movhi_r_mr): (Ditto.).
3568         (out_movqi_mr_r): (Ditto.).
3569         (out_movhi_mr_r): (Ditto.).
3570         (avr_address_cost): (Ditto.).
3571
3572 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
3573
3574         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
3575         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
3576         in 32bit mode when XMM registers are available to avoid store
3577         forwarding stalls.
3578         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
3579         corresponding post-reload splitters.
3580
3581 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3582
3583         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
3584         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
3585         __builtin_ia32_roundss.
3586         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
3587         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
3588         __builtin_ia32_roundss.
3589         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
3590         IX86_BUILTIN_SHUFPD here.
3591
3592 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3593
3594         * config/i386/i386.md (plogic): New.
3595         (plogicprefix): Likewise.
3596
3597         * config/i386/mmx.md (mmx_<code><mode>3): New.
3598         (mmx_and<mode>3): Removed.
3599         (mmx_ior<mode>3): Likewise.
3600         (mmx_xor<mode>3): Likewise.
3601
3602         * config/i386/sse.md (<code><mode>3): New.
3603         (*<code><mode>3): Likewise.
3604         (*<code><mode>3): Likewise.
3605         (<code><mode>3): Likewise.
3606         (*sse_<code><mode>3): Likewise.
3607         (*sse2_<code><mode>3): Likewise.
3608         (<code>tf3): Likewise.
3609         (*<code>tf3): Likewise.
3610         (and<mode>3): Likewise.
3611         (*and<mode>3): Likewise.
3612         (ior<mode>3): Removed.
3613         (*ior<mode>3): Likewise.
3614         (xor<mode>3): Likewise.
3615         (*xor<mode>3): Likewise.
3616         (*and<mode>3): Likewise.
3617         (*ior<mode>3): Likewise.
3618         (*xor<mode>3): Likewise.
3619         (and<mode>3): Likewise.
3620         (*sse_and<mode>3): Likewise.
3621         (*sse2_and<mode>3): Likewise.
3622         (andtf3): Likewise.
3623         (*andtf3): Likewise.
3624         (ior<mode>3): Likewise.
3625         (*sse_ior<mode>3): Likewise.
3626         (*sse2_ior<mode>3): Likewise.
3627         (iortf3): Likewise.
3628         (*iortf3): Likewise.
3629         (xor<mode>3): Likewise.
3630         (*sse_xor<mode>3): Likewise.
3631         (*sse2_xor<mode>3): Likewise.
3632         (xortf3): Likewise.
3633         (*xortf3): Likewise.
3634
3635 2008-04-02  Richard Guenther  <rguenther@suse.de>
3636
3637         PR tree-optimization/14495
3638         PR tree-optimization/34793
3639         * tree-vrp.c (struct switch_update): New structure.
3640         (to_remove_edges, to_update_switch_stmts): New VECs.
3641         (simplify_switch_using_ranges): New function.  Remove not taken
3642         case labels and edges.
3643         (simplify_stmt_using_ranges): Call it.
3644         (identify_jump_threads): Mark edges we have queued for removal
3645         so we don't thread them.
3646         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
3647         case label vector.
3648         * tree-cfg.c (group_case_labels): Deal with missing default label.
3649         (tree_verify_flow_info): Allow missing default label.
3650         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
3651         (emit_case_nodes): Likewise.
3652         (expand_case): Do not rely on the default label to be present.
3653         * expr.c (try_casesi): Deal with NULL default_label.
3654         (do_tablejump): Likewise.
3655
3656 2008-04-02  Richard Guenther  <rguenther@suse.de>
3657
3658         PR tree-optimization/14495
3659         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
3660         SWITCH_EXPR here ...
3661         (vrp_visit_switch_stmt): ... but here (new function).
3662         (find_case_label_index): New helper function.
3663         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
3664
3665 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
3666
3667         * fwprop.c: Fix ISO-C99ism.
3668
3669 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
3670
3671         PR bootstrap/35752
3672         * Makefile.in (objdir): Set it here.
3673         * configure.ac: Not here.  Find dynamic linker characteristics.
3674         * exec-tool.in: Use them.
3675         * aclocal.m4: Regenerate.
3676         * configure: Regenerate.
3677
3678 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
3679
3680         * expr.c (expand_var): Delete it.
3681         * expr.h (expand_var): Delete prototype.
3682         * function.c (expand_function_start): Use expand_decl instead.
3683         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
3684         langhook.
3685
3686 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
3687
3688         PR rtl-optimization/35542
3689         * fwprop.c (forward_propagate_and_simplify): Replace
3690         loc_reg_mentioned_in_p with reg_mentioned_p.
3691
3692 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
3693
3694         PR rtl-optimization/35281
3695         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
3696         (propagate_rtx_1): Handle PR_HANDLE_MEM.
3697         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
3698         (varying_mem_p): Move above propagate_rtx.
3699         (all_uses_available_at): Do not check MEMs.
3700
3701 2008-04-02  Rafael Espindola  <espindola@google.com>
3702
3703         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
3704         (register_edge_assert_for_2): Split the cond argument.
3705         (register_edge_assert_for_1): Adjust for the change in
3706         register_edge_assert_for_2.
3707         (register_edge_assert_for): Split the cond argument.
3708         (find_switch_asserts): Adjust for the change in
3709         register_edge_assert_for.
3710
3711 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
3712
3713         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
3714         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
3715         offsets for 64-bit mingw.
3716         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
3717         abi for x86_64-pc-mingw.
3718
3719 2008-04-02  Richard Guenther  <rguenther@suse.de>
3720
3721         * tree-vrp.c (extract_range_from_assert): Make sure to not
3722         produce range min/max with TREE_OVERFOW set.
3723         If merging a anti-range and a range keep the anti-range if
3724         the range covers all values of the type.
3725         (register_edge_assert_for_2): Only allow sign-changing
3726         conversions in detecting canonical range checks.  Also
3727         register an assert for the unsigned name if useful.
3728
3729         PR tree-optimization/35787
3730         * tree-vrp.c (vrp_val_max): New function.
3731         (vrp_val_min): Likewise.
3732         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
3733         (vrp_val_is_min): Likewise.
3734         (supports_overflow_infinity): Use vrp_val_{min,max}.
3735         (negative_overflow_infinity): Likewise.
3736         (positive_overflow_infinity): Likewise.
3737         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
3738         (is_positive_overflow_infinity): Likewise.
3739         (is_overflow_infinity): Likewise.
3740         (avoid_overflow_infinity): Use vrp_val_{min,max} and
3741         vrp_val_is_{min,max}.
3742         (set_and_canonicalize_value_range): Canonicalize anti-ranges
3743         to ranges if possible.  Avoid empty ranges.
3744
3745 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3746
3747         PR middle-end/35705
3748         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
3749         the expression is a function address.
3750
3751 2008-04-01  George Helffrich  <george@gcc.gnu.org>
3752
3753         PR fortran/35154, fortran/23057
3754         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
3755         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
3756         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
3757         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
3758         in common.
3759         (dbxout_syms): Check for COMMON-based symbol and wrap in
3760         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
3761         in bracket for efficiency.
3762
3763         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
3764         using DW_TAG_common_block + member offset.
3765         (add_pubname_string): New function.
3766         (dw_expand_expr): New function to find block name and offset for
3767         COMMON var.
3768         (common_check): New function to check whether symbol in Fortran COMMON.
3769         (gen_variable_die): If COMMON, use DW_TAG_common_block.
3770
3771 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
3772
3773         PR c/35436
3774         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
3775
3776 2008-04-02  Ben Elliston  <bje@au.ibm.com>
3777
3778         * config/v850/v850.md (casesi): Remove if (0) code.
3779         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
3780         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
3781
3782 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
3783
3784         * config/i386/i386.md (rex64suffix): New mode attribute.
3785         (floathi<mode>2): Disable expander for SSE math.
3786         (*floathi<mode>2_1): New insn insn_and_split pattern.
3787         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
3788         corresponding post-reload splitters.
3789         (*floathi<mode>2_i387): New macroized insn pattern.
3790         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
3791         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
3792         insn_and_split pattern.
3793         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
3794         New macroized instruction patterns and corresponding post-reload
3795         splitters.
3796         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
3797         and corresponding post-reload splitters.
3798         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
3799         New macroized instruction patterns.
3800         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
3801         macroized instruction patterns and corresponding post-reload splitters.
3802         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
3803         corresponding post-reload splitters.
3804         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
3805         New macroized instruction patterns.
3806         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
3807         corresponding post-reload splitters.
3808         (*floatsi<mode>2_i387): New macroized instruction patterns.
3809
3810 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
3811
3812         * config/i386/i386.md (smaxmin): New.
3813         (umaxmin): Likewise.
3814         (maxminiprefix): Likewise.
3815         (maxminfprefix): Likewise.
3816         (<code><mode>3): Likewise.
3817         (smin<mode>3): Removed.
3818         (smax<mode>3): Likewise.
3819
3820         * config/i386/mmx.md (mmx_<code>v2sf3): New.
3821         (mmx_<code>v4hi3): Likewise.
3822         (mmx_<code>v8qi3): Likewise.
3823         (mmx_smaxv2sf3): Removed.
3824         (mmx_sminv2sf3): Likewise.
3825         (mmx_umaxv8qi3): Likewise.
3826         (mmx_smaxv4hi3): Likewise.
3827         (mmx_uminv8qi3): Likewise.
3828         (mmx_sminv4hi3): Likewise.
3829
3830         * config/i386/sse.md (<addsub><mode>3): New.
3831         (*<addsub><mode>3): Likewise.
3832         (<sse>_vm<addsub><mode>3): Likewise.
3833         (<maxmin><mode>3): Likewise.
3834         (*<maxmin><mode>3_finite): Likewise.
3835         (*<maxmin><mode>3): Likewise.
3836         (<sse>_vm<maxmin><mode>3): Likewise.
3837         (sse3_h<addsub>v4sf3): Likewise.
3838         (sse3_h<addsub>v2df3): Likewise.
3839         (<maxmin>v16qi3): Likewise.
3840         (*<maxmin>v16qi3): Likewise.
3841         (<maxmin>v8hi3): Likewise.
3842         (*<maxmin>v8hi3): Likewise.
3843         (*sse4_1_<maxmin><mode>3): Likewise.
3844         (*sse4_1_<maxmin><mode>3): Likewise.
3845         (add<mode>3): Removed.
3846         (*add<mode>3): Likewise.
3847         (<sse>_vmadd<mode>3): Likewise.
3848         (sub<mode>3): Likewise.
3849         (*sub<mode>3): Likewise.
3850         (<sse>_vmsub<mode>3): Likewise.
3851         (smin<mode>3): Likewise.
3852         (*smin<mode>3_finite): Likewise.
3853         (*smin<mode>3): Likewise.
3854         (<sse>_vmsmin<mode>3): Likewise.
3855         (smax<mode>3): Likewise.
3856         (*smax<mode>3_finite): Likewise.
3857         (*smax<mode>3): Likewise.
3858         (<sse>_vmsmax<mode>3): Likewise.
3859         (sse3_haddv4sf3): Likewise.
3860         (sse3_haddv2df3): Likewise.
3861         (sse3_hsubv4sf3): Likewise.
3862         (sse3_hsubv2df3): Likewise.
3863         (umaxv16qi3): Likewise.
3864         (*umaxv16qi3): Likewise.
3865         (smaxv8hi3): Likewise.
3866         (*smaxv8hi3): Likewise.
3867         (*sse4_1_smax<mode>3): Likewise.
3868         (*sse4_1_umax<mode>3): Likewise.
3869         (uminv16qi3): Likewise.
3870         (*uminv16qi3): Likewise.
3871         (sminv8hi3): Likewise.
3872         (*sminv8hi3): Likewise.
3873         (*sse4_1_smin<mode>3): Likewise.
3874         (*sse4_1_umin<mode>3): Likewise.
3875
3876 2008-04-01  Rafael Espindola  <espindola@google.com>
3877
3878         * tree-cfg.c (verify_expr): remove in_phi.
3879         (verify_stmt): Don't call walk_tree with verify_expr. Use
3880         is_gimple_min_invariant instead of is_gimple_val.
3881
3882 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
3883
3884         * doc/include/gpl_v3.texi: Update for manpage generation.
3885         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
3886         gpl.texi.
3887         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
3888         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
3889         gpl_v3.texi instead of gpl.texi.
3890         (gpl.pod): New.
3891
3892 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
3893
3894         PR pch/13675
3895         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
3896
3897 2008-04-01  Rafael Espindola  <espindola@google.com>
3898
3899         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
3900         (extract_code_and_val_from_cond): Use
3901         extract_code_and_val_from_cond_with_ops.
3902
3903 2008-04-01  Jan Hubicka  <jh@suse.cz>
3904
3905         * function.c (free_after_compilation): Free epilogue_delay_list.
3906         (prepare_function_start): Assert that previous compilation was freed.
3907
3908 2008-04-01  Jan Hubicka  <jh@suse.cz>
3909             Jim Wilson  <wilson@tuliptree.org>
3910             Andreas Tobler <andreast@gcc.gnu.org>
3911
3912         PR middle-end/35781
3913         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
3914         rtl.emit instead cfun->emit.
3915         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
3916         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
3917
3918 2008-04-01  Ben Elliston  <bje@au.ibm.com>
3919
3920         * doc/c-tree.texi (Function Basics): Fix grammatical error.
3921
3922 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
3923
3924         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
3925         New options
3926         (fprofile-use): Add var flag_profile_use
3927         * coverage.c (coverage_begin_output): Do not open a gcno file for
3928         output only if -ftest-coverage is set.
3929         Do not add getpwd() to gcda file path.
3930         (build_gcov_info): Check the new flag
3931         flag_profile_datafile_relative_path.
3932         (coverage_init): Use profile_data_prefix.
3933         Read profile counter only if flag_profile_use is set.
3934         * opts.c (common_handle_option): New option fprofile-use=,
3935         fprofile-dir=, fprofile-generate=.
3936         * toplev.c (profile_data_prefix): New variable definition.
3937         * toplev.h (profile_data_prefix): New declaration.
3938         * doc/invoke.tex (Option Summary, Optimization Options):
3939         Add new options.
3940
3941 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
3942
3943         * varasm.c (output_constant_pool_1): In LABEL_REF check,
3944         use tmp consistently.
3945
3946         PR target/35695
3947         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
3948         * config/ia64/ia64.c (rtx_needs_barrier): Handle
3949         UNSPEC_FR_RECIP_APPROX_RES.
3950         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
3951
3952 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
3953
3954         PR c/35750
3955         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
3956
3957 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3958
3959         PR middle-end/30186
3960         * fold-const.c (fold_indirect_ref_1): Support accessing non first
3961         element of the vector via a pointer.
3962
3963 2008-03-31  Ian Lance Taylor  <iant@google.com>
3964
3965         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
3966
3967 2008-03-31  Jan Hubicka  <jh@suse.cz>
3968
3969         * builtins.c (expand_builtin_setjmp_receiver): Update call of
3970         get_arg_pointer_save_area.
3971         * expr.c (init_expr): Just clear out rtl.expr.
3972         * function.c (free_after_compilation): Clear out whole RTL structure.
3973         (get_func_frame_size): Merge into ...
3974         (get_frame_size): ... this one.
3975         (assign_stack_local_1): Merge into ...
3976         (assign_stack_local): ... this one.
3977         (expand_function_end): Update call of get_arg_pointer_save_area.
3978         (get_art_pointer_save_area): Remove cfun argument.
3979         * function.h (emit_status): regno_pointer_align does not need length
3980         attribute. Move x_regno_reg_rtx to ...
3981         (regno_reg_rtx): ... new global array.
3982         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
3983         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
3984         apply_args_value, forced_labels, stack_pointer_delta):
3985         Update accestors.
3986         (struct varasm_status): Move here from varasm.c
3987         (struct rtl_data): New. Move here some fields from struct function.
3988         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
3989         frame_offset, stack_check_probe_note, arg_pointer_save_area,
3990         used_temp_slots avail_temp_slots, temp_slot_level,
3991         nonlocal_goto_handler_labels): Update accesstors.
3992         (rtl): New global variable.
3993         (struct function): Move some fileds to rtl_data.
3994         (get_arg_pointer_save_area): Update prototype.
3995         * emit-rtl.c (rtl): Declare.
3996         (regno_reg_rtx): Declare.
3997         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
3998         Update.
3999         (gen_reg_rtx): Update.
4000         (init_virtual_regs): Do not tate emit_status argument.
4001         (init_emit): Do not allocate emit.
4002         * varasm.c (varasm_statuc): Move to function.h.
4003         (n_deferred_constatns): Update accestor.
4004         (init_varasm_status): Do not allocate varasm_status.
4005         (force_const_mem, get_pool_size, output_constant_pool): Update.
4006         * stmt.c (force_label_rtx): Do not use x_ prefixes.
4007         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4008
4009 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
4010
4011         PR rtl-optimization/35729
4012         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
4013         references.
4014
4015 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
4016
4017         PR target/32000
4018         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
4019         load/store if memory is unaligned.
4020         (*movti_rex64): Likewise.
4021
4022         * config/i386/predicates.md (misaligned_operand): New.
4023
4024 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
4025
4026         PR tree-opt/35431
4027         * tree-ssa-phiopt.c (conditional_replacement): Return early for
4028         complex types.
4029
4030 2008-03-31  Jan Beulich  <jbeulich@novell.com>
4031
4032         * config/ia64/constraints.md: Add 'j' constraint.
4033         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
4034         (movdi_internal): Likewise.
4035
4036 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
4037
4038         PR c/35748
4039         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
4040
4041 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
4042
4043         PR target/35757
4044         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
4045         proper error message for the third argument on blendpd and
4046         blendps.
4047
4048         * config/i386/sse.md (blendbits): New.
4049         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
4050
4051 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
4052
4053         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
4054
4055 2008-03-30  Richard Guenther  <rguenther@suse.de>
4056
4057         PR middle-end/31023
4058         * fold-const.c (fold_sign_changed_comparison): Do leave
4059         conversions to base-types alone.
4060
4061 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4062
4063         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
4064         the link register if one altivec register is be saved.
4065
4066 2008-03-30  Ben Elliston  <bje@au.ibm.com>
4067
4068         * final.c (final_scan_insn): Remove if (0) code.
4069
4070 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
4071
4072         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
4073
4074 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
4075
4076         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
4077         of V4SFmode to ix86_binary_operator_ok.
4078
4079 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
4080
4081         * config/i386/i386.c (override_options): Initialize
4082         ix86_veclib_handler to ix86_veclibabi_svml when
4083         -mveclibabi=svml is used.
4084         (ix86_veclibabi_svml): New function for SVML ABI style
4085         vectorization support.
4086         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
4087
4088 2008-03-28  Rafael Espindola  <espindola@google.com>
4089
4090         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
4091         (tree_binary_nonnegative_warnv_p): Make it public.
4092         (tree_single_nonnegative_warnv_p): Make it public.
4093         (tree_invalid_nonnegative_warnv_p): Make it public.
4094         (tree_unary_nonzero_warnv_p): Make it public.
4095         (tree_binary_nonzero_warnv_p): Make it public
4096         (tree_single_nonzero_warnv_p): Make it public.
4097         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
4098         (extract_range_from_binary_expr): Split the expr argument.
4099         (extract_range_from_unary_expr): Split the expr argument.
4100         (extract_range_from_comparison): Split the expr argument.
4101         (extract_range_from_expr): Use the new aux functions.
4102         (vrp_evaluate_conditional_warnv): Use
4103         vrp_evaluate_conditional_warnv_with_ops.
4104         * tree.h (tree_unary_nonzero_warnv_p): Declare.
4105         (tree_binary_nonzero_warnv_p): Declare.
4106         (tree_single_nonzero_warnv_p): Declare.
4107         (tree_expr_nonzero_warnv_p): Declare.
4108         (tree_unary_nonnegative_warnv_p): Declare.
4109         (tree_binary_nonnegative_warnv_p): Declare.
4110         (tree_single_nonnegative_warnv_p): Declare.
4111         (tree_invalid_nonnegative_warnv_p): Declare.
4112
4113 2008-03-28  Richard Guenther  <rguenther@suse.de>
4114
4115         PR tree-optimization/30317
4116         PR tree-optimization/30911
4117         PR tree-optimization/34793
4118         * tree-vrp.c (set_and_canonicalize_value_range): New function.
4119         (struct assert_locus_d): New member EXPR.
4120         (register_new_assert_for): Add EXPR parameter to support
4121         ASSERT_EXPR <name, expr OP limit>.
4122         (register_edge_assert_for_1): Adjust callers.
4123         (find_assert_locations): Likewise.
4124         (process_assert_insertions_for): Build condition from expression.
4125         (extract_range_from_assert): Handle ASSERT_EXPRs
4126         of the form ASSERT_EXPR <name, expr OP limit>.
4127         (register_edge_assert_for_2): New helper registering
4128         asserts for comparisons.  Recognize range tests of the form
4129         (unsigned)i - CST1 OP CST2.
4130         (register_edge_assert_for_1): Use it.
4131         (register_edge_assert_for): Likewise.
4132         (needs_overflow_infinity): Integer sub-types
4133         do not need overflow infinities.
4134         (vrp_val_is_max): The extreme values of integer sub-types
4135         are those of the base type.
4136         (vrp_val_is_min): Likewise.
4137         * tree.def (ASSERT_EXPR): Document extra allowed conditional
4138         expressions.
4139
4140 2008-03-28  Nick Clifton  <nickc@redhat.com>
4141
4142         PR target/31110
4143         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
4144         Return GENERAL_REGS for stack adjustment reloads.
4145
4146 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4147
4148         PR target/31334
4149         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
4150         const_vector when all the vectors are constant.
4151
4152 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
4153
4154         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
4155         comparisons.
4156         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
4157         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
4158         (scc_sf): New.
4159         (s<code>_sf): Use new scc_sf attribute for opcode names.
4160
4161 2008-03-27  Tom Tromey  <tromey@redhat.com>
4162
4163         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
4164         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
4165         config/spu/t-spu-elf, config/i386/t-interix,
4166         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
4167         config/i386/x-darwin, config/i386/x-mingw32,
4168         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
4169         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
4170         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
4171         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
4172         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
4173         config/rs6000/x-darwin, config/rs6000/t-rs6000,
4174         config/score/t-score-elf, config/arm/t-strongarm-pe,
4175         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
4176         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
4177         Revert automatic dependency patch.
4178
4179 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
4180
4181         PR target/35657
4182         * config/i386/i386.c (ix86_function_arg_boundary): Align
4183         decimal floating point to its natural boundary.
4184
4185 2008-03-27  Richard Guenther  <rguenther@suse.de>
4186
4187         PR middle-end/35716
4188         * fold-const.c (fold_comparison): Restrict distinct decl
4189         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
4190         solely rely on operand_equal_p.
4191
4192 2008-03-27  Richard Guenther  <rguenther@suse.de>
4193
4194         PR c/32511
4195         * c-common.c (handle_weak_attribute): Reject combination of
4196         weak and inline.
4197
4198 2008-03-27  Richard Guenther  <rguenther@suse.de>
4199
4200         PR tree-optimization/32810
4201         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
4202         conversions from DECL_INITIAL.
4203         (fold_const_aggregate_ref): Likewise from constructor elements.
4204
4205 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
4206
4207         * tree-affine.h (aff_combination_expand): Declare.
4208         (get_inner_reference_aff): Likewise.
4209         * tree-affine.c (aff_combination_expand): Split out from
4210         tree_to_aff_combination_expand.
4211         (get_inner_reference_aff): New function.
4212         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
4213         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
4214         (struct lim_aux_data): sm_done field removed.
4215         (mem_ref_loc_p, mem_ref_locs_p): New types.
4216         (struct mem_ref): Added id, stored, accesses_in_loop,
4217         indep_loop, dep_loop, indep_ref, dep_ref fields.
4218         Removed is_stored, locs and next fields.
4219         (memory_accesses): New variable.
4220         (movement_possibility): Do not allow moving statements
4221         that store to memory.
4222         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
4223         New functions.
4224         (determine_max_movement): For statements with memory references,
4225         find the outermost loop in that the reference is independent.
4226         (move_computations_stmt): Mark the virtual operands for renaming.
4227         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
4228         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
4229         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
4230         add_vop_ref_mapping, create_vop_ref_mapping_loop,
4231         create_vop_ref_mapping, analyze_memory_references,
4232         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
4233         get_all_locs_in_loop, ref_always_accessed_p,
4234         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
4235         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
4236         store_motion_loop, store_motion): New functions.
4237         (struct vop_to_refs_elt): New type.
4238         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
4239         memref_hash, memref_eq, hoist_memory_references): Rewritten.
4240         (schedule_sm): Replaced by...
4241         (execute_sm): ... this.
4242         (determine_lsm_ref, hoist_memory_references,
4243         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
4244         find_more_ref_vops, free_mem_ref, free_mem_refs,
4245         determine_lsm_loop, determine_lsm): Removed.
4246         (tree_ssa_lim_finalize): Free data structures used by store motion.
4247         (tree_ssa_lim): Call analyze_memory_references.  Use
4248         store_motion instead of determine_lsm.
4249
4250 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
4251
4252         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
4253         rename tmake_file to m68hc11/t-m68hc11.
4254         (mcore): Set inhibit_libc to true.
4255         * config.host (alpha*-dec-*vms*): Set extra_programs.
4256         (interix3*): Don't use host_xmake_file.
4257         * configure.ac: Let config.gcc override inhibit_libc.
4258         * configure: Regenerate.
4259
4260         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
4261         * config/t-openbsd-thread: Remove commented out lines.
4262         
4263         * config/x-interix: Remove.
4264
4265         * config/m68hc11/t-m68hc11-gas: Rename to...
4266         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
4267
4268         * config/mcore/t-mcore: Remove T_CFLAGS.
4269         * config/mcore/t-mcore-pe: Likewise.
4270
4271 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
4272
4273         * configure.ac: Replace custom __GNU_SOURCE test with
4274         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
4275         * aclocal.m4: Regenerate.
4276         * configure: Regenerate.
4277         * config.in: Regenerate.
4278
4279 2008-03-27  Richard Guenther  <rguenther@suse.de>
4280
4281         * fold-const.c (target.h): Include.
4282         (fold_comparison): Fold comparison of addresses of decls
4283         that bind locally or of constants.  Consolidate address folding code.
4284         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
4285         results from fold_binary_to_constant.
4286         (compare_values_warnv): Likewise.
4287
4288 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
4289
4290         PR middle-end/35429
4291         * fold-const.c (fold_truthop): Check for integeral types when folding
4292         a == 0 && b == 0 and a != 0 || b != 0 .
4293
4294 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
4295
4296         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
4297
4298 2008-03-26  Andreas Schwab  <schwab@suse.de>
4299
4300         * doc/invoke.texi: Fix use of @item vs. @itemx.
4301
4302 2008-03-26  Tom Tromey  <tromey@redhat.com>
4303
4304         * Makefile.in (build/gensupport.o, build/print-rtl.o,
4305         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
4306         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
4307         build/gencodes.o, build/genconditions.o, build/genconfig.o,
4308         build/genconstants.o, build/genemit.o, build/genextract.o,
4309         build/genflags.o, build/genmddeps.o, build/genopinit.o,
4310         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
4311         options.h.
4312
4313 2008-03-26  Richard Guenther  <rguenther@suse.de>
4314
4315         Revert
4316         2008-03-26  Richard Guenther  <rguenther@suse.de>
4317
4318         * fold-const.c (target.h): Include.
4319         (fold_comparison): Fold comparison of addresses of two decls
4320         that bind locally.  Consolidate address folding code.
4321
4322 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4323
4324         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
4325         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
4326         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
4327         dconstsqrt2, dconstthird, dconste and/or dconst10.
4328         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
4329         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
4330         dconstsqrt2, dconste): Delete.
4331         (init_emit_once): Likewise.  Simplify initializing dconstm1.
4332         Constify variable.
4333         * real.c (get_real_const): New.
4334         * real.h (dconst3, dconst10, dconstm2, dconstthird,
4335         dconstsqrt2, dconste): Delete.
4336         (real_value_const, get_real_const): New.
4337
4338 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
4339
4340         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
4341
4342         * config/i386/i386.c (ix86_function_arg_boundary): Check
4343         BIGGEST_ALIGNMENT instead of 128.
4344         (setup_incoming_varargs_64): Likewise.
4345
4346 2008-03-26  Tom Tromey  <tromey@redhat.com>
4347
4348         * Makefile.in (DEPFILES): Add missing '/'.
4349
4350 2008-03-26  Richard Guenther  <rguenther@suse.de>
4351
4352         * fold-const.c (target.h): Include.
4353         (fold_comparison): Fold comparison of addresses of two decls
4354         that bind locally.  Consolidate address folding code.
4355
4356 2008-03-26  Nick Clifton  <nickc@redhat.com>
4357
4358         PR target/31232
4359         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
4360         not allow INT+INT as a legitimate addressing mode.
4361
4362 2008-03-26  Richard Guenther  <rguenther@suse.de>
4363
4364         * tree-flow.h (widen_bitfield): Remove declaration.
4365         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
4366         (widen_bitfield): Remove function.
4367         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
4368         code.
4369
4370 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4371
4372         PR target/31558
4373         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
4374         error_mark_node's.
4375
4376 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
4377
4378         PR rtl-optimization/35232
4379         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
4380         (forget_old_reloads_1, forget_marked_reloads): Don't clear
4381         reg_reloaded_call_part_clobbered here.
4382         (reload_regs_reach_end_p): New function.
4383         (reload_reg_rtx_for_input): New variable.
4384         (reload_reg_rtx_for_output): Likewise.
4385         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
4386         when reassigning a pseudo register.  Load reloadreg from 
4387         reload_reg_rtx_for_input, moving the mode and register
4388         calculation to...
4389         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
4390         instead of the original when deciding whether an input reload
4391         would be a no-op or whether an output reload can be deleted.
4392         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
4393         when setting up new_spill_reg_store.  Load it from
4394         reload_reg_rtx_for_output, moving the mode and register
4395         calculation to...
4396         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
4397         instead of the original when deciding whether an output reload
4398         would be a no-op.  Do the same when modifying insn notes.
4399         Use rtx_equal_p instead of == to compare the registers.
4400         (inherit_piecemeal_p): Take a mode and two register numbers
4401         as argument.
4402         (emit_reload_insns): Clear new_spill_reg_store for every hard
4403         register in the reload register.  Remove spill registers
4404         from reg_reloaded_valid before considering whether to record
4405         inheritance information for them.  Use reload_reg_rtx_for_output
4406         instead of reg_rtx when recording output reloads.  Use
4407         reload_reg_rtx_for_input instead of reg_rtx when recording
4408         input reloads.  Set or clear reg_reloaded_call_part_clobbered
4409         at the same time as setting reg_reloaded_valid.
4410         (delete_output_reload): Add a new_reload_reg parameter and use it
4411         instead of rld[j].reg_rtx.
4412         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
4413         calls accordingly.
4414
4415 2008-03-25  Tom Tromey  <tromey@redhat.com>
4416
4417         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
4418         (build/genattr.o): Likewise.
4419         (build/genattrtab.o): Likewise.
4420         (build/gencodes.o): Likewise.
4421         (build/genconfig.o): Likewise.
4422         (build/genconstants.o): Likewise.
4423         (build/genemit.o): Likewise.
4424         (build/genextract.o): Likewise.
4425         (build/genflags.o): Likewise.
4426
4427 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
4428         
4429         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
4430         instead of size_int for integer types.
4431         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
4432         to match type of MINUS_EXPR.
4433         
4434 2008-03-25  Tom Tromey  <tromey@redhat.com>
4435
4436         * configure: Rebuilt.
4437         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
4438         Makefile.
4439
4440 2008-03-25  Tom Tromey  <tromey@redhat.com>
4441
4442         * config/x-solaris (host-solaris.o): Update.
4443         * config/x-linux (host-linux.o): Update.
4444         * config/x-hpux (host-hpux.o): Update.
4445         * config/x-darwin (host-darwin.o): Update.
4446         * config/v850/t-v850e (v850-c.o): Update.
4447         * config/v850/t-v850 (v850-c.o): Update.
4448         * config/t-vxworks (vxworks.o): Update.
4449         * config/t-sol2 (sol2-c.o, sol2.o): Update.
4450         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
4451         * config/spu/t-spu-elf (spu-c.o): Update.
4452         (spu.o): Remove.
4453         * config/sh/t-symbian (sh-c.o): Update.
4454         (symbian.o): Update.
4455         * config/sh/t-sh (sh-c.o): Update.
4456         * config/score/t-score-elf (score7.o, score3.o): Update.
4457         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
4458         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
4459         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
4460         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
4461         (rs6000.o): Remove.
4462         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
4463         * config/m32c/t-m32c (m32c-pragma.o): Update.
4464         * config/ia64/t-ia64 (ia64-c.o): Update.
4465         * config/i386/x-mingw32 (host-mingw32.o): Update.
4466         * config/i386/x-i386 (driver-i386.o): Update.
4467         * config/i386/x-darwin (host-i386-darwin.o): Update.
4468         * config/i386/x-cygwin (host-cygwin.o): Update.
4469         * config/i386/t-nwld (nwld.o): Update.
4470         * config/i386/t-netware (netware.o): Update.
4471         * config/i386/t-interix (winnt.o): Update.
4472         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
4473         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
4474         msformat-c.o): Update.
4475         * config/bfin/t-bfin-linux (generated_files): Add
4476         linux-sysroot-suffix.h.
4477         * config/arm/t-wince-pe (pe.o): Update.
4478         * config/arm/t-strongarm-pe (pe.o): Update.
4479         * config/arm/t-pe (pe.o): Update.
4480         * config/arm/t-arm (arm-c.o): Update.
4481         * doc/install.texi (Prerequisites): Require make 3.80.
4482         * Makefile.in: Remove .o targets.
4483         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
4484         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
4485         (simple_generated_h, simple_generated_c): Move earlier.
4486         (generated_files): New variable.
4487         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
4488         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
4489         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
4490         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
4491         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
4492         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
4493         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
4494         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
4495         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
4496         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
4497         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
4498         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
4499         (.c.o): Remove.
4500         (COMPILE.base, COMPILE): New variables.
4501         (%.o): New pattern rule.
4502         (ALL_HOST_OBJS): New variable.
4503         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
4504         (dummy-checksum.o, cc1-checksum.o): Remove.
4505         (DRIVER_SHLIB): New variable.
4506         (DRIVER_DEFINES): Use it.
4507         (gencondmd.c): Move out of build/.
4508         (s-conditions): Update.
4509         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
4510         (ALL_BUILD_OBJS): Likewise.
4511         (build/%.o): Use BUILDCOMPILE.
4512         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
4513         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
4514         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
4515         build/gencheck.o, build/gencodes.o, build/genconditions.o,
4516         build/genconfig.o, build/genconstants.o, build/genemit.o,
4517         build/genextract.o, build/genflags.o, build/genmddeps.o,
4518         build/genopinit.o, build/genoutput.o, build/genpeep.o,
4519         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
4520         build/gen-protos.o, build/scan.o, build/fix-header.o,
4521         build/scan-decls.o): Simplify.
4522         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
4523         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
4524         prefix.o, toplev.o): Reduce to variable setting.
4525         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
4526         ($(out_object_file), gcc-options.o): New targets.
4527         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
4528         * configure: Rebuilt.
4529         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
4530         * doc/sourcebuild.texi (Front End Directory): Document new variable.
4531
4532 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
4533
4534         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
4535         complain when we hit an error, return ERROR_MARK_NODE.
4536
4537 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4538
4539         * config/sh/constraints.md (Pso, Psz): New constraints.
4540         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
4541         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
4542
4543 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4544
4545         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
4546         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
4547
4548 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4549
4550         * config/sh/sh.md (prefetch): Add condition for SH2A target.
4551         (prefetch_sh2a): New.   
4552
4553 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
4554             Naveen.H.S  <naveen.hs@kpitcummins.com>
4555
4556         * config/sh/constraints.md (I28): New constraint.
4557         * config/sh/sh.c (broken_move): Add support for movi20s.
4558         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
4559
4560 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
4561             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
4562             Naveen.H.S  <naveen.hs@kpitcummins.com>
4563
4564         * config/sh/sh.c (SH_ATTRIBUTES): Define.
4565         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
4566         (print_operand): Handle resbank in %@ operand code.
4567         (sh_encode_section_info): New.
4568         (push_regs): Add conditions for resbank.
4569         (sh_expand_epilogue): Likewise.
4570         (sh_insert_attributes): Likewise.
4571         (sh_attribute_table): Likewise.
4572         (sh_handle_resbank_handler_attribute): New.
4573         (sh2a_handle_function_vector_handler_attribute): New.
4574         (sh2a_is_function_vector_call): New.
4575         (sh2a_get_function_vector_number): New.
4576         (sh2a_function_vector_p): New.
4577         (sh_cfun_resbank_handler_p): New.
4578         * config/sh/sh.md (calli): Emit jsr/n if possible.
4579         (calli_tbr_rel): New.
4580         (calli_pcrel): Emit jsr/n if possible.
4581         (return_i): Emit rts/n if possible.
4582         (call_valuei_tbr_rel): New.
4583         (call_valuei_pcrel): Add condition for SH2A target.
4584         (call_value): Likewise.
4585         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
4586         (sh2a_get_function_vector_number): Likewise.
4587         (sh2a_is_function_vector_call): Likewise.
4588         * doc/extend.texi: Document TBR relative addressing of SH2A.
4589         (resbank): Add description for SH2A.
4590
4591 2008-03-24  Richard Guenther  <rguenther@suse.de>
4592
4593         PR c/22371
4594         * gimplify.c (gimplify_modify_expr): For frontend type-correct
4595         pointer assignments change conversions according to middle-end rules.
4596         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
4597         * configure.ac: Include type checking in yes.
4598         * configure: Regenerate.
4599
4600 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4601
4602         * diagnostic.c (diagnostic_count_diagnostic): Delete.
4603         (diagnostic_report_diagnostic): Update. Handle ICEs here.
4604         
4605 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
4606
4607         * gthr-vxworks.h (UNUSED): Define.
4608
4609 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
4610
4611         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
4612
4613 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
4614
4615         * doc/extend.texi (Function Attributes): Add missing comma in the
4616         example of the "alloc_size" attribute.
4617         
4618 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
4619
4620         Revert:
4621         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
4622
4623         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
4624         32bit host.
4625
4626         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
4627
4628         PR target/35496
4629         * stor-layout.c (update_alignment_for_field): Set minimum alignment
4630         of the underlying type of a MS bitfield layout to the natural
4631         alignment of the type.
4632
4633         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
4634
4635         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
4636         to their natural alignment to avoid store forwarding stalls.
4637
4638 2008-03-22  Richard Guenther  <rguenther@suse.de>
4639
4640         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
4641         For PHI nodes verify the address is invariant.
4642         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
4643         (get_symbol_constant_value): Use is_gimple_min_invariant.
4644         (maybe_fold_stmt_indirect): Likewise.
4645
4646 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
4647
4648         PR rtl-optimization/33927
4649         * Makefile.in (dse.o): Depend on $(TM_P_H).
4650         * expr.h (extract_low_bits): Declare.
4651         * expmed.c (extract_low_bits): New function.
4652         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
4653         * dse.c: Include tm_p.h.
4654         (find_shift_sequence): Remove the read_reg argument and return the
4655         read value.  Emit the instructions instead of returning them.
4656         Iterate on new_mode rather than calculating it each time.
4657         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
4658         source to NEW_MODE and extract_low_bits to convert the shifted
4659         value to READ_MODE.
4660         (replace_read): Allow the load and store to have different mode
4661         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
4662         or extraction instructions before trying the replacement.  Update
4663         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
4664
4665 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
4666
4667         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
4668         to their natural alignment to avoid store forwarding stalls.
4669
4670 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4671
4672         PR target/27946
4673         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
4674         encouraging but not allowing gprs for input;
4675         change the input constraint to !f#r.
4676         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
4677         gprs for output;
4678         change the output constraint to !f#r.
4679
4680 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
4681
4682         PR target/13958
4683         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
4684         corresponding post-reload splitters.
4685         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
4686         when x87 FP math is selected.
4687         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
4688         New function prototype.
4689         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
4690         unreachable function to ease macroization of insn patterns.
4691
4692 2008-03-21  Martin Jambor  <mjambor@suse.cz>
4693
4694         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
4695         reference dumps if ddr is NULL or dependence is unknown.
4696
4697 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4698
4699         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
4700         unsigned extension into account.
4701         (ATOMIC_COMPARE_AND_SWAP): Likewise.
4702         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
4703         Do computations on a scratch register.
4704
4705 2008-03-21  Richard Guenther  <rguenther@suse.de>
4706
4707         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
4708         Use is_gimple_min_invariant instead of TREE_INVARIANT.
4709         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
4710         * tree-ssa-dom.c (record_equality): Likewise.
4711         * tree-inline.c (copy_body_r): Likewise.
4712         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
4713         TREE_INVARIANT.
4714
4715 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4716
4717         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
4718         as 'delete_unused' argument.
4719
4720 2008-03-20  Richard Guenther  <rguenther@suse.de>
4721
4722         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
4723         special casing of constant qualifiers.
4724         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
4725         care about them in general.
4726         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
4727         regardless of their type.
4728         (fold_stmt_r): Forcefully fold *& if we end up with that.
4729
4730 2008-03-20  Paul Brook  <paul@codesourcery.com>
4731
4732         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
4733         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
4734         linker flags.
4735         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
4736         definition.
4737         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
4738         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
4739
4740 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
4741
4742         * common.opt (Wmudflap): New option.
4743         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
4744         (mx_register_decls): Likewise.
4745         (mudflap_finish_file): Likewise.
4746         * doc/invoke.texi: Document -Wno-mudflap.
4747
4748 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
4749
4750         * c-format.c (replace_format_name_to_system_name): New.
4751         (cmp_attribs): New.
4752         (convert_format_name_to_system_name): New.
4753         (decode_format_attr): Add use of convert_format_name_to_system_name.
4754         (format_types_orig): Add gnu_ prefix to names.
4755         (check_format_info_main): Special treating of \0 escaped names for
4756         supporting multi-character format specifiers as I32, I64.
4757         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
4758         (gnu_target_overrides_format_attributes): New.
4759         * c-format.h: Add structure target_ovr_attr to hold
4760         system specific formatter names.
4761         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
4762         msformat-c.o file to c_target_objs and cxx_target_objs.
4763         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
4764         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
4765         (TARGET_N_FORMAT_TYPES): New.
4766         * config/i386/msformat-c.c: New.
4767         * config/i386/t-cygming: Add build rule for msformat-c.o.
4768         * doc/extend.texi: Add new format names gnu_* and ms_* and
4769         further details.
4770         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
4771
4772 2008-03-20  Ira Rosen  <irar@il.ibm.com>
4773
4774         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
4775         optimizations turned on under -O3.
4776         (ftree-vectorize): Add that the flag is turned on with -O3.
4777
4778 2008-03-20  Ben Elliston  <bje@au.ibm.com>
4779
4780         * regmove.c (try_auto_increment): Fix spelling error in comment.
4781         * final.c (final_scan_insn): Likewise.
4782
4783 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
4784
4785         PR target/14552
4786         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
4787         allocator preferences for "y" and "r" class registers.
4788         ("*mov<mode>_internal"): Ditto.
4789         ("*movv2sf_internal_rex64"): Ditto.
4790         ("*movv2sf_internal"): Ditto.
4791
4792 2008-03-19  Michael Matz  <matz@suse.de>
4793
4794         PR middle-end/35616
4795         * calls.c (expand_call): Check overlap of arguments with call
4796         address for sibcalls.
4797
4798 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
4799
4800         PR target/35496
4801         * stor-layout.c (update_alignment_for_field): Set minimum alignment
4802         of the underlying type of a MS bitfield layout to the natural
4803         alignment of the type.
4804
4805 2008-03-19  Jan Hubicka  <jh@suse.cz>
4806
4807         PR other/35094
4808         * toplev.c (decode_d_option): Handle all CPP flags.
4809         * tree-vrp.c: Update tree_pass descriptors.
4810         * regrename.c: Update tree_pass descriptors.
4811         * fwprop.c: Update tree_pass descriptors.
4812         * doc/invoke.texi: Remove documentation of dropped -d? flags.
4813         * tree-into-ssa.c: Update tree_pass descriptors.
4814         * tree-dump.c: Update tree_pass descriptors.
4815         * tree-complex.c: Update tree_pass descriptors.
4816         * tree-dump.h: Update tree_pass descriptors.
4817         * see.c: Update tree_pass descriptors.
4818         * cgraphbuild.c: Update tree_pass descriptors.
4819         * tracer.c: Update tree_pass descriptors.
4820         * tree-loop-distribution.c: Update tree_pass descriptors.
4821         * cgraph.c: Update tree_pass descriptors.
4822         * postreload-gcse.c: Update tree_pass descriptors.
4823         * postreload.c: Update tree_pass descriptors.
4824         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
4825         * tree-tailcall.c: Update tree_pass descriptors.
4826         * tree-pass.h (tree_opt_pass): Rename to ...
4827         (opt_pass) ... this one; add "type" field and remove letter field.
4828         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
4829         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
4830         all_lowering_passes): Update declaration.
4831         * ipa-cp.c: Update tree_pass descriptors.
4832         * final.c: Update tree_pass descriptors.
4833         * omp-low.c: Update tree_pass descriptors.
4834         * tree-ssa-dse.c: Update tree_pass descriptors.
4835         * ipa-reference.c: Update tree_pass descriptors.
4836         * tree-ssa-uncprop.c: Update tree_pass descriptors.
4837         * auto-inc-dec.c: Update tree_pass descriptors.
4838         * reorg.c: Update tree_pass descriptors.
4839         * cgraphunit.c: Update tree_pass descriptors.
4840         * tree-ssa-copyrename.c: Update tree_pass descriptors.
4841         * tree-ssa-ccp.c: Update tree_pass descriptors.
4842         * df-core.c: Update tree_pass descriptors.
4843         * mode-switching.c: Update tree_pass descriptors.
4844         * tree-nomudflap.c: Update tree_pass descriptors.
4845         * modulo-sched.c: Update tree_pass descriptors.
4846         * ipa-pure-const.c: Update tree_pass descriptors.
4847         * cse.c: Update tree_pass descriptors.
4848         * web.c: Update tree_pass descriptors.
4849         * tree-stdarg.c: Update tree_pass descriptors.
4850         * tree-ssa-math-opts.c: Update tree_pass descriptors.
4851         * tree-ssa-dom.c: Update tree_pass descriptors.
4852         * tree-nrv.c: Update tree_pass descriptors.
4853         * tree-ssa-alias.c: Update tree_pass descriptors.
4854         * loop-init.c: Update tree_pass descriptors.
4855         * gimple-low.c: Update tree_pass descriptors.
4856         * ipa-inline.c: Update tree_pass descriptors.
4857         * tree-ssa-sink.c: Update tree_pass descriptors.
4858         * global.c: Update tree_pass descriptors.
4859         * ifcvt.c: Update tree_pass descriptors.
4860         * jump.c: Update tree_pass descriptors.
4861         * predict.c: Update tree_pass descriptors.
4862         * tree-ssa-loop.c: Update tree_pass descriptors.
4863         * recog.c: Update tree_pass descriptors.
4864         * dse.c: Update tree_pass descriptors.
4865         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
4866         * tree-eh.c: Update tree_pass descriptors.
4867         * regmove.c: Update tree_pass descriptors.
4868         * local-alloc.c
4869         * function.c: Update tree_pass descriptors.
4870         * tree-vectorizer.c: Update tree_pass descriptors.
4871         * gcse.c: Update tree_pass descriptors.
4872         * ipa-type-escape.c: Update tree_pass descriptors.
4873         * tree-if-conv.c: Update tree_pass descriptors.
4874         * init-regs.c: Update tree_pass descriptors.
4875         * ipa.c: Update tree_pass descriptors.
4876         * tree-ssa-phiopt.c: Update tree_pass descriptors.
4877         * rtl-factoring.c: Update tree_pass descriptors.
4878         * lower-subreg.c: Update tree_pass descriptors.
4879         * bt-load.c: Update tree_pass descriptors.
4880         * tree-dfa.c: Update tree_pass descriptors.
4881         * except.c: Update tree_pass descriptors.
4882         * emit-rtl.c: Update tree_pass descriptors.
4883         * cfgexpand.c: Update tree_pass descriptors.
4884         * tree-cfgcleanup.c: Update tree_pass descriptors.
4885         * cfgcleanup.c: Update tree_pass descriptors.
4886         * tree-ssa-pre.c: Update tree_pass descriptors.
4887         * tree-sra.c: Update tree_pass descriptors.
4888         * tree-mudflap.c: Update tree_pass descriptors.
4889         * tree-ssa-copy.c: Update tree_pass descriptors.
4890         * cfglayout.c: Update tree_pass descriptors.
4891         * tree-ssa-forwprop.c: Update tree_pass descriptors.
4892         * tree-ssa-dce.c: Update tree_pass descriptors.
4893         * tree-ssa.c: Update tree_pass descriptors.
4894         * regclass.c: Update tree_pass descriptors.
4895         * integrate.c: Update tree_pass descriptors.
4896         * tree-optimize.c: Update tree_pass descriptors.
4897         * tree-ssa-phiprop.c: Update tree_pass descriptors.
4898         * tree-object-size.c: Update tree_pass descriptors.
4899         * combine.c: Update tree_pass descriptors.
4900         * tree-outof-ssa.c: Update tree_pass descriptors.
4901         * bb-reorder.c: Update tree_pass descriptors.
4902         * stack-ptr-mod.c: Update tree_pass descriptors.
4903         * var-tracking.c: Update tree_pass descriptors.
4904         * tree-profile.c: Update tree_pass descriptors.
4905         * tree-vect-generic.c: Update tree_pass descriptors.
4906         * reg-stack.c: Update tree_pass descriptors.
4907         * sched-rgn.c: Update tree_pass descriptors.
4908         * tree-ssa-structalias.c: Update tree_pass descriptors.
4909         * tree-cfg.c: Update tree_pass descriptors.
4910         * passes.c (current_pass): Update declaration.
4911         (finish_optimization_passes): Update.
4912         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
4913         (register_one_dump_file, register_dump_files_1, next_pass_1):
4914         Update arguments.
4915         (init_optimization_passes): Update handling of new types.
4916         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
4917         * ipa-struct-reorg.c: Update tree_pass descriptors.
4918         * tree-ssa-reassoc.c: Update tree_pass descriptors.
4919         * combine-stack-adj.c: Update tree_pass descriptors.
4920         * cfgrtl.c: Update tree_pass descriptors.
4921         * dce.c: Update tree_pass descriptors.
4922         * tree-ssanames.c: Update tree_pass descriptors.
4923
4924 2008-03-19  Richard Guenther  <rguenther@suse.de>
4925
4926         PR middle-end/35609
4927         * tree-ssa.c (walk_data): New structure.
4928         (warn_uninitialized_var): If not always_executed warn with "maybe"
4929         instead of "is".
4930         (execute_early_warn_uninitialized): Compute post-dominators.
4931         Initialize always_executed before processing each basic block.
4932
4933 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
4934
4935         PR target/35504
4936         * config/i386/i386.c (x86_this_parameter): Calculate correct location
4937         of "this" pointer when "regparm = N" or "fastcall" is in effect.
4938
4939 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4940
4941         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
4942
4943 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
4944
4945         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
4946         is true.
4947         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
4948         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
4949         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
4950         target after ignore has been set, and move there also the commputation
4951         of subtarget and original_target.
4952         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
4953         (LANG_HOOKS_INITIALIZER): Remove it.
4954         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
4955
4956 2008-03-18  Richard Guenther  <rguenther@suse.de>
4957
4958         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
4959         found an expression with constants, note that in the VN for the lhs.
4960         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
4961         fold them to constants if possible.  Run cleanup_cfg if done so.
4962         (execute_pre): Return todo.
4963         (do_pre): Likewise.
4964         (execute_fre): Likewise.
4965         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
4966         of constants.
4967         (get_prop_source_stmt): Look through pointer conversions.
4968
4969 2008-03-18  Jan Hubicka  <jh@suse.cz>
4970
4971         * tree-pretty-print.c: Include predict.h.
4972         (dump_generic_node): Dump predictor.
4973         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
4974         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
4975         * gimple-low.c (lower_stmt): Likewise.
4976         * expr.c (expand_expr_real): Likewise.
4977         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
4978         them.
4979         (build_predict_expr, build_predict_expr): New.
4980         * predict.h (predictor_name, build_predict_expr): Update.
4981         * c-typeck.c (c_finish_bc_stmt): Add prediction.
4982         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
4983         * predict.def (PRED_CONTINUE): Update hitrate.
4984         * tree.def (PREDICT_EXPR): Define.
4985         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
4986         do not handle BIND_EXPR.
4987         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
4988         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
4989         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
4990         operands.
4991
4992 2008-03-18  Michael Matz  <matz@suse.de>
4993
4994         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
4995
4996 2008-03-18  Richard Guenther  <rguenther@suse.de>
4997
4998         * tree-gimple.h (is_gimple_invariant_address): Declare.
4999         (is_gimple_constant): Likewise.
5000         * tree-gimple.c (is_gimple_constant): New function.
5001         (is_gimple_invariant_address): Likewise.
5002         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
5003         and is_gimple_invariant_address.
5004         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
5005         previous change.
5006         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
5007         an addressable base.
5008
5009 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
5010
5011         PR middle-end/35611
5012         * gimplify.c (gimplify_expr): Gimplify second operand of
5013         OMP_ATOMIC_LOAD.
5014
5015 2008-03-17  Richard Guenther  <rguenther@suse.de>
5016
5017         PR tree-optimization/19637
5018         * fold-const.c (fold_unary): Remove restrictions of removing
5019         intermediate pointer-conversions (P2)(P1)P0.
5020         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
5021         conversion to void pointer.
5022         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
5023
5024 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
5025
5026         PR debug/31510
5027         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
5028         emulated thread local variables.
5029
5030 2008-03-16  Richard Guenther  <rguenther@suse.de>
5031
5032         PR middle-end/35607
5033         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
5034         expand TREE_INVARIANT operations that are not gimple invariant.
5035
5036 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
5037
5038         * doc/extend.texi (Alignment): Say that the ABI controls
5039         the __alignof__ for non-strict-alignment targets rather
5040         than being a recommendation.
5041
5042 2008-03-15  Paul Brook  <paul@codesourcery.com>
5043
5044         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
5045         annotations.
5046         (arm_output_fn_unwind): Mark functions that can not be unwound.
5047
5048 2008-03-15  Paul Brook  <paul@codesourcery.com>
5049
5050         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
5051         extension instructions.
5052
5053 2008-03-15  Richard Guenther  <rguenther@suse.de>
5054
5055         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
5056         and fold constant aggregate refs.
5057         (fold_const_aggregate_ref): Handle string constants
5058         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
5059         (evaluate_stmt): Simplify now that ccp_fold folds constant
5060         aggregate refs.
5061
5062 2008-03-15  Paul Brook  <paul@codesourcery.com>
5063
5064         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
5065         (extzv): Use gen_extzv_t2.
5066         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
5067
5068 2008-03-15  Richard Guenther  <rguenther@suse.de>
5069
5070         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
5071         (fold_const_aggregate_ref): Likewise.
5072         (get_value): Return NULL if we don't have any values.
5073         (ccp_finalize): Set const_val to NULL after freeing it.
5074         * tree-flow.h (get_symbol_constant_value): Declare.
5075         (fold_const_aggregate_ref): Likewise.
5076         * tree-ssa-sccvn.c (try_to_simplify): Use them.
5077
5078 2008-03-15  Richard Guenther  <rguenther@suse.de>
5079
5080         PR middle-end/35593
5081         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
5082         to not produce negative array indices if not allowed.  Add
5083         parameter to indicate that.
5084         (maybe_fold_offset_to_component_ref): Allow negative array
5085         indices only for the first member of a structure.
5086         (maybe_fold_offset_to_reference): Allow negative array indices.
5087         (maybe_fold_stmt_addition): Likewise.
5088
5089 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
5090             Anatoly Sokolov <aesok@post.ru>
5091
5092         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
5093         (avr_arch): Add ARCH_AVR6.
5094         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
5095         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
5096         instead of fixed value 2.
5097         (print_operand_address): Use gs() asm specifier instead of pm().
5098         (avr_assemble_integer): (Ditto.).
5099         (avr_output_addr_vec_elt): (Ditto.).
5100         (print_operand): Handle "!" code.
5101         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
5102         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
5103         (AVR_HAVE_EIJMP_EICALL): Define.
5104         (AVR_3_BYTE_PC): Redefine.
5105         (AVR_2_BYTE_PC): (Ditto.).
5106         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
5107         (LINK_SPEC): Add atmega2560 and atmega2561.
5108         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
5109         (crtm2561.o).
5110         * config/avr/avr.md (call_insn): Use eicall instead of icall 
5111         for 3 byte PC devices.
5112         (call_value_insn): (Ditto.).
5113         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
5114         (indirect_jump): Use only for for 2 byte PC devices.
5115         (*tablejump): (Ditto.).
5116         (*indirect_jump_avr6): Add insn.
5117         (*tablejump_rjmp): Don't use for 3 byte PC devices.
5118         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
5119         instead of ijmp for 3 byte PC devices.
5120         (__tablejump2__): (Ditto.).
5121         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
5122         (MULITLIB_DIRNAMES): (Ditto.). 
5123         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
5124
5125 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
5126
5127         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
5128         "sse2_umulsidi3".  Use V1DI mode for operand 0.
5129         ("mmx_psadbw"): Use V1DI mode for operand 0.
5130         * config/i386/i386-modes.def (V1SI): New vector mode.
5131         * config/i386/i386.c (struct builtin_description)
5132         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
5133         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
5134         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
5135         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
5136         v1di_ftype_v8qi_v8qi type.
5137         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
5138
5139         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
5140         __builtin_ia32_pmuludq]: Fix the mode of return value.
5141
5142 2008-03-15  Richard Guenther  <rguenther@suse.de>
5143
5144         PR middle-end/35595
5145         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
5146         being a PHI_NODE.
5147
5148 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
5149         
5150         * doc/invoke.texi (Option Summary, Xtensa Options): Document
5151         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
5152         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
5153         unless TARGET_SERIALIZE_VOLATILE is enabled.
5154         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
5155         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
5156         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
5157
5158 2008-03-14  Richard Guenther  <rguenther@suse.de>
5159
5160         PR tree-optimization/34172
5161         * tree-flow.h (refs_may_alias_p): Declare.
5162         (get_single_def_stmt): Likewise.
5163         (get_single_def_stmt_from_phi): Likewise.
5164         (get_single_def_stmt_with_phi): Likewise.
5165         * tree-dfa.c (refs_may_alias_p): New function.
5166         (get_single_def_stmt): Likewise.
5167         (get_single_def_stmt_from_phi): Likewise.
5168         (get_single_def_stmt_with_phi): Likewise.
5169         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
5170         (vn_reference_lookup_1): New helper function.
5171         (vn_reference_lookup): Walk the virtual use-def chain to
5172         continue searching for a match if the def does not alias the
5173         reference we are looking for.
5174
5175 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
5176
5177         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
5178         archive and Perzl.  Update The Written Word listing.
5179
5180 2008-03-14  Richard Guenther  <rguenther@suse.de>
5181
5182         PR tree-optimization/34043
5183         PR tree-optimization/33989
5184         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
5185         when doing FRE.
5186         (bitmap_find_leader): Use extra argument to verify dominance
5187         relationship inside a basic-block.
5188         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
5189         (find_leader_in_sets): Adjust.
5190         (create_component_ref_by_pieces): Take extra argument for
5191         dominance check, handle lookup failures.
5192         (find_or_generate_expression): Likewise.
5193         (create_expression_by_pieces): Likewise.
5194         (insert_into_preds_of_block): Adjust.
5195         (create_value_expr_from): If asked for, verify all operands
5196         are in the blocks AVAIL_OUT set.
5197         (make_values_for_stmt): Check for SSA_NAMEs that are life
5198         over an abnormal edge.
5199         (compute_avail): Remove such check.
5200         (do_SCCVN_insertion): New function.
5201         (eliminate): If we do not find a leader suitable for replacement
5202         insert a replacement expression from SCCVN if available.
5203         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
5204         (struct vn_ssa_aux): Add needs_insertion flag.
5205         * tree-ssa-sccvn.c (may_insert): New global flag.
5206         (copy_reference_ops_from_ref): Value-number union member access
5207         based on its size, not type and member if insertion is allowed.
5208         (visit_reference_op_load): For a weak match from union type
5209         punning lookup a view-converted value and insert a SSA_NAME
5210         for that value if that is not found.
5211         (visit_use): Make dumps shorter.  Do not disallow value numbering
5212         SSA_NAMEs that are life over an abnormal edge to constants.
5213         (free_scc_vn): Release inserted SSA_NAMEs.
5214         (run_scc_vn): New flag to specify whether insertion is allowed.
5215         Process SSA_NAMEs in forward order.
5216         * tree-ssa-loop-im.c (for_each_index): Handle invariant
5217         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
5218         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
5219         pointer type to/from integral types that do not change the
5220         precision to regular conversions.
5221
5222 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
5223
5224         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
5225         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
5226         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
5227         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
5228         input arguments and the mode of return value.  Built-in functions
5229         that operate on whole 64-bit MMX register now use V1DI mode.
5230
5231 2008-03-13  Alon Dayan  <alond@il.ibm.com>
5232             Olga Golovanevsky  <olga@il.ibm.com>
5233
5234         PR tree-optimization/35041
5235         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
5236         to locate the right position in a statement.
5237
5238 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
5239
5240         PR target/34000
5241         PR target/35553
5242         * config/i386/xmmintrin.h:  Change all static inline functions to
5243         extern inline and add __gnu_inline__ attribute.
5244         * config/i386/bmintrin.h: Ditto.
5245         * config/i386/smmintrin.h: Ditto.
5246         * config/i386/tmmintrin.h: Ditto.
5247         * config/i386/mmintrin-common.h: Ditto.
5248         * config/i386/ammintrin.h: Ditto.
5249         * config/i386/emmintrin.h: Ditto.
5250         * config/i386/pmmintrin.h: Ditto.
5251         * config/i386/mmintrin.h: Ditto.
5252         * config/i386/mm3dnow.h: Ditto.
5253
5254 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
5255
5256         PR middle-end/35185
5257         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
5258         (lower_omp_2): New function.
5259         (lower_omp_1, lower_omp): Rewritten.
5260
5261 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
5262
5263         PR 35054
5264         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
5265         with the phrase "Microsoft Windows compilers".
5266         (Push/Pop Macro Pragmas): New subsection. Document
5267         #pragma push_macro and pragma pop_macro.
5268
5269 2008-03-12  Paul Brook  <paul@codesourcery.com>
5270
5271         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
5272
5273 2008-03-12  Paul Brook  <paul@codesourcery.com>
5274
5275         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
5276         (thumb2_alusi3_short): Exclude PLUS and MINUS.
5277         (thumb2_addsi_shortim): Rename ...
5278         (thumb2_addsi_short): ... to this.  Allow register operands.
5279         (thumb2_subsi_short): New pattern.
5280         (thumb2_one_cmplsi2_short,
5281         thumb2_negsi2_short): New patterns and peepholes.
5282
5283 2008-03-12  Paul Brook  <paul@codesourcery.com>
5284
5285         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
5286
5287 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
5288
5289         * config/i386/i386.md (int_cond): New code iterator.
5290         (fp_cond): Ditto.
5291         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
5292         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
5293         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
5294         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
5295         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
5296         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
5297         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
5298         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
5299
5300 2008-03-12  Paul Brook  <paul@codesourcery.com>
5301
5302         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
5303         instead of {arm,thumb}_compute_save_reg_mask.
5304         (output_return_instruction): Ditto.
5305         (thumb_unexpanded_epilogue): Ditto.
5306         (thumb1_expand_prologue): Ditto.
5307         (thumb1_output_function_prologue): Ditto.
5308         (arm_set_return_address): Ditto.
5309         (thumb_set_return_address): Ditto.
5310         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
5311         regs to achieve stack alignment.
5312         (thumb1_compute_save_reg_mask): Fix compiler warning.
5313         (arm_output_epilogue): Use offsets->saved_regs_mask.
5314         Adjust stack pointer by poping call clobered registers.
5315         (arm_expand_prologue): Use offsets->saved_regs_mask.
5316         Adjust stack pointer by pushing extra registers.
5317         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
5318
5319 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
5320
5321         PR tree-opt/35422
5322         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
5323         conversion to the operands of a multiplication.
5324
5325 2008-03-12  Richard Guenther  <rguenther@suse.de>
5326
5327         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
5328         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
5329         * timevar.def (TV_TREE_PHIPROP): Add.
5330         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
5331         pass description.  Use TV_TREE_PHIPROP.
5332         * tree-ssa-forwprop.c: Remove phiprop code.
5333
5334 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
5335
5336         PR middle-end/35549
5337         * omp-low.c (maybe_lookup_decl): Constify first argument.
5338         (use_pointer_for_field): Change last argument from bool to
5339         omp_context *.  Disallow shared copy-in/out in nested
5340         parallel if decl is shared in outer parallel too.
5341         (build_outer_var_ref, scan_sharing_clauses,
5342         lower_rec_input_clauses, lower_copyprivate_clauses,
5343         lower_send_clauses, lower_send_shared_vars): Adjust callers.
5344
5345 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
5346             Ira Rosen  <irar@il.ibm.com>
5347
5348         * tree-vectorizer.c (free_stmt_vec_info): New function.
5349         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
5350         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
5351         * tree-vectorizer.h (free_stmt_vec_info): Declare.
5352         * tree-vect-transform.c (vectorizable_conversion): Free
5353         vec_oprnds0 if it was allocated.
5354         (vect_permute_store_chain): Remove unused VECs.
5355         (vectorizable_store): Free VECs that are allocated in the..
5356         function.
5357         (vect_transform_strided_load, vectorizable_load): Likewise.
5358         (vect_remove_stores): Simplify the code.
5359         (vect_transform_loop): Move code to vect_remove_stores().
5360         Call vect_remove_stores() and free_stmt_vec_info().
5361
5362 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5363
5364         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
5365         TARGET_HPUX.  Revise comment.
5366         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
5367         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
5368         Use sr4 variant of `be' instruction when not generating PIC code.
5369         (attr_length_call): Adjust for above change.
5370
5371 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5372
5373         * ipa-reference.c (static_execute): Remove module_statics_const and
5374         associated setting code.
5375
5376 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
5377
5378         PR target/35540
5379         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
5380         predicate for operand 1.
5381         (paritysi2_cmp): Use register_operand predicate for operand 2.
5382         Use earlyclobber modifier for operand 1.  Remove support for
5383         memory operands.
5384         (paritydi2_cmp): Use register_operand predicate for operand 3.
5385         Use earlyclobber modifier for operand 1.  Remove support for
5386         memory operands.
5387
5388 2008-03-11  Paul Brook  <paul@codesourcery.com>
5389             Vladimir Prus  <vladimir@codesourcery.com>
5390
5391         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
5392         (arm_compute_save_reg0_reg12_mask): Always
5393         check if register 11 must be saved.  Always safe hard frame pointer
5394         when frame_pointer_needeed.
5395         (arm_compute_save_reg_mask): Save IP and PC
5396         only with apcs frames.
5397         (arm_output_epilogue): Adjust Thumb2 codepath to
5398         be also invoked and work for ARM non-apcs frames.
5399         (arm_expand_prologue): Don't bother saving IP
5400         for non-apcs frame, since it's not clobbered by
5401         prologue code.  Implement non-apcs frame
5402         layout.
5403
5404 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
5405
5406         PR rtl-optimization/35281
5407         * expr.c (convert_move): Use a new pseudo for the intermediate
5408         from_mode->word_mode result.
5409
5410 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
5411
5412         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
5413         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
5414         * toplev.c (compile_file): Don't call it.
5415
5416 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
5417
5418         PR middle-end/35526
5419         * expr.c (store_expr): Call emit_block_move if the mode
5420         of "temp" RTX is BLKmode.
5421
5422 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5423             Richard Guenther  <rguenther@suse.de>
5424
5425         PR tree-optimization/31358
5426         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
5427         the step with a NULL_TREE.
5428         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
5429         to sizetype if type is a pointer type.
5430         (add_candidate_1): Don't convert the base and step to
5431         the generic type if the orginal type is a pointer type.
5432         (add_iv_value_candidates): Use sizetype for the step
5433         if type is a pointer type.
5434         (cand_value_at): Likewise.
5435         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
5436         for pointer types.
5437         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
5438         Don't convert the tem affine to the type.
5439         (add_elt_to_tree): Use sizetype for the step if a pointer.
5440         Use POINTER_PLUS_EXPR for pointers.
5441         (aff_combination_to_tree): Use sizetype for the step if a
5442         pointer.
5443
5444 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
5445
5446         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
5447         Remove commutativity hint.
5448
5449 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
5450
5451         PR c/35438
5452         PR c/35439
5453         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
5454         errorneous type.  Check that v is a VAR_DECL.
5455
5456         PR middle-end/35099
5457         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
5458
5459 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
5460
5461         PR tree-optimization/35494
5462         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
5463         may be overriden at link and run time.
5464
5465 2008-03-10  Richard Guenther  <rguenther@suse.de>
5466
5467         PR tree-optimization/34677
5468         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
5469         (poolify_tree): Likewise.
5470         (modify_expr_template): Likewise.
5471         (poolify_modify_stmt): Likewise.
5472         (insert_fake_stores): Handle all component-ref style stores
5473         in addition to INDIRECT_REF.  Also handle complex types.
5474         Do not poolify the inserted load.
5475         (realify_fake_stores): Do not rebuild the tree but only
5476         make it a SSA_NAME copy.
5477         (init_pre): Remove initialzation of modify_expr_template.
5478         Do not allocate modify_expr_node_pool.
5479         (fini_pre): Do not free modify_expr_node_pool.
5480
5481 2008-03-10  Paul Brook  <paul@codesourcery.com>
5482
5483         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
5484         to avoid conflicts.
5485
5486 2008-03-10  Paul Brook  <paul@codesourcery.com>
5487             Mark Shinwell  <shinwell@codesourcery.com>
5488
5489         * config/arm/cortex-r4.md: New.
5490         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
5491         insn attributes.
5492         * config/arm/arm.md: Include cortex-r4.md.
5493         (insn): Add smmls, sdiv and udiv values.
5494         (generic_sched): Don't use generic scheduling for Cortex-R4.
5495         (arm_issue_rate): New function.
5496         (TARGET_SCHED_ISSUE_RATE): Define.
5497
5498 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
5499
5500         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
5501
5502 2008-03-10  Richard Guenther  <rguenther@suse.de>
5503
5504         * tree-ssa-pre.c (get_sccvn_value): Simplify.
5505         (compute_avail): Do not add stmt uses to AVAIL_OUT.
5506
5507 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
5508
5509         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
5510         Set default to true.
5511
5512 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5513
5514         * c.opt (Wsynth): Deprecate.
5515         * doc/invoke.texi (Option Summary, Warning Options): Document
5516         -Wno-format-contains-nul.
5517
5518 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
5519
5520         PR target/35496
5521         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
5522         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
5523
5524 2008-03-09  Ira Rosen  <irar@il.ibm.com>
5525
5526         * config/rs6000/rs6000.c (builtin_description): Rename vector
5527         left shift operations.
5528         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
5529         (altivec_vsl<VI_char>): Rename to ...
5530         (ashl<mode>3): ... new name.
5531         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
5532         gen_ashlv4si3.
5533         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
5534
5535 2008-03-08  Richard Guenther  <rguenther@suse.de>
5536
5537         * coverage.h (tree_coverage_counter_addr): Declare.
5538         * coverage.c (tree_coverage_counter_addr): New function.
5539         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
5540         before using again.
5541         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
5542         (tree_gen_one_value_profiler): Likewise.
5543         (tree_gen_ic_profiler): Likewise.
5544         (tree_gen_average_profiler): Likewise.
5545         (tree_gen_ior_profiler): Likewise.
5546
5547 2008-03-08  Richard Guenther  <rguenther@suse.de>
5548
5549         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
5550         (vn_binary_op_insert): Likewise.
5551         (vn_unary_op_lookup): Likewise.
5552         (vn_unary_op_insert): Likewise.
5553         (vn_nary_op_lookup): Declare.
5554         (vn_nary_op_insert): Likewise.
5555         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
5556         and binary hashes, use a single obstack for unary_op_pool
5557         and binary_op_pool.
5558         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
5559         a single struct vn_nary_op_s.  Store tree code length and
5560         a variable number of operands.
5561         (struct vn_reference_op_struct): Remove unused op2.
5562         (vn_reference_op_eq): Do not compare op2.
5563         (vn_reference_op_compute_hash): Do not compute hash of op2.
5564         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
5565         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
5566         with vn_nary_op_compute_hash.
5567         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
5568         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
5569         vn_nary_op_lookup.
5570         (vn_unary_op_insert, vn_binary_op_insert): Replace with
5571         vn_nary_op_insert.
5572         (visit_unary_op): Call nary functions.
5573         (visit_binary_op): Likewise.
5574         (process_scc): Adjust for struct vn_tables_s changes.
5575         (allocate_vn_table): Likewise.
5576         (free_vn_table): Likewise.
5577         * tree-vn.c (vn_add): Call nary functions.
5578         (vn_lookup): Likewise.
5579
5580 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
5581
5582         PR target/35498
5583         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
5584         wdst back after sync_compare_and_swapqhi_internal.
5585
5586 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
5587
5588         PR target/22152
5589         * config/i386/i386-modes.def (V1DI): New vector mode.
5590         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
5591         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
5592         (MMXMODE248): Ditto.
5593         (MMXMODE): Add V1DI mode.
5594         (mmxvecsize): Change DI mode to V1DI mode.
5595         ("mov<mode>): Use MMXMODEI8 mode iterator.
5596         ("*mov<mode>_internal_rex64"): Ditto.
5597         ("*mov<mode>_internal"): Ditto.
5598         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
5599         ("mmx_sub<mode>3"): Ditto.
5600         ("mmx_adddi3"): Remove insn pattern.
5601         ("mmx_subdi3"): Ditto.
5602         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
5603         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
5604         ("mmx_ashl<mode>3"): Ditto.
5605         ("mmx_lshrdi3"): Remove insn pattern.
5606         ("mmx_ashldi3"): Ditto.
5607         * config/i386/i386.c (classify_argument): Handle V1DImode.
5608         (function_arg_advance_32): Ditto.
5609         (function_arg_32): Ditto.
5610         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
5611         mmx_addv1di3 insn pattern.
5612         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
5613         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
5614         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
5615         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
5616         Remove definitions of built-in functions.
5617         (V1DI_type_node): New node.
5618         (v1di_ftype_v1di_int): Ditto.
5619         (v1di_ftype_v1di_v1di): Ditto.
5620         (v2si_ftype_v2si_si): Ditto.
5621         (v4hi_ftype_v4hi_di): Remove node.
5622         (v2si_ftype_v2si_di): Ditto.
5623         (ix86_init_mmx_sse_builtins): Handle V1DImode.
5624         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
5625         Redefine builtins using def_builtin_const with *_ftype_*_int node.
5626         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
5627         Add new builtins using def_builtin_const.
5628         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
5629         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
5630         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
5631         * config/i386/mmintrin.h (__v1di): New typedef.
5632         (_mm_add_si64): Cast arguments to __v1di type.
5633         (_mm_sub_si64): Ditto.
5634         (_mm_sll_pi16): Cast __count to __v4hi type.
5635         (_mm_sll_pi32): Cast __count to __v2si type.
5636         (_mm_sll_si64): Cast arguments to __v1di type.
5637         (_mm_srl_pi16): Cast __count to __v4hi type.
5638         (_mm_srl_pi32): Cast __count to __v2si type.
5639         (_mm_srl_si64): Cast arguments to __v1di type.
5640         (_mm_sra_pi16): Cast __count to __v4hi type.
5641         (_mm_sra_pi32): Cast __count to __v2si type.
5642         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
5643         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
5644         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
5645         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
5646         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
5647         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
5648         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
5649         (_mm_srai_pi32): Use __builtin_ia32_psradi.
5650         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
5651         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
5652         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
5653         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
5654
5655 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
5656
5657         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
5658
5659 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
5660
5661         PR target/35373
5662         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
5663         reg+const addressing for Altivec modes.  Don't generate reg+reg
5664         addressing for TFmode or TDmode quantities.
5665
5666 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
5667
5668         * c-common.c (vector_types_convertible_p): Call langhook
5669         instead of comptypes.
5670
5671 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5672
5673         PR tree-opt/35402
5674         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
5675         integral and scalar float variables which have a
5676         NULL DECL_INITIAL.
5677
5678 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
5679
5680         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
5681         dwarf_register_span hook when emitting unwind information for
5682         register-to-memory saves.
5683         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
5684         (rs6000_frame_related): Remove call to spe_synthesize_frame.
5685
5686 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
5687
5688         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
5689         for the same VAR_DECL.
5690
5691 2008-03-06  Tom Tromey  <tromey@redhat.com>
5692
5693         * treelang: Delete.
5694         * doc/standards.texi (Standards): Don't mention treelang.
5695         * doc/invoke.texi (Overall Options): Don't mention treelang.
5696         * doc/install.texi (Prerequisites): Don't mention bison or
5697         treelang.
5698         (Configuration): Don't mention treelang.
5699         (Building): Likewise.
5700         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
5701
5702 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
5703
5704         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
5705         word-extractions out of a multi-word object.
5706
5707 2008-03-06  Richard Guenther  <rguenther@suse.de>
5708
5709         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
5710         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
5711         result type and precision.
5712         * expr.c (get_inner_reference): Set unsignedp based on the result
5713         type of BIT_FIELD_REF.
5714         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
5715         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
5716         (try_instantiate_multiple_fields): Likewise.  Use the correct type
5717         for BIT_FIELD_REF.
5718         (sra_build_assignment): Likewise.
5719         (sra_build_elt_assignment): Likewise.
5720         (sra_explode_bitfield_assignment): Likewise.
5721         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
5722         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
5723         set BIT_FIELD_REF_UNSIGNED.
5724         (vectorizable_load): Likewise.
5725
5726 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
5727
5728         * cse.c (cse_extended_basic_block): Invalidate artificial defs
5729         at bb start.
5730
5731 2008-03-06  Richard Guenther  <rguenther@suse.de>
5732
5733         * alias.c (struct alias_set_entry): Move has_zero_child field
5734         to pack with alias_set.
5735
5736 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
5737
5738         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
5739         32bit host.
5740
5741 2008-03-05  Ian Lance Taylor  <iant@google.com>
5742
5743         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
5744
5745 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
5746
5747         * fwprop.c (update_df): Support width and offset parameters of
5748         df_ref_create.
5749         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
5750         global_conflicts): Change DF_REF_EXTRACT to either
5751         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
5752         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
5753         * df-scan.c (df_ref_record, df_defs_record,
5754         df_ref_create_structure, df_def_record_1, df_uses_record,
5755         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
5756         df_bb_refs_collect, df_entry_block_defs_collect,
5757         df_exit_block_uses_collect): Support new width and offset fields.
5758         (ref_extract_pool): New storage pool.
5759         (df_free_ref): New function.
5760         (df_reg_chain_unlink, df_free_collection_rec,
5761         df_sort_and_compress_refs): Call df_free_ref.
5762         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
5763         of df_ref_extract.
5764         (df_ref_create_structure): Allocate df_ref_extract if offset and
5765         width fields are used.
5766         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
5767         (df_uses_record): Get offset and width from ZERO_EXTRACT 
5768         and SIGN_EXTRACT.
5769         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
5770         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
5771         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
5772         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
5773         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
5774         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
5775         (df_ref_extract): New structure.
5776         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
5777         (df_ref_create): Add width and offset parameters.
5778         
5779 2008-03-05  Richard Guenther  <rguenther@suse.de>
5780
5781         * tree-ssa-structalias.c (get_constraint_for_component_ref):
5782         Use ranges_overlap_p.
5783         (offset_overlaps_with_access): Rename
5784         to ranges_overlap_p and move ...
5785         * tree-flow-inline.h (ranges_overlap_p): ... here.
5786
5787         * tree.h (get_inner_reference, handled_component_p): Update
5788         comments.
5789
5790         * tree.h (record_component_aliases, get_alias_set,
5791         alias_sets_conflict_p, alias_sets_must_conflict_p,
5792         objects_must_conflict_p): Move declarations ...
5793         * alias.h (record_component_aliases, get_alias_set,
5794         alias_sets_conflict_p, alias_sets_must_conflict_p,
5795         objects_must_conflict_p): ... here.
5796         Include coretypes.h.
5797         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
5798
5799 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
5800
5801         * cfg.c: Include tree-flow.h.
5802         (remove_edge_raw): Call redirect_edge_var_map_clear.
5803         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
5804         * tree-flow-inline.h (redirect_edge_var_map_def): New.
5805         (redirect_edge_var_map_result): New.
5806         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
5807         PENDING_STMT use with redirect_edge_var_map_*.
5808         * tree-ssa.c (edge_var_maps): New definition.
5809         (redirect_edge_var_map_add): New.
5810         (redirect_edge_var_map_clear): New.
5811         (redirect_edge_var_map_dup): New.
5812         (redirect_edge_var_map_vector): New.
5813         (redirect_edge_var_map_destroy): New.
5814         (ssa_redirect_edge): Replace PENDING_STMT use with
5815         redirect_edge_var_map_*.
5816         (flush_pending_stmts): Same.
5817         (delete_tree_ssa): Destroy edge var map.
5818         * tree-flow.h (struct _edge_var_map): New.
5819         Define edge_var_map vector type.
5820         Declare redirect_edge_var_map_* prototypes.
5821         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
5822         * tree-cfg.c (reinstall_phi_args): Replace
5823         PENDING_STMT use with redirect_edge_var_map_*.
5824
5825 2008-03-05  Richard Guenther  <rguenther@suse.de>
5826
5827         PR tree-optimization/35472
5828         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
5829         whose single use_stmt has a overlapping set of loaded and
5830         stored symbols as that use_stmt might be a noop assignment then.
5831
5832 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
5833
5834         * gthr-rtems.h: Implement __gthread_mutex_destroy.
5835
5836 2008-03-05  Richard Guenther  <rguenther@suse.de>
5837
5838         PR c++/35336
5839         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
5840         should be constants.
5841         * tree-cfg.c (verify_expr): Verify it.
5842         * fold-const.c (fold_truthop): Remove code generating
5843         BIT_FIELD_REFs of structure bases.
5844         (fold_binary): Likewise.
5845         (fold_ternary): Position and size of BIT_FIELD_REFs are
5846         always host integers.
5847         (make_bit_field_ref): Remove.
5848         (optimize_bit_field_compare): Remove.
5849         (all_ones_mask_p): Remove.
5850
5851 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
5852
5853         PR gcc/33009
5854         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
5855         (split_block_and_df_analyze): New. Split basic block and rebuild
5856         dataflow.
5857         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
5858         SPLIT_BLOCK.
5859         (split_pattern_seq): Likewise.
5860         (erase_matching_seqs): Likewise.
5861         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
5862
5863 2008-03-04  Geoff Keating  <geoffk@apple.com>
5864
5865         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
5866         declaration and code.
5867         (tree_invalid_nonnegative_warnv_p): Likewise.
5868
5869 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
5870
5871         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
5872         examples.  Truncate option-names then causing overfull hbox.
5873
5874 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5875
5876         PR target/35222
5877         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
5878         on hpux10.
5879         * configure: Rebuilt.
5880
5881 2008-03-04  Rafael Espindola  <espindola@google.com>
5882
5883         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
5884         (tree_unary_nonnegative_warnv_p): New.
5885         (tree_binary_nonnegative_warnv_p): New.
5886         (tree_single_nonnegative_warnv_p): New.
5887         (tree_invalid_nonnegative_warnv_p): New.
5888         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
5889
5890 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5891
5892         PR 28322
5893         * opts.c (handle_option): Postpone 'unknown option' errors only for
5894         warning options.
5895
5896 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
5897
5898         PR target/35453
5899         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
5900         (_SIDD_XXX): This.
5901
5902 2008-03-04  Rafael Espindola  <espindola@google.com>
5903
5904         * fold-const.c (tree_unary_nonzero_warnv_p): New.
5905         (tree_binary_nonzero_warnv_p): New.
5906         (tree_single_nonzero_warnv_p): New.
5907         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
5908
5909 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
5910
5911         PR middle-end/35456
5912         * fold-const.c (fold_cond_expr_with_comparison): Prevent
5913         transformations for modes that have signed zeros.
5914         * ifcvt.c (noce_try_abs): Ditto.
5915
5916 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
5917
5918         * config/i386/i386.c (override_options): Force
5919         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
5920
5921 2008-03-04  Jan Hubicka  <jh@suse.cz>
5922
5923         PR c++/35262
5924         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
5925         in last commit.
5926
5927 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
5928
5929         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
5930         label to probe the stack.
5931
5932 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
5933
5934         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
5935         (__gthr_win32_mutex_destroy): Declare.
5936         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
5937         __gthr_win32_mutex_destroy.
5938         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
5939
5940 2008-03-03  Jan Hubicka  <jh@suse.cz>
5941
5942         PR c++/35262
5943         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
5944         aggressive on inlining cold calls.
5945
5946 2008-03-03  Richard Guenther  <rguenther@suse.de>
5947
5948         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
5949         struct copies into the expression table.
5950         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
5951         (try_to_simplify): Likewise.
5952         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
5953         integral and pointer arguments which do not change the
5954         precision to NOP_EXPRs.
5955         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
5956         VIEW_CONVERT_EXPR case.
5957
5958 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
5959
5960         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
5961         defined in a loop at depth 0 is invariant.
5962         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
5963         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
5964         be called at loop depth 0.
5965
5966 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
5967
5968         PR driver/35420
5969         * gcc.c (process_command): Update copyright notice dates.
5970         * gcov.c (print_version): Likewise.
5971         * gcov-dump.c (print_version): Likewise.
5972         * mips-tfile.c (main): Likewise.
5973         * mips-tdump.c (main): Likewise.
5974
5975 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5976
5977         PR 24924
5978         * c-common.c (flag_permissive): Delete.
5979         (constant_expression_warnings): Check flags first.
5980         (constant_expression_error): New.
5981         * c-common.h (flag_permissive): Delete.
5982         (constant_expression_error): Declare.
5983         * flags.h (flag_permissive): Declare. Update description.
5984         * diagnostic.c (pedwarn): Update.
5985         (permerror): New.
5986         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
5987         (permissive_error_kind): New.
5988         * toplev.c (flag_permissive): Define. Update description.
5989         * toplev.h (permissive_error_kind): Declare.
5990         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
5991         (pedwarn_c90): Use pedantic_warning_kind.
5992         * c-opts.c (c_common_post_options): flag_permissive does not affect
5993         flag_pedantic_errors.
5994
5995 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
5996
5997         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
5998         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
5999         __absvsi2, __absvDI2): Use unsigned arithmetic.
6000
6001 2008-03-02  Andi Kleen  <ak@suse.de>
6002             Richard Guenther  <rguenther@suse.de>
6003
6004         * struct-equiv.c: Remove file.
6005         * cfg_cleanup.c (condjump_equiv_p): Remove.
6006         * Makefile.in (OBJS-common): Remove struct-equiv.o.
6007         (struct-equiv.o): Remove rule.
6008         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
6009         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
6010         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
6011
6012 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6013
6014         * ifcvt.c (noce_process_if_block): Try to handle only the then
6015         block if the else block exists but isn't suitable.
6016
6017 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
6018
6019         PR gcc/35063
6020         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
6021         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
6022         regression from previous patch.
6023
6024 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
6025
6026         PR gcc/35063
6027         * gthr.h: Add __gthread_mutex_destroy as a function that must be
6028         implemented.
6029         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
6030         * gthr-single.h (__gthread_mutex_destroy): Likewise.
6031         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
6032         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
6033         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
6034         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
6035         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
6036         (__gthread_mutex_destroy_function): Rename to
6037         __gthread_mutex_destroy.
6038         * gthr-dce.h (__gthread_mutex_destroy): Call
6039         pthread_mutex_destroy.
6040         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
6041         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
6042         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
6043
6044 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6045
6046         * df-scan.c (df_ref_chain_change_bb): Simplify.
6047         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
6048         set_block_for_insn if there's any change.
6049         * df.h ((df_insn_change_bb): Fix prototype.
6050         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
6051         df_insn_change_bb, don't call set_block_for_insn.
6052         * emit-rtl.c (reorder_insns): Likewise.
6053         * haifa-sched.c (move_insn): Likewise.
6054
6055 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6056
6057         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
6058
6059 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6060
6061         * tree-flow-inline.h (next_readonly_imm_use): Return
6062         NULL_USE_OPERAND_P after the end.
6063
6064 2008-03-01  Richard Guenther  <rguenther@suse.de>
6065
6066         PR tree-optimization/35411
6067         * tree-sra.c (sra_build_assignment): Split conversion to
6068         final type to a separate statement if we are not assigning
6069         to a register.
6070
6071 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
6072
6073         * fold-const.c (fold_convertible_p): Correct the logic to follow
6074         that in fold_convert().
6075
6076 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
6077
6078         PR c++/35315
6079         * tree-inline.c (build_duplicate_type): When we make a
6080         duplicate type, make it unique in the canonical types system.
6081
6082 2008-02-29  Tom Tromey  <tromey@redhat.com>
6083
6084         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
6085         input_file_stack_history, input_file_stack_restored): Remove.
6086         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
6087         * input.h (struct file_stack): Remove.
6088         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
6089         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
6090         Likewise.
6091         * diagnostic.h (struct diagnostic_context) <last_module>: Change
6092         type.
6093         (diagnostic_last_module_changed): Add 'map' argument.
6094         (diagnostic_set_last_function): Likewise.
6095         * diagnostic.c (undiagnostic_report_current_module): Iterate using
6096         line map, not input_file_stack.
6097         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
6098
6099 2008-02-29  Paul Brook  <paul@codesourcery.com>
6100
6101         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
6102
6103 2008-02-29  Paul Brook  <paul@codesourcery.com>
6104
6105         * config/arm/ieee754-df.S (muldf3): Use RET macros.
6106
6107 2008-02-29  Richard Guenther  <rguenther@suse.de>
6108
6109         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
6110         vn_lookup_or_add.
6111         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
6112         value for comparing for a store match.
6113         (simplify_unary_expression): Do nothing for SSA_NAMEs.
6114         (try_to_simplify): Do not do a full-blown reference lookup.
6115
6116 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6117
6118         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
6119         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
6120
6121         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
6122
6123 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
6124
6125         * tree-loop-linear.c (try_interchange_loops): Compare memory access
6126         strides against cache sizes.
6127
6128 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6129
6130         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
6131         constant to fpul.
6132
6133 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
6134
6135         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
6136         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
6137         is smaller than the original promoted value.
6138         (simplify_subreg): If OP is a SUBREG, try to preserve its
6139         SUBREG_PROMOTED_VAR_P information.
6140
6141 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
6142
6143         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
6144         (VN_INFO_GET): Allocate new objects on the obstack.
6145         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
6146         for rpo_numbers_temp, for consistency.
6147         (free_scc_vn): Free the obstack.
6148
6149 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
6150
6151         * doc/invoke.texi: Document -ftree-loop-distribution.
6152         * tree-loop-distribution.c: New.
6153         * tree-pass.h (pass_loop_distribution): New.
6154         * graphds.h (struct graph): Add htab_t indices.
6155         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
6156         * tree-vectorizer.c (rename_variables_in_loop): Extern.
6157         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
6158         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
6159         * tree-data-ref.c (debug_data_dependence_relations): New.
6160         (dump_data_dependence_relation): Also print data references.
6161         (free_data_ref): Extern.
6162         (same_access_functions): Moved...
6163         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
6164         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
6165         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
6166         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
6167         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
6168         (stmts_from_loop): Skip LABEL_EXPR.
6169         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
6170         New.
6171         (build_rdg): Initialize rdg->indices htab.
6172         (free_rdg, stores_from_loop, ref_base_address,
6173         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
6174         have_similar_memory_accesses_1, ref_base_address_1,
6175         remove_similar_memory_refs): New.
6176         * tree-data-ref.h: Depend on tree-chrec.h.
6177         (debug_data_dependence_relations, free_data_ref): Declared.
6178         (same_access_functions): ... here.
6179         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
6180         New.
6181         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
6182         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
6183         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
6184         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
6185         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
6186         rdg_vertex_for_stmt): Declared.
6187         (struct rdg_edge): Add level.
6188         (RDGE_LEVEL): New.
6189         (free_rdg, stores_from_loop, remove_similar_memory_refs,
6190         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
6191         Declared.
6192         (rdg_has_similar_memory_accesses): New.
6193         * tree-vect-analyze.c: Remove unused static decls.
6194         * lambda.h (dependence_level): New.
6195         * common.opt (ftree-loop-distribution): New.
6196         * tree-flow.h (mark_virtual_ops_in_bb, 
6197         slpeel_tree_duplicate_loop_to_edge_cfg,
6198         rename_variables_in_loop): Declared.
6199         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
6200         (OBJS-common): Add tree-loop-distribution.o.
6201         (tree-loop-distribution.o): New rule.
6202         * tree-cfg.c (mark_virtual_ops_in_bb): New.
6203         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
6204         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
6205
6206 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
6207
6208         PR target/33963
6209         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
6210         other than structures and unions.
6211
6212 2008-02-28  Richard Guenther  <rguenther@suse.de>
6213
6214         Revert:
6215         2008-02-26  Richard Guenther  <rguenther@suse.de>
6216
6217         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6218         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6219         (lookup_decl_from_uid): Declare.
6220         (remove_decl_from_map): Likewise.
6221         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6222         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6223         (decl_for_uid_map): New global hashtable mapping DECL_UID
6224         to the decl tree.
6225         (init_ttree): Allocate it.
6226         (insert_decl_to_uid_decl_map): New helper function.
6227         (make_node_stat): Insert new decls into the map.
6228         (copy_node_stat): Likewise.
6229         (lookup_decl_from_uid): New function.
6230         (remove_decl_from_map): Likewise.
6231         (print_decl_for_uid_map_statistics): New helper.
6232         (dump_tree_statistics): Call it.
6233
6234         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6235         (referenced_var_iterator): Adjust.
6236         (FOR_EACH_REFERENCED_VAR): Adjust.
6237         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6238         (num_referenced_vars): Adjust.
6239         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6240         (first_referenced_var): Remove.
6241         (end_referenced_vars_p): Likewise.
6242         (next_referenced_var): Likewise.
6243         (referenced_var_iterator_set): New helper function.
6244         * tree-dfa.c (referenced_var_lookup): Adjust.
6245         (referenced_var_check_and_insert): Likewise.
6246         (remove_referenced_var): Likewise.
6247         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6248         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6249         (verify_call_clobbering): Likewise.
6250         (verify_memory_partitions): Likewise.
6251         (init_tree_ssa): Allocate bitmap instead of hashtable for
6252         referenced_vars.
6253         (delete_tree_ssa): Adjust.
6254         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6255         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6256         (compute_tag_properties): Likewise.
6257         (set_initial_properties): Likewise.
6258         (find_partition_for): Likewise.
6259         (update_reference_counts): Likewise.
6260         (dump_may_aliases_for): Likewise.
6261         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6262         (add_call_clobber_ops): Likewise.
6263         (add_call_read_ops): Likewise.
6264         (get_asm_expr_operands): Likewise.
6265         * tree-into-ssa.c (dump_decl_set): Likewise.
6266         (update_ssa): Likewise.
6267         * tree-sra.c (scan_function): Likewise.
6268         (decide_instantiations): Likewise.
6269         (scalarize_parms): Likewise.
6270         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6271         (dsa_named_for): Likewise.
6272         * tree-ssa-structalias.c (update_alias_info): Likewise.
6273         (merge_smts_into): Likewise.
6274
6275 2008-02-27  David Daney  <ddaney@avtrex.com>
6276
6277         PR target/34409
6278         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
6279         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
6280         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
6281         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
6282         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
6283
6284 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
6285
6286         PR target/25477
6287         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
6288         (BUILT_IN_NEXTTOWARD): Remove.
6289         (BUILT_IN_NEXTTOWARDF): Ditto.
6290         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
6291         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
6292
6293 2008-02-27  Tom Tromey  <tromey@redhat.com>
6294
6295         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
6296         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
6297
6298 2008-02-27  Jan Beulich  <jbeulich@novell.com>
6299
6300         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
6301         update the respective field on newdecl.
6302
6303 2008-02-27  Revital Eres  <eres@il.ibm.com>
6304
6305         PR rtl-optimization/34999
6306         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
6307         crossing edges that ends with a call insn.
6308         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
6309         call insn and clear the EDGE_CROSSING flag of the crossing edge
6310         when fixing fallthru edges.
6311
6312 2008-02-27  Richard Guenther  <rguenther@suse.de>
6313
6314         PR middle-end/35390
6315         * fold-const.c (fold_unary): Return the correct argument,
6316         converted to the result type.
6317
6318 2008-02-27  Richard Guenther  <rguenther@suse.de>
6319
6320         PR middle-end/34971
6321         * expr.c (expand_expr_real_1): Assert on rotates that operate
6322         on partial modes.
6323         * fold-const.c (fold_binary): Use the types precision, not the
6324         bitsize of the mode if folding rotate expressions.  Build rotates
6325         only for full modes.
6326
6327 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
6328
6329         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
6330         and CPP_PRAGMA_EOL.
6331         * c-pragma.c (pragma_ns_name): New typedef.
6332         (registered_pp_pragmas): New variable.
6333         (c_pp_lookup_pragma): New function.
6334         (c_register_pragma_1): If flag_preprocess_only, do nothing
6335         for non-expanded pragmas, for expanded ones push pragma's
6336         namespace and name into registered_pp_pragmas vector.
6337         (c_invoke_pragma_handler): Register OpenMP pragmas even when
6338         flag_preprocess_only, don't register GCC pch_preprocess
6339         pragma if flag_preprocess_only.
6340         * c-opts.c (c_common_init): Call init_pragma even if
6341         flag_preprocess_only.
6342         * c-pragma.c (c_pp_lookup_pragma): New prototype.
6343         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
6344         cpp_register_pragma if flag_preprocess_only.
6345
6346 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6347
6348         PR c/28800
6349         * c-parser.c (c_parser_translation_unit): Warn for empty
6350         translation unit, not empty source file.
6351
6352 2008-02-26  Paul Brook  <paul@codesourcery.com>
6353
6354         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
6355         operand for Thumb-2.
6356         * config/arm/arm.h (reg_class): Add CORE_REGS.
6357         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
6358         (BASE_REG_CLASS): Use CORE_REGS.
6359         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
6360         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
6361         (REGNO_OK_FOR_INDEX_P): Exclude SP.
6362         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
6363         ARM_REGNO_OK_FOR_INDEX_P.
6364         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
6365         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
6366         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
6367         (ldm/stm peepholes): Ditto.
6368         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
6369         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
6370         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
6371         * config/arm/constraints.md: Enable "k" constraint on ARM.
6372
6373 2008-02-27  Ben Elliston  <bje@au.ibm.com>
6374
6375         * config/rs6000/rs6000.c: Annotate cache line size field in all
6376         instances of struct processor_costs.
6377
6378 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
6379
6380         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
6381         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
6382         jump_bypass): New counters.
6383         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
6384         * dce.c (gate_ud_dce): Same.
6385         (gate_fast_dce): Same.
6386         * dse.c (gate_dse1): New function.
6387         (gate_dse2): New function.
6388         (gate_dse): Merge results of new gate functions.
6389         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
6390         (gate_handle_jump_bypass): Add dbg_cnt.
6391         (gate_handle_gcse): Add dbg_cnt.
6392         * ifcvt.c (gate_handle_if_conversion): Same.
6393         (gate_handle_if_after_combine): Same.
6394         (gate_handle_if_after_reload): Same.
6395         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
6396
6397 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
6398
6399         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
6400         line sizes.
6401         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
6402
6403 2008-02-26  Jason Merrill  <jason@redhat.com>
6404
6405         PR c++/35315
6406         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
6407         alone if it's the naming decl for the type's main variant.
6408
6409 2008-02-26  Tom Tromey  <tromey@redhat.com>
6410
6411         * system.h (USE_MAPPED_LOCATION): Poison.
6412         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
6413         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
6414         (make_goto_expr_edges): Likewise.
6415         (remove_bb): Likewise.
6416         (execute_warn_function_return): Likewise.
6417         * basic-block.h (struct edge_def) <goto_locus>: Change type to
6418         location_t.
6419         * c-common.c (fname_decl): Remove old location code.
6420         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
6421         location code.
6422         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
6423         variant.
6424         (ASM_INPUT_SOURCE_LOCATION): Likewise.
6425         (gen_rtx_ASM_INPUT): Likewise.
6426         (gen_rtx_ASM_INPUT_loc): Likewise.
6427         (get_rtx_asm_OPERANDS): Remove.
6428         * cfglayout.c (insn_locators_alloc): Remove old location code.
6429         (set_curr_insn_source_location): Likewise.
6430         (curr_insn_locator): Likewise.
6431         * print-tree.c (print_node): Remove old location code.
6432         * tree-mudflap.c (mf_varname_tree): Remove old location code.
6433         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
6434         * cfgexpand.c (expand_gimple_cond_expr): Don't use
6435         location_from_locus.
6436         (construct_exit_block): Remove old location code.
6437         * emit-rtl.c (force_next_line_note): Remove old location code.
6438         * profile.c (branch_prob): Remove old location code.
6439         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
6440         LOC_LINE): Remove old-location variants.
6441         * langhooks.c (lhd_print_error_function): Remove old location
6442         code.
6443         * configure, config.in: Rebuilt.
6444         * configure.ac (--enable-mapped-location): Remove.
6445         * c-decl.c (c_init_decl_processing): Remove old location code.
6446         (finish_function): Likewise.
6447         * recog.c (decode_asm_operands): Remove old location code.
6448         * c-pch.c (c_common_read_pch): Remove old location code.
6449         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
6450         variants.
6451         * gimple-low.c (lower_function_body): Remove old location code.
6452         * toplev.c (unknown_location): Remove.
6453         (push_srcloc): Remove old-location variant.
6454         (process_options): Remove old location code.
6455         (lang_dependent_init): Likewise.
6456         * input.h (UNKNOWN_LOCATION): Move definition.
6457         (location_t): Undeprecate.
6458         (source_locus): Remove.
6459         (location_from_locus): Remove.
6460         (struct location_s): Remove.
6461         Remove all old-location code.
6462         (input_line, input_filename): Remove.
6463         * final.c (final_scan_insn): Remove old location code.
6464         * diagnostic.c (diagnostic_build_prefix): Remove
6465         USE_MAPPED_LOCATION test.
6466         * tree.h (gimple_stmt) <locus>: Now a location_t.
6467         (tree_exp) <locus>: Likewise.
6468         (DECL_IS_BUILTIN): Remove old-location variant.
6469         (annotate_with_file_line, annotate_with_locus): Likewise.
6470         (expr_locus, set_expr_locus): Update.
6471         * tree.c (build1_stat): Remove old location code.
6472         (last_annotated_node): Remove.
6473         (annotate_with_file_line): Remove old-location variant.
6474         (annotate_with_locus): Likewise.
6475         (expr_location): Remove old location code.
6476         (set_expr_location): Likewise.
6477         (expr_has_location): Likewise.
6478         (expr_locus): Likewise.
6479         (set_expr_locus): Likewise.
6480         (expr_filename): Don't use location_from_locus.
6481         (expr_lineno): Likewise.
6482         * rtl-error.c (location_for_asm): Remove old location code.
6483         * c-lex.c (cb_line_change): Remove old location code.
6484         (fe_file_change): Likewise.
6485         (cb_def_pragma): Likewise.
6486         (c_lex_with_flags): Likewise.
6487         * gengtype.c (do_typedef): Don't special-case location types.
6488         (define_location_structures): Remove.
6489         (main): Don't call define_location_structures.
6490         * tree-pretty-print.c (dump_implicit_edges): Remove old location
6491         code.
6492
6493 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6494
6495         PR 26264
6496         * builtins.def (BUILT_IN_STDARG_START): Remove.
6497         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
6498         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6499         * tree-inline.c (inline_forbidden_p_1): Likewise.
6500         
6501 2008-02-26  Richard Guenther  <rguenther@suse.de>
6502
6503         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6504         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6505         (lookup_decl_from_uid): Declare.
6506         (remove_decl_from_map): Likewise.
6507         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6508         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6509         (decl_for_uid_map): New global hashtable mapping DECL_UID
6510         to the decl tree.
6511         (init_ttree): Allocate it.
6512         (insert_decl_to_uid_decl_map): New helper function.
6513         (make_node_stat): Insert new decls into the map.
6514         (copy_node_stat): Likewise.
6515         (lookup_decl_from_uid): New function.
6516         (remove_decl_from_map): Likewise.
6517         (print_decl_for_uid_map_statistics): New helper.
6518         (dump_tree_statistics): Call it.
6519
6520         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6521         (referenced_var_iterator): Adjust.
6522         (FOR_EACH_REFERENCED_VAR): Adjust.
6523         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6524         (num_referenced_vars): Adjust.
6525         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6526         (first_referenced_var): Remove.
6527         (end_referenced_vars_p): Likewise.
6528         (next_referenced_var): Likewise.
6529         (referenced_var_iterator_set): New helper function.
6530         * tree-dfa.c (referenced_var_lookup): Adjust.
6531         (referenced_var_check_and_insert): Likewise.
6532         (remove_referenced_var): Likewise.
6533         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6534         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6535         (verify_call_clobbering): Likewise.
6536         (verify_memory_partitions): Likewise.
6537         (init_tree_ssa): Allocate bitmap instead of hashtable for
6538         referenced_vars.
6539         (delete_tree_ssa): Adjust.
6540         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6541         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6542         (compute_tag_properties): Likewise.
6543         (set_initial_properties): Likewise.
6544         (find_partition_for): Likewise.
6545         (update_reference_counts): Likewise.
6546         (dump_may_aliases_for): Likewise.
6547         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6548         (add_call_clobber_ops): Likewise.
6549         (add_call_read_ops): Likewise.
6550         (get_asm_expr_operands): Likewise.
6551         * tree-into-ssa.c (dump_decl_set): Likewise.
6552         (update_ssa): Likewise.
6553         * tree-sra.c (scan_function): Likewise.
6554         (decide_instantiations): Likewise.
6555         (scalarize_parms): Likewise.
6556         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6557         (dsa_named_for): Likewise.
6558         * tree-ssa-structalias.c (update_alias_info): Likewise.
6559         (merge_smts_into): Likewise.
6560
6561 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6562
6563         PR 34351
6564         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
6565         * c-opts.c (c_common_handle_option): Wall enables
6566         Wvolatile-register-var.
6567         * common.opt: Move Wvolatile-register-var to...
6568         * c.opt: ...here.
6569         
6570 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6571
6572         * common.opt (Wlarger-than=): New.
6573         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
6574         -Wlarger-than=.
6575         * opts.c (common_handle_option): Handle -Wlarger-than=.
6576         * optc-gen.awk: Likewise.
6577         * opth-gen.awk: Likewise.
6578         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
6579         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6580         
6581 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6582
6583         * c-common.c (match_case_to_enum_1): Add appropriate
6584         OPT_W* parameter to warning.
6585         (c_do_switch_warnings): Likewise.
6586         * c-typeck.c (warning_init): Add one more parameter following
6587         'warning' function.
6588         (push_init_level): Update call to warning_init.
6589         (pop_init_level): Likewise.
6590         (add_pending_init): Likewise.
6591         (output_init_element: Likewise.
6592
6593 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6594
6595         PR 28322
6596         * toplev.c (toplev_main): If there are warnings or error, print
6597         errors for ignored options.
6598         * opts.c (ignored_options): New static variable.
6599         (postpone_unknown_option_error): New.
6600         (print_ignored_options): New.
6601         (handle_option): Postpone errors for unknown -Wno-* options.
6602         * opts.h (print_ignored_options): Declare.
6603         
6604 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6605
6606         * config/mips/mips.md (loadgp_blockage, blockage): Change type
6607         to "ghost".
6608
6609 2008-02-25  Richard Guenther  <rguenther@suse.de>
6610
6611         Revert:
6612         2008-02-25  Richard Guenther  <rguenther@suse.de>
6613
6614         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6615         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6616         (lookup_decl_from_uid): Declare.
6617         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6618         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6619         (decl_for_uid_map): New global hashtable mapping DECL_UID
6620         to the decl tree.
6621         (init_ttree): Allocate it.
6622         (insert_decl_to_uid_decl_map): New helper function.
6623         (make_node_stat): Insert new decls into the map.
6624         (copy_node_stat): Likewise.
6625         (lookup_decl_from_uid): New function.
6626         (print_decl_for_uid_map_statistics): New helper.
6627         (dump_tree_statistics): Call it.
6628
6629         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6630         (referenced_var_iterator): Adjust.
6631         (FOR_EACH_REFERENCED_VAR): Adjust.
6632         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6633         (num_referenced_vars): Adjust.
6634         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6635         (first_referenced_var): Remove.
6636         (end_referenced_vars_p): Likewise.
6637         (next_referenced_var): Likewise.
6638         (referenced_var_iterator_set): New helper function.
6639         * tree-dfa.c (referenced_var_lookup): Adjust.
6640         (referenced_var_check_and_insert): Likewise.
6641         (remove_referenced_var): Likewise.
6642         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6643         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6644         (verify_call_clobbering): Likewise.
6645         (verify_memory_partitions): Likewise.
6646         (init_tree_ssa): Allocate bitmap instead of hashtable for
6647         referenced_vars.
6648         (delete_tree_ssa): Adjust.
6649         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6650         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6651         (compute_tag_properties): Likewise.
6652         (set_initial_properties): Likewise.
6653         (find_partition_for): Likewise.
6654         (update_reference_counts): Likewise.
6655         (dump_may_aliases_for): Likewise.
6656         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6657         (add_call_clobber_ops): Likewise.
6658         (add_call_read_ops): Likewise.
6659         (get_asm_expr_operands): Likewise.
6660         * tree-into-ssa.c (dump_decl_set): Likewise.
6661         (update_ssa): Likewise.
6662         * tree-sra.c (scan_function): Likewise.
6663         (decide_instantiations): Likewise.
6664         (scalarize_parms): Likewise.
6665         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6666         (dsa_named_for): Likewise.
6667         * tree-ssa-structalias.c (update_alias_info): Likewise.
6668         (merge_smts_into): Likewise.
6669
6670 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
6671
6672         PR fortran/29549
6673         * doc/invoke.texi (-fcx-limited-range): Document new option.
6674         * toplev.c (process_options): Handle -fcx-fortran-rules.
6675         * common.opt: Add documentation for -fcx-fortran-rules.
6676
6677 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
6678
6679         PR c/35162
6680         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
6681         actual behaviour and C99.
6682         
6683 2008-02-26  Ben Elliston  <bje@au.ibm.com>
6684
6685         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
6686         (ASM_CPU_POWER6_SPEC): Likewise.
6687         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
6688         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
6689         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
6690
6691 2008-02-25  Richard Guenther  <rguenther@suse.de>
6692
6693         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6694         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6695         (lookup_decl_from_uid): Declare.
6696         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6697         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6698         (decl_for_uid_map): New global hashtable mapping DECL_UID
6699         to the decl tree.
6700         (init_ttree): Allocate it.
6701         (insert_decl_to_uid_decl_map): New helper function.
6702         (make_node_stat): Insert new decls into the map.
6703         (copy_node_stat): Likewise.
6704         (lookup_decl_from_uid): New function.
6705         (print_decl_for_uid_map_statistics): New helper.
6706         (dump_tree_statistics): Call it.
6707
6708         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6709         (referenced_var_iterator): Adjust.
6710         (FOR_EACH_REFERENCED_VAR): Adjust.
6711         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6712         (num_referenced_vars): Adjust.
6713         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6714         (first_referenced_var): Remove.
6715         (end_referenced_vars_p): Likewise.
6716         (next_referenced_var): Likewise.
6717         (referenced_var_iterator_set): New helper function.
6718         * tree-dfa.c (referenced_var_lookup): Adjust.
6719         (referenced_var_check_and_insert): Likewise.
6720         (remove_referenced_var): Likewise.
6721         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6722         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6723         (verify_call_clobbering): Likewise.
6724         (verify_memory_partitions): Likewise.
6725         (init_tree_ssa): Allocate bitmap instead of hashtable for
6726         referenced_vars.
6727         (delete_tree_ssa): Adjust.
6728         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6729         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6730         (compute_tag_properties): Likewise.
6731         (set_initial_properties): Likewise.
6732         (find_partition_for): Likewise.
6733         (update_reference_counts): Likewise.
6734         (dump_may_aliases_for): Likewise.
6735         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6736         (add_call_clobber_ops): Likewise.
6737         (add_call_read_ops): Likewise.
6738         (get_asm_expr_operands): Likewise.
6739         * tree-into-ssa.c (dump_decl_set): Likewise.
6740         (update_ssa): Likewise.
6741         * tree-sra.c (scan_function): Likewise.
6742         (decide_instantiations): Likewise.
6743         (scalarize_parms): Likewise.
6744         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6745         (dsa_named_for): Likewise.
6746         * tree-ssa-structalias.c (update_alias_info): Likewise.
6747         (merge_smts_into): Likewise.
6748
6749 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
6750
6751         PR target/35258
6752         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
6753         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
6754         * alias.h (nonoverlapping_memrefs_p): Likewise.
6755
6756 2008-02-25  Jan Beulich  <jbeulich@novell.com>
6757
6758         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
6759         * config/i386/netware-libgcc.exp: Add __bswap?i2,
6760         __emultls_get_address, __emultls_register_common,
6761         __floatundi?f, and _Unwind_GetIPInfo.
6762         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
6763         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
6764         (gen_regparm_prefix): Likewise.
6765         (i386_nlm_encode_section_info): Sync with
6766         config/i386/winnt.c:i386_pe_encode_section_info().
6767         (i386_nlm_maybe_mangle_decl_assembler_name): New.
6768         i386_nlm_mangle_decl_assembler_name): New.
6769         (netware_override_options): New.
6770         * config/i386/netware.h (netware_override_options): Declare.
6771         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
6772         (i386_nlm_mangle_decl_assembler_name): Declare.
6773         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
6774
6775 2008-02-25  Ben Elliston  <bje@au.ibm.com>
6776
6777         PR other/32948
6778         * c-decl.c (grokdeclarator): Remove unused local variables
6779         `typedef_type' and `type_as_written'.
6780         * bb-reorder.c
6781         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
6782         unused local variable `has_hot_blocks'.
6783         (fix_crossing_conditional_branches): Remove unused local variable
6784         `prev_bb'.
6785         
6786 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
6787
6788         PR middle-end/19984
6789         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
6790         using DEF_C99_BUILTIN.
6791         (BUILT_IN_NANF): Ditto.
6792         (BUILT_IN_NANL): Ditto.
6793
6794 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
6795             Revital Eres  <eres@il.ibm.com>
6796
6797         * modulo-sched.c (calculate_must_precede_follow): Address TODO
6798         regarding the order of two dependent insns in the same row.
6799
6800 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
6801
6802         * stor-layout.c (layout_decl): Do not bump the alignment of a
6803         bit-field to more than byte alignment if it is packed.
6804
6805 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
6806
6807         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
6808         e300c2 and e300c3.
6809
6810 2008-02-24  Diego Novillo  <dnovillo@google.com>
6811
6812         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
6813
6814         PR 33738
6815         * tree-vrp.c (vrp_evaluate_conditional): With
6816         -Wtype-limits, emit a warning when comparing against a
6817         constant outside the natural range of OP0's type.
6818         * c.opt (Wtype-limits): Move ...
6819         * common.opt (Wtype-limits): ... here.
6820
6821 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
6822
6823         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
6824         * config/rs6000/e300c2c3.md: New file.
6825         * config/rs6000/rs6000.c (processor_costs): Add new costs for
6826         e300c2 and e300c3.
6827         (rs6000_override_options): Add e300c2 and e300c3 cases to
6828         processor_target_table. Do not allow usage of Altivec or Spe
6829         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
6830         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
6831         * config/rs6000/rs6000.h (processor_type): Add
6832         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
6833         (ASM_CPU_SPEC): Add e300c2 and e300c3.
6834         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
6835         and ppce300c3. Include e300c2c3.md.
6836
6837 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
6838
6839         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
6840         instead of TARGET_STRICT_ALIGN.
6841
6842 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
6843
6844         * explow.c (memory_address): Assert that the generated address is
6845         valid.
6846
6847 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
6848
6849         PR target/25477
6850         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
6851         * config/darwin-ppc-ldouble-patch.def: New file.
6852         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
6853         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
6854         SUBTARGET_INIT_BUILTINS if defined.
6855         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
6856         New functions.
6857
6858 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6859
6860         PR rtl-opt/33512
6861         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
6862         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
6863
6864 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6865
6866         PR pch/35027
6867         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
6868         file" warning condtional on -Winvalid-PCH.
6869
6870 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
6871
6872         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
6873
6874 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
6875
6876         PR target/22076
6877         PR target/34256 
6878         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
6879         prevent reload from using MMX registers.
6880         (*mov<mode>_internal): Ditto.
6881         (*movv2sf_internal_rex64): Ditto.
6882         (*movv2sf_internal): Ditto.
6883
6884 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6885
6886         PR documentation/31569
6887         * doc/install.texi2html: Use makeinfo --no-number-sections.
6888
6889 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
6890
6891         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
6892         ensure that we can address an entire entity > 8 bytes.  Don't
6893         generate reg+reg addressing for such data.
6894
6895 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
6896
6897         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
6898         strings when optimizing for size, unless the target cares about
6899         alignment.
6900
6901 2008-02-22  Tom Tromey  <tromey@redhat.com>
6902
6903         * regclass.c (current_pass): Remove declaration.
6904
6905 2008-02-22  Anatoly Sokolov <aesok@post.ru>
6906
6907         * config/avr/libgcc.S (__RAMPZ__): Define.
6908         (__do_copy_data): Add for devices with 128KB code memory.
6909
6910 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
6911
6912         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
6913         Use spe_abi.
6914         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
6915
6916 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
6917
6918         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
6919         GENNONACR_REGS.
6920
6921 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6922
6923         PR c/19999
6924         * c-typeck.c (build_binary_op): Warn about floating point
6925         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
6926
6927 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
6928
6929         PR target/34526
6930         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
6931         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
6932         add vrsave.
6933         (rs6000_override_options): Set altivec_abi as default, not override,
6934         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
6935         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
6936         is used; use new member spe_abi.
6937         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
6938         spe_abi and altivec_abi.
6939
6940 2008-02-22  Tomas Bily  <tbily@suse.cz>
6941
6942         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
6943
6944 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6945
6946         PR bootstrap/35273
6947         * config.build (build_file_translate): Set to `CMD //c' only if
6948         it works.
6949         * Makefile.in (build_file_translate): Improve comment.
6950
6951 2008-02-21  Jan Hubicka  <jh@suse.cz>
6952
6953         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
6954         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
6955         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
6956
6957 2008-02-21  Michael Matz  <matz@suse.de>
6958
6959         PR target/35264
6960         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
6961
6962 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
6963
6964         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
6965         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
6966         as insn constraint.
6967         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
6968         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
6969         SSE_VEC_FLOAT_MODE_P as insn constraint.
6970         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
6971         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
6972         sse4a_movntdf using MODEF mode iterator.
6973         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
6974         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
6975         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
6976         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
6977         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
6978         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
6979         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
6980
6981 2008-02-21  Richard Guenther  <rguenther@suse.de>
6982
6983         * tree.def (PAREN_EXPR): New tree code.
6984         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
6985         and PAREN_EXPR.
6986         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
6987         * expr.c (expand_expr_real_1): Likewise.
6988         * tree-inline.c (estimate_num_insns_1): Likewise.
6989         * tree-complex.c (expand_complex_move): Likewise.
6990         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
6991         as plain x.
6992
6993 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6994
6995         PR target/35225
6996         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
6997
6998 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6999
7000         PR target/35190
7001         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
7002
7003         * config/sh/sh.c (find_barrier): Don't go past
7004         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
7005
7006 2008-02-20  DJ Delorie  <dj@redhat.com>
7007
7008         * config/h8300/h8300.md (insv): Force source operand to be a register.
7009
7010         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
7011         as a jump, not as a plain insn.
7012         
7013 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
7014
7015         * doc/invoke.texi (Warning Options): Add new option
7016         -Wframe-larger-than=.
7017         (-Wframe-larger-than): Document.
7018
7019         * flags.h (warn_frame_larger_than, frame_larger_than_size):
7020         Add declarations for new option variables.
7021
7022         * final.c (final_start_function): Check the frame size
7023         before emission and issue a Wframe-larger-than warning.
7024
7025         * opts.c (warn_frame_larger_than, frame_larger_than_size):
7026         Add definitions for new option variables.
7027         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
7028
7029         * common.opt (Wframe-larger-than=): New option.
7030
7031 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
7032
7033         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
7034         (<sse>_div<mode>3): Ditto.
7035         (<sse>_vmdiv<mode>3): Ditto.
7036         (<sse>_vmsqrt<mode>2): Ditto.
7037         (*smax<mode>3): Ditto.
7038         (sse5_frcz<mode>2): Ditto.
7039         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
7040         as insn constraint.
7041
7042 2008-02-20  Richard Guenther  <rguenther@suse.de>
7043
7044         PR middle-end/35265
7045         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
7046         be happy with INTEGRAL_TYPE_P.
7047
7048 2008-02-20  Richard Guenther  <rguenther@suse.de>
7049
7050         * fold-const.c (split_tree): Associate floatig-point expressions
7051         if flag_associative_math is set.
7052
7053 2008-02-20  Richard Guenther  <rguenther@suse.de>
7054
7055         * tree.h (fold_real_zero_addition_p): Declare.
7056         * fold-const.c (fold_real_zero_addition_p): Export.
7057         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
7058         floating-point operations with zero and one.
7059
7060 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
7061
7062         * doc/install.texi: Correct references to CFLAGS, replacing them
7063         with BOOT_CFLAGS.  Document flags used during bootstrap for
7064         target libraries.
7065                                 
7066 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
7067
7068         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
7069         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
7070         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
7071         insn constraint.
7072         (smin<mode>3): Ditto from similar patterns.
7073         (smax<mode>3): Ditto.
7074         (*ieee_smin<mode>3): Ditto.
7075         (*ieee_smax<mode>3): Ditto.
7076         * config/i386/sse.md (sse): New mode attribute.
7077         (mov<mode>): Macroize expander from movv4sf and movv2df using
7078         SSEMODEF2P mode iterator.
7079         (<sse>_movnt<mode>): Ditto from similar patterns. Use
7080         SSE_VEC_FLOAT_MODE_P as insn constraint.
7081         (storent<mode>): Ditto.
7082         (storent<mode>): Macroize expander from storentsf and storentdf using
7083         MODEF mode iterator.
7084         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
7085         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
7086         (abs<mode>2): Ditto from similar patterns.
7087         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
7088         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
7089         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
7090         (<sse>_vmsqrt<mode>2): Ditto.
7091         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
7092         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
7093         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
7094         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
7095         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
7096         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
7097         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
7098         insn constraint.
7099         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
7100         iterator and SSE_FLOAT_MODE_P as insn constraint.
7101         (<sse>_ucomi): Ditto from similar patterns.
7102         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
7103         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
7104         SSE_VEC_FLOAT_MODE_P as insn constraint.
7105         (vcond<mode>): Ditto from similar patterns.
7106         (and<mode>3, *and<mode>3): Ditto.
7107         (<sse>_nand<mode>3): Ditto.
7108         (ior<mode>3, *ior<mode>3): Ditto.
7109         (xor<mode>3, *xor<mode>3): Ditto.
7110         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
7111         iterator and SSE_FLOAT_MODE_P as insn constraint.
7112         (*nand<mode>3): Ditto from similar patterns.
7113         (*ior<mode>3): Ditto.
7114         (*xor<mode>3): Ditto.
7115
7116 2008-02-20  Ira Rosen  <irar@il.ibm.com>
7117
7118         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
7119         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
7120         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
7121
7122 2008-02-19  Jan Hubicka  <jh@suse.cz>
7123
7124         * predict.c (tree_bb_level_predictions): Remove variable next
7125         mistakely introduced by previous commit.
7126
7127 2008-02-19  Jan Hubicka  <jh@suse.cz>
7128
7129         * predict.c (predict_paths_leading_to): Rewrite.
7130         (predict_paths_for_bb): New.
7131         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
7132
7133 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7134
7135         PR bootstrap/35218
7136         * Makefile.in (build_file_translate): New.
7137         (gcc-vers.texi): Use it for translating $(abs_srcdir).
7138         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
7139         * configure.ac (build_file_translate): Substitute it.
7140         * configure: Regenerate.
7141
7142 2008-02-19  Jan Hubicka  <jh@suse.cz>
7143
7144         PR rtl-optimization/34408
7145         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
7146         invalid sharing.
7147
7148 2008-02-19  Jan Hubicka  <jh@suse.cz>
7149
7150         PR middle-end/28779
7151         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
7152         call_expr.
7153
7154 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
7155
7156         PR Ada/35186
7157         * config/i386/i386-modes.def: Revert the last DI alignment
7158         change until Ada people can look into it.
7159
7160 2008-02-19  Nick Clifton  <nickc@redhat.com>
7161
7162         * opts.c (print_specific_help): Fix typo in --help text.
7163
7164 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
7165
7166         PR target/35239
7167         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
7168         32-bit inline asm without asm alternatives for host GCC < 3.0.
7169
7170 2008-02-19  Richard Guenther  <rguenther@suse.de>
7171
7172         PR tree-optimization/34989
7173         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
7174         Allow propagation to INDIRECT_REF if we can simplify only.
7175
7176 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7177
7178         * c-common.c (warn_for_collisions_1): Use appropriate option when
7179         warning.
7180
7181 2008-02-19  Nick Clifton  <nickc@redhat.com>
7182
7183         PR other/31349
7184         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
7185         (handle_options): Fix indentation.
7186         (print_filtered_help): If no language-specific options were
7187         displayed tell the user how to list all the options supported by
7188         the language's front-end.
7189         (print_specific_help): Fix indentation and remove duplicate line.
7190         (common_handle_option): Handle the -v option.
7191         For --help enable the display of undocumented options if the -v
7192         switch has been included on the command line.
7193         For --help= check for overlaps in the arguments between the option
7194         classes and the language names and issue a warning when they
7195         cannot be disambiguated.
7196         * c.opt (v): Pass on to the common option handler.
7197
7198 2008-02-19  Revital Eres  <eres@il.ibm.com> 
7199
7200         * modulo-sched.c (sms_schedule): Change dump message when
7201         create_ddg function fails.
7202         (try_scheduling_node_in_cycle): Rename row to cycle.
7203         (print_partial_schedule): Rename CYCLE to ROW.
7204
7205 2008-02-19  Christian Bruel  <christian.bruel@st.com>
7206             Zdenek Dvorak  <ook@ucw.cz>
7207
7208         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
7209
7210 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
7211
7212         PR target/33555
7213         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
7214         (*x86_movdicc_0_m1_se): Ditto.
7215
7216 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
7217
7218         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
7219         (CMPtype): Define as __gcc_CMPtype.
7220         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
7221         (CMPtype): Define as __gcc_CMPtype.
7222
7223 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
7224
7225         Support valgrind 3.3 for --enable-checking=valgrind.
7226         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
7227         here.
7228         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
7229         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
7230         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
7231         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
7232         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
7233         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
7234         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
7235         respectively.
7236         * ggc-zone.c: Similar.
7237         * ggc-page.c: Similar.
7238
7239 2008-02-19  Paul Brook  <paul@codesourcery.com>
7240
7241         PR target/35071
7242         * config/arm/ieee754-df.S: Fix do_it typo.
7243         * config/arm/ieee754-sf.S: Fix do_it typo.
7244
7245 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
7246
7247         PR target/35189
7248         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
7249         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
7250         (OPTION_MASK_ISA_SSE_SET): Likewise.
7251         (OPTION_MASK_ISA_SSE2_SET): Likewise.
7252         (OPTION_MASK_ISA_SSE3_SET): Likewise.
7253         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
7254         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
7255         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
7256         (OPTION_MASK_ISA_SSE4_SET): Likewise.
7257         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
7258         (OPTION_MASK_ISA_SSE5_SET): Likewise.
7259         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
7260         (OPTION_MASK_ISA_MMX_UNSET): Updated.
7261         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
7262         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
7263         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
7264         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
7265         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
7266         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
7267         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
7268         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
7269         (OPTION_MASK_ISA_SSE4): Removed.
7270         (ix86_handle_option): Turn on bits in ix86_isa_flags and
7271         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
7272         (override_options): Don't turn on implied SSE/MMX bits in
7273         ix86_isa_flags.
7274
7275 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
7276
7277         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7278         32bit host.
7279
7280 2008-02-18  Joey Ye  <joey.ye@intel.com>
7281
7282         PR middle-end/34921
7283         * tree-nested.c (insert_field_into_struct): Set type alignment
7284         to field alignment if the former is less than the latter.
7285
7286 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
7287
7288         * BASE-VER: Set to 4.4.0.
7289
7290 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7291
7292         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
7293         * doc/cfg.texi: Likewise.
7294         * doc/extend.texi: Likewise.
7295         * doc/gty.texi: Likewise.
7296         * doc/invoke.texi: Likewise.
7297         * doc/loop.texi: Likewise.
7298         * doc/md.texi: Likewise.
7299         * doc/passes.texi: Likewise.
7300         * doc/rtl.texi: Likewise.
7301         * doc/sourcebuild.texi: Likewise.
7302         * doc/tm.texi: Likewise.
7303         * doc/tree-ssa.texi: Likewise.
7304
7305 2008-02-17  Richard Guenther  <rguenther@suse.de>
7306
7307         PR middle-end/35227
7308         * tree-complex.c (init_parameter_lattice_values): Handle parameters
7309         without default definition.
7310
7311 2008-02-17  Richard Guenther  <rguenther@suse.de>
7312
7313         PR tree-optimization/35231
7314         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
7315         if A | B != 1.
7316
7317 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
7318
7319         Revert:
7320         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
7321         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
7322         libgcc_cmp_return mode.
7323
7324 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7325
7326         PR c/28368
7327         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
7328
7329 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
7330
7331         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
7332         multilibs.
7333
7334 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7335
7336         * doc/c-tree.texi: Use `@.' where appropriate.
7337         * doc/extend.texi: Likewise.
7338         * doc/install.texi: Likewise.
7339         * doc/invoke.texi: Likewise.
7340         * doc/loop.texi: Likewise.
7341         * doc/makefile.texi: Likewise.
7342         * doc/md.texi: Likewise.
7343         * doc/passes.texi: Likewise.
7344         * doc/standards.texi: Likewise.
7345         * doc/tm.texi: Likewise.
7346
7347 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
7348
7349         PR middle-end/35196
7350         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
7351         in entry_bb.
7352         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
7353         rather than in entry_bb.
7354
7355 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
7356
7357         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
7358         libgcc_cmp_return mode.
7359
7360 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
7361
7362         PR middle-end/35130
7363         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
7364         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
7365
7366 2008-02-15  Richard Guenther  <rguenther@suse.de>
7367             Zdenek Dvorak  <ook@ucw.cz>
7368
7369         PR tree-optimization/35164
7370         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
7371         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
7372         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7373         Only propagate addresses which do not have abnormal SSA_NAMEs
7374         in their operands.
7375
7376 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
7377
7378         PR target/35088
7379         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
7380
7381 2008-02-15  Jan Hubicka  <jh@suse.cz>
7382
7383         PR middle-end/35149
7384         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
7385
7386 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
7387
7388         PR middle-end/34621
7389         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
7390         when calculating alignment_pad.
7391
7392 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
7393
7394         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
7395         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
7396         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
7397         and STACK_BOUNDARY define.
7398
7399 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
7400
7401         PR preprocessor/35061
7402         * c-pragma.c (handle_pragma_pop_macro): Check that
7403         pushed_macro_table has been allocated.
7404
7405 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
7406
7407         PR middle-end/35136
7408         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
7409         (force_gimple_operand): Likewise.
7410         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
7411         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
7412         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
7413         (find_interesting_uses_address): Check addressability and alignment
7414         of the base expression only after substituting bases of IVs into it.
7415
7416 2008-02-14  Michael Matz  <matz@suse.de>
7417
7418         PR target/34930
7419         * function.c (instantiate_virtual_regs_in_insn): Reload address
7420         before falling back to reloading the whole operand.
7421
7422 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
7423
7424         * config/s390/s390.c (s390_mainpool_start): Emit the pool
7425         before the first section switch note.
7426
7427 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7428
7429         * doc/bugreport.texi: Update copyright years.
7430         * doc/c-tree.texi: Likewise.
7431         * doc/cfg.texi: Likewise.
7432         * doc/cpp.texi: Likewise.
7433         * doc/cppinternals.texi: Likewise.
7434         * doc/fragments.texi: Likewise.
7435         * doc/frontends.texi: Likewise.
7436         * doc/gcc.texi: Likewise.
7437         * doc/gty.texi: Likewise.
7438         * doc/hostconfig.texi: Likewise.
7439         * doc/implement-c.texi: Likewise.
7440         * doc/libgcc.texi: Likewise.
7441         * doc/loop.texi: Likewise.
7442         * doc/makefile.texi: Likewise.
7443         * doc/options.texi: Likewise.
7444         * doc/passes.texi: Likewise.
7445         * doc/rtl.texi: Likewise.
7446         * doc/sourcebuild.texi: Likewise.
7447         * doc/standards.texi: Likewise.
7448         * doc/tree-ssa.texi: Likewise.
7449         * doc/trouble.texi: Likewise.
7450
7451         * doc/extend.texi: Use @: or add comma where appropriate.
7452         * doc/invoke.texi: Likewise.
7453         * doc/tm.texi: Likewise.
7454
7455 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
7456
7457         PR target/34393
7458         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
7459         to a reg.
7460
7461 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
7462
7463         * doc/md.texi (clz, ctz): Add reference.
7464         * doc/rtl.texi (clz, ctz): Likewise.
7465
7466 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7467
7468         PR other/35148
7469         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
7470         srcdir.
7471
7472 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
7473
7474         * config/s390/s390.c (struct constant_pool): New field
7475         emit_pool_after added.
7476         (s390_mainpool_start): Set the emit_pool_after flag according
7477         to the section switch notes.
7478         (s390_mainpool_finish): Consider emit_pool_after when emitting
7479         the literal pool at the end of the function.
7480         (s390_chunkify_start): Force literal pool splits at section
7481         switch notes.
7482
7483 2008-02-13  Michael Matz  <matz@suse.de>
7484
7485         PR debug/35065
7486         * var-tracking.c (clobber_variable_part): Correctly traverse the
7487         list.
7488
7489 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7490
7491         PR 29673
7492         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
7493         Add -fdump-ipa-inline.
7494         * tree-dump.c (dump_files): Remove tree-inlined dump.
7495         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
7496         
7497 2008-02-12  Richard Guenther  <rguenther@suse.de>
7498
7499         PR tree-optimization/35171
7500         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
7501         default defs.
7502
7503 2008-02-12  Richard Guenther  <rguenther@suse.de>
7504
7505         PR middle-end/35163
7506         * fold-const.c (fold_widened_comparison): Use get_unwidened in
7507         value-preserving mode.  Disallow final truncation.
7508
7509 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
7510
7511         PR middle-end/35136
7512         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
7513         code from here to...
7514         (force_gimple_operand): ...here.
7515
7516 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
7517
7518         PR c++/35144
7519         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
7520         non-compatible pointers.
7521         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
7522         different FIELD_DECLs, try harder by comparing field offsets, sizes
7523         and types.
7524
7525         PR inline-asm/35160
7526         * function.c (match_asm_constraints_1): Don't replace the same input
7527         multiple times.
7528
7529 2008-02-12  Anatoly Sokolov <aesok@post.ru>
7530
7531         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
7532         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
7533         (expand_epilogue): Restore RAMPZ register.
7534         * config/avr/avr.md (RAMPZ_ADDR): New constant.
7535
7536 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
7537
7538         * config/i386/cygwin.asm: (__alloca): Correct calling
7539         convention and alignment.
7540         (__chkstk): Force 8 byte stack alignment.
7541
7542 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
7543             Richard Guenther  <rguenther@suse.de>
7544
7545         PR tree-optimization/33992
7546         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
7547         the zero we compare against.
7548
7549 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
7550
7551         PR libfortran/35063
7552         * gthr-win32.h (__gthread_mutex_destroy_function): New function
7553         to CloseHandle after unlocking to prevent accumulation of handle
7554         count.
7555
7556 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7557
7558         PR middle_end/34150
7559         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
7560         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
7561         and update LABEL_NUSES during and after reload.
7562
7563 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
7564
7565         PR middle-end/34627
7566         * combine.c (simplify_if_then_else): Make sure the comparison is
7567         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
7568
7569 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7570
7571         PR bootstrap/35051
7572         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
7573         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
7574         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
7575         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
7576         * tree.h (get_type_static_bounds): Likewise.
7577
7578 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7579
7580         * doc/invoke.texi (Option Summary, C++ Dialect Options)
7581         (Objective-C and Objective-C++ Dialect Options, Warning Options):
7582         Make -Wfoo language annotations match what the compiler outputs.
7583
7584 2008-02-08  Sa Liu  <saliu@de.ibm.com>
7585
7586         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
7587         intrinsics spu_convts, spu_convtu, spu_convtf.
7588
7589 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
7590
7591         * doc/extend.texi (Function Attributes) <noinline>: Mention
7592         asm ("") as method to keep calls.
7593
7594 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7595
7596         PR other/32754
7597         * doc/options.texi (Options): Replace references to opts.sh with
7598         optc-gen.awk.
7599         * opts-common.c: Likewise.
7600         * optc-gen.awk: Likewise.
7601         
7602 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
7603
7604         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
7605
7606 2008-02-07  Richard Henderson  <rth@redhat.com>
7607
7608         PR rtl-opt/33410
7609         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
7610         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
7611         funny mode.
7612
7613 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
7614
7615         PR tree-optimization/35085
7616         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
7617         for operand entry oe2 in addition to operand entry oe3 in order to
7618         expose more opportunities for vectorizer sum reduction.
7619
7620 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7621
7622         PR other/35107
7623         * Makefile.in (LIBS): Remove $(GMPLIBS).
7624         (cc1-dummy, cc1): Add $(GMPLIBS).
7625
7626 2008-02-06  Jan Hubicka  <jh@suse.cz>
7627
7628         PR target/23322
7629         * i386.md (moddf_integer): Do not produce partial memory stalls for
7630         targets where it hurts.
7631
7632 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
7633
7634         PR target/35083
7635         * optabs.c (expand_float): Do not check for decimal modes when
7636         expanding unsigned integer through signed conversion.
7637
7638 2008-02-06  Nick Clifton  <nickc@redhat.com>
7639
7640         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
7641         inside the clobber with a match_operand and duplicated operand
7642         number in the constraint.
7643         (ineqbranchsi): Delete redundant comment.
7644
7645 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
7646
7647         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
7648         builtin_define ("__USE_INIT_FINI__").
7649         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
7650         -msx multilibs.
7651         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
7652
7653 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7654
7655         PR documentation/30330
7656         * doc/invoke.texi (C++ Dialect Options)
7657         (Objective-C and Objective-C++ Dialect Options, Warning Options):
7658         For each warning option -Wfoo that allows -Wno-foo, ensure both
7659         -Wfoo and -Wno-foo are listed in the option index.  Fix index
7660         entry of -Wswitch-default, index -Wnormalized= including the
7661         `=', and -Wlarger-than-@var{len} including @var{len}.
7662
7663 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
7664
7665         * config/i386/i386.md (floatunssisf2): Use
7666         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
7667         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
7668         Macroize expander using MODEF mode iterator.
7669
7670 2008-02-05  Diego Novillo  <dnovillo@google.com>
7671
7672         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
7673
7674         PR 33738
7675         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
7676
7677 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7678
7679         PR other/35070
7680         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
7681
7682 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
7683
7684         PR target/35084
7685         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
7686         to indicate if a message should be generated.
7687         (init_cumulative_args): Updated.
7688         (function_value_32): Likewise.
7689
7690 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
7691
7692         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
7693
7694 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
7695
7696         PR target/35083
7697         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
7698         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
7699
7700 2008-02-04  Diego Novillo  <dnovillo@google.com>
7701
7702         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
7703
7704         PR 33738
7705         * tree-vrp.c (vrp_evaluate_conditional): With
7706         -Wtype-limits, emit a warning when comparing against a
7707         constant outside the natural range of OP0's type.
7708
7709 2008-02-04  Richard Guenther  <rguenther@suse.de>
7710
7711         PR middle-end/33631
7712         * expr.c (count_type_elements): Give for unions instead of
7713         guessing.
7714
7715 2008-02-04  Richard Guenther  <rguenther@suse.de>
7716
7717         PR middle-end/35043
7718         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
7719         to TYPE_DOMAINs base type instead of using bitsizetype here.
7720
7721 2008-02-03  Jason Merrill  <jason@redhat.com>
7722
7723         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
7724
7725 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7726
7727         PR other/29972
7728         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
7729         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
7730         (RS/6000 and PowerPC Options): Fix typos and markup.
7731         * doc/passes.texi (Tree-SSA passes): Likewise.
7732
7733 2008-02-02  Michael Matz  <matz@suse.de>
7734
7735         PR target/35045
7736         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
7737         from record_last_reg_set_info.
7738         (record_last_reg_set_info): Take an RTX argument, iterate over all
7739         constituent hardregs.
7740         (record_last_set_info, record_opr_changes): Change calls to
7741         new signature or to record_last_reg_set_info_regno.
7742
7743 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
7744
7745         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
7746
7747 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
7748
7749         PR rtl-optimization/34773
7750         * reg-notes.def (EQUAL): Mention significance of combination of
7751         REG_EQUAL and REG_RETVAL.
7752         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
7753         insn that has a REG_RETVAL.
7754
7755 2008-02-01  Roger Sayle  <roger@eyesopen.com>
7756
7757         PR bootstrap/33781
7758         * configure.ac (--enable-fixed-point): Disable unless explicitly
7759         requested on IRIX.
7760         * configure: Regenerate.
7761
7762 2008-02-01  Richard Guenther  <rguenther@suse.de>
7763
7764         PR other/35042
7765         * invoke.texi (-finline-limit): Remove no longer true parts
7766         of the documentation.  Note that there is no default value.
7767
7768 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
7769             Mark Mitchell  <mark@codesourcery.com>
7770             Ben Elliston  <bje@au.ibm.com>
7771
7772         PR c/29326
7773         * doc/extend.texi (Other Builtins): Document.
7774
7775 2008-01-31  Tom Browder <tom.browder@gmail.com>
7776
7777         * doc/c-tree.texi (Types): Fix grammar.
7778         (Expression trees): Ditto.
7779         * doc/passes.texi (Tree-SSA passes): Ditto.
7780         
7781         * doc/configterms.texi (Configure Terms): Fix typo.
7782         * doc/cpp.texi (Common Predefined Macros): Ditto.
7783         * doc/md.texi (Machine Constraints): Ditto.
7784         
7785         * doc/makefile.texi (Makefile): Add comma.
7786
7787 2008-01-31  Tom Browder  <tom.browder@gmail.com>
7788             Gerald Pfeifer  <gerald@pfeifer.com>
7789         
7790         * doc/sourcebuild.texi (Front End): Remove references to CVS
7791         and CVSROOT/modules.
7792         (Texinfo Manuals): Replace reference to CVS by one to SVN.
7793         (Back End): Remove reference to CVS.
7794
7795 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
7796
7797         PR target/34900
7798         * config/mips/mips.c (gen_load_const_gp): New function, taking a
7799         comment from...
7800         (mips16_gp_pseudo_reg): ...here.
7801         * config/mips/mips.md (load_const_gp): Replace with...
7802         (load_const_gp_<mode>): ...this :P-based insn.
7803
7804 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7805
7806         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
7807         options. Minor fixes.
7808         (-std): Move reference to standards closer to where language
7809         standards are first mentioned.
7810         
7811 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
7812
7813         PR rtl-optimization/34995
7814         * reload.c (alternative_allows_const_pool_ref): Take an rtx
7815         parameter and return a bool.  If the rtx parameter is nonnull,
7816         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
7817         (find_reloads): Update call accordingly.  Pass the new operand
7818         if it needed no address reloads, otherwise pass null.
7819
7820 2008-01-30  Richard Henderson  <rth@redhat.com>
7821
7822         PR c/34993
7823         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
7824         for unbounded arrays.
7825
7826 2008-01-30  Silvius Rus  <rus@google.com>
7827
7828         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
7829
7830 2008-01-30  Jan Hubicka  <jh@suse.cz>
7831
7832         PR target/34982
7833         * i386.c (init_cumulative_args): Use real function declaration when
7834         calling locally.
7835
7836 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
7837
7838         PR rtl-optimization/34998
7839         * global.c (build_insn_chain): Treat non-subreg_lowpart
7840         SUBREGs of pseudos as clobbering all the words covered by the
7841         SUBREG, not just all the bytes.
7842         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
7843         original df_ref rather than an extract parameter.
7844         (global_conflicts): Update call accordingly.
7845
7846 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
7847
7848         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
7849         the overflow check to make it easier to read.
7850         (__fixtfdi): Change the type of the ll member in union
7851         long_double to UDItype_x.
7852
7853 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
7854
7855         PR middle-end/34969
7856         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
7857         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
7858         * tree-inline.c (fold_marked_statements): Call
7859         cgraph_update_edges_for_call_stmt if folding a call statement.
7860         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
7861         debug_generic_stmt calls, reset it back afterwards.
7862
7863         PR c/35017
7864         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
7865         static decls.
7866         * c-typeck.c (build_external_ref): Don't pedwarn about
7867         static vars in current function's scope.
7868
7869 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
7870
7871         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
7872
7873 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
7874
7875         PR c/35002
7876         * ipa-struct-reorg.c: Fix spelling.
7877         * params.def: Ditto.
7878
7879 2008-01-29  Richard Guenther  <rguenther@suse.de>
7880
7881         PR middle-end/35006
7882         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
7883         field.
7884         * tree-inline.c (remap_type): Increment remapping_type_depth
7885         around remapping types.
7886         (copy_body_r): Only add referenced variables if they are referenced
7887         from code, not types.
7888
7889 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
7890
7891         PR c++/34055
7892         PR c++/34103
7893         PR c++/34219
7894         PR c++/34606
7895         PR c++/34753
7896         PR c++/34754
7897         PR c++/34755
7898         PR c++/34919
7899         PR c++/34961
7900         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
7901         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
7902
7903 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
7904
7905         PR target/34412
7906         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
7907         pointer for tiny stack.
7908
7909 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
7910
7911         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
7912
7913 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
7914
7915         * config/vx-common.h: Fix typo in comment.
7916
7917 2008-01-28  Ian Lance Taylor  <iant@google.com>
7918
7919         PR c++/34862
7920         PR c++/33407
7921         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
7922         coalesce pointers if they have different DECL_NO_TBAA_P values.
7923         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
7924         between variables with different DECL_NO_TBAA_P values.
7925
7926 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
7927
7928         PR 31535
7929         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
7930         are not legitimate small data references on SPE targets.
7931
7932 2008-01-28  David Daney  <ddaney@avtrex.com>
7933
7934         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
7935
7936 2008-01-28  David Daney  <ddaney@avtrex.com>
7937
7938         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
7939
7940 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
7941
7942         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
7943         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
7944         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
7945         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
7946         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
7947         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
7948         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
7949         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
7950
7951 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
7952
7953         * basic-block.h (condjump_equiv_p): Fix comment.
7954
7955 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
7956
7957         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
7958         print_generic_stmt_indented): Fix comment.
7959
7960 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
7961
7962         * configure.ac (__stack_chk_fail): Add detecion for availability
7963         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
7964         * configure: Regenerate.
7965
7966 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
7967
7968         PR middle-end/34688
7969         * final.c (output_addr_const): Handle TRUNCATE.
7970
7971 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
7972
7973         PR target/34711
7974         * tree-ssa-loop-ivopts.c (comp_cost): New type.
7975         (zero_cost, infinite_cost): New constants.
7976         (struct cost_pair): Change type of cost to comp_cost.
7977         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
7978         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
7979         New functions.
7980         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
7981         split_address_cost, ptr_difference_cost, difference_cost,
7982         get_computation_cost_at, get_computation_cost,
7983         determine_use_iv_cost_generic, determine_use_iv_cost_address,
7984         determine_use_iv_cost_condition, determine_use_iv_costs,
7985         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
7986         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
7987         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
7988         Change type of cost to comp_cost.
7989         (determine_iv_cost): Increase cost of non-original ivs, instead
7990         of decreasing the cost of original ones.
7991         (get_address_cost): Indicate the complexity of the addressing mode 
7992         in comp_cost.
7993         (try_add_cand_for): Prefer using ivs not specific to some object.
7994         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
7995
7996 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
7997             Janis Johnson  <janis187@us.ibm.com>
7998
7999         PR target/34814
8000         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
8001         (TARGET_INSTANTIATE_DECLS): Likewise.
8002         * target.h (expand_to_rtl_hook): New target hook.
8003         (instantiate_decls): Likewise.
8004         * function.c (instantiate_decl): Make non-static.  Rename to...
8005         (instantiate_decl_rtl): ... this.
8006         (instantiate_expr): Use instantiate_decl_rtl.
8007         (instantiate_decls_1): Likewise.
8008         (instantiate_decls): Likewise.
8009         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
8010         * function.h (instantiate_decl_rtl): Add prototype.
8011         * cfgexpand.c (target.h): New include.
8012         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
8013         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
8014         (TARGET_INSTANTIATE_DECLS): Likewise.
8015         (TARGET_INITIALIZER): New target hooks added.
8016         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
8017         New prototype.
8018         * config/rs6000/rs6000.c (tree-flow.h): New include.
8019         (machine_function): Add sdmode_stack_slot field.
8020         (rs6000_alloc_sdmode_stack_slot): New function.
8021         (rs6000_instantiate_decls): Likewise.
8022         (rs6000_secondary_memory_needed_rtx): Likewise.
8023         (rs6000_check_sdmode): Likewise.
8024         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
8025         (TARGET_INSTANTIATE_DECLS): Likewise.
8026         (rs6000_hard_regno_mode_ok): Allow SDmode.
8027         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
8028         (rs6000_emit_move): Handle SDmode.
8029         (function_arg_advance): Likewise.
8030         (function_arg): Likewise.
8031         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
8032         SDmode var args for 32-bit compiles.
8033         (rs6000_secondary_reload_class): Handle SDmode.
8034         (rs6000_output_function_epilogue): Likewise.
8035         (rs6000_function_value): Simplify if statement.
8036         (rs6000_libcall_value): Likewise.
8037         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
8038         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
8039         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
8040         (movsd_hardfloat): New define_insn.
8041         (movsd_softfloat): Likewise.
8042         (movsd_store): Likewise.
8043         (movsd_load): Likewise.
8044         (extendsddd2): Likewise.
8045         (extendsdtd2): Likewise.
8046         (truncddsd2): Likewise.
8047         (movdd_hardfloat64): Fixup comment.
8048         (UNSPEC_MOVSD_LOAD): New constant.
8049         (UNSPEC_MOVSD_STORE): Likewise.
8050
8051 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
8052
8053         PR c++/34965
8054         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
8055         TRUTH_XOR_EXPR.
8056         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
8057         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
8058         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
8059         and TRUTH_XOR_EXPR.
8060
8061 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
8062
8063         PR target/34794
8064         * config.gcc: Separate AIX 5.3 from AIX 6.1.
8065         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8066         __LONGDOUBLE128 too.
8067         * config/rs6000/aix61.h: New file.
8068
8069 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
8070
8071         PR rtl-optimization/34959
8072         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
8073         popcount and parity rtxes the same mode as their operand.
8074         Truncate or extend the result to the return value's mode
8075         if necessary.
8076
8077 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
8078
8079         PR target/34981
8080         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
8081         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
8082         to GOT_VERSION_REGNUM.
8083         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
8084         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
8085         * config/mips/mips.c (mips_emit_call_insn): New function.
8086         (mips_call_tls_get_addr): Call mips_expand_call directly.
8087         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
8088         emit_call_insn.
8089         (mips16_build_call_stub): Likewise.  Return the call insn or null.
8090         (mips_expand_call): Update the call to mips16_build_call_stub
8091         accordingly and a remove redundant condition.  Assert that MIPS16
8092         stubs do not use lazy binding.  Use mips_emit_call_insn and return
8093         the call insn.
8094         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
8095         TARGET_USE_GOT.
8096         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
8097         (mips_avoid_hazard): Remove hazard_set handling.
8098         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
8099         (UNSPEC_RESTORE_GP): ...this.
8100         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
8101         (FAKE_CALL_REGNO): Rename to...
8102         (GOT_VERSION_REGNUM): ...this.
8103         (type): Add "ghost" value.  Add an associated insn reservation.
8104         (hazard_set): Remove.
8105         (exception_receiver): Rename to...
8106         (restore_gp): ...this and update the unspec identifier accordingly.
8107         (exception_receiver, nonlocal_got_receiver): New expanders.
8108         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
8109         FAKE_CALL_REGNO.  Remove hazard_set attribute.
8110         (set_got_version, update_got_version): New patterns.
8111
8112 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
8113
8114         PR target/34970
8115         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
8116
8117 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
8118
8119         PR other/31955
8120         * doc/install.texi2html: Generate gcc-vers.texi.
8121
8122 2008-01-25  DJ Delorie  <dj@redhat.com>
8123
8124         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
8125
8126 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
8127
8128         * config/c4x: Remove directory.
8129         * config.gcc (crx-*, mt-*): Mark obsolete.
8130         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
8131         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
8132         sh-*-rtemscoff*): Remove cases.
8133         * defaults.h (C4X_FLOAT_FORMAT): Remove.
8134         * real.c (encode_c4x_single, decode_c4x_single,
8135         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
8136         c4x_extended_format): Remove.
8137         * real.h (c4x_single_format, c4x_extended_format): Remove.
8138         * doc/extend.texi (interrupt, naked): Remove mention of attributes
8139         on C4x.
8140         (Pragmas): Remove comment about c4x pragmas.
8141         * doc/install.texi (c4x): Remove target-specific instructions.
8142         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
8143         * doc/md.texi (Machine Constraints): Remove C4x documentation.
8144         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
8145         refer to C4x source files as examples.
8146         (C4X_FLOAT_FORMAT): Remove documentation.
8147
8148 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
8149
8150         * config/bfin/bfin.c (override_options): Reorder tests so that
8151         flag_pic gets enabled for -msep-data.
8152
8153 2008-01-25  Richard Guenther  <rguenther@suse.de>
8154
8155         PR middle-end/32244
8156         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
8157         to its bitfield precision if required.
8158
8159 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
8160
8161         PR middle-end/33880
8162         * tree-nested.c (walk_omp_for): New function.
8163         (convert_nonlocal_reference, convert_local_reference): Call
8164         walk_omp_for on OMP_FOR.
8165         (convert_call_expr): Call walk_body on OMP_FOR's
8166         OMP_FOR_PRE_INIT_BODY.
8167
8168 2008-01-25  Richard Guenther  <rguenther@suse.de>
8169
8170         PR tree-optimization/34966
8171         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
8172         default defs and PHI_NODEs we have to insert after the
8173         defining statement.
8174
8175 2008-01-24  Nick Clifton  <nickc@redhat.com>
8176
8177         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
8178         Provide a default definition.
8179         (LIBGCC2_UNITS_PER_WORD): Likewise.
8180
8181         * config/stormy16/stormy16.c: Include df.h for the prototype
8182         for df_regs_ever_live_p.
8183         (xstormy16_expand_builtin_va_start): Convert the stack offset
8184         into a component_ref and then use POINTER_PLUS_EXPR to add it
8185         to the incoming_virtual_args_rtx.
8186         (xstormy16_gimplify_va_arg_expr): Rename to
8187         xstormy16_gimplify_va_arg_expr.
8188         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
8189         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
8190         xstormy16_gimplify_va_arg_expr.
8191         Fix up some formatting issues.
8192
8193         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
8194         Move to predicates.md.
8195         (xs_hi_general_operand): Likewise.
8196         (xs_hi_nonmemory_operand): Likewise.
8197         * config/stormy16/predicates.md:
8198         (xstormy16_carry_plus_operand): New predicate.
8199         (xs_hi_general_operand): New predicate.
8200         (xs_hi_nonmemory_operand): New predicate.
8201         * config/stormy16/stormy16-protos.h:
8202         (xstormy16_carry_plus_operand): Delete prototype.
8203         (xs_hi_general_operand): Likewise.
8204         (xs_hi_nonmemory_operand): Likewise.
8205
8206         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
8207         modifiers as they are no longer needed and they can trigger
8208         reload spill failures.
8209
8210         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
8211         with a match_operand in order to help reload.
8212
8213         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
8214         constraint with 'e' for the 8th alternative as this version of
8215         the mov.w instruction only accepts the lower 8 registers.
8216
8217 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
8218
8219         PR target/34856
8220         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
8221         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
8222         vector elements.
8223
8224 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
8225
8226         PR middle-end/33333
8227         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
8228
8229 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
8230
8231         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
8232         New functions.
8233         (remove_structure): Update allocations list before removing structure.
8234         
8235 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
8236
8237         * ipa-struct-reorg.c (is_safe_cond_expr, 
8238         create_new_stmts_for_cond_expr): Use integer_zerop function,
8239         that recognize not only zero-pointer, but zero-integer too.
8240
8241 2008-01-25  Ben Elliston  <bje@au.ibm.com>
8242
8243         PR other/22232
8244         * fixproto: Escape "." in sed expression that strips leading "./".
8245
8246 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
8247
8248         PR driver/34904
8249         * gcc.c (SWITCH_OK): Removed.
8250         (SWITCH_LIVE): Changed to bit.
8251         (SWITCH_FALSE): Likewise.
8252         (SWITCH_IGNORE): Likewise.
8253         (switchstr): Change live_cond to unsigned int.
8254         (process_command): Replace SWITCH_OK with 0.
8255         (do_self_spec): Likewise.
8256         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
8257         (give_switch): Likewise.
8258         (used_arg): Likewise.
8259         (do_spec_1): Set the SWITCH_IGNORE bit.
8260         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
8261         bits.  Set the SWITCH_LIVE bit.
8262
8263 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
8264
8265         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
8266
8267 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
8268
8269         PR tree-optimization/34472
8270         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
8271         parameter to a "bool *" and set *DATA to false if there is
8272         an unsafe access.  Do not delete the structure here.
8273         (check_cond_exprs): Delete it here instead.
8274         (check_cond_exprs, exclude_cold_structs): Do not increase
8275         I when removing a structure.
8276
8277 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
8278
8279         PR target/34856
8280         * config/i386/i386.c (ix86_expand_vector_init): Consider only
8281         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
8282
8283 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
8284
8285         PR middle-end/34934
8286         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
8287         a fixed vector for stack.
8288
8289 2008-01-24  Ben Elliston  <bje@au.ibm.com>
8290
8291         PR c++/25701
8292         * doc/gcc.texi (Software development): Add a direntry for g++.
8293         
8294 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
8295
8296         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
8297         stale and straggling -fforce-addr comments above.
8298
8299         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
8300         define.
8301         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
8302         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
8303
8304 2008-01-23  Michael Matz  <matz@suse.de>
8305
8306         PR debug/34895
8307         * dwarf2out.c (force_type_die): Use modified_type_die instead of
8308         gen_type_die.
8309
8310 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
8311
8312         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
8313         malloc result type.
8314
8315 2008-01-23 Anatoly Sokolov <aesok@post.ru>
8316
8317         * config/avr/avr.c (avr_current_arch): New variable.
8318         (avr_arch_types): Add 'avr31' and 'avr51' entries.
8319         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
8320         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
8321         (avr_override_options): Init 'avr_current_arch'. 
8322         (base_arch_s): Move from here...
8323         * config/avr/avr.h (base_arch_s): ... here. Add new members 
8324         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
8325         'mega' to 'have_jmp_call'.
8326         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
8327         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
8328         macros.
8329         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
8330         architectures.
8331         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
8332         MULTILIB_MATCHES): (Ditto.).
8333
8334 2008-01-23  Richard Guenther  <rguenther@suse.de>
8335
8336         PR middle-end/31529
8337         * cgraphunit.c (cgraph_reset_node): Always mark the node
8338         not reachable if it is not queued already.
8339
8340 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
8341
8342         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
8343         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
8344         (cputype_selected): New static variable.
8345         (bfin_handle_option): Set it if -mcpu is used.
8346         (override_option): Select default set of workarounds if no cpu type
8347         selected on the command line.
8348         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
8349
8350         From  Michael Frysinger  <michael.frysinger@analog.com>
8351         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
8352         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
8353
8354         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
8355         for bf547, bf523, bf524, and bf526.
8356         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
8357         bf526.
8358         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
8359         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
8360         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
8361         __ADSPBF547__ and __ADSPBF54x__ for bf547.
8362         * doc/invoke.texi (Blackfin Options): Document that
8363         -mcpu now accept bf547, bf523, bf524, and bf526.
8364
8365 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
8366
8367         PR rtl-optimization/34628
8368         * combine.c (try_combine): Stop and undo after the first combination
8369         if an autoincrement side-effect on the first insn has effectively
8370         been lost.
8371
8372 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
8373
8374         PR target/34529
8375         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
8376         Offset addresses are not valid for Altivec or paired float modes.
8377
8378 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
8379
8380         PR c++/34607
8381         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
8382         if DECL_INITIAL (decl) is error_mark_node.
8383
8384         PR c++/34914
8385         * c-common.c (handle_vector_size_attribute): Only allow
8386         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
8387         the same way as pointer, array etc. types.
8388         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
8389
8390         PR c++/34917
8391         * tree.c (build_type_attribute_qual_variant): Call
8392         build_qualified_type if attributes are equal, but quals are not.
8393
8394 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8395
8396         PR 32102
8397         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
8398         * flags.h (warn_strict_aliasing): Remove.
8399         (warn_strict_overflow): Remove.
8400         * opts.c (warn_strict_aliasing): Remove.
8401         (warn_strict_overflow): Remove.
8402         * c-opts.c (c_common_handle_option): -Wall only sets
8403         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
8404         (c_common_post_options): Give default values to -Wstrict-aliasing
8405         and -Wstrict-overflow if they are uninitialized.
8406         * common.opt (Wstrict-aliasing): Specify Var and Init.
8407         (Wstrict-overflow): Likewise.
8408
8409 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
8410
8411         PR rtl-optimization/26854
8412         PR rtl-optimization/34400
8413         PR rtl-optimization/34884
8414         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
8415         DF_RD->gen.
8416         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
8417         (df_rd_bb_info.expanded_lr_out): Deleted
8418         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
8419         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
8420         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
8421         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
8422         Removed code to allocate, initialize or free expanded_lr_out.
8423         (df_rd_bb_local_compute_process_def): Restructured to make more
8424         understandable.
8425         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
8426         sets if the sets are being trimmed.
8427
8428 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
8429
8430         PR bootstrap/32287
8431         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
8432         (as_vers): Likewise.
8433         * configure: Regenerated.
8434
8435 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8436
8437         PR middle-end/33092
8438         * tree-pass.h (pass_build_alias): New pass.
8439         * tree-ssa-alias.c (gate_build_alias): New.
8440         (pass_build_alias): New.
8441         * passes.c (init_optimization_passes): Add pass_build_alias after
8442         pass_create_structure_vars.
8443
8444 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
8445
8446         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
8447         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
8448         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
8449         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
8450         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
8451         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
8452         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
8453         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
8454         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
8455         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
8456         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
8457         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
8458         * config/s390/s390.md (FP_ALL): New mode iterator.
8459         (_d): New mode attribute.
8460         ("*signbit<mode>2>"): Changed mode of first operand.
8461         ("isinf<mode>2"): Changed mode of first operand.
8462         ("*TDC_insn"): Adaptation for DFP modes.
8463
8464 2008-01-22  Ben Elliston  <bje@au.ibm.com>
8465
8466         * tree.c (check_qualified_type): Improve function description.
8467
8468 2008-01-21  Jason Merrill  <jason@redhat.com>
8469
8470         PR c++/34196
8471         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
8472         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
8473         if it is set.
8474
8475 2008-01-21  DJ Delorie  <dj@redhat.com>
8476
8477         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
8478         return zero.
8479
8480 2008-01-21  Richard Guenther  <rguenther@suse.de>
8481
8482         PR middle-end/34856
8483         * tree-cfg.c (verify_expr): Allow all invariant expressions
8484         instead of just constant class ones as reference argument.
8485         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
8486         like any other constant.
8487         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8488
8489 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
8490
8491         * regmove.c (fixup_match_1): Update call crossed frequencies.
8492
8493 2008-01-21  Richard Guenther  <rguenther@suse.de>
8494
8495         PR c/34885
8496         * tree-inline.c (setup_one_parameter): Deal with mismatched
8497         types using a VIEW_CONVERT_EXPR.
8498
8499 2008-01-21  Alon Dayan  <alond@il.ibm.com>
8500             Olga Golovanevsky  <olga@il.ibm.com>
8501         
8502         PR tree-optimization/34701
8503         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
8504         when the structure size is not a power of 2.
8505
8506 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
8507
8508         * doc/install.texi: Add doc for --enable-checking=df.
8509         
8510 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8511
8512         PR rtl-optimization/34808
8513         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
8514
8515 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
8516
8517         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
8518         input.
8519
8520 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
8521
8522         PR rtl-optimization/26854
8523         PR rtl-optimization/34400
8524         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
8525         DF_RD->gen.
8526         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
8527         (df_rd_bb_info.expanded_lr_out): New.
8528         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
8529         * loop_iv.c (iv_analysis_loop_init): Ditto.
8530         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
8531         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
8532         Added code to allocate, initialize or free expanded_lr_out.
8533         (df_rd_bb_local_compute_process_def): Restructured to make
8534         more understandable.
8535         (df_rd_confluence_n): Add code to do nothing with fake edges and
8536         code to no apply invalidate_by_call sets if the sets are being trimmed.
8537         (df_lr_local_finalize): Renamed to df_lr_finalize.
8538         (df_live_local_finalize): Renamed to df_live_finalize.
8539
8540 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
8541
8542         PR target/34831
8543         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
8544         deciding whether to use reciprocal instructions.
8545
8546 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
8547
8548         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
8549         dwarf2out_note_section_used if cold_text_section is NULL.
8550
8551 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
8552
8553         PR gcov-profile/34610
8554         * tree-cfg.c (make_edges): Mark both outgoing edges from
8555         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
8556         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
8557         from OMP_FOR and OMP_CONTINUE outgoing edges.
8558
8559         * tree-profile.c (tree_profiling): Return early if
8560         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
8561         at the end.
8562         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
8563         from cfun to child_cfun.
8564         * function.h (struct function): Add after_tree_profile bit.
8565
8566 2008-01-19 Anatoly Sokolov <aesok@post.ru>
8567
8568         * config/avr/avr.S (_exit): Disable interrupt.
8569
8570 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
8571             Steven Bosscher  <stevenb.gcc@gmail.com>
8572
8573         PR rtl-optimization/26854
8574         PR rtl-optimization/34400
8575         * df-problems.c (df_live_scratch): New scratch bitmap.
8576         (df_live_alloc): Allocate df_live_scratch when doing df_live.
8577         (df_live_reset): Clear the proper bitmaps.
8578         (df_live_bb_local_compute): Only process the artificial defs once
8579         since the order is not important.
8580         (df_live_init): Init the df_live sets only with the variables
8581         found live by df_lr.
8582         (df_live_transfer_function): Use the df_lr sets to prune the
8583         df_live sets as they are being computed.  
8584         (df_live_free): Free df_live_scratch.
8585
8586 2008-01-18  Ian Lance Taylor  <iant@google.com>
8587
8588         * common.opt: Add fmerge-debug-strings.
8589         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
8590         flag_merge_debug_strings rather than flag_merge_constants.
8591         * doc/invoke.texi (Option Summary): Mention
8592         -fmerge-debug-strings.
8593         (Debugging Options): Document -fmerge-debug-strings.
8594
8595 2008-01-18  Ian Lance Taylor  <iant@google.com>
8596
8597         PR c++/33407
8598         * tree.h (DECL_IS_OPERATOR_NEW): Define.
8599         (struct tree_function_decl): Add new field operator_new_flag.
8600         * tree-inline.c (expand_call_inline): When inlining a call to
8601         operator new, force the return value to go into a variable, and
8602         set DECL_NO_TBAA_P on that variable.
8603         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
8604
8605 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
8606
8607         PR debug/34484
8608         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
8609         DWARF2_DEBUGGING_INFO.
8610         (dwarf2out_note_section_used): Ditto.  Add prototype.
8611         (have_multiple_function_sections, text_section_used,
8612         cold_text_section_used, *cold_text_sections): Move declarations
8613         before their uses.
8614
8615 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
8616
8617         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
8618         field and add signal_ra.
8619         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
8620         assignments to frame state pc.  Move end of stack check after
8621         MD_FALLBACK_FRAME_STATE_FOR.
8622         (uw_update_context_1): Use frame state signal_regs if set, instead
8623         of checking signal_frame flag.
8624         (uw_update_context): Use frame state signal_ra if set.
8625         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
8626         * config/xtensa/linux-unwind.h: New file.
8627
8628 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
8629
8630         * modulo-sched.c (get_sched_window): Fix comment typo.
8631
8632 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
8633
8634         PR tree-optimization/34648
8635         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
8636
8637 2008-01-17  Anatoly Sokolov <aesok@post.ru>
8638
8639         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
8640         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
8641
8642 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
8643
8644         PR rtl-optimization/34400
8645         * df-core.c (df_worklist_dataflow_overeager,
8646         df_worklist_dataflow_doublequeue): New functions.
8647         (df_worklist_dataflow): Two different worklist solvers.
8648         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
8649         New param.
8650
8651 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8652
8653         PR testsuite/34821
8654         * doc/invoke.texi: Document the dependence on pthread for fopenmp
8655         and ftree-parallelize-loops.
8656
8657 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
8658
8659         PR rtl-optimization/34826
8660         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
8661
8662 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
8663
8664         * global.c (find_reg): Mark the eh regs as used if necessary.
8665         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
8666         * ra.h (struct allocno): no_eh_reg field added.  Changed
8667         no_stack_reg type to bitfield.
8668
8669 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
8670
8671         * tree.c (substitute_in_expr): Add missing 'break'.
8672
8673 2008-01-17  Richard Guenther  <rguenther@suse.de>
8674
8675         PR tree-optimization/34825
8676         * tree-ssa-math-opts.c (is_division_by): Do not recognize
8677         x / x as division to handle.
8678
8679 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8680
8681         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
8682         "-pthread" is specified.
8683         * pa-hpux11.h (LIB_SPEC): Likewise.
8684
8685 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
8686             Peter Bergner  <bergner@vnet.ibm.com>
8687
8688         PR rtl-optimization/33796
8689         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
8690
8691 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8692
8693         PR libgfortran/34699
8694         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
8695         static links.
8696         * pa-hpux10.h (LINK_SPEC): Likewise.
8697         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
8698
8699 2008-01-16  Richard Guenther  <rguenther@suse.de>
8700
8701         PR middle-end/32628
8702         * fold-const.c (fold_convert_const_int_from_int): Do not
8703         set overflow if that occured only because of a sign extension
8704         change when converting from/to a sizetype with the same
8705         precision and signedness.
8706
8707 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
8708
8709         PR debug/34249
8710         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
8711         location address to the correct place.  Update copyright year.
8712
8713 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8714
8715         * lambda-code.c (lambda_transform_legal_p): Handle the case of
8716         no dependences in the dependence_relations vector.
8717
8718 2008-01-16  Jan Hubicka  <jh@suse.cz>
8719
8720         PR rtl-optimization/31396
8721         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
8722         * cfg.c (dump_reg_info): Print it.
8723         * regs.h (struct reg_info_t): add freq_calls_crossed.
8724         (REG_FREQ_CALLS_CROSSED): New macro.
8725         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
8726         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
8727         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
8728         regmove_optimize): Update call crossed frequencies.
8729         * local-alloc.c (struct qty): Add freq_calls_crossed.
8730         (alloc_qty): Copute freq_calls_crossed.
8731         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
8732         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
8733         * ra.h (struct allocno): Add freq_calls_crossed.
8734
8735 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8736
8737         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
8738         libgomp when compiling with ftree-parallelize-loops.
8739         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
8740
8741 2008-01-16  Richard Guenther  <rguenther@suse.de>
8742
8743         PR tree-optimization/34769
8744         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
8745         * tree.c (int_cst_value): Instead make this function more
8746         permissive in what it accepts as valid input.  Document this
8747         function always sign-extends the value.
8748
8749 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
8750             Richard Guenther  <rguenther@suse.de>
8751
8752         PR c/34668
8753         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
8754         (gimple_fold_indirect_ref_rhs): ... this.
8755         (gimple_fold_indirect_ref): New function with foldings
8756         that preserve lvalueness.
8757         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
8758         * tree-flow.h (gimple_fold_indirect_ref): Declare.
8759         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
8760         to fold an INDIRECT_REF, fall back to the old use of
8761         fold_indirect_ref_1.
8762
8763 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8764
8765         * tree-data-ref.c (subscript_dependence_tester_1): Call 
8766         free_conflict_function.
8767         (compute_self_dependence): Same.
8768
8769 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
8770
8771         PR debug/34249
8772         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
8773         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
8774         function global.
8775         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
8776         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
8777         for DWARF2_UNWIND_INFO targets.
8778
8779 2008-01-16  Richard Guenther  <rguenther@suse.de>
8780
8781         PR c/34768
8782         * c-typeck.c (common_pointer_type): Do not merge inconsistent
8783         type qualifiers for function types.
8784
8785 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
8786
8787         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
8788         loop_iterator li from previous commit.
8789
8790 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
8791
8792         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
8793
8794 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
8795
8796         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
8797         (parallelize_loops): Don't parallelize irreducible components.
8798
8799 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8800
8801         PR c++/24924
8802         * c-opts (c_common_post_options): Do not enable CPP
8803         flag_pedantic_errors by default.
8804         
8805 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
8806
8807         PR rtl-optimization/31944
8808         * cse.c (remove_pseudo_from_table): New function.
8809         (merge_equiv_classes): Use above function to remove pseudo-registers.
8810         (invalidate): Likewise.
8811
8812 2008-01-13  Richard Guenther  <rguenther@suse.de>
8813
8814         PR middle-end/34601
8815         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
8816         instead of TYPE_MODE to deal with calls from expand_one_error_var.
8817
8818 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
8819
8820         * gcse.c (cprop_jump): Call validate_unshare_change instead of
8821         validate_change to unshare the source of the PC set.
8822
8823 2008-01-12  Jan Hubicka  <jh@suse.cz>
8824
8825         PR middle-end/32135
8826         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
8827         references above array bounds.  This might trigger bounds checks for
8828         pointers to arrays.
8829
8830 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
8831
8832         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
8833         new_replaceable_dependencies.
8834
8835 2008-01-12  Doug Kwan  <dougkwan@google.com>
8836
8837         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
8838         instead of OPT_Wreturn_type in warning due to ignored return type
8839         qualifiers.
8840         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
8841         options included in -Wextra.
8842         * c.opt: New option -Wignored_qualifiers.
8843         * doc/invoke.texi (Warning Options, -Wextra): Add new option
8844         -Wignore_qualifiers.
8845         (-Wignored-qualifiers): Document.
8846         (-Wreturn-type): Remove description of functionality now handled
8847         by -Wignored-qualifiers.
8848
8849 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
8850
8851         PR ada/33788
8852         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
8853         NOP_EXPR if it is between integral types with the same precision.
8854
8855 2008-01-12  Jan Hubicka  <jh@suse.cz>
8856
8857         PR other/28023
8858         * invoke.texi (max-inline-recursive-depth): Fix default value.
8859
8860 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
8861
8862         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
8863         correct type.
8864
8865 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
8866         
8867         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
8868         
8869 2008-01-11  James E. Wilson  <wilson@specifix.com>
8870
8871         PR target/26015
8872         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
8873
8874 2008-01-11  Anatoly Sokolov <aesok@post.ru>
8875
8876         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
8877         save/restore frame pointer register and don't use 'call-prologues' 
8878         optimization in function with "OS_task" attribute.
8879
8880 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
8881
8882         PR middle-end/31309
8883         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
8884         when copying to memory.
8885
8886 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
8887
8888         PR rtl-optimization/30905
8889         * cfgcleanup.c: Include dce.h
8890         (crossjumps_occured): New global variable.
8891         (try_crossjump_bb): Exit loop after finding a fallthru edge.
8892         If something changed, set crossjumps_occured to true.
8893         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
8894         Don't add/remove fake edges to exit here...
8895         (cleanup_cfg): ...but do it here, when crossjumping.
8896         Run a fast DCE when successful crossjumps occured in the latest
8897         iteration of try_optimize_cfg.
8898
8899 2008-01-11  Richard Guenther  <rguenther@suse.de>
8900
8901         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
8902         (struct vn_unary_op_s): Likewise.
8903         (vn_reference_insert): Free old reference on hash collision.
8904
8905 2008-01-10  Raksit Ashok  <raksit@google.com>
8906
8907         PR rtl-optimization/27971
8908         * combine.c (find_split_point): Split PLUS expressions which are
8909         inside a MEM rtx, and whose first operand is complex.
8910
8911 2008-01-10  DJ Delorie  <dj@redhat.com>
8912
8913         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
8914         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
8915         (m32c_hard_regno_ok): Call the underlying function.
8916
8917 2008-01-10  Richard Guenther  <rguenther@suse.de>
8918
8919         PR middle-end/34683
8920         * tree-cfg.c (tree_merge_blocks): Do not go through the
8921         full-blown folding and stmt updating path if we just deal
8922         with virtual operands.
8923         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
8924         test for abnormal SSA_NAMEs.
8925
8926 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
8927
8928         PR middle-end/34641
8929         * reload.c (push_reload): Add assertions.  All constants from
8930         reg_equiv_constant should have been used for replacing the respective
8931         pseudo earlier.
8932         (find_reloads_address): Invoke find_reloads_address_part for
8933         constant taken from the reg_equiv_constant array.
8934
8935 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
8936
8937         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
8938         field (valnum) the first in the struct.  Replace bools with
8939         unit bit fields.
8940
8941 2008-01-10  Richard Guenther  <rguenther@suse.de>
8942
8943         PR tree-optimization/34651
8944         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
8945         types and ordering for masking and converting.
8946
8947 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
8948
8949         PR tree-optimization/34017
8950         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
8951         also for PHI_NODE expressions.
8952
8953 2008-01-09  Jan Hubicka  <jh@suse.cz>
8954
8955         PR tree-optimization/34708
8956         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
8957         based on number of case labels.
8958         (init_inline_once): Remove switch_cost.
8959         * tree-inline.h (eni_weights_d): Remove switch_cost.
8960
8961 2008-01-09  Richard Guenther  <rguenther@suse.de>
8962         Andrew Pinski  <andrew_pinski@playstation.sony.com>
8963
8964         PR middle-end/30132
8965         * gimplify.c (gimplify_cond_expr): Do not create an addressable
8966         temporary if an rvalue is ok or an lvalue is not required.
8967
8968 2008-01-09  Richard Guenther  <rguenther@suse.de>
8969
8970         PR middle-end/34458
8971         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
8972         adjust return type.
8973
8974 2008-01-09  Richard Guenther  <rguenther@suse.de>
8975
8976         PR middle-end/34679
8977         * tree.c (host_integerp): Check for sizetype only if the
8978         type is an integer type.
8979
8980 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
8981
8982         PR debug/26364
8983         * opts.c (decode_options): Disable inlining of functions called
8984         once if not in unit-at-a-time mode.
8985
8986 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
8987
8988         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
8989
8990 2008-01-08  Richard Guenther  <rguenther@suse.de>
8991
8992         PR middle-end/31863
8993         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
8994         out early if the result will be unused.
8995
8996 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
8997
8998         PR target/34709
8999         Revert:
9000
9001         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
9002         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
9003         for TARGET_RECIP.       
9004         
9005 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
9006         
9007         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
9008         for vectorization tuned.
9009         
9010 2008-01-08  Richard Guenther  <rguenther@suse.de>
9011
9012         PR tree-optimization/34683
9013         * tree-ssa-operands.c (operand_build_cmp): Export.
9014         * tree-ssa-operands.h (operand_build_cmp): Declare.
9015         * tree-vn.c (vuses_compare): Remove.
9016         (sort_vuses): Use operand_build_cmp.
9017         (sort_vuses_heap): Likewise.
9018         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
9019         to re-use old VEC if available.  Do not sort already sorted VUSEs.
9020         (vdefs_to_vec): Do not sort already sorted VDEFs.
9021
9022 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
9023
9024         PR middle-end/34694
9025         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
9026
9027 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
9028
9029         PR target/34702
9030         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
9031         limitations of reciprocal sequences on x86 targets.
9032
9033 2008-01-08  Richard Guenther  <rguenther@suse.de>
9034
9035         PR tree-optimization/34683
9036         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
9037
9038 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
9039
9040         PR target/34622
9041         * config/darwin.c (darwin_mergeable_string_section): Don't use
9042         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
9043
9044 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
9045
9046         PR target/34682
9047         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
9048         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
9049         predicates of op0 and op1 to register_operand.
9050         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
9051         expander using X87MODEF mode iterator.  Change predicates of
9052         op0 and op1 to register_operand.
9053         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
9054         corresponding patterns and macroize using MODEF macro.  Change
9055         predicates of op0 and op1 to register_operand and remove
9056         "m" constraint. Disparage "r" alternative with "!".
9057         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
9058         macroize using X87MODEF macro.  Change predicates of op0 and op1
9059         to register_operand and remove "m" constraint.  Disparage "r"
9060         alternative with "!".
9061         (absneg splitter with memory operands): Remove.
9062         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
9063         patterns and macroize using X87MODEF mode iterator.
9064         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
9065         Change predicate of op1 to register_operand.
9066         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
9067         for memory operands.
9068
9069 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
9070
9071         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
9072
9073 2008-01-07  Richard Guenther  <rguenther@suse.de>
9074
9075         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
9076         fields.
9077
9078 2008-01-07  Richard Guenther  <rguenther@suse.de>
9079
9080         PR tree-optimization/34683
9081         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
9082         VOPs of the needed size to save memory.  Use VEC_quick_push
9083         to save compile-time.
9084         (vdefs_to_vec): Likewise.
9085
9086 2008-01-07  Sa Liu  <saliu@de.ibm.com>
9087
9088         * config/spu/spu.md (divdf3): Genetate inline code for double
9089         division.  The implementation doesn't handle INF or NAN, therefore it
9090         only applies when -ffinite-math-only is given.
9091
9092 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
9093
9094         PR libstdc++/34680
9095         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
9096         * doc/cpp.texi ([Common Predefined Macros]): Document.
9097
9098 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
9099
9100         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
9101         order to use commutative addition instead of subtraction.
9102
9103 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9104             Mircea Namolaru  <namolaru@il.ibm.com>
9105             Vladimir Yanovsky  <yanov@il.ibm.com>
9106             Revital Eres  <eres@il.ibm.com>
9107
9108         PR tree-optimization/34263
9109         * tree-outof-ssa.c (process_single_block_loop_latch,
9110         contains_tree_r): New functions.
9111         (analyze_edges_for_bb): Call process_single_block_loop_latch
9112         function to empty single-basic-block latch block if possible.
9113
9114 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
9115
9116         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
9117         for TARGET_RECIP.
9118         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
9119
9120 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
9121
9122         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
9123
9124 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
9125
9126         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
9127
9128 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
9129
9130         PR tree-optimization/34618
9131         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
9132         flag from T.
9133
9134 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
9135
9136         PR target/34673
9137         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
9138         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
9139         Update copyright year.
9140
9141         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
9142         Update copyright year.
9143         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
9144         using NR fixup.
9145
9146 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
9147
9148         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
9149         edge does not point to current bb before changing need_assert.
9150
9151 2008-01-04  Richard Guenther  <rguenther@suse.de>
9152
9153         PR middle-end/34029
9154         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
9155         for verifying purposes if they are is_gimple_min_invariant.
9156
9157 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
9158
9159         PR tree-optimization/34448
9160         PR tree-optimization/34465
9161         * gimplify.c (gimplify_init_constructor): Add new parameter
9162         notify_temp_creation.  Use it.
9163         (gimplify_modify_expr_rhs): Take volatiles into account when
9164         optimizing constructors.
9165         Do not optimize constructors if gimplify_init_constructor will dump to
9166         memory.
9167         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
9168         * gcc.c-torture/compile/pr34448.c: New.
9169
9170 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
9171
9172         PR gcov-profile/34609
9173         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
9174         return_slot if result is TREE_ADDRESSABLE.
9175
9176 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
9177
9178         * config/mips/mips.md (sqrt_condition): Tweak comment.
9179         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
9180
9181 2008-01-03  Tom Tromey  <tromey@redhat.com>
9182
9183         PR c/34457
9184         * c-common.c (c_type_hash): Handle VLAs.
9185
9186 2008-01-03  Jan Hubicka  <jh@suse.cz>
9187
9188         PR tree-optimization/31081
9189         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
9190         0 when inlining and not inlining to first basic block.
9191         (remap_decl): When var is initialized to 0, don't set default_def.
9192         (expand_call_inline): Set entry_bb.
9193         * tree-inline.h (copy_body_data): Add entry_bb.
9194
9195 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
9196
9197         PR c++/34619
9198         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
9199         before returning.
9200
9201         PR tree-optimization/29484
9202         * tree-inline.c (inline_forbidden_p_2): New function.
9203         (inline_forbidden_p): Disallow inlining if some static var
9204         has an address of a local LABEL_DECL in its initializer.
9205         * doc/extend.texi (Labels as Values): Document &&foo behaviour
9206         vs. inlining.
9207
9208 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
9209
9210         PR tree-optimization/34635
9211         * tree-data-ref.c (add_other_self_distances): Make sure that the
9212         evolution step is constant.
9213
9214 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
9215
9216         PR middle-end/34608
9217         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
9218
9219 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
9220
9221         * tree-sra.c (scalarize_init): Insert the generate_element_init
9222         statements after the generate_element_zero statements.
9223
9224 2008-01-02  Richard Guenther  <rguenther@suse.de>
9225
9226         PR middle-end/34093
9227         PR middle-end/31976
9228         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
9229         for very large number of operands instead of ICEing.
9230
9231 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
9232
9233         PR target/34013
9234         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
9235         while stack probing.
9236
9237 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
9238
9239         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
9240         in C++0x mode.
9241
9242 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
9243
9244         PR libmudflap/26442
9245         * tree-mudflap.c (mx_register_decls): Guard warning by
9246         !DECL_ARTIFICIAL check.
9247
9248 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
9249
9250         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
9251         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
9252         sse5_perm<mode>): Fix constraints.