OSDN Git Service

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