OSDN Git Service

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