OSDN Git Service

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